Skip to content

Releases: fortesg/fortrantestgenerator

CESM2

04 Nov 22:57
Compare
Choose a tag to compare

NICAM

29 Apr 12:52
Compare
Choose a tag to compare

Fix release

26 Mar 09:16
Compare
Choose a tag to compare
  • Better support of upper case file endings

  • Bug fixes

Full Types and Better Templates

20 Mar 15:19
Compare
Choose a tag to compare
  • Added support for ALWAYS_FULL_TYPES option in FCG v1.8.0

  • Shortened templates: merged ftg_${subroutine.name}_capture_input and ftg_${subroutine.name}_capture_output to ftg_${subroutine.name}_capture_data, including some if-statements to distinguish between input and output.

  • Added -v/--verbose command-line option to all replay templates, setting ftg_cmp_print_when_equal to .TRUE.

  • IconJsbachMock template adapted to latest version of jsbach-mock

  • Bug fixes

  • More tests

  • Refactorings

Requires FortranCallGraph v1.8.0+ and Serialbox2 v.2.5.1+.

Abstract Types, Templates and Merging

06 Mar 22:27
Compare
Choose a tag to compare
  • Restructured and simplified templates and Template API (incl. some incompatibilities to previous version)

  • All templates now contain result checks, no external tools needed anymore. Fixes #8.

  • Removed IconCompare template since IconStandalone now does the same now

  • Removed IconTestbed template

  • Introduced IconJsbachMock template making use of jsbach-mock

  • Support for abstract types with designated subtype, see also latest FCG release. Fixes #17.

Example:
An FCG configuration like

ABSTRACT_TYPE_IMPLEMENTATIONS = {'my_abstract_type':('my_subtype_module','my_subtype')}

might end up in code like

CLASS(my_subtype_module), POINTER :: foo
...
SELECT TYPE (polym1 => foo)
  TYPE IS (my_subtype)
    CALL ftg_write('foo%bar', polym1%bar)
END SELECT
  • Introduced placeholder functions $mergeBegin() and $mergeEnd that enable FTG to merge similar blocks. Fixes #20.

Example:

If a template code like

! OPTIONAL ARGUMENTS
#for $var in $args.allOut.optionals.usedVariables
  IF (PRESENT($var.container(0))) THEN $mergeBegin('present')
    $ftgWrite($var) $clearLine
  END IF $mergeEnd('present')
#end for

would usually generate the following:

! OPTIONAL ARGUMENTS
IF (PRESENT(foo)) THEN
  ftgWrite('foo%bar', foo%bar)
END IF
IF (PRESENT(foo)) THEN
  ftgWrite('foo%baz', foo%baz)
END IF

it will automatically be merged to:

! OPTIONAL ARGUMENTS
IF (PRESENT(foo)) THEN
  ftgWrite('foo%bar', foo%bar)
  ftgWrite('foo%baz', foo%baz)
END IF

Only works with simple blocks with one start end one end. Does not work with IF ... ELSE ... END IF structures or similar.

  • Introduced $clearLine placeholder to remove unwanted empty lines (e.g. created by another placeholder).

  • Added command-line option -m that activates time measurement of the code generation stages

  • Added command-line option -cc that clears the callgraph cache, similar to the -cc option of FCG. Fixes #21.

Requires FortranCallGraph v1.7.0+ and Serialbox2 v.2.5.1+.

Python 3

12 Feb 15:36
0f64f46
Compare
Choose a tag to compare

Runs with Python 3 now. Fixes #4. :-)

Requires FortranCallGraph v1.6.0+ and Serialbox2 v.2.5.1+.

Thesis template

11 Feb 21:05
Compare
Choose a tag to compare
  • Added template BaseCompare as example template for my PhD thesis
  • Minor changes in all templates
  • Bug fixes

Function Results, Step 2

22 Jan 21:56
Compare
Choose a tag to compare
  • Support function results with derived types
  • Fixes #7
  • Refactoring
  • Code clean up

Requires FortranCallGraph v1.5.0+ and Serialbox2 v.2.5.1+.

Function Results

15 Jan 10:56
Compare
Choose a tag to compare
  • Function results are now captured and, in case of the IconCompare template, compared.
    Currently, this only works if the result have a built-in type.
    See #7.

  • Refactored comma separation of arguments in templates.

Decoupling

12 Jan 21:00
Compare
Choose a tag to compare

First attempt to decouple the Replay Code from the Capture Code (#8).

  • Export Code will now also be generated together with Replay Code and not only together with the Capture Code. It will only be generated if not already there.
  • Export and Capture backups can now be distinguished by there file suffixes (*.export.ftg-backupand *.capture.ftg-backup).
  • Adds command line option -e/--export to only generate Export Code.
  • Adds command line option -a/--restoreCapture to restore only Capture backups.
  • Adds template IconCompare that uses the new Serialbox2 extension ftg_compare to directly compare the output data with the stored values from the Serializer. This way, the Replay Code no longer needs the Capture Code to be there.

Requires FortranCallGraph v1.4.0+ and Serialbox2 v.2.5.1+.