Skip to content

Releases: BerkeleyLab/assert

Invoke "assert" via macro and more robust testing

11 Nov 04:37
Compare
Choose a tag to compare

This release adds the include/assert_h.F90 file containing preprocessor macros that guarantee the complete removal of assert subroutine calls when a macro is used and the compile-time flag -DASSERTIONS is not present or -DASSERTIONS=0 is present. The new macros may appear in code in the following forms:

  • call_assert(assertion),
  • call_assert_describe(assertion, description), and
  • call_assert_diagnose(assertion, description, diagnostic_data),

where assertion, description, and diagnostic_data correspond to the assert subroutine's dummy arguments. In the first form above, the macro automatically generates a description actual argument including the file name and line number of the macro's point of use in the source code.

This release also handles other chores, fixes an issue that caused some tests to report passing for incorrect reasons, and works around an issue with LLVM flang 19.1.1.

What's Changed

New Contributors

Full Changelog: 1.7.0...2.0.0

Support building with LLVM Flang

13 Jun 18:53
0591a21
Compare
Choose a tag to compare

This release uses preprocessor macros to replace use of parallel Fortran features which currently enables compilation with LLVM Flang.

What's Changed

  • Chores: fix error message & document build commands with more compilers by @rouson in #23
  • Update README.md by @rouson in #25
  • feat(build): support flang-new by @rouson in #26

Full Changelog: 1.6.0...1.7.0

Support Cray Compiler Environment (CCE) 17.0.0

10 Feb 05:09
b599c1a
Compare
Choose a tag to compare

This release uses preprocessor macros to work around bugs that we have reported in the Cray Fortran compiler.

What's Changed

  • fix(intrinsic_array): cray compiler bug workaround by @rouson in #21
  • Work around Cray Compiler Environment (CCE) 17.0.0 bugs by @rouson in #22

Full Changelog: 1.5.0...1.6.0

Support more intrinsic_array_t ranks with the the NAG compiler

14 May 03:28
7cce789
Compare
Choose a tag to compare

What's Changed

  • Remove unnecessary macros & refactor directory structure by @rouson in #19
  • feat(fpm.toml): increment version to 1.5.0 by @rouson in #20

Full Changelog: 1.4.0...1.5.0

1.4.0

13 Aug 21:11
891eefa
Compare
Choose a tag to compare

What's New

  • Testing: Run CI tests and deploy documentation by @everythingfunctional in #10 👷
  • Testing: Use newer versions of dependencies in the CI by @everythingfunctional in #15 👷
  • Documentation: Remove workaround for ford versions < 6.1 by @rouson in #11 📖
  • Documentation: Update build instructions & remove macros used with nagfor versions < 7.1 by @rouson in #13 📖
  • Documentation: Update copyright year by @rouson in #12 📖
  • Feature: support double precision & 3D arrays intrinsic_array_t constructor by @rouson in #14 🔢
  • Bug fix: work around gfortran's erroneous array allocation warning messages intrinsic_array_s by @praynaud in #17 ⚠️
  • Bug fix: Eliminate additional gfortran warning messages by @rouson in #18 ⚠️

New Contributors

Full Changelog: 1.3.0...1.4.0

Build with the NAG compiler

13 Sep 06:12
4895dc6
Compare
Choose a tag to compare

The Numerical Algorithms Group (NAG) compiler, nagfor, does not yet support assumed-rank dummy arguments. This release uses NAG's Fortran preprocessor to substitute a rank-one array in the intrinsic_array_t type user-defined structure constructor. To build Assert with nagfor and run the tests

fpm test --compiler nagfor --flag -fpp

Bug fix and feature

08 Sep 06:11
7ca9c30
Compare
Choose a tag to compare

This release

  1. Expands support for encapsulating multidimensional arrays in intrinsic_array_t
  2. Work around NAG compiler's lack of support for Fortran 2018 assumed-rank dummy arguments.

New tests, documentation, and diagnostic data type/rank

03 Sep 00:53
Compare
Choose a tag to compare

New Features

  • New intrinsic_array_t type and constructor facilitate intrinsic-array diagnostic data. 📑

Refactoring

  • Reorganize/rename files/directories. 🧹

Testing

  • All tests pass. 💯
  • Add unit tests.
  • Add tests that intentionally error-terminate.
  • Silence most output from tests that intentionally error-terminate.

Documentation

  • Update README.md. 📜
  • Add PlantUML diagram for classes in Assert 🪴
  • Fix typographical errors in documentation 🩹

Initial release

23 Aug 06:18
b7d1706
Compare
Choose a tag to compare

The assert subroutine performs as described in the README.md and in the example/README.md.