ddc-tools 0.4.2.2 → 0.4.3.1
raw patch · 18 files changed
+108/−92 lines, 18 filesdep −ddc-basedep ~basedep ~ddc-builddep ~ddc-code
Dependencies removed: ddc-base
Dependency ranges changed: base, ddc-build, ddc-code, ddc-core, ddc-core-flow, ddc-core-llvm, ddc-core-salt, ddc-core-simpl, ddc-core-tetra, ddc-driver, ddc-source-tetra, process, transformers
Files
- LICENSE +1/−1
- ddc-tools.cabal +38/−41
- src/ddc-main/DDC/Main/Args.hs +15/−0
- src/ddc-main/DDC/Main/Config.hs +4/−0
- src/ddc-main/Main.hs +7/−1
- src/ddci-core/DDCI/Core/Command/Set.hs +1/−1
- src/ddci-core/DDCI/Core/Command/TransInteract.hs +9/−11
- src/ddci-core/DDCI/Core/Interface/Interactive.hs +1/−1
- src/ddci-core/DDCI/Core/Output.hs +1/−1
- src/ddci-core/DDCI/Core/Rewrite.hs +11/−9
- src/ddci-core/DDCI/Core/State.hs +2/−2
- src/ddci-tetra/DDCI/Tetra/Command/Desugar.hs +5/−4
- src/ddci-tetra/DDCI/Tetra/Command/Infer.hs +4/−9
- src/ddci-tetra/DDCI/Tetra/Command/Parse.hs +5/−7
- src/ddci-tetra/DDCI/Tetra/Command/Set.hs +1/−1
- src/ddci-tetra/DDCI/Tetra/Command/ToCore.hs +1/−1
- src/ddci-tetra/DDCI/Tetra/Interface/Interactive.hs +1/−1
- src/ddci-tetra/DDCI/Tetra/Output.hs +1/−1
LICENSE view
@@ -1,7 +1,7 @@ -------------------------------------------------------------------------------- The Disciplined Disciple Compiler License (MIT style) -Copyrite (K) 2007-2014 The Disciplined Disciple Compiler Strike Force+Copyrite (K) 2007-2016 The Disciplined Disciple Compiler Strike Force All rights reversed. Permission is hereby granted, free of charge, to any person obtaining a copy
ddc-tools.cabal view
@@ -1,5 +1,5 @@ Name: ddc-tools-Version: 0.4.2.2+Version: 0.4.3.1 License: MIT License-file: LICENSE Author: The Disciplined Disciple Compiler Strike Force@@ -18,8 +18,8 @@ src/ddc-check Build-depends:- base >= 4.6 && < 4.9,- ddc-core == 0.4.2.*+ base >= 4.6 && < 4.10,+ ddc-core == 0.4.3.* Main-is: Main.hs@@ -35,23 +35,22 @@ src/ddc-main Build-depends:- base >= 4.6 && < 4.9,- process >= 1.1 && < 1.3,+ base >= 4.6 && < 4.10,+ process >= 1.4 && < 1.5, containers == 0.5.*, filepath >= 1.3 && < 1.5, haskeline == 0.7.*, directory == 1.2.*, mtl == 2.2.1.*,- transformers == 0.4.*,- ddc-base == 0.4.2.*,- ddc-core == 0.4.2.*,- ddc-core-simpl == 0.4.2.*,- ddc-core-salt == 0.4.2.*,- ddc-core-llvm >= 0.4.2.2 && < 0.4.3,- ddc-core-tetra == 0.4.2.*,- ddc-code == 0.4.2.*,- ddc-build >= 0.4.2.2 && < 0.4.3,- ddc-driver >= 0.4.2.2 && < 0.4.3+ transformers == 0.5.*,+ ddc-core == 0.4.3.*,+ ddc-core-simpl == 0.4.3.*,+ ddc-core-salt == 0.4.3.*,+ ddc-core-llvm == 0.4.3.*,+ ddc-core-tetra == 0.4.3.*,+ ddc-code == 0.4.3.*,+ ddc-build == 0.4.3.*,+ ddc-driver == 0.4.3.* Main-is: Main.hs@@ -70,23 +69,22 @@ src/ddci-core Build-depends:- base >= 4.6 && < 4.9,- process >= 1.1 && < 1.3,+ base >= 4.6 && < 4.10,+ process >= 1.4 && < 1.5, containers == 0.5.*, filepath >= 1.3 && < 1.5, haskeline == 0.7.*, directory == 1.2.*, mtl == 2.2.1.*,- ddc-base == 0.4.2.*,- ddc-core == 0.4.2.*,- ddc-core-simpl == 0.4.2.*,- ddc-core-salt == 0.4.2.*,- ddc-core-llvm == 0.4.2.*,- ddc-core-flow == 0.4.2.*,- ddc-core-tetra == 0.4.2.*,- ddc-code == 0.4.2.*,- ddc-build == 0.4.2.*,- ddc-driver == 0.4.2.*+ ddc-core == 0.4.3.*,+ ddc-core-simpl == 0.4.3.*,+ ddc-core-salt == 0.4.3.*,+ ddc-core-llvm == 0.4.3.*,+ ddc-core-flow == 0.4.3.*,+ ddc-core-tetra == 0.4.3.*,+ ddc-code == 0.4.3.*,+ ddc-build == 0.4.3.*,+ ddc-driver == 0.4.3.* Main-is: Main.hs@@ -135,24 +133,23 @@ src/ddci-tetra Build-depends:- base >= 4.6 && < 4.9,- process >= 1.1 && < 1.3,- containers == 0.5.*,+ base >= 4.6 && < 4.10,+ process >= 1.4 && < 1.5, filepath >= 1.3 && < 1.5,+ containers == 0.5.*, haskeline == 0.7.*, directory == 1.2.*, mtl == 2.2.1.*,- ddc-base == 0.4.2.*,- ddc-core == 0.4.2.*,- ddc-core-simpl == 0.4.2.*,- ddc-core-salt == 0.4.2.*,- ddc-core-llvm == 0.4.2.*,- ddc-core-flow == 0.4.2.*,- ddc-core-tetra == 0.4.2.*,- ddc-source-tetra == 0.4.2.*,- ddc-code == 0.4.2.*,- ddc-build == 0.4.2.*,- ddc-driver == 0.4.2.*+ ddc-core == 0.4.3.*,+ ddc-core-simpl == 0.4.3.*,+ ddc-core-salt == 0.4.3.*,+ ddc-core-llvm == 0.4.3.*,+ ddc-core-flow == 0.4.3.*,+ ddc-core-tetra == 0.4.3.*,+ ddc-source-tetra == 0.4.3.*,+ ddc-code == 0.4.3.*,+ ddc-build == 0.4.3.*,+ ddc-driver == 0.4.3.* Main-is: Main.hs
src/ddc-main/DDC/Main/Args.hs view
@@ -1,4 +1,9 @@ +-- In GHC 8 we need to turn of the pattern match checker because the new algorithm+-- runs out of stack space when checking this module.+-- https://ghc.haskell.org/trac/ghc/ticket/11822+{-# OPTIONS_GHC -fno-warn-incomplete-patterns -fno-warn-overlapping-patterns #-}+ -- | Parsing of command line configuation arguments. module DDC.Main.Args ( parseArgs@@ -115,6 +120,14 @@ $ config { configRuntimeLinkStrategy = LinkStatic } -- Parsing ------------------------------+ | "-scan" : file : rest <- args+ = parseArgs rest+ $ config { configMode = ModeScan file True }++ | "-scan-no-locations" : file : rest <- args+ = parseArgs rest+ $ config { configMode = ModeScan file False }+ | "-parse" : file : rest <- args = parseArgs rest $ config { configMode = ModeParse file }@@ -262,6 +275,8 @@ ModeVersion{} -> Just "-version" ModeHelp{} -> Just "-help" ModeParse{} -> Just "-parse"+ ModeScan _ True -> Just "-scan"+ ModeScan _ False -> Just "-scan-no-locations" ModeCheck{} -> Just "-check" ModeLoad{} -> Just "-load" ModeCompile{} -> Just "-compile"
src/ddc-main/DDC/Main/Config.hs view
@@ -28,6 +28,10 @@ -- | Display the help page. | ModeHelp + -- | Scan a module, producing tokens.+ -- The flag says whether to produce source locations.+ | ModeScan FilePath Bool + -- | Parse a module. | ModeParse FilePath
src/ddc-main/Main.hs view
@@ -8,6 +8,7 @@ import DDC.Main.Args import DDC.Main.OptLevels +import DDC.Driver.Command.Scan import DDC.Driver.Command.Parse import DDC.Driver.Command.Check import DDC.Driver.Command.Load@@ -33,7 +34,7 @@ import DDC.Driver.Interface.Source import DDC.Build.Builder-import DDC.Base.Pretty+import DDC.Data.Pretty import System.Environment import System.IO import System.Exit@@ -82,6 +83,11 @@ -- Display the help page. ModeHelp -> putStrLn help++ -- Scan a module.+ ModeScan filePath bPrintLocs+ -> do dconfig <- getDriverConfig config (Just filePath)+ runError $ cmdScanFromFile dconfig filePath bPrintLocs -- Parse a module. ModeParse filePath
src/ddci-core/DDCI/Core/Command/Set.hs view
@@ -10,7 +10,7 @@ import DDC.Core.Fragment import DDC.Core.Simplifier.Parser import DDC.Core.Transform.Reannotate-import DDC.Base.Pretty+import DDC.Data.Pretty import Control.Monad import Data.Char import Data.List
src/ddci-core/DDCI/Core/Command/TransInteract.hs view
@@ -13,9 +13,9 @@ import DDC.Core.Exp.Annot import DDC.Core.Check import DDC.Core.Module-import DDC.Base.Pretty-import qualified Data.Map as Map-import qualified Data.Set as Set+import DDC.Data.Pretty+import qualified Data.Map.Strict as Map+import qualified Data.Set as Set -- TransInteract --------------------------------------------------------------@@ -97,17 +97,15 @@ return state Right tr' -> do- let kenv = modulesExportTypes- (bundleModules bundle) - (profilePrimKinds profile)-- let tenv = modulesExportValues- (bundleModules bundle) - (profilePrimTypes profile)+ let env = modulesEnvX + (profilePrimKinds profile)+ (profilePrimTypes profile)+ (profilePrimDataDefs profile)+ (Map.elems $ bundleModules bundle) x_trans <- transExp (Set.member TraceTrans $ stateModes state)- profile kenv tenv+ profile env (bundleStateInit bundle) tr' x' case x_trans of
src/ddci-core/DDCI/Core/Interface/Interactive.hs view
@@ -15,7 +15,7 @@ -- | Run an interactive session, reading commands from the console. runInteractive :: IO () runInteractive- = do putStrLn "DDCi-core, version 0.4.2: http://disciple.ouroborus.net."+ = do putStrLn "DDCi-core, version 0.4.3: http://disciple.ouroborus.net." putStrLn "Type :help for help." -- Setup terminal mode.
src/ddci-core/DDCI/Core/Output.hs view
@@ -6,7 +6,7 @@ where import DDCI.Core.State import DDC.Driver.Interface.Input-import DDC.Base.Pretty+import DDC.Data.Pretty import qualified Data.Set as Set
src/ddci-core/DDCI/Core/Rewrite.hs view
@@ -5,7 +5,7 @@ , parseRewrite , showRule ) where-import DDC.Base.Pretty+import DDC.Data.Pretty import DDC.Build.Language import DDC.Core.Lexer import DDC.Core.Fragment hiding (Error)@@ -16,7 +16,8 @@ import Data.Char import qualified DDC.Core.Check as C import qualified DDC.Core.Parser as C-import qualified DDC.Base.Parser as BP+import qualified DDC.Control.Parser as BP+import qualified Data.Map.Strict as Map import DDC.Core.Module import Data.Map (Map)@@ -74,21 +75,22 @@ parseAdd fragment modules str | (name, rest) <- parseFirstWord str- = case BP.runTokenParser describeTok "<interactive>" + = case BP.runTokenParser describeToken "<interactive>" (pRule (C.contextOfProfile (fragmentProfile fragment))) (fragmentLexExp fragment "interactive" 0 rest) of Left err -> Left $ renderIndent $ ppr err Right rule ->- case checkRewriteRule config kinds' types' rule of+ case checkRewriteRule config env rule of Left err -> Left $ renderIndent $ ppr err Right rule' -> Right $ SetAdd name rule' where config = C.configOfProfile (fragmentProfile fragment)- kinds = profilePrimKinds (fragmentProfile fragment)- types = profilePrimTypes (fragmentProfile fragment)-- kinds' = modulesExportTypes modules kinds- types' = modulesExportValues modules types+ profile = fragmentProfile fragment+ env = modulesEnvX + (profilePrimKinds profile)+ (profilePrimTypes profile)+ (profilePrimDataDefs profile)+ (Map.elems modules) -- | Display rule
src/ddci-core/DDCI/Core/State.hs view
@@ -28,8 +28,8 @@ import DDC.Core.Exp import DDC.Core.Module import DDC.Core.Simplifier-import DDC.Base.Pretty hiding ((</>))-import DDC.Base.Name+import DDC.Data.Pretty hiding ((</>))+import DDC.Data.Name import Data.Typeable import System.FilePath import Data.Map (Map)
src/ddci-tetra/DDCI/Tetra/Command/Desugar.hs view
@@ -4,13 +4,13 @@ where import DDC.Driver.Interface.Source import DDCI.Tetra.State-import DDC.Base.Pretty+import DDC.Data.Pretty import DDC.Source.Tetra.Lexer import DDC.Source.Tetra.Parser import DDC.Source.Tetra.Pretty () import DDC.Source.Tetra.Transform.Defix import qualified DDC.Core.Lexer as C-import qualified DDC.Base.Parser as BP+import qualified DDC.Control.Parser as BP cmdDesugar :: State -> Source -> String -> IO ()@@ -21,8 +21,9 @@ in goParse tokens goParse tokens- = case BP.runTokenParser C.describeTok (nameOfSource source)- (pModule context) tokens of+ = case BP.runTokenParser+ C.describeToken (nameOfSource source)+ pModule tokens of Left err -> error $ show err Right mm -> goDesugar mm
src/ddci-tetra/DDCI/Tetra/Command/Infer.hs view
@@ -4,15 +4,13 @@ where import DDCI.Tetra.State import DDC.Driver.Interface.Source-import DDC.Base.Pretty-import DDC.Source.Tetra.Env+import DDC.Data.Pretty import DDC.Source.Tetra.Lexer import DDC.Source.Tetra.Parser import DDC.Source.Tetra.Pretty () import DDC.Source.Tetra.Transform.Defix-import DDC.Source.Tetra.Transform.Expand as Expand import qualified DDC.Core.Lexer as C-import qualified DDC.Base.Parser as BP+import qualified DDC.Control.Parser as BP cmdInfer :: State -> Source -> String -> IO ()@@ -23,8 +21,7 @@ in goParse tokens goParse tokens- = case BP.runTokenParser C.describeTok (nameOfSource source)- (pModule context) tokens of+ = case BP.runTokenParser C.describeToken (nameOfSource source) pModule tokens of Left err -> error $ show err Right mm -> goDesugar mm @@ -34,7 +31,5 @@ Right mm' -> goExpand mm' goExpand mm- = do let mm' = Expand.expand Expand.configDefault - primKindEnv primTypeEnv mm- putStrLn (renderIndent $ ppr mm')+ = do putStrLn (renderIndent $ ppr mm)
src/ddci-tetra/DDCI/Tetra/Command/Parse.hs view
@@ -2,14 +2,14 @@ module DDCI.Tetra.Command.Parse (cmdParse) where-import DDC.Driver.Interface.Source import DDCI.Tetra.State-import DDC.Base.Pretty+import DDC.Driver.Interface.Source+import DDC.Data.Pretty import DDC.Source.Tetra.Lexer import DDC.Source.Tetra.Parser import DDC.Source.Tetra.Pretty () import qualified DDC.Core.Lexer as C-import qualified DDC.Base.Parser as BP+import qualified DDC.Control.Parser as BP cmdParse :: State -> Source -> String -> IO ()@@ -21,10 +21,8 @@ goParse tokens = case BP.runTokenParser - C.describeTok - (nameOfSource source)- (pModule context)- tokens of+ C.describeToken (nameOfSource source)+ pModule tokens of Left err -> error $ show err Right mm -> do putStrLn (renderIndent $ ppr mm)
src/ddci-tetra/DDCI/Tetra/Command/Set.hs view
@@ -4,7 +4,7 @@ where import DDCI.Tetra.State import DDCI.Tetra.Mode-import DDC.Base.Pretty+import DDC.Data.Pretty import Data.Char import Data.List import qualified DDC.Build.Builder as Build
src/ddci-tetra/DDCI/Tetra/Command/ToCore.hs view
@@ -5,7 +5,7 @@ import DDC.Driver.Interface.Source import DDC.Driver.Stage import DDC.Build.Pipeline -import DDC.Base.Pretty+import DDC.Data.Pretty import qualified DDC.Driver.Config as D import DDC.Build.Interface.Store (Store)
src/ddci-tetra/DDCI/Tetra/Interface/Interactive.hs view
@@ -15,7 +15,7 @@ -- | Run an interactive session, reading commands from the console. runInteractive :: IO () runInteractive- = do putStrLn "DDCi-tetra, version 0.4.2: http://disciple.ouroborus.net."+ = do putStrLn "DDCi-tetra, version 0.4.3: http://disciple.ouroborus.net." putStrLn "Type :help for help." -- Setup terminal mode.
src/ddci-tetra/DDCI/Tetra/Output.hs view
@@ -6,7 +6,7 @@ where import DDCI.Tetra.State import DDC.Driver.Interface.Input-import DDC.Base.Pretty+import DDC.Data.Pretty -- | Output a document to the console.