Skip to content
Chris MacMackin edited this page Feb 20, 2016 · 44 revisions

##Version 4.5.2 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 Bugfix: Typo corrected which was causing FORD to crash when analyzing interfaces located within programs. See Issue #101.

##Version 4.5.0 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

##Version 4.4.0 Improvements:

  • FORD can now handle custom include-paths for preprocessed files. These are specified in the project file using the include setting. (Issue #90)
  • Headings in the sidebar now start out collapsed. They can be uncollapsed by clicking on the title in the heading. This is to prevent the sidebar being longer than the actual documentation on the page. Thanks to Jérémie Burgalat for suggesting and doing the initial work on this.

Bug fixes:

  • Fixed bug causing information about generic type-bound procedures to be left blank (Issue #92)
  • Long names will no longer overflow the sidebar, but will be truncated and given ellipsis dots

##Version 4.3.0 Improvements:

  • Added ability to pan and zoom on large graphs (Issue #87)
  • Added support for enumerators (Issue #88)
  • Added IEEE subroutines to the list of intrinsic procedures (Pull Request #80)
  • Faster generation of search database, if lxml is installed

Bug Fixes:

  • Ensured case-insensitivity of when identifying function calls (e.g. Issues #86)
  • No intent now recognized as different from intent(inout) (Pull Request #80)
  • Removed from spaces from recorded names of intrinsic procedures (70e3d1e5)
  • FORD no longer crashes if the Graphviz binaries are not installed

##Version 4.2.3 Added graphviz package as a dependency.

##Version 4.2.2 Various bugfixes:

  • Fixed attribute statements not being correctly parsed and could be misidentified as function calls (Issue 76)
  • Fixed functions not being recognized if result() was placed after bind(c) (Issue 77)
  • Fixed FORD crashing if a deferred type-bound procedure was added to a type-bound generic interface (Issue 79)
  • More Fortran intrinsic procedures and keywords are now recognized and ignored when searching for function calls (Issue 78, Issue 82, Pull Request 80)
  • Broken link to page-tree fixed (Issue 81)
  • Dummy arguments with no intent now allowed (Pull Request 80)
  • name='...' now being noted in bind(c)

##Version 4.2.1 Fixed bugs in graph-generating which occurred if call-graphs had circular dependencies. Also changed the program-flow slightly so as to run faster when graphs are not being generated. Finally, fixed a mistake which meant that backtraces would not be produced during generation of documentation, even if --debug was used.

##Version 4.2.0 New features:

  • Ability to produce graphs describing:
    • module dependencies
    • derived type inheritance
    • procedure call-trees (except for type-bound procedures)
  • Support for only statement and rename-lists within use statement
  • Support for volatile and asynchronous statements
  • Support for non-ASCII characters in documentation (Issue 73)

Bug Fixes:

  • Fixed errors which occurred when using Python 3 (Issue 72)
  • Fixed bug causing initial values in a character array to all be displayed as identical (Issue 71)
  • Fixed problems which arose with submodules
  • Fixed various regressions (e.g. Issue 70) and areas in code which could potentially cause problems

Code refactoring:

  • Output module rewritten to be object-oriented
  • Moved argument parsing and configuration processing to separate method from main()
  • Entry point is now run() which gets configurations and passes them to main()

##Version 4.1.0 New features:

  • adds support for submodules (a Fortran 2008 feature)
  • improved display of abstract derived types (previously there was no indication that they were abstract) and their deferred type-bound procedures (will show the required interface, if one is specified) (Issue 68)
  • can now handle multiple entities of the same type with the same name
  • a --debug command-line flag which will cause FORD to produce a backtrace if it encounters an error when parsing a file.

Bug fixes:

  • now recognizes module procedures inside generic interfaces even if the word "module" is not used (Issue 69)
  • fixed broken links to overloaded operators (Issue 67)
  • fixed a regression which caused procedure arguments to be listed in an order different from that found in the source code (Issue 64)

##Version 4.0.1 Fixed a bug which caused FORD to try to interpret the class default statement in a select type construct as a variable declaration. ##Version 4.0.0 Non-backwards compatible changes:

  • Removed -v/--verbose and --no-warn from CLI, as they were unnecessary
  • Changed the default predocmark_alt from # to |
  • Meta-data no longer displayed in procedure, interface, and derived type summaries if those entities have their own page

New features:

  • Can now change sort order
  • Option to force FORD to read all non-string and non-comment source code as [lower case] (https://github.com/cmacmackin/ford/wiki/Project-File-Options#lower)
  • Support for coarrays
  • Option to turn off search feature, either in project file or at command line (useful for large projects, as generating the search database can take a long time)
  • Recognition of intrinsic and common third-party modules, with links to external documentation (iso_fortran_env, iso_c_binding, ieee_arithmetic, ieee_exceptions, ieee_features, omp_lib, mpi, mpi_f08, openacc)
  • Ability to add recognition of third-party modules and links to their documentation

Bug fixes:

  • Fixed extraneous text resulting from using the markdown.extras.abbrv plugin with abbreviations in the project summary (Issue 61)
  • Fixed links to functions in modules (Issue 60)
  • Fixed a warning which was sometimes raised by Beautiful Soup (Issue 59)

##Version 3.1.0 Fixed bugs causing certain files (e.g. CSS and JavaScript) to appear to never be updated. This can be problematic with certain build systems. Also fixed an error which caused the pages feature to be unable to copy sub-directories. Finally, fixed an issue which could have potentially broken the command-line -w/--warn option.

Added a -q/--quiet option to the CLI (as well as a quiet setting for project file metadata) which suppresses all output from FORD.

##Version 3.0.2 Fixed bug in link to a single source file in the main menu, if the file name contained an uppercase letter.

##Version 3.0.1 Fixed errors when documentation followed alternative documentation. Also added checks to ensure that none of the docmarks are the same. This was supposed to be in the previous release, but was overlooked.

##Version 3.0.0

  • Added option to exclude contents of directories
  • Fixed a bug in creating output files in Windows
  • Now preprocesses code from files whose extensions indicate that this is necessary, prior to extracting documentation. This can be deactivated. The user can also specify which macros should be provided to the preprocessor.
  • Change the meta-data settings "deprecated" and "warn" so that their value now needs to be "true" in order to have any effect.
  • predocmark, docmark_alt, and predocmark_alt now have the default values of >, *, and #, respectively.
  • Improved support for parsing type-bound procedures.

##Version 2.1.0

  • Added support for linking to other parts of the documentation.
  • Introduced option to include a procedure's, derived type's, or programs's syntax-highlighted source code at the bottom of its documentation page. Can be specified globally and overridden for specific items.
  • Added option to change what will be displayed for a particular portion of a project. Also added a 'none' option to display settings, causing all contents of an item to be hidden.
  • Created new way of specifying documentation. This allows a special docmark to be designated which indicates that all comments in the following block should be counted as documentation. This can apply for comments before or after whatever item is to be documented.

##Version 2.0.0

  • Altered the CLI so that the Python argparse help message is more accurate
  • Added support for extra variable types (useful when software uses certain libraries)
  • Fixed handling of abstract interfaces, so that they are now treated as distinct from normal interfaces
  • Added ability to produces links to abstract interfaces when being used to declare a procedure pointer
  • Reworked internal treatment of interfaces in general
  • Added support for multiple directories containing source files
  • Improved checking if project_dir within output_dir
  • Added |url| and |media| macros
  • Added ability to produce a page hierarchy, not linked to any particular source code
  • Added ability to recognize implicitly declared arguments
  • Added F90, F95, F03, F08 to list of default extensions to scan

##Version 1.1.0

  • Added support for Python3 (thanks to Jacob Williams for implementing this)
  • Added a -V/--version option to the command line interface, so that you can check which version of FORD is installed.
  • Fixed a regression where FORD was looking for any included markdown files relative to where it was being run, rather than relative to the project file.

##Version 1.0.1

  • Fixed a bug which was causing FORD to crash in some circumstances when handling abstract interfaces. This bug would likely have also been present for the handling of interfaces to non-module procedures.

##Version 1.0.0

  • Formal adoption of semantic versioning. The API, as described here, should now be considered stable.
  • Ability to specify documentation preceding the code which it is documenting (thanks to mrestelli for contributing that improvement).
  • Small bug fixes.

##Version 0.5

  • Fixed a problem in reader.py which caused it to split lines even if semi-colons were within strings.
  • Fixed conflicts between including Markdown files in documentation and any other syntax (particularly that found in code fragments). However, this required breaking the API, as the syntax for including a file is now {! filename !}.
  • Fixed a bug whereby if documentation lacks meta-data but has a colon in the first line it would cause an error (as Markdown would try to interpret that as meta-data).
Clone this wiki locally