packages feed

language-dickinson 1.3.0.2 → 1.3.0.3

raw patch · 14 files changed

+177/−66 lines, 14 filesdep ~pretty-simplePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: pretty-simple

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -1,5 +1,11 @@ # dickinson +## 1.3.0.3++  * Fall back onto `$HOME/.local/share/man/man1` if manpages were not found in+    cabal data-dir.+  * Bump pretty-simple dependency in test suite+ ## 1.3.0.2    * Sanity checks in pattern match exhaustiveness checker
README.md view
@@ -15,6 +15,16 @@ make install ``` +### Script++There is an install script which will try to download the right release for your+computer:++```bash++curl -sSl https://raw.githubusercontent.com/vmchale/dickinson/master/bash/install.sh | sh -s+```+ ### Source  To install, get [cabal-install](https://www.haskell.org/cabal/) and@@ -60,3 +70,7 @@ ``` emd run examples/fortune.dck ```++Other examples are in the+[`examples`](https://github.com/vmchale/dickinson/tree/master/examples)+directory.
language-dickinson.cabal view
@@ -1,6 +1,6 @@ cabal-version:      2.0 name:               language-dickinson-version:            1.3.0.2+version:            1.3.0.3 license:            BSD3 license-file:       LICENSE copyright:          Copyright: (c) 2020 Vanessa McHale@@ -245,7 +245,7 @@         text -any,         filepath -any,         tasty-golden -any,-        pretty-simple -any,+        pretty-simple >=4.0.0.0,         language-dickinson -any      if impl(ghc >=8.0)
lib/adjectives.dck view
@@ -1,4 +1,5 @@ ; augmented version of madlang library+; English language adjectives  (:include color) @@ -13,9 +14,11 @@       (| "poetic")       (| "limpid")       (| "plain")+      (| "splenetic")       (| "bromide")       (| "banal")       (| "redolent")+      (| "aposematic")       (| "artful")       (| "anabatic")       (| "arid")@@ -25,6 +28,7 @@       (| "antipruritic")       (| "elysian")       (| "alveated")+      (| "prolix")       (| "audacious")       (| "autotelic")       (| "antediluvian")
lib/noun.dck view
@@ -1,4 +1,5 @@ ; ported and expanded from madlang noun library+; English nouns  %- @@ -36,12 +37,19 @@       (| "joke")       (| "autocracy")       (| "foofaraw")+      (| "supererogation")       (| "autonomous")       (| "pseudonym")       (| "perfidy")       (| "heliophagy")+      (| "aril")       (| "valedictorian")+      (| "cathexis")       (| "apothegm")+      (| "seppo")+      (| "pyxis")+      (| "salp")+      (| "kayfabe")       (| "pablum")       (| "satori")       (| "ardor")
run/Main.hs view
@@ -10,6 +10,8 @@ import           Options.Applicative import           Paths_language_dickinson (getDataDir) import           REPL+import           System.Directory         (doesFileExist)+import           System.Environment       (lookupEnv) import           System.FilePath          ((</>))  -- TODO debug/verbosity options...@@ -88,6 +90,18 @@ modIs is =     defaultLibPath <*> ((++) <$> dckPath <*> pure is) +manFind :: IO FilePath+manFind = do+    cabalData <- (</> "emd.1") . (</> "man") <$> getDataDir+    cabalInstall <- doesFileExist cabalData+    if cabalInstall+        then pure cabalData+        else do+            mHome <- lookupEnv "HOME"+            case mHome of+                Just h  -> pure $ h </> ".local" </> "share" </> "man" </> "man1" </> "emd.1"+                Nothing -> error "Could not determine home directory! I don't know where your manpages are installed!"+ run :: Act -> IO () run (Run fp is)       = do { is' <- modIs is ; TIO.putStrLn =<< pipeline is' fp } run (REPL fps)        = dickinsonRepl fps@@ -95,5 +109,5 @@ run (Lint fs)         = traverse_ warnFile fs run (Format fp False) = fmtFile fp run (Format fp True)  = fmtInplace fp-run Man               = putStrLn . (</> "emd.1") . (</> "man") =<< getDataDir+run Man               = putStrLn =<< manFind run (Ide fp is)       = do { is' <- modIs is ; validateFile is' fp ; warnFile fp }
src/Language/Dickinson/Pipeline.hs view
@@ -18,14 +18,16 @@ import           Language.Dickinson.Type import           Language.Dickinson.TypeCheck +-- this one is faster with (*>) than 'do' checkEvalM :: (MonadState (EvalSt a) m, MonadError (DickinsonError a) m) => [Declaration a] -> m T.Text-checkEvalM ds = do-    validateDecl ds+checkEvalM ds =+    validateDecl ds *>     evalDickinsonAsMain ds  format :: BSL.ByteString -> T.Text format = prettyText . eitherThrow . parse +-- the 'do'-notation is faster than using *> validateDecl :: (HasTyEnv s, MonadState (s a) m, MonadError (DickinsonError a) m) => [Declaration a] -> m () validateDecl d = do     maybeThrow $ checkScope d
test/data/higherOrder.rename view
@@ -5,24 +5,29 @@       { declAnn = ()       , defName = Name         { name = "top" :| []-        , unique = Unique { unUnique = 6 }+        , unique = Unique+          { unUnique = 6 }         , loc = ()         }       , defExpr = Lambda         { exprAnn = ()         , lambdaVar = Name           { name = "f" :| []-          , unique = Unique { unUnique = 8 }+          , unique = Unique+            { unUnique = 8 }           , loc = ()           }-        , lambdaTy = TyFun () ( TyText () ) ( TyText () )+        , lambdaTy = TyFun ()+          ( TyText () )+          ( TyText () )         , lambdaExpr = Apply           { exprAnn = ()           , exprFun = Var             { exprAnn = ()             , exprVar = Name               { name = "f" :| []-              , unique = Unique { unUnique = 8 }+              , unique = Unique+                { unUnique = 8 }               , loc = ()               }             }@@ -37,7 +42,8 @@       { declAnn = ()       , defName = Name         { name = "main" :| []-        , unique = Unique { unUnique = 7 }+        , unique = Unique+          { unUnique = 7 }         , loc = ()         }       , defExpr = Let@@ -45,14 +51,16 @@         , letBinds =           ( Name             { name = "fun" :| []-            , unique = Unique { unUnique = 9 }+            , unique = Unique+              { unUnique = 9 }             , loc = ()             }           , Lambda             { exprAnn = ()             , lambdaVar = Name               { name = "a" :| []-              , unique = Unique { unUnique = 10 }+              , unique = Unique+                { unUnique = 10 }               , loc = ()               }             , lambdaTy = TyText ()@@ -67,7 +75,8 @@                   { exprAnn = ()                   , exprVar = Name                     { name = "a" :| []-                    , unique = Unique { unUnique = 10 }+                    , unique = Unique+                      { unUnique = 10 }                     , loc = ()                     }                   }@@ -81,7 +90,8 @@             { exprAnn = ()             , exprVar = Name               { name = "top" :| []-              , unique = Unique { unUnique = 6 }+              , unique = Unique+                { unUnique = 6 }               , loc = ()               }             }@@ -89,7 +99,8 @@             { exprAnn = ()             , exprVar = Name               { name = "fun" :| []-              , unique = Unique { unUnique = 9 }+              , unique = Unique+                { unUnique = 9 }               , loc = ()               }             }
test/data/lambda.rename view
@@ -5,14 +5,16 @@       { declAnn = ()       , defName = Name         { name = "greeter" :| []-        , unique = Unique { unUnique = 5 }+        , unique = Unique+          { unUnique = 5 }         , loc = ()         }       , defExpr = Lambda         { exprAnn = ()         , lambdaVar = Name           { name = "name" :| []-          , unique = Unique { unUnique = 7 }+          , unique = Unique+            { unUnique = 7 }           , loc = ()           }         , lambdaTy = TyText ()@@ -27,7 +29,8 @@               { exprAnn = ()               , exprVar = Name                 { name = "name" :| []-                , unique = Unique { unUnique = 7 }+                , unique = Unique+                  { unUnique = 7 }                 , loc = ()                 }               }@@ -43,7 +46,8 @@       { declAnn = ()       , defName = Name         { name = "main" :| []-        , unique = Unique { unUnique = 6 }+        , unique = Unique+          { unUnique = 6 }         , loc = ()         }       , defExpr = Let@@ -51,7 +55,8 @@         , letBinds =           ( Name             { name = "boy" :| []-            , unique = Unique { unUnique = 8 }+            , unique = Unique+              { unUnique = 8 }             , loc = ()             }           , Choice@@ -79,7 +84,8 @@             { exprAnn = ()             , exprVar = Name               { name = "greeter" :| []-              , unique = Unique { unUnique = 5 }+              , unique = Unique+                { unUnique = 5 }               , loc = ()               }             }@@ -87,7 +93,8 @@             { exprAnn = ()             , exprVar = Name               { name = "boy" :| []-              , unique = Unique { unUnique = 8 }+              , unique = Unique+                { unUnique = 8 }               , loc = ()               }             }
test/data/let.rename view
@@ -5,7 +5,8 @@       { declAnn = ()       , defName = Name         { name = "letBinding" :| []-        , unique = Unique { unUnique = 4 }+        , unique = Unique+          { unUnique = 4 }         , loc = ()         }       , defExpr = Let@@ -13,7 +14,8 @@         , letBinds =           ( Name             { name = "a" :| []-            , unique = Unique { unUnique = 5 }+            , unique = Unique+              { unUnique = 5 }             , loc = ()             }           , Literal@@ -24,7 +26,8 @@           [             ( Name               { name = "b" :| []-              , unique = Unique { unUnique = 6 }+              , unique = Unique+                { unUnique = 6 }               , loc = ()               }             , Literal@@ -41,7 +44,8 @@               { exprAnn = ()               , exprVar = Name                 { name = "a" :| []-                , unique = Unique { unUnique = 5 }+                , unique = Unique+                  { unUnique = 5 }                 , loc = ()                 }               }@@ -52,7 +56,8 @@                 { exprAnn = ()                 , exprVar = Name                   { name = "b" :| []-                  , unique = Unique { unUnique = 6 }+                  , unique = Unique+                    { unUnique = 6 }                   , loc = ()                   }                 }
test/data/multiLet.rename view
@@ -5,7 +5,8 @@       { declAnn = ()       , defName = Name         { name = "letBinding" :| []-        , unique = Unique { unUnique = 5 }+        , unique = Unique+          { unUnique = 5 }         , loc = ()         }       , defExpr = Let@@ -13,7 +14,8 @@         , letBinds =           ( Name             { name = "a" :| []-            , unique = Unique { unUnique = 7 }+            , unique = Unique+              { unUnique = 7 }             , loc = ()             }           , Literal@@ -24,7 +26,8 @@           [             ( Name               { name = "b" :| []-              , unique = Unique { unUnique = 8 }+              , unique = Unique+                { unUnique = 8 }               , loc = ()               }             , Literal@@ -41,7 +44,8 @@               { exprAnn = ()               , exprVar = Name                 { name = "a" :| []-                , unique = Unique { unUnique = 7 }+                , unique = Unique+                  { unUnique = 7 }                 , loc = ()                 }               }@@ -52,7 +56,8 @@                 { exprAnn = ()                 , exprVar = Name                   { name = "b" :| []-                  , unique = Unique { unUnique = 8 }+                  , unique = Unique+                    { unUnique = 8 }                   , loc = ()                   }                 }@@ -65,7 +70,8 @@       { declAnn = ()       , defName = Name         { name = "main" :| []-        , unique = Unique { unUnique = 6 }+        , unique = Unique+          { unUnique = 6 }         , loc = ()         }       , defExpr = Let@@ -73,7 +79,8 @@         , letBinds =           ( Name             { name = "a" :| []-            , unique = Unique { unUnique = 9 }+            , unique = Unique+              { unUnique = 9 }             , loc = ()             }           , Literal@@ -89,7 +96,8 @@               { exprAnn = ()               , exprVar = Name                 { name = "letBinding" :| []-                , unique = Unique { unUnique = 5 }+                , unique = Unique+                  { unUnique = 5 }                 , loc = ()                 }               }@@ -100,7 +108,8 @@                 { exprAnn = ()                 , exprVar = Name                   { name = "a" :| []-                  , unique = Unique { unUnique = 9 }+                  , unique = Unique+                    { unUnique = 9 }                   , loc = ()                   }                 }
test/data/nestLet.rename view
@@ -5,7 +5,8 @@       { declAnn = ()       , defName = Name         { name = "letBinding" :| []-        , unique = Unique { unUnique = 5 }+        , unique = Unique+          { unUnique = 5 }         , loc = ()         }       , defExpr = Let@@ -13,7 +14,8 @@         , letBinds =           ( Name             { name = "a" :| []-            , unique = Unique { unUnique = 6 }+            , unique = Unique+              { unUnique = 6 }             , loc = ()             }           , Let@@ -21,7 +23,8 @@             , letBinds =               ( Name                 { name = "a" :| []-                , unique = Unique { unUnique = 9 }+                , unique = Unique+                  { unUnique = 9 }                 , loc = ()                 }               , Literal@@ -33,7 +36,8 @@               { exprAnn = ()               , exprVar = Name                 { name = "a" :| []-                , unique = Unique { unUnique = 9 }+                , unique = Unique+                  { unUnique = 9 }                 , loc = ()                 }               }@@ -42,7 +46,8 @@           [             ( Name               { name = "b" :| []-              , unique = Unique { unUnique = 7 }+              , unique = Unique+                { unUnique = 7 }               , loc = ()               }             , Let@@ -50,7 +55,8 @@               , letBinds =                 ( Name                   { name = "a" :| []-                  , unique = Unique { unUnique = 10 }+                  , unique = Unique+                    { unUnique = 10 }                   , loc = ()                   }                 , Literal@@ -62,7 +68,8 @@                 { exprAnn = ()                 , exprVar = Name                   { name = "a" :| []-                  , unique = Unique { unUnique = 10 }+                  , unique = Unique+                    { unUnique = 10 }                   , loc = ()                   }                 }@@ -71,7 +78,8 @@           ,             ( Name               { name = "c" :| []-              , unique = Unique { unUnique = 8 }+              , unique = Unique+                { unUnique = 8 }               , loc = ()               }             , Let@@ -79,7 +87,8 @@               , letBinds =                 ( Name                   { name = "a" :| []-                  , unique = Unique { unUnique = 11 }+                  , unique = Unique+                    { unUnique = 11 }                   , loc = ()                   }                 , Literal@@ -91,7 +100,8 @@                 { exprAnn = ()                 , exprVar = Name                   { name = "a" :| []-                  , unique = Unique { unUnique = 11 }+                  , unique = Unique+                    { unUnique = 11 }                   , loc = ()                   }                 }@@ -107,14 +117,16 @@               , letBinds =                 ( Name                   { name = "b" :| []-                  , unique = Unique { unUnique = 12 }+                  , unique = Unique+                    { unUnique = 12 }                   , loc = ()                   }                 , Var                   { exprAnn = ()                   , exprVar = Name                     { name = "a" :| []-                    , unique = Unique { unUnique = 6 }+                    , unique = Unique+                      { unUnique = 6 }                     , loc = ()                     }                   }@@ -123,7 +135,8 @@                 { exprAnn = ()                 , exprVar = Name                   { name = "b" :| []-                  , unique = Unique { unUnique = 12 }+                  , unique = Unique+                    { unUnique = 12 }                   , loc = ()                   }                 }@@ -135,7 +148,8 @@                 { exprAnn = ()                 , exprVar = Name                   { name = "b" :| []-                  , unique = Unique { unUnique = 7 }+                  , unique = Unique+                    { unUnique = 7 }                   , loc = ()                   }                 }
test/data/quoteify.rename view
@@ -5,14 +5,16 @@       { declAnn = ()       , defName = Name         { name = "quote" :| []-        , unique = Unique { unUnique = 5 }+        , unique = Unique+          { unUnique = 5 }         , loc = ()         }       , defExpr = Lambda         { exprAnn = ()         , lambdaVar = Name           { name = "qu" :| []-          , unique = Unique { unUnique = 7 }+          , unique = Unique+            { unUnique = 7 }           , loc = ()           }         , lambdaTy = TyText ()@@ -20,7 +22,8 @@           { exprAnn = ()           , lambdaVar = Name             { name = "name" :| []-            , unique = Unique { unUnique = 8 }+            , unique = Unique+              { unUnique = 8 }             , loc = ()             }           , lambdaTy = TyText ()@@ -31,20 +34,22 @@                 { exprAnn = ()                 , exprVar = Name                   { name = "qu" :| []-                  , unique = Unique { unUnique = 7 }+                  , unique = Unique+                    { unUnique = 7 }                   , loc = ()                   }                 }               , StrChunk                 { exprAnn = ()                 , chunkText = "-        — "+                      — "                 }               , Var                 { exprAnn = ()                 , exprVar = Name                   { name = "name" :| []-                  , unique = Unique { unUnique = 8 }+                  , unique = Unique+                    { unUnique = 8 }                   , loc = ()                   }                 }@@ -57,7 +62,8 @@       { declAnn = ()       , defName = Name         { name = "main" :| []-        , unique = Unique { unUnique = 6 }+        , unique = Unique+          { unUnique = 6 }         , loc = ()         }       , defExpr = Choice@@ -72,7 +78,8 @@                 { exprAnn = ()                 , exprVar = Name                   { name = "quote" :| []-                  , unique = Unique { unUnique = 5 }+                  , unique = Unique+                    { unUnique = 5 }                   , loc = ()                   }                 }
test/data/tupleRename.rename view
@@ -5,7 +5,8 @@       { declAnn = ()       , defName = Name         { name = "prolix" :| []-        , unique = Unique { unUnique = 4 }+        , unique = Unique+          { unUnique = 4 }         , loc = ()         }       , defExpr = Let@@ -13,7 +14,8 @@         , letBinds =           ( Name             { name = "xy" :| []-            , unique = Unique { unUnique = 5 }+            , unique = Unique+              { unUnique = 5 }             , loc = ()             }           , Literal@@ -25,18 +27,22 @@           { exprAnn = ()           , lambdaVar = Name             { name = "xy" :| []-            , unique = Unique { unUnique = 6 }+            , unique = Unique+              { unUnique = 6 }             , loc = ()             }           , lambdaTy = TyTuple ()-            ( TyText () :| [ TyText () ] )+            ( TyText () :|+              [ TyText () ]+            )           , lambdaExpr = Match             { exprAnn = ()             , exprMatch = Var               { exprAnn = ()               , exprVar = Name                 { name = "xy" :| []-                , unique = Unique { unUnique = 6 }+                , unique = Unique+                  { unUnique = 6 }                 , loc = ()                 }               }@@ -47,17 +53,21 @@                   { patAnn = ()                   , patName = Name                     { name = "x" :| []-                    , unique = Unique { unUnique = 7 }+                    , unique = Unique+                      { unUnique = 7 }                     , loc = ()                     }                   } :|-                  [ Wildcard { patAnn = () } ]+                  [ Wildcard+                    { patAnn = () }+                  ]                 }               , Var                 { exprAnn = ()                 , exprVar = Name                   { name = "x" :| []-                  , unique = Unique { unUnique = 7 }+                  , unique = Unique+                    { unUnique = 7 }                   , loc = ()                   }                 }