packages feed

kempe 0.2.0.13 → 0.2.0.14

raw patch · 29 files changed

+27/−49 lines, 29 filesdep ~base

Dependency ranges changed: base

Files

CHANGELOG.md view
@@ -1,5 +1,9 @@ # kempe +## 0.2.0.14++  * Catch-up with `base`+ ## 0.2.0.13    * Update for latest `alex` templates
docs/manual.pdf view

binary file changed (227744 → 227743 bytes)

kempe.cabal view
@@ -1,6 +1,6 @@ cabal-version:   3.0 name:            kempe-version:         0.2.0.13+version:         0.2.0.14 license:         BSD-3-Clause license-file:    LICENSE copyright:       Copyright: (c) 2020-2022 Vanessa McHale@@ -97,7 +97,7 @@      ghc-options:      -Wall     build-depends:-        base >=4.9 && <5,+        base >=4.19 && <5,         array,         bytestring,         containers >=0.6.0.0,
run/Main.hs view
@@ -3,7 +3,6 @@ import           Control.Exception         (Exception, throwIO) import           Control.Monad             ((<=<)) import qualified Data.ByteString.Lazy      as BSL-import           Data.Semigroup            ((<>)) import qualified Data.Text.Lazy.IO         as TLIO import qualified Data.Version              as V import           Kempe.AST
src/Kempe/AST.hs view
@@ -35,10 +35,10 @@ import qualified Data.ByteString.Lazy    as BSL import           Data.Foldable           (toList) import           Data.Functor            (void)+import qualified Data.Functor            as Fun import           Data.Int                (Int64, Int8) import           Data.List.NonEmpty      (NonEmpty) import qualified Data.List.NonEmpty      as NE-import           Data.Semigroup          ((<>)) import qualified Data.Set                as S import           Data.Text.Lazy.Encoding (decodeUtf8) import           Data.Word               (Word8)@@ -138,7 +138,7 @@     first f (Dip l as)      = Dip l (fmap (first f) as)     first f (If l as as')   = If l (fmap (first f) as) (fmap (first f) as')     first f (Case l ls)     =-        let (ps, aLs) = NE.unzip ls+        let (ps, aLs) = Fun.unzip ls             in Case l $ NE.zip (fmap (first f) ps) (fmap (fmap (first f)) aLs)  data BuiltinFn = Drop
src/Kempe/Asm/Arm/ControlFlow.hs view
@@ -7,7 +7,6 @@ import           Data.Functor               (($>)) import qualified Data.IntSet                as IS import qualified Data.Map                   as M-import           Data.Semigroup             ((<>)) import           Kempe.Asm.Arm.Type import           Kempe.Asm.Type 
src/Kempe/Asm/Arm/Linear.hs view
@@ -10,7 +10,6 @@ import qualified Data.IntMap                as IM import qualified Data.IntSet                as IS import           Data.Maybe                 (fromMaybe)-import           Data.Semigroup             ((<>)) import qualified Data.Set                   as S import           Kempe.Asm.Arm.Type import           Kempe.Asm.Type
src/Kempe/Asm/Arm/Trans.hs view
@@ -8,7 +8,6 @@ import           Data.Foldable.Ext  (foldMapA) import           Data.Int           (Int64) import           Data.List          (scanl')-import           Data.Semigroup     ((<>)) import           Kempe.Asm.Arm.Type import           Kempe.AST.Size import           Kempe.IR.Monad
src/Kempe/Asm/Arm/Type.hs view
@@ -17,7 +17,6 @@ import qualified Data.ByteString    as BS import           Data.Copointed import           Data.Int           (Int64, Int8)-import           Data.Semigroup     ((<>)) import           Data.Text.Encoding (decodeUtf8) import           Data.Word          (Word16) import           GHC.Generics       (Generic)@@ -178,16 +177,8 @@     pretty (AddRCPlus r i)   = brackets (pretty r <~> prettyInt i)  -- | See: https://developer.arm.com/documentation/dui0068/b/arm-instruction-reference/conditional-execution?lang=en-data Cond = Eq-          | Neq-          | UnsignedLeq-          | UnsignedGeq-          | UnsignedLt-          | Geq-          | Lt-          | Gt-          | Leq-          deriving (Generic, NFData)+data Cond = Eq | Neq | UnsignedLeq | UnsignedGeq | UnsignedLt+          | Geq | Lt | Gt | Leq deriving (Generic, NFData)  instance Pretty Cond where     pretty Eq          = "EQ"@@ -240,7 +231,7 @@                deriving (Functor, Generic, NFData)  -- | Don't call this on a negative number!-prettyUInt :: (Integral a, Show a) => a -> Doc b+prettyUInt :: Integral a => a -> Doc b prettyUInt i = "#" <> prettyHex i  prettyInt :: (Pretty a) => a -> Doc b@@ -291,7 +282,9 @@  -- http://www.mathcs.emory.edu/~cheung/Courses/255/Syl-ARM/7-ARM/array-define.html prolegomena :: Doc ann-prolegomena = ".data" <#> "kempe_data: .skip 32768" -- 32kb+prolegomena = ".p2align 3" <#> ".data" <#> "kempe_data: .skip 32768" -- 32kb+-- see https://stackoverflow.com/questions/65748033/how-to-fix-ld-warning-arm64-function-not-4-byte-aligned-warning+-- since mine are byte-aligned  macros :: Doc ann macros = prettyLines
src/Kempe/Asm/Liveness.hs view
@@ -8,7 +8,6 @@ -- this seems to be faster import qualified Data.IntMap.Lazy as IM import qualified Data.IntSet      as IS-import           Data.Semigroup   ((<>)) import           Kempe.Asm.Type  emptyLiveness :: Liveness
src/Kempe/Asm/Pretty.hs view
@@ -4,8 +4,7 @@                         , prettyLabel                         ) where -import           Data.Semigroup ((<>))-import           Prettyprinter  (Doc, indent, pretty)+import           Prettyprinter (Doc, indent, pretty)  i4 :: Doc ann -> Doc ann i4 = indent 4
src/Kempe/Asm/Type.hs view
@@ -8,7 +8,6 @@  import           Control.DeepSeq (NFData) import qualified Data.IntSet     as IS-import           Data.Semigroup  ((<>)) import           GHC.Generics    (Generic) import           Prettyprinter   (Pretty (pretty), braces, punctuate, (<+>)) 
src/Kempe/Asm/X86/ControlFlow.hs view
@@ -8,7 +8,6 @@ import           Data.Functor               (($>)) import qualified Data.IntSet                as IS import qualified Data.Map                   as M-import           Data.Semigroup             ((<>)) import           Kempe.Asm.Type import           Kempe.Asm.X86.Type 
src/Kempe/Asm/X86/Linear.hs view
@@ -12,7 +12,6 @@ import qualified Data.IntMap                as IM import qualified Data.IntSet                as IS import           Data.Maybe                 (fromMaybe)-import           Data.Semigroup             ((<>)) import qualified Data.Set                   as S import           Kempe.Asm.Type import           Kempe.Asm.X86.Type
src/Kempe/Asm/X86/Type.hs view
@@ -17,7 +17,6 @@ import qualified Data.ByteString.Lazy    as BSL import           Data.Copointed import           Data.Int                (Int64, Int8)-import           Data.Semigroup          ((<>)) import           Data.Text.Encoding      (decodeUtf8) import qualified Data.Text.Lazy.Encoding as TL import           Data.Word               (Word8)
src/Kempe/Check/Pattern.hs view
@@ -13,10 +13,10 @@ import           Data.Coerce                (coerce) import           Data.Foldable              (toList, traverse_) import           Data.Foldable.Ext+import qualified Data.Functor               as Fun import qualified Data.IntMap.Strict         as IM import qualified Data.IntSet                as IS import           Data.List.NonEmpty         (NonEmpty (..))-import qualified Data.List.NonEmpty         as NE import           Kempe.AST import           Kempe.Error import           Kempe.Name@@ -26,7 +26,7 @@  checkAtom :: PatternEnv -> Atom c b -> Maybe (Error b) checkAtom env (Case l ls) =-    let (ps, as) = NE.unzip ls in+    let (ps, as) = Fun.unzip ls in     if isExhaustive env ps         then foldMapAlternative (foldMapAlternative (checkAtom env)) as         else Just (InexhaustiveMatch l)
src/Kempe/Error.hs view
@@ -8,7 +8,6 @@  import           Control.DeepSeq   (NFData) import           Control.Exception (Exception)-import           Data.Semigroup    ((<>)) import           Data.Typeable     (Typeable) import           GHC.Generics      (Generic) import           Kempe.AST.Size
src/Kempe/Error/Warning.hs view
@@ -4,7 +4,6 @@                            ) where  import           Control.Exception (Exception)-import           Data.Semigroup    ((<>)) import           Data.Typeable     (Typeable) import           Kempe.AST import           Kempe.Name
src/Kempe/File.hs view
@@ -21,7 +21,6 @@ import           Control.Monad             ((<=<)) import           Data.Bifunctor            (bimap) import           Data.Functor              (void)-import           Data.Semigroup            ((<>)) import           Data.Tuple.Ext            (fst3) import           Data.Typeable             (Typeable) import qualified Kempe.Asm.Arm.Type        as Arm
src/Kempe/IR.hs view
@@ -6,16 +6,17 @@                 , size                 ) where -import           Data.Foldable              (toList, traverse_)-import           Data.List.NonEmpty         (NonEmpty (..))-import qualified Data.List.NonEmpty         as NE -- strict b/c it's faster according to benchmarks import           Control.Monad              (zipWithM) import           Control.Monad.State.Strict (State, gets, modify, runState) import           Data.Bifunctor             (second)+import           Data.Foldable              (toList, traverse_) import           Data.Foldable.Ext+import qualified Data.Functor               as Fun import           Data.Int                   (Int64) import qualified Data.IntMap                as IM+import           Data.List.NonEmpty         (NonEmpty (..))+import qualified Data.List.NonEmpty         as NE import           Data.Text.Encoding         (encodeUtf8) import           Kempe.AST import           Kempe.AST.Size@@ -244,7 +245,7 @@ writeAtom env l (Case _ ((_, as) :| [])) =     (dataPointerDec 1:) <$> writeAtoms env l as writeAtom env l (Case (is, _) ls) =-    let (ps, ass) = NE.unzip ls+    let (ps, ass) = Fun.unzip ls         decSz = case last is of             TyBuiltin _ TyInt  -> 8             TyBuiltin _ TyWord -> 8
src/Kempe/IR/Type.hs view
@@ -17,7 +17,6 @@ import qualified Data.ByteString      as BS import qualified Data.ByteString.Lazy as BSL import           Data.Int             (Int64, Int8)-import           Data.Semigroup       ((<>)) import           Data.Text.Encoding   (decodeUtf8) import           Data.Word            (Word8) import           GHC.Generics         (Generic)
src/Kempe/Inline.hs view
@@ -4,11 +4,11 @@ module Kempe.Inline ( inline                     ) where +import qualified Data.Functor       as Fun import           Data.Graph         (Graph, Vertex, graphFromEdges, path) import qualified Data.IntMap        as IM import qualified Data.List.NonEmpty as NE import           Data.Maybe         (fromMaybe, mapMaybe)-import           Data.Semigroup     ((<>)) import           Data.Tuple.Ext     (third3) import           Kempe.AST import           Kempe.Name@@ -32,7 +32,7 @@           inlineAtom declName (Dip l as) =             [Dip l (inlineAtoms declName as)]           inlineAtom declName (Case l ls) =-            let (ps, ass) = NE.unzip ls+            let (ps, ass) = Fun.unzip ls                 in [Case l (NE.zip ps $ fmap (inlineAtoms declName) ass)]           inlineAtom _ a = [a]           fnMap = mkFnModuleMap m
src/Kempe/Lexer.x view
@@ -27,7 +27,6 @@ import Data.Int (Int8) import qualified Data.IntMap as IM import qualified Data.Map as M-import Data.Semigroup ((<>)) import qualified Data.Text as T import Data.Text.Encoding (decodeUtf8) import GHC.Generics (Generic)
src/Kempe/Monomorphize.hs view
@@ -28,7 +28,6 @@ import           Data.List                  (elemIndex, find, groupBy, partition) import qualified Data.Map                   as M import           Data.Maybe                 (fromMaybe, mapMaybe)-import           Data.Semigroup             ((<>)) import qualified Data.Set                   as S import qualified Data.Text                  as T import           Data.Tuple                 (swap)@@ -219,7 +218,7 @@  insTyDecl :: KempeDecl a c b -> MonoM () insTyDecl (TyDecl _ (Name _ (Unique k) _) fv leaves) = do-    leafSizes <- traverse (sizeLeaf fv) (fmap snd leaves)+    leafSizes <- traverse (sizeLeaf fv.snd) leaves     let consSz = \tys -> 1 + maximum (($tys) <$> leafSizes) -- for the tag     modifying szEnvLens (IM.insert k consSz) insTyDecl _ = error "Shouldn't happen."
src/Kempe/Name.hs view
@@ -8,7 +8,6 @@                   ) where  import           Control.DeepSeq (NFData (..))-import           Data.Semigroup  ((<>)) import qualified Data.Text       as T import           Kempe.Unique import           Prettyprinter   (Pretty (pretty))
src/Kempe/TyAssign.hs view
@@ -17,7 +17,6 @@ import           Data.Functor               (void, ($>)) import qualified Data.IntMap                as IM import           Data.List.NonEmpty         (NonEmpty (..))-import           Data.Semigroup             ((<>)) import qualified Data.Set                   as S import qualified Data.Text                  as T import           Data.Tuple.Ext             (fst3)
src/Language/C/AST.hs view
@@ -6,7 +6,6 @@                       , cSettings                       ) where -import           Data.Semigroup    ((<>)) import qualified Data.Set          as S import qualified Data.Text         as T import           Prettyprinter     (Doc, LayoutOptions (..), PageWidth (..), Pretty (..), tupled, (<+>))
src/Prettyprinter/Debug.hs view
@@ -5,8 +5,7 @@                            , (<#*>)                            ) where -import           Data.Semigroup ((<>))-import           Prettyprinter  (Doc, Pretty (pretty), hardline, indent, (<+>))+import           Prettyprinter (Doc, Pretty (pretty), hardline, indent, (<+>))   (<#*>) :: Doc a -> Doc a -> Doc a
src/Prettyprinter/Ext.hs view
@@ -26,7 +26,7 @@ (<~>) :: Doc a -> Doc a -> Doc a (<~>) x y = x <> ", " <> y -prettyHex :: (Integral a, Show a) => a -> Doc ann+prettyHex :: Integral a => a -> Doc ann prettyHex x = "0x" <> pretty (showHex x mempty)  prettyLines :: [Doc ann] -> Doc ann