-
Notifications
You must be signed in to change notification settings - Fork 466
Closed
Labels
Developer IssueRelated to cmake, packaging, installers, or developer tooling (CI, etc)Related to cmake, packaging, installers, or developer tooling (CI, etc)
Description
Issue overview
Upgrading fmt from the current version of 8.0.1 to 10+ will require significant work to get the custom double formats to match the old fortran formats (Z, S, N, R).
I'm speaking about what is done around here: https://github.com/NREL/EnergyPlus/blob/1033bdc61ccda944a6844344f9ba18e76ffa53d1/src/EnergyPlus/IOFiles.hh#L95
It's not impossible to do it, but since (I believe) these were provided so the I/O upgrade to fmt could pass without CI diffs (so we could trust the upgrade), maybe it's time to just remove these formats, and accept the diffs?
Notes:
- Why upgrade fmt?
- Not saying this needs to be done now, but just anticipating that at some point we will want to do it.
- it seems like this is going to be required to bring the codebase to C++20 and above (from my limited testing enabling C++20 instead of C++17).
- And recent fmt versions gained interesting functionality like formatting std::filesystem::path out of the box, etc.
- The reason there is work to be done is that fmt internals changed, and the specs_.type is no longer a char but an actual enum, so rewritting it requires more effort.
Details
Some additional details for this issue (if relevant):
- Platform (Operating system, version): all
- Version of EnergyPlus (if using an intermediate build, include SHA): 1033bdc
Checklist
Add to this list or remove from it as applicable. This is a simple templated set of guidelines.
- Defect file added (list location of defect file here)
- Ticket added to EnergyPlus Defect Complexity (Github Project)
- Pull request created (the pull request will have additional tasks related to reviewing changes that fix this defect)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Developer IssueRelated to cmake, packaging, installers, or developer tooling (CI, etc)Related to cmake, packaging, installers, or developer tooling (CI, etc)