All Versions
23
Latest Version
Avg Release Cycle
86 days
Latest Release
972 days ago

Changelog History
Page 1

  • v0.12.0 Changes

    October 19, 2022
    • 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)
  • v0.11.0 Changes

    October 10, 2022
    • 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
  • v0.10.2 Changes

    August 18, 2022
    • fix missing parentheses when pretty printing certain syntax #233
    • fix missing export of ParseErrorSimple in Parser
    • fix inlined includes block order #234
  • v0.10.1 Changes

    August 01, 2022
    • export ParseErrorSimple from Parser, not internal module Parser.Monad
    • rewriter fixes #232
  • v0.10.0 Changes

    July 13, 2022
    • Fix parsing kind parameters like a_1 on literals. Previously, that would be parsed as a kind parameter on a kind parameter. Now we don't do that, following gfortran's behaviour.
      • Kind parameter representation is changed to explicitly say if it's an integer kind or named constant kind, rather than reusing Expression.
    • BOZ literals
      • add some syntactic info (to enable checking standards conformance)
      • export bozAsTwosComp function for reading as two's complement integer
    • allow named constants in complex literals
    • document FirstParameter, SecondParameter behaviour/safety, fix erroneous instances
    • fiddle with record selectors for some AST nodes (for better Aeson instances)
    • pair IF/CASE conditions with their blocks, rather than splitting between two lists
    • ExpFunctionCall and StCall store procedure arguments in AList ([a]) instead of Maybe AList (Maybe [a])
      • Matching is safer because empty lists are always [] instead of Nothing or Just []. Construction for empty lists is more awkward.
      • A better solution would be to use an AList-like that also stores extra syntactic information.
    • refactored a number of small AST nodes
      • ImpElement
      • ForallHeader
    • add Hackage documentation to many individual AST constructors and fields
    • improve include parser interface #227
    • improve newline handling for block parsers #228
    • fix some source span misses #225
  • v0.9.0 Changes

    February 14, 2022
    • Restructure parsing-related modules for code deduplication and better user experience.
      • Now all user-facing parsers and the combinators to create them are in a single module at Language.Fortran.Parser.
      • The Happy parsers have fewer dependencies, so should no longer require a recompile due to apparently unrelated changes.
    • Remove some deprecated shims (from the restructured modules).
    • Merge fortran-src-extras Language.Fortran.Extras.ModFiles.Extras module into Language.Fortran.Util.ModFile.
  • v0.8.0 Changes

    January 04, 2022
    • Merge declarator constructors. Now you differentiate between array and scalar declarators by looking at the relevant field. See Language.Fortran.AST.Declarator for details.
    • Add bozAsNatural :: Num a => Boz -> a function to resolve BOZ constants as integers
  • v0.7.0 Changes

    December 09, 2021
    • No longer treat ! in strings as comments in continuation reformatter (thanks @envp) #179
    • CI builds on Mac; more release automation #181 #189
    • Handle nonstandard kind parameter in parsing & type analysis #188
    • Fix renamer ambiguity resulting in unusual name-related breakages (e.g. ValVariable not getting transformed to ValIntrinsic) #190
    • Fully parse logical literals early (don't leave as String) #185
      • Code that touches ValLogical will have to be updated -- it should mean removal of user-side parsing.
    • Explicitly parse integer literal kind parameter #191
      • The String representation stored should now always be safe to read to a Haskell Integral.
    • Provide real literals in a semi-parsed "decomposed" format #193
      • Kind parameters are also made explicit.
      • Libraries with custom real literal parsing should be able to replace it with readRealLit :: (Fractional a, Read a) => RealLit -> a.
    • BOZ literal constants receive their own Value constructor (instead of sharing one with integers) #194
      • Also parse them to an intermediate data type and provide handling functions.

    📜 Note that kind parameters are disabled in fixed form parsers (F77, F66), so for codebases targeting older standards, many changes will be along the lines of 👕 ValInteger x -> ValInteger x _.

  • v0.6.1 Changes

    September 17, 2021
    • Properly include test data in package dist (in preparation for placing on Stackage)
  • v0.6.0 Changes

    September 03, 2021
    • IF and CASE block constructs are now parsed as blocks at parsing instead of as a post-parse transformation (no intermediate statement representation) #154
    • add ASSOCIATE block construct (Fortran 2003 parser only) #165
    • CommonGroup AST nodes now store Declarators instead of Expressions #173
      • various bug fixes related to their typing as a result
    • CI now building on Windows, and save Linux & Windows executables for each build
    • various bugfixes (#34, #155)