Releases: Goddard-Fortran-Ecosystem/pFlogger
Fix for upstream projects using GNU make
Fixed
- Fixes for GNU Make builds
Workaround for NAG 7.1 (7010) and CI updates
Changed
- Minimum version of yaFyaml is now v1.0.1; contains workarounds for NAG 7.1 (7110)
- Updated GitHub Actions
- OSs
- Remove macos-10.15
- Add ubuntu-22.04 and macos-12
- Compilers
- Removed gfortran-8
- Added gfortran-11
- Added gfortran-12 (for ubuntu-22.04)
- OSs
Fixed
- Workarounds in tests for NAG 7.1 (7110)
Improved workaround for GFortran string handling
Fixed
- Introduced workaround for gFortran when combining strings with unlimited polymorphic entities. Users may be able to avoid using a
String()
wrapper for args to logging commands now. - Cleaned up some stray debugging prints
- Fixed misspelling of SUCCESS
Updating to new yaFyaml interfaces requires 1.0-beta7
Changed
- Updated to new version (1.0-beta7) of yaFyaml which involves new interfaces.
Added support for NVHPC
[1.7.0] - 2022-03-24
Added
- Add
NVHPC.cmake
andPGI.cmake
files for NVHPC support
Fixed
- Implemented workaround for gfortran 11.2 that was breaking on
a surprisingly simple call.
Changed
- upgraded to use new gFTL2 interfaces for containers.
Apache 2.0 License
Merge pull request #62 from Goddard-Fortran-Ecosystem/hotfix/license Introducing Apache 2.0 license.
Updated to use yaFyaml 1.0
No change to pFlogger interfaces.
CMake Namespace support and return codes
- Now provides CMake namespace. Upstream projects should link with PFLOGGER::pflogger
- All procedures with potentially failing branches are now covered with optional return code dummy arguments.
Bugfix for unit tests
Fixed one more test that was missed in previous update. (Was using -f filter to focus on some failing tests. Blinded to thore tests.)
Changes to memory management of handlers
Changed
-
Recent addition of
basic_config()
(see previous release)
introduced an ambiguity for memory management. The underlying
design from Python is based upon garbage collection and reference
counting. To solve this problem there the user can now either
specify a HandlerVector or a HandlerPtrVector (but not both) If the
former, pFlogger will copy the handlers into its internal storage.
If the latter, pFlogger will only retain a pointer reference to the
user actual argument. In that case, the user is repsonsible for
maintaining the handlers until pFlogger is finalized and ensuring
that any locks are freed. -
The argument to
Logger::add_handle()
must now have the TARGET
attribute. pFlogger will only maintain a pointer to that target.
This is to be consistent with the above strategy.
Fixed
- Implemented workaround for ifort 18.0.5 that became necessary after
the changes above. Only impacted unit tests.