on master help sign in
Merge pull request #2869 from jfdm/list-categories
d3d679eJan de Muijnck-Hughes
CHANGELOG+1−1
@@ -7,7 +7,7 @@ New in 0.9.21:
7 string containing the categories to log. The REPL command is `logcats CATS`.
7 string containing the categories to log. The REPL command is `logcats CATS`.
8 Where `CATS` is a whitespace separated list of categoriese. Default is for
8 Where `CATS` is a whitespace separated list of categoriese. Default is for
9 all categories to be logged.
9 all categories to be logged.
10−
10+* New flag `--listlogcats` to list logging categories.`
11
11
12New in 0.9.20:
12New in 0.9.20:
13==============
13==============
main/Main.hs+6
@@ -45,6 +45,7 @@ main = do opts <- runArgParser
45runIdris :: [Opt] -> Idris ()
45runIdris :: [Opt] -> Idris ()
46runIdris opts = do
46runIdris opts = do
47 runIO setupBundledCC
47 runIO setupBundledCC
48+ when (ShowLoggingCats `elem` opts) $ runIO showLoggingCats
48 when (ShowIncs `elem` opts) $ runIO showIncs
49 when (ShowIncs `elem` opts) $ runIO showIncs
49 when (ShowLibs `elem` opts) $ runIO showLibs
50 when (ShowLibs `elem` opts) $ runIO showLibs
50 when (ShowLibdir `elem` opts) $ runIO showLibdir
51 when (ShowLibdir `elem` opts) $ runIO showLibdir
@@ -101,3 +102,8 @@ showIncs = do incFlags <- getIncFlags
101showPkgs :: IO b
102showPkgs :: IO b
102showPkgs = do mapM putStrLn =<< installedPackages
103showPkgs = do mapM putStrLn =<< installedPackages
103 exitWith ExitSuccess
104 exitWith ExitSuccess
105+
106+showLoggingCats :: IO b
107+showLoggingCats = do
108+ putStrLn loggingCatsStr
109+ exitWith ExitSuccess
src/Idris/AbsSyntaxTree.hs+19
@@ -465,6 +465,14 @@ data LogCat = IParse
465 | IIBC
465 | IIBC
466 deriving (Show, Eq, Ord)
466 deriving (Show, Eq, Ord)
467
467
468+strLogCat :: LogCat -> String
469+strLogCat IParse = "parser"
470+strLogCat IElab = "elab"
471+strLogCat ICodeGen = "codegen"
472+strLogCat IErasure = "erasure"
473+strLogCat ICoverage = "coverage"
474+strLogCat IIBC = "ibc"
475+
468codegenCats :: [LogCat]
476codegenCats :: [LogCat]
469codegenCats = [ICodeGen]
477codegenCats = [ICodeGen]
470
478
@@ -474,6 +482,16 @@ parserCats = [IParse]
474elabCats :: [LogCat]
482elabCats :: [LogCat]
475elabCats = [IElab]
483elabCats = [IElab]
476
484
485+loggingCatsStr :: String
486+loggingCatsStr = unlines
487+ [ (strLogCat IParse)
488+ , (strLogCat IElab)
489+ , (strLogCat ICodeGen)
490+ , (strLogCat IErasure)
491+ , (strLogCat ICoverage)
492+ , (strLogCat IIBC)
493+ ]
494+
477data Opt = Filename String
495data Opt = Filename String
478 | Quiet
496 | Quiet
479 | NoBanner
497 | NoBanner
@@ -484,6 +502,7 @@ data Opt = Filename String
484 | ShowLibdir
502 | ShowLibdir
485 | ShowIncs
503 | ShowIncs
486 | ShowPkgs
504 | ShowPkgs
505+ | ShowLoggingCats
487 | NoBasePkgs
506 | NoBasePkgs
488 | NoPrelude
507 | NoPrelude
489 | NoBuiltins -- only for the really primitive stuff!
508 | NoBuiltins -- only for the really primitive stuff!
src/Idris/CmdOptions.hs+14−12
@@ -89,7 +89,7 @@ parseFlags = many $
89 <|> (OLogCats <$> option (str >>= parseLogCats)
89 <|> (OLogCats <$> option (str >>= parseLogCats)
90 (long "logging-categories"
90 (long "logging-categories"
91 <> metavar "CATS"
91 <> metavar "CATS"
92− <> help "Colon separated logging categories: parser, elab, codegen, coverage, erasure"))
92+ <> help "Colon separated logging categories. Use --listlogcats to see list."))
93
93
94 -- Turn off Certain libraries.
94 -- Turn off Certain libraries.
95 <|> flag' NoBasePkgs (long "nobasepkgs" <> help "Do not use the given base package")
95 <|> flag' NoBasePkgs (long "nobasepkgs" <> help "Do not use the given base package")
@@ -106,11 +106,13 @@ parseFlags = many $
106 <|> flag' WarnReach (long "warnreach" <> help "Warn about reachable but inaccessible arguments")
106 <|> flag' WarnReach (long "warnreach" <> help "Warn about reachable but inaccessible arguments")
107 <|> flag' NoCoverage (long "nocoverage")
107 <|> flag' NoCoverage (long "nocoverage")
108 <|> flag' ErrContext (long "errorcontext")
108 <|> flag' ErrContext (long "errorcontext")
109+ -- Show things
110+ <|> flag' ShowLoggingCats (long "listlogcats" <> help "Display logging categories")
109− <|> flag' ShowLibs (long "link" <> help "Display link flags")
111+ <|> flag' ShowLibs (long "link" <> help "Display link flags")
110− <|> flag' ShowPkgs (long "listlibs" <> help "Display installed libraries")
112+ <|> flag' ShowPkgs (long "listlibs" <> help "Display installed libraries")
111− <|> flag' ShowLibdir (long "libdir" <> help "Display library directory")
113+ <|> flag' ShowLibdir (long "libdir" <> help "Display library directory")
112− <|> flag' ShowIncs (long "include" <> help "Display the includes flags")
114+ <|> flag' ShowIncs (long "include" <> help "Display the includes flags")
113− <|> flag' Verbose (short 'V' <> long "verbose" <> help "Loud verbosity")
115+ <|> flag' Verbose (short 'V' <> long "verbose" <> help "Loud verbosity")
114 <|> (IBCSubDir <$> strOption (long "ibcsubdir" <> metavar "FILE" <> help "Write IBC files into sub directory"))
116 <|> (IBCSubDir <$> strOption (long "ibcsubdir" <> metavar "FILE" <> help "Write IBC files into sub directory"))
115 <|> (ImportDir <$> strOption (short 'i' <> long "idrispath" <> help "Add directory to the list of import paths"))
117 <|> (ImportDir <$> strOption (short 'i' <> long "idrispath" <> help "Add directory to the list of import paths"))
116 <|> flag' WarnOnly (long "warn")
118 <|> flag' WarnOnly (long "warn")
@@ -189,12 +191,12 @@ parseLogCats s =
189 return (concat cs)
191 return (concat cs)
190
192
191 parseLogCat :: ReadP [LogCat]
193 parseLogCat :: ReadP [LogCat]
192− parseLogCat = (string "parser" *> return parserCats)
194+ parseLogCat = (string (strLogCat IParse) *> return parserCats)
193− <|> (string "elab" *> return elabCats)
195+ <|> (string (strLogCat IElab) *> return elabCats)
194− <|> (string "codegen" *> return codegenCats)
196+ <|> (string (strLogCat ICodeGen) *> return codegenCats)
195− <|> (string "coverage" *> return [ICoverage])
197+ <|> (string (strLogCat ICoverage) *> return [ICoverage])
196− <|> (string "ibc" *> return [IIBC])
198+ <|> (string (strLogCat IIBC) *> return [IIBC])
197− <|> (string "erasure" *> return [IErasure])
199+ <|> (string (strLogCat IErasure) *> return [IErasure])
198 <|> parseLogCatBad
200 <|> parseLogCatBad
199
201
200 parseLogCatBad :: ReadP [LogCat]
202 parseLogCatBad :: ReadP [LogCat]
src/Idris/DeepSeq.hs+1
@@ -107,6 +107,7 @@ instance NFData Opt where
107 rnf (ColourREPL bool) = rnf bool `seq` ()
107 rnf (ColourREPL bool) = rnf bool `seq` ()
108 rnf (Idemode) = ()
108 rnf (Idemode) = ()
109 rnf (IdemodeSocket) = ()
109 rnf (IdemodeSocket) = ()
110+ rnf (ShowLoggingCats) = ()
110 rnf (ShowLibs) = ()
111 rnf (ShowLibs) = ()
111 rnf (ShowLibdir) = ()
112 rnf (ShowLibdir) = ()
112 rnf (ShowIncs) = ()
113 rnf (ShowIncs) = ()
src/Idris/REPLParser.hs+6−6
@@ -407,12 +407,12 @@ cmd_cats name = do
407 fail $ "Category: " ++ c ++ " is not recognised."
407 fail $ "Category: " ++ c ++ " is not recognised."
408
408
409 pLogCats :: P.IdrisParser [LogCat]
409 pLogCats :: P.IdrisParser [LogCat]
410− pLogCats = try (P.symbol "parser" >> return parserCats)
410+ pLogCats = try (P.symbol (strLogCat IParse) >> return parserCats)
411− <|> try (P.symbol "elab" >> return elabCats)
411+ <|> try (P.symbol (strLogCat IElab) >> return elabCats)
412− <|> try (P.symbol "codegen" >> return codegenCats)
412+ <|> try (P.symbol (strLogCat ICodeGen) >> return codegenCats)
413− <|> try (P.symbol "coverage" >> return [ICoverage])
413+ <|> try (P.symbol (strLogCat ICoverage) >> return [ICoverage])
414− <|> try (P.symbol "ibc" >> return [IIBC])
414+ <|> try (P.symbol (strLogCat IIBC) >> return [IIBC])
415− <|> try (P.symbol "erasure" >> return [IErasure])
415+ <|> try (P.symbol (strLogCat IErasure) >> return [IErasure])
416 <|> badCat
416 <|> badCat
417
417
418cmd_let :: String -> P.IdrisParser (Either String Command)
418cmd_let :: String -> P.IdrisParser (Either String Command)