Skip to content

Releases: Goddard-Fortran-Ecosystem/gFTL

Added support for non-poly allocatable containers

09 Jul 14:41
45b4d4a
Compare
Choose a tag to compare

Fixed

  • Change use of spread in include/v2/parameters/define_derived_macros.m4 to reshape to avoid NVHPC issue

Added

  • Enabled feature that allows pointers into container objects to remain valid when container grows/shrinks. This ability is already baked into the polymorphic case where MOVE_ALLOC() is used. Now if one uses #define T_deferred gFTL will also use a wrapper type with an allocatable component and MOVE_ALLOC() under the hood.

Changed

  • Update CI to remove macos-12, add macos-14 and ubuntu-24.04

IFX port

20 Mar 11:43
5367705
Compare
Choose a tag to compare

Fixed

  • Implemented workarounds for ifx compiler and v1 interfaces. v2 tests were fine.
    1. Removed previous workaround for older Intel compilers that did not support polymorphic assignment.
    2. Introduced workaround for comparing polymorphic pointers for Set and altSet

Changed

  • Removed macos-11 from CI, added macos-13
  • Added -quiet flag for NAG compiler
  • Removed stray print statements in tests.

Port to Fujitsu (and minor bugfix)

03 Mar 17:56
d4203cc
Compare
Choose a tag to compare

Added

  • Fujitsu compiler support

Fixed

  • (#211) Fixed bug in implementation of erase(first, last) for vector & deque containers. When the range was empty, then some cases would erronously call MOVE_ALLOC(x,x) which is illegal.

Miscellaneous minor bits

28 Nov 18:47
dc93a5f
Compare
Choose a tag to compare

Added

  • Introduced new preprocessing options to disable override of assignment(=) in v2 map and set templates. This is to workaround a case where intel compiler is producing erroneous results. Disabling everywhere is too risky.

Changed

  • Behavior of at(key) (without rc) now will not extend the map. This change may be reverted if it breaks any downstream projects.
  • Remove Ubuntu 20 and gfortran-9 from CI

Fixed

  • Add -check nouninit for Intel LLVM to work around ifx bug.

Initial attempt at ifx port

13 Apr 13:54
4beb2f4
Compare
Choose a tag to compare

Added

  • Added IntelLLVM.cmake file as a copy of Intel.cmake to support the LLVM Intel compiler frontends
    (Note - this has not been tested due to lack of system access.)

What's Changed

Full Changelog: v1.9.0...v1.10.0

New iterator factory methods to support Fortran looping

12 Apr 17:06
50366c6
Compare
Choose a tag to compare

Added

  • Added Fortran-friendly iterator factories (and tests) to

    ftn_begin() and ftn_end() have been added to vector, set, map,
    and ordered_map templates. ftn_begin() points to just-before the
    1st element of a container, while ftn_end() points to the last
    element. This allows the next() invocation to be at the start of the loop which
    is less error prone in the presence of CYCLE statements. Example usage:

    type(Vector) :: v
    type(VectorIterator) :: iter
    ...
    associate (e => v%ftn_end())
       iter = v%ftn_begin()
       do while (iter /= e)
          call iter%next()
          ...
          if (<cond>) cycle ! does the right thing
          ...
       end do
    end associate

Bugfix for large (v1) containers

27 Jan 14:26
6e2adb7
Compare
Choose a tag to compare

Fixed

  • Missing KIND= on size() procedure. Gave incorrect response for large containers. Only affects V1 containers.

Fixes to enable GNU make in upstream projects.

23 Jan 17:51
21f5a15
Compare
Choose a tag to compare

Fixed

  • Fix issues with GNU Make builds

Minor fix to support documentation tool

28 Jun 12:36
d8e4edb
Compare
Choose a tag to compare

Fixed

  • Prevented some macro redefinitions in v1/map.inc that caused warning messages and broke documentation tool on downstream projects.

Cleanup, compiler workarounds and minor bugfix

31 May 20:25
012c864
Compare
Choose a tag to compare

Changed

  • Interfaces (intents) to map::at() and ordered_map::at(). The self object should be INTENT(IN) for these interfaces.
  • 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)

Fixed

  • Fixed bug in vector::insert_range() (needs a unit test)

  • Added TARGET to some dummy arguments to prevent NAG from doing copy-in / copy-out. Seems to
    have been causing a memory corruption issue with the yaFyaml package, but might indicate a bug
    in yaFyaml (or gFTL).

  • Fixed non-standard-conforming mismatched integer KIND in deque implementation.

  • Fixed misspelling of SUCCESS

Removed

  • Various unused local variables that were causing annoying compiler warnings.

  • Reactivated unit tests (involving Foo) that were deactivated as a workaround for some NAG 7.1 compiler releases.