These are chat archives for Fortran-FOSS-Programmers/General-Discussion

Jul 2016
Chris MacMackin
Jul 26 2016 18:27

I've added a massive new release of FORD. Release notes for v5.0.0 are below (although we are now onto v5.0.2 with some bug fixes).

Version 5.0.0

This is a major release and thus has some non-backwards compatible changes, although every effort has been made to keep them minor.

  • The project_dir option in the project file is now src_dir
  • By default, internally declared variables, types, etc. within procedures are now hidden. This can be changed to the old behaviour by specifying proc_internals: true in the project file.
  • Directories specified in the project file using a relative path are now evaluated relative to the location of that file. Previously they were evaluated relative to the location where FORD is run from. Note that relative directories specified via a command-line flag are still evaluated relative to the current working directory.
  • Documentation below a line declaring multiple variables now applies to all of those variables, whereas it previously only applied to the last one on the line.
  • Extensions for preprocessing must now be explicitly specified in the project file using fpp_extensions. This allows extensions to be used which are not necessarily upper-case (Issue #137). Defaults were selected so as to give the same result as the old default behaviour.

New Features:

  • File dependency graphs are now produced, indicating the order in which files must be compiled (Issue #99)
  • Fixed-form code, in files with an extension in fixed_extensions can now be processed (using the fixed2free tool by ylikx)
  • The legacy block data (Issue #147) and common features are now supported
  • Information is now provided on the number of source lines of code (Issue #98)
  • Output now has better support for smaller windows and screens (Issue #103)
  • Inherited public components and type-bound procedures (if they are not overridden) of derived types are now shown
  • A public type's inheritance from a private type is now shown in graphs
  • Environment variables can now be used in Markdown with the syntax ${ENVIRONMENT_VAR_NAME}. If that environment variable exists the text will be replaced by its contents. Otherwise, it will be replaced by an empty string. (Issue #149)
  • the @note, @bug, @warning, and @todo environments are no longer limited to a single paragraph. If an @endnote, @endbug, @endwarning, or @endtodo statement is found (before the start of another such environment) then the environment will end there. Otherwise, it will end with the paragraph it opens in, as before. (Issue #135)
  • Include directories can now be specified with an --include (or -I) flag at the command line (Issue #143)
  • Call-graphs can now identify external procedures located in other files (Issue #140)

Bug Fixes and Miscellaneous:

  • Keys for graphs are now specific to the type of graph being used
  • Improved handling of attributes for types
  • Better handling of permissions for entities used in modules
  • Improved layouts when summarizing procedures
  • Improved descriptions of where time is spent while making documents