Skip to content

Releases: Fortran-FOSS-Programmers/ford

Version 5.0.1

26 Jul 15:14
Compare
Choose a tag to compare

Bug fixes:

  • Extensions .F and .FOR now indicate preprocessed fixed-form files, as intended
  • Public inherited derived type components now shown, as intended

Version 5.0.0

26 Jul 14:56
Compare
Choose a tag to compare

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

Version 4.6.2

11 Jun 18:18
Compare
Choose a tag to compare

Bug fixes:

  • Will no longer crash on FORTRAN77 block data construct, although these will not be documented yet, either (Issue #147)
  • Links to source files will now work (Issues #124, #145)
  • Derived types whose names start with is will no longer cause FORD to crash (Issue #148)
  • Preprocessor (cpp) now sees the __GFORTRAN__ macro as being defined, consistent with its behaviour using traditional mode (Issue #139)

Version 4.6.1

05 Jun 17:05
Compare
Choose a tag to compare

Bug fixes:

  • Regression causing MathJax not to work when viewing files locally now fixed (Issue #141)
  • Modules now analyzed in proper order even when containing procedures using other modules (Issue #138)

Version 4.6.0

15 May 20:16
Compare
Choose a tag to compare

New features:

  • Arbitrary preprocessor can now be specified (Issue #117, PR #129)
  • CPP now used as default preprocessor instead of gfortran, as former is more widespread (note that this should not
    change results of preprocessing)
  • Pages now ordered according to file-name (Issue #121, PR #122)
  • Integration of Gitter sidecar
  • Optionally print date documentation created in the page footer (PR #115)
  • Can export graphs as SVG images and graphviz source (Issue #97)
  • Single global switch now available to hide local variables, derived types, etc. within procedures (Issue #100)
  • Support for coloured edges in graphs, which can make it easier to read large graphs (Issue #113)

Bug fixes:

  • \g in character literal no longer causes crash (Issue #136)
  • No longer interprets concurrent in do concurrent as function call (Issue #131)
  • Header doesn't cover links to particular lines of source code in source file pages (Issue #132)
  • Copying file trees now works on network file systems (Issue #128)
  • :: now accepted in all use statements (Issue #120, PR #123)
  • deferred now included in lists of type-bound procedure attributes
  • Correct handling of include paths with user's home directory specified by ~ (Part of issue #134)
  • Correctly interprets output from preprocessors when running with Python 3 (PR #129)
  • Can now copy file hierarchies deeper than 10 directories (PR #127)
  • MathJax now works for both HTTP and HTTPS (PR #126)

Version 4.5.4

29 Mar 08:26
Compare
Choose a tag to compare

Bug fix:

  • FORD no longer raises an error if it encounters an empty generic interface

Version 4.5.3

27 Mar 20:16
Compare
Choose a tag to compare

Bug fixes:

  • Fixed bug where FORD would not recognise procedure attributes when uppercase (Issue #107)
  • Fixed failure to recognise end of interface if interface name contains brackets, for instance because it is an operator
    (Issue #107)
  • "All derived types..." link now generated below alphabetical list on main page
  • Prevented crashes when trying to generate graphs with unmatched type/constructor interface pairs
  • Checking for deferred attribute in type-bound procedures is now case-insensitive (Issue #107)
  • Ensured whitespace trimmed from end of prototype procedures for deferred type-bound procedures (Issue #107)
  • Fixed bug causing FORD to crash when checking deferred status of inherited type-bound procedures (Issue #107)
  • Will no longer crash when printing documentation for deferred generic type-bound procedures (Issue #107)

Version 4.5.2

20 Feb 19:50
Compare
Choose a tag to compare

Various bugfixes:

  • Documentation next to the final statement in a type definition now included with the information on the destructor (Issue #109)
  • Fixed bug causing all spaces to be removed from the end of a line if that line is continued. This meant that the last token on one line and the first on the next would be combined, causing errors (part of Issue #107).
  • Bullet points no longer show up next to check boxes in checklists, if the markdown-checklist extension is used.
  • Fixed crash when procedure has empty argument list with whitespace (Issue #106)
  • Fixed regression where FORD no longer matches procedure arguments with interfaces (Issue #110)
  • Fixed potential problem that a constructor could be considered private by FORD when the corresponding derived type is public
  • Fixed regression causing ancestor types not to be properly recognized and linked to if they are in a different module.

Version 4.5.1

21 Jan 22:50
Compare
Choose a tag to compare

Bugfix: Typo corrected which was causing FORD to crash when analyzing interfaces located within programs. See Issue #101.

Version 4.5.0

23 Dec 18:08
Compare
Choose a tag to compare

New features:

  • support for Fortran's include statements, which search in the directory containing the file and in the include-directories (Issue #94)
  • limited support for the 2008 standard's block constructs, with variables declared within a block not listed (Issue #96)
  • limited support for non-Fortran source files, as described in the wiki (Issue #52 )
  • displays line numbers next to the source listings on a source-file's page
  • can now specify a license for your documentation, which will be displayed in the page footer (see wiki)
  • support for FORTRAN77-style parameter statements

Bug fixes:

  • improved handling of exclude_dir, so that it won't fail for certain cases (Issue #95) and so that it will now also ignore subdirectories
  • can now catch use statements within procedures nested arbitrarily deep within other procedures, programs, and modules