All Versions
23
Latest Version
Avg Release Cycle
86 days
Latest Release
720 days ago
Changelog History
Page 1
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
- directly export F77 include parser at
Language.Fortran.Analysis.SemanticTypes
: alterSemType
constructorTArray
to support assumed-size (e.g.integer arr(*)
) arrays (#244)Language.Fortran.Rewriter
: fix inline comment padding (#242, @RaoulHC)
- clean up F77 include inlining (#245, @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 invarName
(fixes a crash in type analysis #238) - add
Annotated
,Spanned
instances for intermediate AST data typeArgumentExpression
- 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 removedLanguage.Fortran.Parser.Any.fortranParser
- add strong Fortran value & type representation at
-
v0.10.2 Changes
August 18, 2022- fix missing parentheses when pretty printing certain syntax #233
- fix missing export of
ParseErrorSimple
inParser
- fix inlined includes block order #234
-
v0.10.1 Changes
August 01, 2022- export
ParseErrorSimple
fromParser
, not internal moduleParser.Monad
- rewriter fixes #232
- export
-
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
.
- Kind parameter representation is changed to explicitly say if it's an
integer kind or named constant kind, rather than reusing
- 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
andStCall
store procedure arguments inAList
([a]
) instead ofMaybe AList
(Maybe [a]
)- Matching is safer because empty lists are always
[]
instead ofNothing
orJust []
. Construction for empty lists is more awkward. - A better solution would be to use an
AList
-like that also stores extra syntactic information.
- Matching is safer because empty lists are always
- 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
- Fix parsing kind parameters like
-
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.
- Now all user-facing parsers and the combinators to create them are in a
single module at
- Remove some deprecated shims (from the restructured modules).
- Merge fortran-src-extras
Language.Fortran.Extras.ModFiles.Extras
module intoLanguage.Fortran.Util.ModFile
.
- Restructure parsing-related modules for code deduplication and better user
experience.
-
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
- Merge declarator constructors. Now you differentiate between array and
scalar declarators by looking at the relevant field. See
-
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 toValIntrinsic
) #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.
- Code that touches
- Explicitly parse integer literal kind parameter #191
- The
String
representation stored should now always be safe toread
to a HaskellIntegral
.
- The
- 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 _
. - No longer treat
-
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 storeDeclarator
s instead ofExpression
s #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)