-
-
Notifications
You must be signed in to change notification settings - Fork 349
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Limit {fmt} versions #1538
Limit {fmt} versions #1538
Conversation
6f94de6
to
586fd27
Compare
Codecov Report
@@ Coverage Diff @@
## main #1538 +/- ##
==========================================
- Coverage 70.50% 70.47% -0.03%
==========================================
Files 376 376
Lines 59075 59081 +6
Branches 21219 21222 +3
==========================================
- Hits 41649 41636 -13
- Misses 14348 14365 +17
- Partials 3078 3080 +2
... and 4 files with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
9cabd85
to
51d3ce2
Compare
db00fe1
to
484dcfe
Compare
For Cantera 3.0, I would prefer to maintain compatibility with fmt 6.1.2, which is the version available on Ubuntu 20.04 LTS. While using the submodule is reasonably convenient for users compiling on their own systems, it is highly undesirable when building Debian packages. |
fmt 6.1.2 is the system package on Ubuntu 20.04 LTS
Alright. I currently don't have a machine to test 6.1.2 (Apple silicon conda refuses to install fmt < 7.1), but I believe the PR by itself is worthwhile even if it does not resolve #1526 (it does fix two other unrelated issues). I set the minimum fmt version to 6.1.2, and removed code that assumed fmt 7.1 capabilities. I'd appreciate if we could merge this before tackling #1526? PS: same on Windows 😠
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, @ischoegl. I think this makes sense. I had just a few small suggestions.
503066c
to
8c9b575
Compare
@speth ... thanks for your comments; everything should be taken care of. |
Fixed! |
Changes proposed in this pull request
Frequent API changes in the {fmt} library have led to numerous workarounds in
fmt.h
. At the same time, the library is small (especially after version 7.0) and can be easily included from a git submodule. Note that the latest released {fmt} version is 10.0.default
setting.fmt.h
SolutionArray::save
CSV writing to {fmt}If applicable, fill in the issue number this pull request is fixing
Closes #1537, closes #1540
If applicable, provide an example illustrating new features this pull request is introducing
While this is was not an objective of the PR, the
SolutionArray
CSV writer speed was improved significantly. Formain
, the benchmark is:Using the proposed PR (switch to {fmt}), this reduces to
This could potentially be further improved by using version 7.1
fmt/os.h
file output (1.52 ms) and/or the compile-time format string compilationFMT_COMPILE
, but a major caveat is that the latter is not compatible withicc
(beyond only being available after 7.0). Note that YAML output is significantly slower (bottlenecks are elsewhere), so the possible optimization is not worthwhile:Checklist
scons build
&scons test
) and unit tests address code coverage