@@ -28,7 +28,7 @@ runArgParser = do opts <- execParser $ info parser
29 return $ preProcOpts opts []
29 return $ preProcOpts opts []
31− idrisHeader = PP.hsep [PP.text "Idris version", PP.text ver, PP.text ", (C) The Idris Community 2014"]
31+ idrisHeader = PP.hsep [PP.text "Idris version", PP.text ver, PP.text ", (C) The Idris Community 2016"]
32 idrisProgDesc = PP.vsep [PP.empty,
32 idrisProgDesc = PP.vsep [PP.empty,
33 PP.text "Idris is a general purpose pure functional programming language with dependent",
33 PP.text "Idris is a general purpose pure functional programming language with dependent",
34 PP.text "types. Dependent types allow types to be predicated on values, meaning that",
34 PP.text "types. Dependent types allow types to be predicated on values, meaning that",
@@ -76,14 +76,15 @@ parser = runA $ proc () -> do
77parseFlags :: Parser [Opt]
77parseFlags :: Parser [Opt]
78parseFlags = many $
78parseFlags = many $
79− flag' NoBanner (long "nobanner" <> help "Suppress the banner")
79+ flag' NoBanner (long "nobanner" <> help "Suppress the banner")
80− <|> flag' Quiet (short 'q' <> long "quiet" <> help "Quiet verbosity")
80+ <|> flag' Quiet (short 'q' <> long "quiet" <> help "Quiet verbosity")
81 -- IDE Mode Specific Flags
82 -- IDE Mode Specific Flags
82− <|> flag' Idemode (long "ide-mode" <> help "Run the Idris REPL with machine-readable syntax")
83+ <|> flag' Idemode (long "ide-mode" <> help "Run the Idris REPL with machine-readable syntax")
83 <|> flag' IdemodeSocket (long "ide-mode-socket" <> help "Choose a socket for IDE mode to listen on")
84 <|> flag' IdemodeSocket (long "ide-mode-socket" <> help "Choose a socket for IDE mode to listen on")
84− <|> flag' Idemode (long "ideslave" <> help "Deprecated version of --ide-mode") -- TODO: Remove in v0.9.18
85+
85− <|> flag' IdemodeSocket (long "ideslave-socket" <> help "Deprecated version of --ide-mode-socket") -- TODO: Remove in v0.9.18
86 <|> (Client <$> strOption (long "client"))
86 <|> (Client <$> strOption (long "client"))
87 -- Logging Flags
88 -- Logging Flags
88 <|> (OLogging <$> option auto (long "log" <> metavar "LEVEL" <> help "Debugging log level"))
89 <|> (OLogging <$> option auto (long "log" <> metavar "LEVEL" <> help "Debugging log level"))
89 <|> (OLogCats <$> option (str >>= parseLogCats)
90 <|> (OLogCats <$> option (str >>= parseLogCats)
@@ -91,71 +92,101 @@ parseFlags = many $
91 <> metavar "CATS"
92 <> metavar "CATS"
92 <> help "Colon separated logging categories. Use --listlogcats to see list."))
93 <> help "Colon separated logging categories. Use --listlogcats to see list."))
94− -- Turn off Certain libraries.
95+ -- Turn off things
95 <|> flag' NoBasePkgs (long "nobasepkgs" <> help "Do not use the given base package")
96 <|> flag' NoBasePkgs (long "nobasepkgs" <> help "Do not use the given base package")
96− <|> flag' NoPrelude (long "noprelude" <> help "Do not use the given prelude")
97+ <|> flag' NoPrelude (long "noprelude" <> help "Do not use the given prelude")
97 <|> flag' NoBuiltins (long "nobuiltins" <> help "Do not use the builtin functions")
98 <|> flag' NoBuiltins (long "nobuiltins" <> help "Do not use the builtin functions")
98− <|> flag' NoREPL (long "check" <> help "Typecheck only, don't start the REPL")
100+ <|> flag' NoREPL (long "check" <> help "Typecheck only, don't start the REPL")
99 <|> (Output <$> strOption (short 'o' <> long "output" <> metavar "FILE" <> help "Specify output file"))
102 <|> (Output <$> strOption (short 'o' <> long "output" <> metavar "FILE" <> help "Specify output file"))
100 -- <|> flag' TypeCase (long "typecase")
104 -- <|> flag' TypeCase (long "typecase")
101− <|> flag' Interface (long "interface" <> help "Generate interface files from ExportLists")
105+ <|> flag' Interface (long "interface" <> help "Generate interface files from ExportLists")
102− <|> flag' TypeInType (long "typeintype" <> help "Turn off Universe checking")
106+ <|> flag' TypeInType (long "typeintype" <> help "Turn off Universe checking")
103− <|> flag' DefaultTotal (long "total" <> help "Require functions to be total by default")
107+ <|> flag' DefaultTotal (long "total" <> help "Require functions to be total by default")
104 <|> flag' DefaultPartial (long "partial")
108 <|> flag' DefaultPartial (long "partial")
105− <|> flag' WarnPartial (long "warnpartial" <> help "Warn about undeclared partial functions")
109+ <|> flag' WarnPartial (long "warnpartial" <> help "Warn about undeclared partial functions")
106− <|> flag' WarnReach (long "warnreach" <> help "Warn about reachable but inaccessible arguments")
110+ <|> flag' WarnReach (long "warnreach" <> help "Warn about reachable but inaccessible arguments")
107− <|> flag' NoCoverage (long "nocoverage")
111+ <|> flag' NoCoverage (long "nocoverage")
108− <|> flag' ErrContext (long "errorcontext")
112+ <|> flag' ErrContext (long "errorcontext")
109 -- Show things
114 -- Show things
110− <|> flag' ShowLoggingCats (long "listlogcats" <> help "Display logging categories")
115+ <|> flag' ShowLoggingCats (long "listlogcats" <> help "Display logging categories")
111− <|> flag' ShowLibs (long "link" <> help "Display link flags")
116+ <|> flag' ShowLibs (long "link" <> help "Display link flags")
112− <|> flag' ShowPkgs (long "listlibs" <> help "Display installed libraries")
117+ <|> flag' ShowPkgs (long "listlibs" <> help "Display installed libraries")
113− <|> flag' ShowLibdir (long "libdir" <> help "Display library directory")
118+ <|> flag' ShowLibdir (long "libdir" <> help "Display library directory")
114− <|> flag' ShowIncs (long "include" <> help "Display the includes flags")
119+ <|> flag' ShowIncs (long "include" <> help "Display the includes flags")
115− <|> flag' Verbose (short 'V' <> long "verbose" <> help "Loud verbosity")
121+ <|> flag' Verbose (short 'V' <> long "verbose" <> help "Loud verbosity")
116 <|> (IBCSubDir <$> strOption (long "ibcsubdir" <> metavar "FILE" <> help "Write IBC files into sub directory"))
123 <|> (IBCSubDir <$> strOption (long "ibcsubdir" <> metavar "FILE" <> help "Write IBC files into sub directory"))
117 <|> (ImportDir <$> strOption (short 'i' <> long "idrispath" <> help "Add directory to the list of import paths"))
124 <|> (ImportDir <$> strOption (short 'i' <> long "idrispath" <> help "Add directory to the list of import paths"))
118 <|> flag' WarnOnly (long "warn")
126 <|> flag' WarnOnly (long "warn")
119− <|> (Pkg <$> strOption (short 'p' <> long "package" <> help "Add package as a dependency"))
128+ <|> (Pkg <$> strOption (short 'p' <> long "package" <> help "Add package as a dependency"))
120 <|> (Port <$> strOption (long "port" <> metavar "PORT" <> help "REPL TCP port"))
129 <|> (Port <$> strOption (long "port" <> metavar "PORT" <> help "REPL TCP port"))
121 -- Package commands
131 -- Package commands
122− <|> (PkgBuild <$> strOption (long "build" <> metavar "IPKG" <> help "Build package"))
132+ <|> (PkgBuild <$> strOption (long "build" <> metavar "IPKG" <> help "Build package"))
123− <|> (PkgInstall <$> strOption (long "install" <> metavar "IPKG" <> help "Install package"))
133+ <|> (PkgInstall <$> strOption (long "install" <> metavar "IPKG" <> help "Install package"))
124− <|> (PkgREPL <$> strOption (long "repl" <> metavar "IPKG" <> help "Launch REPL, only for executables"))
134+ <|> (PkgREPL <$> strOption (long "repl" <> metavar "IPKG" <> help "Launch REPL, only for executables"))
125− <|> (PkgClean <$> strOption (long "clean" <> metavar "IPKG" <> help "Clean package"))
135+ <|> (PkgClean <$> strOption (long "clean" <> metavar "IPKG" <> help "Clean package"))
126− <|> (PkgMkDoc <$> strOption (long "mkdoc" <> metavar "IPKG" <> help "Generate IdrisDoc for package"))
136+ <|> (PkgMkDoc <$> strOption (long "mkdoc" <> metavar "IPKG" <> help "Generate IdrisDoc for package"))
127− <|> (PkgCheck <$> strOption (long "checkpkg" <> metavar "IPKG" <> help "Check package only"))
137+ <|> (PkgCheck <$> strOption (long "checkpkg" <> metavar "IPKG" <> help "Check package only"))
128− <|> (PkgTest <$> strOption (long "testpkg" <> metavar "IPKG" <> help "Run tests for package"))
138+ <|> (PkgTest <$> strOption (long "testpkg" <> metavar "IPKG" <> help "Run tests for package"))
129 -- Misc options
140 -- Misc options
130 <|> (BCAsm <$> strOption (long "bytecode"))
141 <|> (BCAsm <$> strOption (long "bytecode"))
131− <|> flag' (OutputTy Raw) (short 'S' <> long "codegenonly" <> help "Do no further compilation of code generator output")
143+ <|> flag' (OutputTy Raw) (short 'S' <> long "codegenonly" <> help "Do no further compilation of code generator output")
132− <|> flag' (OutputTy Object) (short 'c' <> long "compileonly" <> help "Compile to object files rather than an executable")
144+ <|> flag' (OutputTy Object) (short 'c' <> long "compileonly" <> help "Compile to object files rather than an executable")
133− <|> flag' (OutputTy MavenProject) (long "mvn" <> help "Create a maven project (for Java codegen)")
145+ <|> flag' (OutputTy MavenProject) (long "mvn" <> help "Create a maven project (for Java codegen)")
134 <|> (DumpDefun <$> strOption (long "dumpdefuns"))
147 <|> (DumpDefun <$> strOption (long "dumpdefuns"))
135 <|> (DumpCases <$> strOption (long "dumpcases"))
148 <|> (DumpCases <$> strOption (long "dumpcases"))
150+ <|> ((\s -> UseCodegen $ parseCodegen s) <$> strOption (long "codegen"
136− <|> ((\s -> UseCodegen $ parseCodegen s) <$> strOption (long "codegen" <> metavar "TARGET" <> help "Select code generator: C, Javascript, Node and bytecode are bundled with Idris"))
152+ <> help "Select code generator: C, Javascript, Node and bytecode are bundled with Idris"))
153+ <|> (CodegenArgs <$> strOption (long "cg-opt"
137− <|> (CodegenArgs <$> strOption (long "cg-opt" <> metavar "ARG" <> help "Arguments to pass to code generator"))
155+ <> help "Arguments to pass to code generator"))
138 <|> (EvalExpr <$> strOption (long "eval" <> short 'e' <> metavar "EXPR" <> help "Evaluate an expression without loading the REPL"))
157 <|> (EvalExpr <$> strOption (long "eval" <> short 'e' <> metavar "EXPR" <> help "Evaluate an expression without loading the REPL"))
139 <|> flag' (InterpretScript "Main.main") (long "execute" <> help "Execute as idris")
159 <|> flag' (InterpretScript "Main.main") (long "execute" <> help "Execute as idris")
140− <|> (InterpretScript <$> strOption (long "exec" <> metavar "EXPR" <> help "Execute as idris"))
160+ <|> (InterpretScript <$> strOption (long "exec" <> metavar "EXPR" <> help "Execute as idris"))
162+ <|> ((\s -> Extension $ getExt s) <$> strOption (long "extension"
141− <|> ((\s -> Extension $ getExt s) <$> strOption (long "extension" <> short 'X' <> metavar "EXT" <> help "Turn on language extension (TypeProviders or ErrorReflection)"))
165+ <> help "Turn on language extension (TypeProviders or ErrorReflection)"))
142 -- Optimisation Levels
167 -- Optimisation Levels
143 <|> flag' (OptLevel 3) (long "O3")
168 <|> flag' (OptLevel 3) (long "O3")
144 <|> flag' (OptLevel 2) (long "O2")
169 <|> flag' (OptLevel 2) (long "O2")
145 <|> flag' (OptLevel 1) (long "O1")
170 <|> flag' (OptLevel 1) (long "O1")
146 <|> flag' (OptLevel 0) (long "O0")
171 <|> flag' (OptLevel 0) (long "O0")
147 <|> flag' (AddOpt PETransform) (long "partial-eval")
173 <|> flag' (AddOpt PETransform) (long "partial-eval")
148 <|> flag' (RemoveOpt PETransform) (long "no-partial-eval" <> help "Switch off partial evaluation, mainly for debugging purposes")
174 <|> flag' (RemoveOpt PETransform) (long "no-partial-eval" <> help "Switch off partial evaluation, mainly for debugging purposes")
149 <|> (OptLevel <$> option auto (short 'O' <> long "level"))
176 <|> (OptLevel <$> option auto (short 'O' <> long "level"))
150 <|> (TargetTriple <$> strOption (long "target" <> metavar "TRIPLE" <> help "Select target triple (for llvm codegen)"))
178 <|> (TargetTriple <$> strOption (long "target" <> metavar "TRIPLE" <> help "Select target triple (for llvm codegen)"))
151− <|> (TargetCPU <$> strOption (long "cpu" <> metavar "CPU" <> help "Select target CPU e.g. corei7 or cortex-m3 (for LLVM codegen)"))
179+ <|> (TargetCPU <$> strOption (long "cpu" <> metavar "CPU" <> help "Select target CPU e.g. corei7 or cortex-m3 (for LLVM codegen)"))
152 -- Colour Options
181 -- Colour Options
153− <|> flag' (ColourREPL True) (long "colour" <> long "color" <> help "Force coloured output")
182+ <|> flag' (ColourREPL True) (long "colour" <> long "color" <> help "Force coloured output")
154 <|> flag' (ColourREPL False) (long "nocolour" <> long "nocolor" <> help "Disable coloured output")
183 <|> flag' (ColourREPL False) (long "nocolour" <> long "nocolor" <> help "Disable coloured output")
156 <|> (UseConsoleWidth <$> option (str >>= parseConsoleWidth) (long "consolewidth" <> metavar "WIDTH" <> help "Select console width: auto, infinite, nat"))
185 <|> (UseConsoleWidth <$> option (str >>= parseConsoleWidth) (long "consolewidth" <> metavar "WIDTH" <> help "Select console width: auto, infinite, nat"))
157 <|> flag' DumpHighlights (long "highlight" <> help "Emit source code highlighting")
187 <|> flag' DumpHighlights (long "highlight" <> help "Emit source code highlighting")
158− <|> flag' NoElimDeprecationWarnings (long "no-elim-deprecation-warnings" <> help "Disable deprecation warnings for %elim")
189+ <|> flag' NoElimDeprecationWarnings (long "no-elim-deprecation-warnings" <> help "Disable deprecation warnings for %elim")
159 <|> flag' NoOldTacticDeprecationWarnings (long "no-tactic-deprecation-warnings" <> help "Disable deprecation warnings for the old tactic sublanguage")
190 <|> flag' NoOldTacticDeprecationWarnings (long "no-tactic-deprecation-warnings" <> help "Disable deprecation warnings for the old tactic sublanguage")