camfort 1.0.1 → 1.1.0
raw patch · 6 files changed
+54/−34 lines, 6 filesdep ~fortran-srcdep ~ghc-primdep ~lensPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: fortran-src, ghc-prim, lens, singletons
API changes (from Hackage documentation)
- Language.Fortran.Model.Singletons: [Compare_6989586621679388653Sym0KindInference] :: SameKind (Apply Compare_6989586621679388653Sym0 arg_a1AyJ) (Compare_6989586621679388653Sym1 arg_a1AyJ) => Compare_6989586621679388653Sym0 a6989586621679388658
- Language.Fortran.Model.Singletons: [Compare_6989586621679388653Sym1KindInference] :: SameKind (Apply (Compare_6989586621679388653Sym1 a6989586621679388658) arg_a1AyJ) (Compare_6989586621679388653Sym2 a6989586621679388658 arg_a1AyJ) => Compare_6989586621679388653Sym1 a6989586621679388658 a6989586621679388659
- Language.Fortran.Model.Singletons: [Compare_6989586621679388662Sym0KindInference] :: SameKind (Apply Compare_6989586621679388662Sym0 arg_a1AyS) (Compare_6989586621679388662Sym1 arg_a1AyS) => Compare_6989586621679388662Sym0 a6989586621679388667
- Language.Fortran.Model.Singletons: [Compare_6989586621679388662Sym1KindInference] :: SameKind (Apply (Compare_6989586621679388662Sym1 a6989586621679388667) arg_a1AyS) (Compare_6989586621679388662Sym2 a6989586621679388667 arg_a1AyS) => Compare_6989586621679388662Sym1 a6989586621679388667 a6989586621679388668
- Language.Fortran.Model.Singletons: data Compare_6989586621679388653Sym0 a6989586621679388658
- Language.Fortran.Model.Singletons: data Compare_6989586621679388653Sym1 a6989586621679388658 a6989586621679388659
- Language.Fortran.Model.Singletons: data Compare_6989586621679388662Sym0 a6989586621679388667
- Language.Fortran.Model.Singletons: data Compare_6989586621679388662Sym1 a6989586621679388667 a6989586621679388668
- Language.Fortran.Model.Singletons: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Language.Fortran.Model.Singletons.BasicTypeMaxSym1 a6989586621679387419)
- Language.Fortran.Model.Singletons: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Language.Fortran.Model.Singletons.Compare_6989586621679388653Sym1 a6989586621679388658)
- Language.Fortran.Model.Singletons: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Language.Fortran.Model.Singletons.Compare_6989586621679388662Sym1 a6989586621679388667)
- Language.Fortran.Model.Singletons: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Language.Fortran.Model.Singletons.PrecMaxSym1 a6989586621679387430)
- Language.Fortran.Model.Singletons: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Language.Fortran.Model.Singletons.Compare_6989586621679388653Sym0
- Language.Fortran.Model.Singletons: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Language.Fortran.Model.Singletons.Compare_6989586621679388662Sym0
- Language.Fortran.Model.Singletons: type Compare_6989586621679388653Sym2 (a6989586621679388658 :: Precision) (a6989586621679388659 :: Precision) = Compare_6989586621679388653 a6989586621679388658 a6989586621679388659 :: Ordering
- Language.Fortran.Model.Singletons: type Compare_6989586621679388662Sym2 (a6989586621679388667 :: BasicType) (a6989586621679388668 :: BasicType) = Compare_6989586621679388662 a6989586621679388667 a6989586621679388668 :: Ordering
+ Camfort.Helpers.Syntax: instance GHC.Classes.Eq (Camfort.Helpers.Syntax.AnnotationFree Language.Fortran.Analysis.SemanticTypes.SemType)
+ Language.Fortran.Model.Singletons: [Compare_6989586621679390227Sym0KindInference] :: SameKind (Apply Compare_6989586621679390227Sym0 arg_a1AY7) (Compare_6989586621679390227Sym1 arg_a1AY7) => Compare_6989586621679390227Sym0 a6989586621679390232
+ Language.Fortran.Model.Singletons: [Compare_6989586621679390227Sym1KindInference] :: SameKind (Apply (Compare_6989586621679390227Sym1 a6989586621679390232) arg_a1AY7) (Compare_6989586621679390227Sym2 a6989586621679390232 arg_a1AY7) => Compare_6989586621679390227Sym1 a6989586621679390232 a6989586621679390233
+ Language.Fortran.Model.Singletons: [Compare_6989586621679390236Sym0KindInference] :: SameKind (Apply Compare_6989586621679390236Sym0 arg_a1AYg) (Compare_6989586621679390236Sym1 arg_a1AYg) => Compare_6989586621679390236Sym0 a6989586621679390241
+ Language.Fortran.Model.Singletons: [Compare_6989586621679390236Sym1KindInference] :: SameKind (Apply (Compare_6989586621679390236Sym1 a6989586621679390241) arg_a1AYg) (Compare_6989586621679390236Sym2 a6989586621679390241 arg_a1AYg) => Compare_6989586621679390236Sym1 a6989586621679390241 a6989586621679390242
+ Language.Fortran.Model.Singletons: data Compare_6989586621679390227Sym0 a6989586621679390232
+ Language.Fortran.Model.Singletons: data Compare_6989586621679390227Sym1 a6989586621679390232 a6989586621679390233
+ Language.Fortran.Model.Singletons: data Compare_6989586621679390236Sym0 a6989586621679390241
+ Language.Fortran.Model.Singletons: data Compare_6989586621679390236Sym1 a6989586621679390241 a6989586621679390242
+ Language.Fortran.Model.Singletons: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Language.Fortran.Model.Singletons.BasicTypeMaxSym1 a6989586621679388993)
+ Language.Fortran.Model.Singletons: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Language.Fortran.Model.Singletons.Compare_6989586621679390227Sym1 a6989586621679390232)
+ Language.Fortran.Model.Singletons: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Language.Fortran.Model.Singletons.Compare_6989586621679390236Sym1 a6989586621679390241)
+ Language.Fortran.Model.Singletons: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Language.Fortran.Model.Singletons.PrecMaxSym1 a6989586621679389004)
+ Language.Fortran.Model.Singletons: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Language.Fortran.Model.Singletons.Compare_6989586621679390227Sym0
+ Language.Fortran.Model.Singletons: instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Language.Fortran.Model.Singletons.Compare_6989586621679390236Sym0
+ Language.Fortran.Model.Singletons: type Compare_6989586621679390227Sym2 (a6989586621679390232 :: Precision) (a6989586621679390233 :: Precision) = Compare_6989586621679390227 a6989586621679390232 a6989586621679390233 :: Ordering
+ Language.Fortran.Model.Singletons: type Compare_6989586621679390236Sym2 (a6989586621679390241 :: BasicType) (a6989586621679390242 :: BasicType) = Compare_6989586621679390236 a6989586621679390241 a6989586621679390242 :: Ordering
- Camfort.Analysis: _ARFailure :: forall e_ayPM r_ayPN e_aA4f. Prism (AnalysisResult e_aA4f r_ayPN) (AnalysisResult e_ayPM r_ayPN) (Origin, e_aA4f) (Origin, e_ayPM)
+ Camfort.Analysis: _ARFailure :: forall e_aAxw r_aziN e_aziM. Prism (AnalysisResult e_aAxw r_aziN) (AnalysisResult e_aziM r_aziN) (Origin, e_aAxw) (Origin, e_aziM)
- Camfort.Analysis: _ARSuccess :: forall e_ayPM r_ayPN r_aA4m. Prism (AnalysisResult e_ayPM r_aA4m) (AnalysisResult e_ayPM r_ayPN) r_aA4m r_ayPN
+ Camfort.Analysis: _ARSuccess :: forall e_aziM r_aAxD r_aziN. Prism (AnalysisResult e_aziM r_aAxD) (AnalysisResult e_aziM r_aziN) r_aAxD r_aziN
- Camfort.Analysis: arMessages :: forall e_aA4z w_aA4A r_aA4B w_aAf4. Lens (AnalysisReport e_aA4z w_aA4A r_aA4B) (AnalysisReport e_aA4z w_aAf4 r_aA4B) [SomeMessage e_aA4z w_aA4A] [SomeMessage e_aA4z w_aAf4]
+ Camfort.Analysis: arMessages :: forall e_aAxQ w_aAxR r_aAxS w_aAIl. Lens (AnalysisReport e_aAxQ w_aAxR r_aAxS) (AnalysisReport e_aAxQ w_aAIl r_aAxS) [SomeMessage e_aAxQ w_aAxR] [SomeMessage e_aAxQ w_aAIl]
- Camfort.Analysis: arResult :: forall e_aA4z w_aA4A r_aA4B r_aAf5. Lens (AnalysisReport e_aA4z w_aA4A r_aA4B) (AnalysisReport e_aA4z w_aA4A r_aAf5) (AnalysisResult e_aA4z r_aA4B) (AnalysisResult e_aA4z r_aAf5)
+ Camfort.Analysis: arResult :: forall e_aAxQ w_aAxR r_aAxS r_aAIm. Lens (AnalysisReport e_aAxQ w_aAxR r_aAxS) (AnalysisReport e_aAxQ w_aAxR r_aAIm) (AnalysisResult e_aAxQ r_aAxS) (AnalysisResult e_aAxQ r_aAIm)
- Camfort.Analysis.Logger: _MsgDebug :: forall e_ahFL w_ahFM. Prism' (SomeMessage e_ahFL w_ahFM) (LogMessage Text)
+ Camfort.Analysis.Logger: _MsgDebug :: forall e_ai1y w_ai1z. Prism' (SomeMessage e_ai1y w_ai1z) (LogMessage Text)
- Camfort.Analysis.Logger: _MsgError :: forall e_ahFL w_ahFM e_ahRd. Prism (SomeMessage e_ahRd w_ahFM) (SomeMessage e_ahFL w_ahFM) (LogMessage e_ahRd) (LogMessage e_ahFL)
+ Camfort.Analysis.Logger: _MsgError :: forall e_aid4 w_ai1z e_ai1y. Prism (SomeMessage e_aid4 w_ai1z) (SomeMessage e_ai1y w_ai1z) (LogMessage e_aid4) (LogMessage e_ai1y)
- Camfort.Analysis.Logger: _MsgInfo :: forall e_ahFL w_ahFM. Prism' (SomeMessage e_ahFL w_ahFM) (LogMessage Text)
+ Camfort.Analysis.Logger: _MsgInfo :: forall e_ai1y w_ai1z. Prism' (SomeMessage e_ai1y w_ai1z) (LogMessage Text)
- Camfort.Analysis.Logger: _MsgWarn :: forall e_ahFL w_ahFM w_ahRk. Prism (SomeMessage e_ahFL w_ahRk) (SomeMessage e_ahFL w_ahFM) (LogMessage w_ahRk) (LogMessage w_ahFM)
+ Camfort.Analysis.Logger: _MsgWarn :: forall e_ai1y w_aidb w_ai1z. Prism (SomeMessage e_ai1y w_aidb) (SomeMessage e_ai1y w_ai1z) (LogMessage w_aidb) (LogMessage w_ai1z)
- Camfort.Analysis.Logger: lmMsg :: forall a_agoA a_ahFv. Lens (LogMessage a_agoA) (LogMessage a_ahFv) a_agoA a_ahFv
+ Camfort.Analysis.Logger: lmMsg :: forall a_agJU a_ai1i. Lens (LogMessage a_agJU) (LogMessage a_ai1i) a_agJU a_ai1i
- Camfort.Analysis.Logger: lmOrigin :: forall a_agoA. Lens' (LogMessage a_agoA) (Maybe Origin)
+ Camfort.Analysis.Logger: lmOrigin :: forall a_agJU. Lens' (LogMessage a_agJU) (Maybe Origin)
- Camfort.Specification.Hoare.Annotation: hoarePUName :: forall a_a15CM. Lens' (HoareAnnotation a_a15CM) (Maybe ProgramUnitName)
+ Camfort.Specification.Hoare.Annotation: hoarePUName :: forall a_a166e. Lens' (HoareAnnotation a_a166e) (Maybe ProgramUnitName)
- Camfort.Specification.Hoare.Annotation: hoarePrevAnnotation :: forall a_a15CM a_a15Lm. Lens (HoareAnnotation a_a15CM) (HoareAnnotation a_a15Lm) a_a15CM a_a15Lm
+ Camfort.Specification.Hoare.Annotation: hoarePrevAnnotation :: forall a_a166e a_a16eI. Lens (HoareAnnotation a_a166e) (HoareAnnotation a_a16eI) a_a166e a_a16eI
- Camfort.Specification.Hoare.Annotation: hoareSod :: forall a_a15CM. Lens' (HoareAnnotation a_a15CM) (Maybe (SpecOrDecl InnerHA))
+ Camfort.Specification.Hoare.Annotation: hoareSod :: forall a_a166e. Lens' (HoareAnnotation a_a166e) (Maybe (SpecOrDecl InnerHA))
- Camfort.Specification.Hoare.Syntax: _SodDecl :: forall ann_aRGk. Prism' (SpecOrDecl ann_aRGk) (AuxDecl ann_aRGk)
+ Camfort.Specification.Hoare.Syntax: _SodDecl :: forall ann_aS3K. Prism' (SpecOrDecl ann_aS3K) (AuxDecl ann_aS3K)
- Camfort.Specification.Hoare.Syntax: _SodSpec :: forall ann_aRGk. Prism' (SpecOrDecl ann_aRGk) (PrimSpec ann_aRGk)
+ Camfort.Specification.Hoare.Syntax: _SodSpec :: forall ann_aS3K. Prism' (SpecOrDecl ann_aS3K) (PrimSpec ann_aS3K)
- Camfort.Specification.Hoare.Syntax: _Specification :: forall a_aRGn a_aSLk. Iso (Specification a_aSLk) (Specification a_aRGn) (SpecKind, a_aSLk) (SpecKind, a_aRGn)
+ Camfort.Specification.Hoare.Syntax: _Specification :: forall a_aT8K a_aS3N. Iso (Specification a_aT8K) (Specification a_aS3N) (SpecKind, a_aT8K) (SpecKind, a_aS3N)
- Camfort.Specification.Hoare.Syntax: adName :: forall ann_aRGm. Lens' (AuxDecl ann_aRGm) Name
+ Camfort.Specification.Hoare.Syntax: adName :: forall ann_aS3M. Lens' (AuxDecl ann_aS3M) Name
- Camfort.Specification.Hoare.Syntax: adTy :: forall ann_aRGm ann_aSK7. Lens (AuxDecl ann_aRGm) (AuxDecl ann_aSK7) (TypeSpec ann_aRGm) (TypeSpec ann_aSK7)
+ Camfort.Specification.Hoare.Syntax: adTy :: forall ann_aS3M ann_aT7x. Lens (AuxDecl ann_aS3M) (AuxDecl ann_aT7x) (TypeSpec ann_aS3M) (TypeSpec ann_aT7x)
- Camfort.Specification.Hoare.Syntax: specFormula :: forall a_aRGn a_aSIU. Lens (Specification a_aRGn) (Specification a_aSIU) a_aRGn a_aSIU
+ Camfort.Specification.Hoare.Syntax: specFormula :: forall a_aS3N a_aT6k. Lens (Specification a_aS3N) (Specification a_aT6k) a_aS3N a_aT6k
- Camfort.Specification.Hoare.Syntax: specType :: forall a_aRGn. Lens' (Specification a_aRGn) SpecKind
+ Camfort.Specification.Hoare.Syntax: specType :: forall a_aS3N. Lens' (Specification a_aS3N) SpecKind
- Language.Fortran.Model.Repr.Prim: prhKind :: forall a_a1VYH. Lens' (PrimReprHandler a_a1VYH) Kind
+ Language.Fortran.Model.Repr.Prim: prhKind :: forall a_a1Woz. Lens' (PrimReprHandler a_a1Woz) Kind
- Language.Fortran.Model.Repr.Prim: prhLiteral :: forall a_a1VYH a_a1W9b. Lens (PrimReprHandler a_a1VYH) (PrimReprHandler a_a1W9b) (a_a1VYH -> SVal) (a_a1W9b -> SVal)
+ Language.Fortran.Model.Repr.Prim: prhLiteral :: forall a_a1Woz a_a1Wz3. Lens (PrimReprHandler a_a1Woz) (PrimReprHandler a_a1Wz3) (a_a1Woz -> SVal) (a_a1Wz3 -> SVal)
- Language.Fortran.Model.Repr.Prim: prhSymbolic :: forall a_a1VYH. Lens' (PrimReprHandler a_a1VYH) (String -> Symbolic SVal)
+ Language.Fortran.Model.Repr.Prim: prhSymbolic :: forall a_a1Woz. Lens' (PrimReprHandler a_a1Woz) (String -> Symbolic SVal)
- Language.Fortran.Model.Singletons: [BasicTypeMaxSym0KindInference] :: SameKind (Apply BasicTypeMaxSym0 arg_a1AeK) (BasicTypeMaxSym1 arg_a1AeK) => BasicTypeMaxSym0 a6989586621679387419
+ Language.Fortran.Model.Singletons: [BasicTypeMaxSym0KindInference] :: SameKind (Apply BasicTypeMaxSym0 arg_a1AE8) (BasicTypeMaxSym1 arg_a1AE8) => BasicTypeMaxSym0 a6989586621679388993
- Language.Fortran.Model.Singletons: [BasicTypeMaxSym1KindInference] :: SameKind (Apply (BasicTypeMaxSym1 a6989586621679387419) arg_a1AeK) (BasicTypeMaxSym2 a6989586621679387419 arg_a1AeK) => BasicTypeMaxSym1 a6989586621679387419 a6989586621679387420
+ Language.Fortran.Model.Singletons: [BasicTypeMaxSym1KindInference] :: SameKind (Apply (BasicTypeMaxSym1 a6989586621679388993) arg_a1AE8) (BasicTypeMaxSym2 a6989586621679388993 arg_a1AE8) => BasicTypeMaxSym1 a6989586621679388993 a6989586621679388994
- Language.Fortran.Model.Singletons: [PrecMaxSym0KindInference] :: SameKind (Apply PrecMaxSym0 arg_a1AeV) (PrecMaxSym1 arg_a1AeV) => PrecMaxSym0 a6989586621679387430
+ Language.Fortran.Model.Singletons: [PrecMaxSym0KindInference] :: SameKind (Apply PrecMaxSym0 arg_a1AEj) (PrecMaxSym1 arg_a1AEj) => PrecMaxSym0 a6989586621679389004
- Language.Fortran.Model.Singletons: [PrecMaxSym1KindInference] :: SameKind (Apply (PrecMaxSym1 a6989586621679387430) arg_a1AeV) (PrecMaxSym2 a6989586621679387430 arg_a1AeV) => PrecMaxSym1 a6989586621679387430 a6989586621679387431
+ Language.Fortran.Model.Singletons: [PrecMaxSym1KindInference] :: SameKind (Apply (PrecMaxSym1 a6989586621679389004) arg_a1AEj) (PrecMaxSym2 a6989586621679389004 arg_a1AEj) => PrecMaxSym1 a6989586621679389004 a6989586621679389005
- Language.Fortran.Model.Singletons: data BasicTypeMaxSym0 a6989586621679387419
+ Language.Fortran.Model.Singletons: data BasicTypeMaxSym0 a6989586621679388993
- Language.Fortran.Model.Singletons: data BasicTypeMaxSym1 a6989586621679387419 a6989586621679387420
+ Language.Fortran.Model.Singletons: data BasicTypeMaxSym1 a6989586621679388993 a6989586621679388994
- Language.Fortran.Model.Singletons: data PrecMaxSym0 a6989586621679387430
+ Language.Fortran.Model.Singletons: data PrecMaxSym0 a6989586621679389004
- Language.Fortran.Model.Singletons: data PrecMaxSym1 a6989586621679387430 a6989586621679387431
+ Language.Fortran.Model.Singletons: data PrecMaxSym1 a6989586621679389004 a6989586621679389005
- Language.Fortran.Model.Singletons: sBasicTypeMax :: forall (t_a1Az3 :: BasicType) (t_a1Az4 :: BasicType). Sing t_a1Az3 -> Sing t_a1Az4 -> Sing (Apply (Apply BasicTypeMaxSym0 t_a1Az3) t_a1Az4 :: BasicType)
+ Language.Fortran.Model.Singletons: sBasicTypeMax :: forall (t_a1AYr :: BasicType) (t_a1AYs :: BasicType). Sing t_a1AYr -> Sing t_a1AYs -> Sing (Apply (Apply BasicTypeMaxSym0 t_a1AYr) t_a1AYs :: BasicType)
- Language.Fortran.Model.Singletons: sPrecMax :: forall (t_a1Az7 :: Precision) (t_a1Az8 :: Precision). Sing t_a1Az7 -> Sing t_a1Az8 -> Sing (Apply (Apply PrecMaxSym0 t_a1Az7) t_a1Az8 :: Precision)
+ Language.Fortran.Model.Singletons: sPrecMax :: forall (t_a1AYv :: Precision) (t_a1AYw :: Precision). Sing t_a1AYv -> Sing t_a1AYw -> Sing (Apply (Apply PrecMaxSym0 t_a1AYv) t_a1AYw :: Precision)
- Language.Fortran.Model.Singletons: type BasicTypeMaxSym2 (a6989586621679387419 :: BasicType) (a6989586621679387420 :: BasicType) = BasicTypeMax a6989586621679387419 a6989586621679387420 :: BasicType
+ Language.Fortran.Model.Singletons: type BasicTypeMaxSym2 (a6989586621679388993 :: BasicType) (a6989586621679388994 :: BasicType) = BasicTypeMax a6989586621679388993 a6989586621679388994 :: BasicType
- Language.Fortran.Model.Singletons: type PrecMaxSym2 (a6989586621679387430 :: Precision) (a6989586621679387431 :: Precision) = PrecMax a6989586621679387430 a6989586621679387431 :: Precision
+ Language.Fortran.Model.Singletons: type PrecMaxSym2 (a6989586621679389004 :: Precision) (a6989586621679389005 :: Precision) = PrecMax a6989586621679389004 a6989586621679389005 :: Precision
- Language.Fortran.Model.Singletons: type family Equals_6989586621679388673 a_a1Az1 b_a1Az2
+ Language.Fortran.Model.Singletons: type family Equals_6989586621679390247 a_a1AYp b_a1AYq
- Language.Fortran.Model.Translate: tiAttributes :: forall ann_a3n1c. Lens' (TypeInfo ann_a3n1c) (Maybe (AList Attribute ann_a3n1c))
+ Language.Fortran.Model.Translate: tiAttributes :: forall ann_a3nrv. Lens' (TypeInfo ann_a3nrv) (Maybe (AList Attribute ann_a3nrv))
- Language.Fortran.Model.Translate: tiBaseType :: forall ann_a3n1c. Lens' (TypeInfo ann_a3n1c) BaseType
+ Language.Fortran.Model.Translate: tiBaseType :: forall ann_a3nrv. Lens' (TypeInfo ann_a3nrv) BaseType
- Language.Fortran.Model.Translate: tiDeclaratorLength :: forall ann_a3n1c. Lens' (TypeInfo ann_a3n1c) (Maybe (Expression ann_a3n1c))
+ Language.Fortran.Model.Translate: tiDeclaratorLength :: forall ann_a3nrv. Lens' (TypeInfo ann_a3nrv) (Maybe (Expression ann_a3nrv))
- Language.Fortran.Model.Translate: tiDimensionDeclarators :: forall ann_a3n1c. Lens' (TypeInfo ann_a3n1c) (Maybe (AList DimensionDeclarator ann_a3n1c))
+ Language.Fortran.Model.Translate: tiDimensionDeclarators :: forall ann_a3nrv. Lens' (TypeInfo ann_a3nrv) (Maybe (AList DimensionDeclarator ann_a3nrv))
- Language.Fortran.Model.Translate: tiSelectorKind :: forall ann_a3n1c. Lens' (TypeInfo ann_a3n1c) (Maybe (Expression ann_a3n1c))
+ Language.Fortran.Model.Translate: tiSelectorKind :: forall ann_a3nrv. Lens' (TypeInfo ann_a3nrv) (Maybe (Expression ann_a3nrv))
- Language.Fortran.Model.Translate: tiSelectorLength :: forall ann_a3n1c. Lens' (TypeInfo ann_a3n1c) (Maybe (Expression ann_a3n1c))
+ Language.Fortran.Model.Translate: tiSelectorLength :: forall ann_a3nrv. Lens' (TypeInfo ann_a3nrv) (Maybe (Expression ann_a3nrv))
- Language.Fortran.Model.Translate: tiSrcSpan :: forall ann_a3n1c. Lens' (TypeInfo ann_a3n1c) SrcSpan
+ Language.Fortran.Model.Translate: tiSrcSpan :: forall ann_a3nrv. Lens' (TypeInfo ann_a3nrv) SrcSpan
Files
- CHANGELOG.md +4/−0
- camfort.cabal +19/−20
- src/Camfort/Analysis/Simple.hs +9/−4
- src/Camfort/Helpers/Syntax.hs +4/−0
- src/Camfort/Specification/Units/Analysis.hs +10/−4
- src/Camfort/Transformation/CommonBlockElim.hs +8/−6
CHANGELOG.md view
@@ -1,3 +1,7 @@+## 1.1.0 (July 06, 2021)++* Update fortran-src+ ## 1.0.1 (March 08, 2021) * Update fortran-src, verifiable-expressions versions
camfort.cabal view
@@ -1,13 +1,11 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.33.0.+-- This file has been generated from package.yaml by hpack version 0.34.4. -- -- see: https://github.com/sol/hpack------ hash: f20fef0bb3b68d25b23be09a7e5d81ecbc6c11a1fdbf47381807b55a5043774b name: camfort-version: 1.0.1+version: 1.1.0 synopsis: CamFort - Cambridge Fortran infrastructure description: CamFort is a tool for the analysis, transformation, verification of Fortran code. category: Language@@ -19,8 +17,9 @@ copyright: 2012-2019 University of Cambridge license: Apache-2.0 license-file: LICENSE-tested-with: GHC >= 8.6 build-type: Simple+tested-with:+ GHC >= 8.6 extra-source-files: tests/fixtures/Specification/Stencils/example10.expected.f tests/fixtures/Specification/Stencils/example10.f@@ -190,26 +189,26 @@ , binary >=0.8.3.0 && <0.11 , bytestring >=0.10 && <0.12 , containers >=0.5.0.0 && <0.7- , deepseq >=1.4 && <1.5+ , deepseq ==1.4.* , directory >=1.2 && <1.4 , fgl >=5.6 && <5.8- , filepath >=1.4 && <1.5- , fortran-src >=0.4 && <0.5- , ghc-prim >=0.3.1.0 && <0.7- , hmatrix >=0.20 && <0.21+ , filepath ==1.4.*+ , fortran-src ==0.5.*+ , ghc-prim >=0.3.1.0 && <0.8+ , hmatrix ==0.20.* , lattices >=2.0.0 && <2.1 , lens >=4.15.1 && <6 , matrix >=0.2.2 && <0.4 , mmorph >=1.0.9 && <2 , mtl >=2.1 && <2.3- , parallel >=3.2 && <3.3- , pipes >=4.3 && <4.4+ , parallel ==3.2.*+ , pipes ==4.3.* , pretty >=1.1 && <2 , sbv >=8.0 && <9- , singletons >=2.2 && <3+ , singletons >=2.2 && <2.8 , strict >=0.3.2 && <1 , syb >=0.4 && <0.8- , syz >=0.2 && <0.3+ , syz ==0.2.* , template-haskell >=2.11 && <3 , text >=0.11.2.3 && <1.3 , transformers >=0.5.5.0 && <0.6@@ -226,7 +225,7 @@ base >=4.6 && <5 , camfort , directory >=1.2 && <2- , fortran-src >=0.4 && <0.5+ , fortran-src ==0.5.* , optparse-applicative >=0.14 && <0.16 default-language: Haskell2010 @@ -272,15 +271,15 @@ , containers >=0.5.0.0 && <0.7 , directory >=1.2 && <2 , fgl >=5.6 && <5.8- , filepath >=1.4 && <1.5- , fortran-src >=0.4 && <0.5- , hmatrix >=0.20 && <0.21+ , filepath ==1.4.*+ , fortran-src ==0.5.*+ , hmatrix ==0.20.* , hspec >=2.2 && <3 , lattices >=2.0.0 && <2.1- , lens >=4.15.1 && <5+ , lens >=4.15.1 && <5.1 , mtl >=2.1 && <2.3 , sbv >=8.0 && <9- , silently >=1.2 && <1.3+ , silently ==1.2.* , temporary >=1.2.0.4 && <1.4 , text >=0.11.2.3 && <1.3 , time >=1.8 && <1.12
src/Camfort/Analysis/Simple.hs view
@@ -19,6 +19,7 @@ {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TupleSections #-} {-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE LambdaCase #-} {- Simple syntactic analysis on Fortran programs -} @@ -53,6 +54,7 @@ import Data.Graph.Inductive import qualified Language.Fortran.AST as F+import qualified Language.Fortran.Analysis.SemanticTypes as FAS import qualified Language.Fortran.Util.Position as F import qualified Language.Fortran.Analysis as F import qualified Language.Fortran.Analysis.DataFlow as F@@ -229,16 +231,19 @@ candidates :: [F.Expression (F.Analysis a)] candidates = [ e | e@(F.ExpBinary _ _ op x y) <- universeBi (F.programUnitBody pu) , op `elem` [F.EQ, F.NE]- , Just (F.IDType (Just bt) _) <- [F.idType (F.getAnnotation x), F.idType (F.getAnnotation y)]- , bt `elem` floatingPointTypes ]+ , Just (F.IDType (Just st) _) <- [F.idType (F.getAnnotation x), F.idType (F.getAnnotation y)]+ , isFloatingPointType st ] badEquality = nub [ (F.getName pu, atSpannedInFile file e) | e <- candidates ] let reports = map checkPU (universeBi pf'') return $!! mconcat reports -floatingPointTypes :: [F.BaseType]-floatingPointTypes = [F.TypeReal, F.TypeDoubleComplex, F.TypeComplex, F.TypeDoublePrecision]+isFloatingPointType :: FAS.SemType -> Bool+isFloatingPointType = \case+ FAS.TReal _ -> True+ FAS.TComplex _ -> True+ _ -> False instance Describe CheckFPReport where describeBuilder (CheckFPReport {..})
src/Camfort/Helpers/Syntax.hs view
@@ -52,6 +52,7 @@ import qualified Language.Fortran.AST as F import qualified Language.Fortran.Analysis as FA+import qualified Language.Fortran.Analysis.SemanticTypes as FAS import qualified Language.Fortran.Util.Position as FU -- * Comparison and ordering@@ -95,6 +96,9 @@ where pos0 = FU.Position 0 0 0 "" Nothing instance Eq (AnnotationFree F.BaseType) where+ (AnnotationFree x) == (AnnotationFree y) = x == y++instance Eq (AnnotationFree FAS.SemType) where (AnnotationFree x) == (AnnotationFree y) = x == y instance Eq (AnnotationFree FA.ConstructType) where
src/Camfort/Specification/Units/Analysis.hs view
@@ -9,6 +9,7 @@ -} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE LambdaCase #-} module Camfort.Specification.Units.Analysis ( UnitAnalysis@@ -54,6 +55,7 @@ import qualified Language.Fortran.AST as F import Language.Fortran.Analysis (constExp, varName, srcName) import qualified Language.Fortran.Analysis as FA+import qualified Language.Fortran.Analysis.SemanticTypes as FAS import qualified Language.Fortran.Analysis.BBlocks as FAB import qualified Language.Fortran.Analysis.DataFlow as FAD import Language.Fortran.Parser.Utils (readReal, readInteger)@@ -183,8 +185,8 @@ -- Specifically handle variables insertUndeterminedUnitVar :: DeclMap -> F.Expression UA -> UnitSolver (F.Expression UA) insertUndeterminedUnitVar dmap v@(F.ExpValue _ _ (F.ValVariable _))- | Just (FA.IDType { FA.idVType = Just bty }) <- FA.idType (F.getAnnotation v)- , bty `elem` acceptableTypes = do+ | Just (FA.IDType { FA.idVType = Just sty }) <- FA.idType (F.getAnnotation v)+ , isAcceptableType sty = do let vname = varName v let sname = srcName v let unit = toUnitVar dmap (vname, sname)@@ -202,8 +204,12 @@ _ -> UnitVar (vname, sname) -- Insert undetermined units annotations on the following types of variables.-acceptableTypes :: [F.BaseType]-acceptableTypes = [F.TypeReal, F.TypeDoublePrecision, F.TypeComplex, F.TypeDoubleComplex, F.TypeInteger]+isAcceptableType :: FAS.SemType -> Bool+isAcceptableType = \case+ FAS.TReal _ -> True+ FAS.TComplex _ -> True+ FAS.TInteger _ -> True+ _ -> False --------------------------------------------------
src/Camfort/Transformation/CommonBlockElim.hs view
@@ -18,6 +18,7 @@ {-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeSynonymInstances #-} {-# LANGUAGE MonoLocalBinds #-}+{-# LANGUAGE LambdaCase #-} module Camfort.Transformation.CommonBlockElim ( commonElimToModules@@ -39,6 +40,7 @@ import Data.Void import qualified Language.Fortran.AST as F import qualified Language.Fortran.Analysis as FA+import qualified Language.Fortran.Analysis.SemanticTypes as FAS import qualified Language.Fortran.Analysis.Renaming as FAR import qualified Language.Fortran.Analysis.Types as FAT import qualified Language.Fortran.ParserMonad as PM@@ -50,7 +52,7 @@ -- Tuple of: -- * a (possible) common block name -- * map from names to their types-type TypeInfo = (F.BaseType, FA.ConstructType)+type TypeInfo = (FAS.SemType, FA.ConstructType) type TCommon p = (Maybe F.Name, [(F.Name, TypeInfo)]) -- Typed and "located" common block representation@@ -454,19 +456,19 @@ modname = commonName name path = dir ++ modname ++ ".f90" r = "Creating module " ++ modname ++ " at " ++ path ++ "\n"- mod = mkModule modname varTys modname+ mod = mkModule (F.miVersion meta) modname varTys modname -mkModule :: String -> [(F.Name, TypeInfo)] -> String -> F.ProgramUnit A-mkModule name vtys fname =+mkModule :: PM.FortranVersion -> String -> [(F.Name, TypeInfo)] -> String -> F.ProgramUnit A+mkModule v name vtys fname = F.PUModule a sp (caml fname) decls Nothing where a = unitAnnotation { refactored = Just loc, newNode = True } loc = FU.Position 0 0 0 "" Nothing sp = FU.SrcSpan loc loc toDeclBlock (v, t) = F.BlStatement a sp Nothing (toStmt (v, t))- toStmt (v, (bt, ct)) = F.StDeclaration a sp (toTypeSpec bt) attrs (toDeclarator (v, ct))+ toStmt (v, (st, ct)) = F.StDeclaration a sp (typespec st) attrs (toDeclarator (v, ct)) attrs = Just $ F.AList a sp [F.AttrSave a sp]- toTypeSpec t = F.TypeSpec a sp t Nothing+ typespec = FAS.recoverSemTypeTypeSpec a sp v toDeclarator (v, FA.CTVariable) = F.AList a sp [F.DeclVariable a sp (F.ExpValue a sp (F.ValVariable (caml name ++ "_" ++ v))) Nothing Nothing]