Skip to content

Releases: camfort/fortran-src

Version 0.16.3

30 Sep 18:17
Compare
Choose a tag to compare

0.16.3 (Sep 30, 2024)

  • Store source names for local declarations in .fsmod files.
  • Constant evaluator now handles real-integer exponent and real-real exponent expression

Documentation here: https://hackage.haskell.org/package/fortran-src-0.16.3

Version 0.16.2

13 Sep 11:47
Compare
Choose a tag to compare
  • Small change to allow a path to be added when building mod-file naming map
  • Improvements to the power of constant propagation and constant expression evaluation.

Version 0.16.1

05 Sep 07:49
Compare
Choose a tag to compare
  • Minor fix to fromConstReal which was partial.
  • Added Ord instance for AST and all its sub data types, allowing, for example, ASTs to be in containers like Data.Set

Version 0.16.0

04 Sep 20:27
Compare
Choose a tag to compare
  • Added --show-make-list option to give a topological sort on the dependency graph for a source tree
  • Added --version option
  • Some robustness improvements around mod files #286
  • Helpers to work with the partial evaluation representation #285

Version 0.14.0

21 Mar 13:28
Compare
Choose a tag to compare
  • provide extended evaluated array dimensions type at
    Language.Fortran.Common.Array (#261, @raehik)
    • replace the previous Dimensions type in
      Language.Fortran.Analysis.SemanticTypes

Version 0.13.0

15 Mar 16:18
Compare
Choose a tag to compare
  • better handling for line directives in free form lexer (#248, @mrd)
  • don't inline solo includes in relevant F77 parsers (#245, @RaoulHC)
  • add -C=opts CLI option for passing CPP arguments (#250, @mrd)
  • fix reformatting of 73 character long lines in naive mixed form reformatter
    (#251, @ksromanov)
  • assume extended Fortran77Legacy rather than Fortran77 for *.f, *.for
    etc. files (#260)
  • allow comment lines between continuation lines in F77 parser (in standard)
    (#257, @RaoulHC)
  • refactor Fortran type & value representation & expression evaluator without
    Fortran kind-indexed GADTs; replace constant folder (#253, @raehik)

Version 0.12.0

19 Oct 12:53
Compare
Choose a tag to compare
  • clean up F77 include inlining (#245, @RaoulHC)
    • directly export F77 include parser at f77lIncludesNoTransform
    • f77lIncIncludes :: String -> ByteString -> IO [Block A0] should now be
      defined by the user e.g. \fn bs -> throwIOLeft $ f77lIncludesNoTransform fn bs
  • Language.Fortran.Analysis.SemanticTypes: alter SemType constructor
    TArray to support assumed-size (e.g. integer arr(*)) arrays (#244)
  • Language.Fortran.Rewriter: fix inline comment padding (#242, @RaoulHC)

Version 0.11.0

11 Oct 09:30
Compare
Choose a tag to compare
  • add strong Fortran value & type representation at Language.Fortran.Repr
    (currently unused) (#235, @raehik)
    • operations are accurate to actual Fortran compiler behaviour e.g. integers
      are stored fixed-width based on kind, so overflow behaviour is free
    • can recover a value's precise type (e.g. INTEGER(8), including kind) via
      pattern matching
  • bump minimum compiler version to GHC 9.0
  • improved comment handling in fixed form lexer: parse more comment syntax,
    case sensitive, parse beyond column 72 (#237, @RaoulHC)
  • allow ExpDataRef constructor in varName (fixes a crash in type analysis
    #238)
  • add Annotated, Spanned instances for intermediate AST data type
    ArgumentExpression
  • export statement-level "pre-prepared" parsers (previously, you would have to
    define the parser yourself using parser utils and the Happy parser export)
  • export Language.Fortran.Parser.byVerFromFilename :: Parser (ProgramFile A0), a replacement for the removed
    Language.Fortran.Parser.Any.fortranParser

Version 0.10.2

18 Aug 19:25
Compare
Choose a tag to compare
  • fix missing parentheses when pretty printing certain syntax #233
  • fix missing export of ParseErrorSimple in Parser
  • fix inlined includes block order #234

Version 0.10.1

01 Aug 13:02
Compare
Choose a tag to compare
  • export ParseErrorSimple from Parser, not internal module Parser.Monad
  • rewriter fixes #232