Build #1 for cpphs-1.20.10

[all reports]

Package cpphs-1.20.10
Install InstallOk
Docs Ok
Tests NotTried
Time submitted 2025-09-14 16:10:33.264191408 UTC
Compiler ghc-9.8.4
OS linux
Arch x86_64
Dependencies base-4.19.2.0, directory-1.3.8.5, polyparse-1.13.1, time-1.12.2, base-4.19.2.0, directory-1.3.8.5, polyparse-1.13.1, time-1.12.2
Flags none

Code Coverage

No Code Coverage was submitted for this report.

Build log

[view raw]

Resolving dependencies...
Configuring polyparse-1.13.1...
Preprocessing library for polyparse-1.13.1..
Building library for polyparse-1.13.1..
[ 1 of 18] Compiling Text.ParserCombinators.HuttonMeijer ( src/Text/ParserCombinators/HuttonMeijer.hs, dist/build/Text/ParserCombinators/HuttonMeijer.o, dist/build/Text/ParserCombinators/HuttonMeijer.dyn_o )
[ 2 of 18] Compiling Text.ParserCombinators.HuttonMeijerWallace ( src/Text/ParserCombinators/HuttonMeijerWallace.hs, dist/build/Text/ParserCombinators/HuttonMeijerWallace.o, dist/build/Text/ParserCombinators/HuttonMeijerWallace.dyn_o )
[ 3 of 18] Compiling Text.ParserCombinators.Poly.Base ( src/Text/ParserCombinators/Poly/Base.hs, dist/build/Text/ParserCombinators/Poly/Base.o, dist/build/Text/ParserCombinators/Poly/Base.dyn_o )
[ 4 of 18] Compiling Text.ParserCombinators.Poly.Result ( src/Text/ParserCombinators/Poly/Result.hs, dist/build/Text/ParserCombinators/Poly/Result.o, dist/build/Text/ParserCombinators/Poly/Result.dyn_o )
[ 5 of 18] Compiling Text.ParserCombinators.Poly.Parser ( src/Text/ParserCombinators/Poly/Parser.hs, dist/build/Text/ParserCombinators/Poly/Parser.o, dist/build/Text/ParserCombinators/Poly/Parser.dyn_o )
[ 6 of 18] Compiling Text.ParserCombinators.Poly.Plain ( src/Text/ParserCombinators/Poly/Plain.hs, dist/build/Text/ParserCombinators/Poly/Plain.o, dist/build/Text/ParserCombinators/Poly/Plain.dyn_o )
[ 7 of 18] Compiling Text.ParserCombinators.Poly ( src/Text/ParserCombinators/Poly.hs, dist/build/Text/ParserCombinators/Poly.o, dist/build/Text/ParserCombinators/Poly.dyn_o )
[ 8 of 18] Compiling Text.Parse       ( src/Text/Parse.hs, dist/build/Text/Parse.o, dist/build/Text/Parse.dyn_o )

src/Text/Parse.hs:400:36: warning: [GHC-63394] [-Wx-partial]
    In the use of head
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
400 |     parseList = do { w <- word; if head w == '"' then return (init (tail w))
    |                                    ^^^^

src/Text/Parse.hs:400:69: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
400 |     parseList = do { w <- word; if head w == '"' then return (init (tail w))
    |                                                                     ^^^^
[ 9 of 18] Compiling Text.ParserCombinators.Poly.Lex ( src/Text/ParserCombinators/Poly/Lex.hs, dist/build/Text/ParserCombinators/Poly/Lex.o, dist/build/Text/ParserCombinators/Poly/Lex.dyn_o )
[10 of 18] Compiling Text.ParserCombinators.Poly.Lazy ( src/Text/ParserCombinators/Poly/Lazy.hs, dist/build/Text/ParserCombinators/Poly/Lazy.o, dist/build/Text/ParserCombinators/Poly/Lazy.dyn_o )
[11 of 18] Compiling Text.ParserCombinators.Poly.ByteStringChar ( src/Text/ParserCombinators/Poly/ByteStringChar.hs, dist/build/Text/ParserCombinators/Poly/ByteStringChar.o, dist/build/Text/ParserCombinators/Poly/ByteStringChar.dyn_o )
[12 of 18] Compiling Text.Parse.ByteString ( src/Text/Parse/ByteString.hs, dist/build/Text/Parse/ByteString.o, dist/build/Text/Parse/ByteString.dyn_o )

src/Text/Parse/ByteString.hs:440:36: warning: [GHC-63394] [-Wx-partial]
    In the use of head
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
440 |     parseList = do { w <- word; if head w == '"' then return (init (tail w))
    |                                    ^^^^

src/Text/Parse/ByteString.hs:440:69: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
440 |     parseList = do { w <- word; if head w == '"' then return (init (tail w))
    |                                                                     ^^^^
[13 of 18] Compiling Text.ParserCombinators.Poly.ByteString ( src/Text/ParserCombinators/Poly/ByteString.hs, dist/build/Text/ParserCombinators/Poly/ByteString.o, dist/build/Text/ParserCombinators/Poly/ByteString.dyn_o )
[14 of 18] Compiling Text.ParserCombinators.Poly.StateParser ( src/Text/ParserCombinators/Poly/StateParser.hs, dist/build/Text/ParserCombinators/Poly/StateParser.o, dist/build/Text/ParserCombinators/Poly/StateParser.dyn_o )
[15 of 18] Compiling Text.ParserCombinators.Poly.StateLazy ( src/Text/ParserCombinators/Poly/StateLazy.hs, dist/build/Text/ParserCombinators/Poly/StateLazy.o, dist/build/Text/ParserCombinators/Poly/StateLazy.dyn_o )
[16 of 18] Compiling Text.ParserCombinators.Poly.State ( src/Text/ParserCombinators/Poly/State.hs, dist/build/Text/ParserCombinators/Poly/State.o, dist/build/Text/ParserCombinators/Poly/State.dyn_o )
[17 of 18] Compiling Text.ParserCombinators.Poly.StateText ( src/Text/ParserCombinators/Poly/StateText.hs, dist/build/Text/ParserCombinators/Poly/StateText.o, dist/build/Text/ParserCombinators/Poly/StateText.dyn_o )
[18 of 18] Compiling Text.ParserCombinators.Poly.Text ( src/Text/ParserCombinators/Poly/Text.hs, dist/build/Text/ParserCombinators/Poly/Text.o, dist/build/Text/ParserCombinators/Poly/Text.dyn_o )
Preprocessing library for polyparse-1.13.1..
Running Haddock on library for polyparse-1.13.1..
Warning: --source-* options are ignored when --hyperlinked-source is enabled.
[ 1 of 18] Compiling Text.ParserCombinators.HuttonMeijer ( src/Text/ParserCombinators/HuttonMeijer.hs, nothing )
[ 2 of 18] Compiling Text.ParserCombinators.HuttonMeijerWallace ( src/Text/ParserCombinators/HuttonMeijerWallace.hs, nothing )
[ 3 of 18] Compiling Text.ParserCombinators.Poly.Base ( src/Text/ParserCombinators/Poly/Base.hs, nothing )
[ 4 of 18] Compiling Text.ParserCombinators.Poly.Result ( src/Text/ParserCombinators/Poly/Result.hs, nothing )
[ 5 of 18] Compiling Text.ParserCombinators.Poly.Parser ( src/Text/ParserCombinators/Poly/Parser.hs, nothing )
[ 6 of 18] Compiling Text.ParserCombinators.Poly.Plain ( src/Text/ParserCombinators/Poly/Plain.hs, nothing )
[ 7 of 18] Compiling Text.ParserCombinators.Poly ( src/Text/ParserCombinators/Poly.hs, nothing )
[ 8 of 18] Compiling Text.Parse       ( src/Text/Parse.hs, nothing )

src/Text/Parse.hs:400:36: warning: [GHC-63394] [-Wx-partial]
    In the use of head
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
400 |     parseList = do { w <- word; if head w == '"' then return (init (tail w))
    |                                    ^^^^

src/Text/Parse.hs:400:69: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
400 |     parseList = do { w <- word; if head w == '"' then return (init (tail w))
    |                                                                     ^^^^
[ 9 of 18] Compiling Text.ParserCombinators.Poly.Lex ( src/Text/ParserCombinators/Poly/Lex.hs, nothing )
[10 of 18] Compiling Text.ParserCombinators.Poly.Lazy ( src/Text/ParserCombinators/Poly/Lazy.hs, nothing )
[11 of 18] Compiling Text.ParserCombinators.Poly.ByteStringChar ( src/Text/ParserCombinators/Poly/ByteStringChar.hs, nothing )
[12 of 18] Compiling Text.Parse.ByteString ( src/Text/Parse/ByteString.hs, nothing )

src/Text/Parse/ByteString.hs:440:36: warning: [GHC-63394] [-Wx-partial]
    In the use of head
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
440 |     parseList = do { w <- word; if head w == '"' then return (init (tail w))
    |                                    ^^^^

src/Text/Parse/ByteString.hs:440:69: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
440 |     parseList = do { w <- word; if head w == '"' then return (init (tail w))
    |                                                                     ^^^^
[13 of 18] Compiling Text.ParserCombinators.Poly.ByteString ( src/Text/ParserCombinators/Poly/ByteString.hs, nothing )
[14 of 18] Compiling Text.ParserCombinators.Poly.StateParser ( src/Text/ParserCombinators/Poly/StateParser.hs, nothing )
[15 of 18] Compiling Text.ParserCombinators.Poly.StateLazy ( src/Text/ParserCombinators/Poly/StateLazy.hs, nothing )
[16 of 18] Compiling Text.ParserCombinators.Poly.State ( src/Text/ParserCombinators/Poly/State.hs, nothing )
[17 of 18] Compiling Text.ParserCombinators.Poly.StateText ( src/Text/ParserCombinators/Poly/StateText.hs, nothing )
[18 of 18] Compiling Text.ParserCombinators.Poly.Text ( src/Text/ParserCombinators/Poly/Text.hs, nothing )
Haddock coverage:
   5% (  2 / 36) in 'Text.ParserCombinators.HuttonMeijer'
  Missing documentation for:
    item (src/Text/ParserCombinators/HuttonMeijer.hs:90)
    first (src/Text/ParserCombinators/HuttonMeijer.hs:95)
    papply (src/Text/ParserCombinators/HuttonMeijer.hs:100)
    +++ (src/Text/ParserCombinators/HuttonMeijer.hs:107)
    sat (src/Text/ParserCombinators/HuttonMeijer.hs:110)
    many (src/Text/ParserCombinators/HuttonMeijer.hs:116)
    many1 (src/Text/ParserCombinators/HuttonMeijer.hs:120)
    sepby (src/Text/ParserCombinators/HuttonMeijer.hs:123)
    sepby1 (src/Text/ParserCombinators/HuttonMeijer.hs:126)
    chainl (src/Text/ParserCombinators/HuttonMeijer.hs:129)
    chainl1 (src/Text/ParserCombinators/HuttonMeijer.hs:132)
    chainr (src/Text/ParserCombinators/HuttonMeijer.hs:138)
    chainr1 (src/Text/ParserCombinators/HuttonMeijer.hs:141)
    ops (src/Text/ParserCombinators/HuttonMeijer.hs:147)
    bracket (src/Text/ParserCombinators/HuttonMeijer.hs:150)
    char (src/Text/ParserCombinators/HuttonMeijer.hs:157)
    digit (src/Text/ParserCombinators/HuttonMeijer.hs:160)
    lower (src/Text/ParserCombinators/HuttonMeijer.hs:163)
    upper (src/Text/ParserCombinators/HuttonMeijer.hs:166)
    letter (src/Text/ParserCombinators/HuttonMeijer.hs:169)
    alphanum (src/Text/ParserCombinators/HuttonMeijer.hs:172)
    string (src/Text/ParserCombinators/HuttonMeijer.hs:175)
    ident (src/Text/ParserCombinators/HuttonMeijer.hs:179)
    nat (src/Text/ParserCombinators/HuttonMeijer.hs:182)
    int (src/Text/ParserCombinators/HuttonMeijer.hs:187)
    spaces (src/Text/ParserCombinators/HuttonMeijer.hs:194)
    comment (src/Text/ParserCombinators/HuttonMeijer.hs:202)
    junk (src/Text/ParserCombinators/HuttonMeijer.hs:207)
    skip (src/Text/ParserCombinators/HuttonMeijer.hs:210)
    token (src/Text/ParserCombinators/HuttonMeijer.hs:213)
    natural (src/Text/ParserCombinators/HuttonMeijer.hs:220)
    integer (src/Text/ParserCombinators/HuttonMeijer.hs:223)
    symbol (src/Text/ParserCombinators/HuttonMeijer.hs:226)
    identifier (src/Text/ParserCombinators/HuttonMeijer.hs:229)
  77% ( 24 / 31) in 'Text.ParserCombinators.HuttonMeijerWallace'
  Missing documentation for:
    Parser (src/Text/ParserCombinators/HuttonMeijerWallace.hs:67)
    chainl (src/Text/ParserCombinators/HuttonMeijerWallace.hs:229)
    chainl1 (src/Text/ParserCombinators/HuttonMeijerWallace.hs:232)
    chainr (src/Text/ParserCombinators/HuttonMeijerWallace.hs:239)
    chainr1 (src/Text/ParserCombinators/HuttonMeijerWallace.hs:242)
    ops (src/Text/ParserCombinators/HuttonMeijerWallace.hs:251)
    bracket (src/Text/ParserCombinators/HuttonMeijerWallace.hs:256)
  95% ( 23 / 24) in 'Text.ParserCombinators.Poly.Base'
  Missing documentation for:
    Module header
  75% (  3 /  4) in 'Text.ParserCombinators.Poly.Result'
  Missing documentation for:
    Module header
 100% ( 12 / 12) in 'Text.ParserCombinators.Poly.Parser'
  93% ( 15 / 16) in 'Text.ParserCombinators.Poly.Plain'
  Missing documentation for:
    Module header
  50% (  1 /  2) in 'Text.ParserCombinators.Poly'
  Missing documentation for:
    Module header
  76% ( 23 / 30) in 'Text.Parse'
  Missing documentation for:
    Module header
    parseSigned (src/Text/Parse.hs:230)
    parseInt (src/Text/Parse.hs:237)
    parseDec (src/Text/Parse.hs:243)
    parseOct (src/Text/Parse.hs:244)
    parseHex (src/Text/Parse.hs:245)
    parseFloat (src/Text/Parse.hs:248)
 100% ( 16 / 16) in 'Text.ParserCombinators.Poly.Lex'
  93% ( 15 / 16) in 'Text.ParserCombinators.Poly.Lazy'
  Missing documentation for:
    Module header
  94% ( 16 / 17) in 'Text.ParserCombinators.Poly.ByteStringChar'
  Missing documentation for:
    Module header
  96% ( 31 / 32) in 'Text.Parse.ByteString'
  Missing documentation for:
    Module header
  94% ( 16 / 17) in 'Text.ParserCombinators.Poly.ByteString'
  Missing documentation for:
    Module header
 100% ( 15 / 15) in 'Text.ParserCombinators.Poly.StateParser'
  94% ( 33 / 35) in 'Text.ParserCombinators.Poly.StateLazy'
  Missing documentation for:
    Module header
    manyFinally (src/Text/ParserCombinators/Poly/StateLazy.hs:165)
  94% ( 18 / 19) in 'Text.ParserCombinators.Poly.State'
  Missing documentation for:
    Module header
  95% ( 21 / 22) in 'Text.ParserCombinators.Poly.StateText'
  Missing documentation for:
    Module header
  94% ( 17 / 18) in 'Text.ParserCombinators.Poly.Text'
  Missing documentation for:
    Module header
Warning: Text.ParserCombinators.HuttonMeijer: could not find link destinations for: 
	- Text.ParserCombinators.HuttonMeijer.Token
Warning: Text.ParserCombinators.HuttonMeijerWallace: could not find link destinations for: 
	- Text.ParserCombinators.HuttonMeijerWallace.ParseResult
Documentation created: dist/doc/html/polyparse/,
dist/doc/html/polyparse/polyparse.txt
Installing library in /var/lib/hackage-doc-builder/build-cache/tmp-install/lib/x86_64-linux-ghc-9.8.4/polyparse-1.13.1-3JNhUz69dQj31c1iqOQR1I
Completed    polyparse-1.13.1
Downloading  cpphs-1.20.10
Downloaded   cpphs-1.20.10
Configuring cpphs-1.20.10...
Preprocessing executable 'cpphs' for cpphs-1.20.10..
Building executable 'cpphs' for cpphs-1.20.10..
[ 1 of 13] Compiling Language.Preprocessor.Cpphs.HashDefine ( Language/Preprocessor/Cpphs/HashDefine.hs, dist/build/cpphs/cpphs-tmp/Language/Preprocessor/Cpphs/HashDefine.o )
[ 2 of 13] Compiling Language.Preprocessor.Cpphs.Options ( Language/Preprocessor/Cpphs/Options.hs, dist/build/cpphs/cpphs-tmp/Language/Preprocessor/Cpphs/Options.o )

Language/Preprocessor/Cpphs/Options.hs:106:67: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
106 | rawOption ('-':'D':xs) = Just $ Macro (s, if null d then "1" else tail d)
    |                                                                   ^^^^
[ 3 of 13] Compiling Language.Preprocessor.Cpphs.Position ( Language/Preprocessor/Cpphs/Position.hs, dist/build/cpphs/cpphs-tmp/Language/Preprocessor/Cpphs/Position.o )

Language/Preprocessor/Cpphs/Position.hs:90:56: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
   |
90 |                                             ++unwords (tail (words line))
   |                                                        ^^^^
[ 4 of 13] Compiling Language.Preprocessor.Cpphs.ReadFirst ( Language/Preprocessor/Cpphs/ReadFirst.hs, dist/build/cpphs/cpphs-tmp/Language/Preprocessor/Cpphs/ReadFirst.o )
[ 5 of 13] Compiling Language.Preprocessor.Cpphs.SymTab ( Language/Preprocessor/Cpphs/SymTab.hs, dist/build/cpphs/cpphs-tmp/Language/Preprocessor/Cpphs/SymTab.o )

Language/Preprocessor/Cpphs/SymTab.hs:42:43: warning: [GHC-63394] [-Wx-partial]
    In the use of head
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
   |
42 |                        else (Just . snd . head) vs
   |                                           ^^^^
[ 6 of 13] Compiling Language.Preprocessor.Cpphs.Tokenise ( Language/Preprocessor/Cpphs/Tokenise.hs, dist/build/cpphs/cpphs-tmp/Language/Preprocessor/Cpphs/Tokenise.o )
[ 7 of 13] Compiling Language.Preprocessor.Unlit ( Language/Preprocessor/Unlit.hs, dist/build/cpphs/cpphs-tmp/Language/Preprocessor/Unlit.o )
[ 8 of 13] Compiling TimeCompat       ( new/TimeCompat.hs, dist/build/cpphs/cpphs-tmp/TimeCompat.o )
[ 9 of 13] Compiling Language.Preprocessor.Cpphs.MacroPass ( Language/Preprocessor/Cpphs/MacroPass.hs, dist/build/cpphs/cpphs-tmp/Language/Preprocessor/Cpphs/MacroPass.o )
[10 of 13] Compiling Language.Preprocessor.Cpphs.CppIfdef ( Language/Preprocessor/Cpphs/CppIfdef.hs, dist/build/cpphs/cpphs-tmp/Language/Preprocessor/Cpphs/CppIfdef.o )

Language/Preprocessor/Cpphs/CppIfdef.hs:76:39: warning: [GHC-63394] [-Wx-partial]
    In the use of head
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
   |
76 |         cmd = if null ws then "" else head ws
   |                                       ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:77:40: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
   |
77 |         line = if null ws then [] else tail ws
   |                                        ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:78:42: warning: [GHC-63394] [-Wx-partial]
    In the use of head
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
   |
78 |         sym  = if null line then "" else head line
   |                                          ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:79:42: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
   |
79 |         rest = if null line then [] else tail line
   |                                          ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:100:45: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
100 |         "endif"  -> skipn syms False (Keep (tail ps)) xs
    |                                             ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:124:47: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
124 |                     cpp (newpos (read n) (un (tail ws)) p)
    |                                               ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:135:39: warning: [GHC-63394] [-Wx-partial]
    In the use of head
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
135 |         cmd = if null ws then "" else head ws
    |                                       ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:139:38: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
139 |         dend     | n==1      = Keep (tail ps)
    |                                      ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:140:46: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
140 |                  | otherwise = Drop (n-1) b (tail ps)
    |                                              ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:152:72: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
152 |     else if cmd == "elif"  then do v <- gatherDefined p syms (unwords (tail ws))
    |                                                                        ^^^^
[11 of 13] Compiling Language.Preprocessor.Cpphs.RunCpphs ( Language/Preprocessor/Cpphs/RunCpphs.hs, dist/build/cpphs/cpphs-tmp/Language/Preprocessor/Cpphs/RunCpphs.o )
[12 of 13] Compiling Language.Preprocessor.Cpphs ( Language/Preprocessor/Cpphs.hs, dist/build/cpphs/cpphs-tmp/Language/Preprocessor/Cpphs.o )
[13 of 13] Compiling Main             ( cpphs.hs, dist/build/cpphs/cpphs-tmp/Main.o )
[14 of 14] Linking dist/build/cpphs/cpphs
Preprocessing library for cpphs-1.20.10..
Building library for cpphs-1.20.10..
[ 1 of 12] Compiling Language.Preprocessor.Cpphs.HashDefine ( Language/Preprocessor/Cpphs/HashDefine.hs, dist/build/Language/Preprocessor/Cpphs/HashDefine.o, dist/build/Language/Preprocessor/Cpphs/HashDefine.dyn_o )
[ 2 of 12] Compiling Language.Preprocessor.Cpphs.Options ( Language/Preprocessor/Cpphs/Options.hs, dist/build/Language/Preprocessor/Cpphs/Options.o, dist/build/Language/Preprocessor/Cpphs/Options.dyn_o )

Language/Preprocessor/Cpphs/Options.hs:106:67: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
106 | rawOption ('-':'D':xs) = Just $ Macro (s, if null d then "1" else tail d)
    |                                                                   ^^^^
[ 3 of 12] Compiling Language.Preprocessor.Cpphs.Position ( Language/Preprocessor/Cpphs/Position.hs, dist/build/Language/Preprocessor/Cpphs/Position.o, dist/build/Language/Preprocessor/Cpphs/Position.dyn_o )

Language/Preprocessor/Cpphs/Position.hs:90:56: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
   |
90 |                                             ++unwords (tail (words line))
   |                                                        ^^^^
[ 4 of 12] Compiling Language.Preprocessor.Cpphs.ReadFirst ( Language/Preprocessor/Cpphs/ReadFirst.hs, dist/build/Language/Preprocessor/Cpphs/ReadFirst.o, dist/build/Language/Preprocessor/Cpphs/ReadFirst.dyn_o )
[ 5 of 12] Compiling Language.Preprocessor.Cpphs.SymTab ( Language/Preprocessor/Cpphs/SymTab.hs, dist/build/Language/Preprocessor/Cpphs/SymTab.o, dist/build/Language/Preprocessor/Cpphs/SymTab.dyn_o )

Language/Preprocessor/Cpphs/SymTab.hs:42:43: warning: [GHC-63394] [-Wx-partial]
    In the use of head
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
   |
42 |                        else (Just . snd . head) vs
   |                                           ^^^^
[ 6 of 12] Compiling Language.Preprocessor.Cpphs.Tokenise ( Language/Preprocessor/Cpphs/Tokenise.hs, dist/build/Language/Preprocessor/Cpphs/Tokenise.o, dist/build/Language/Preprocessor/Cpphs/Tokenise.dyn_o )
[ 7 of 12] Compiling Language.Preprocessor.Unlit ( Language/Preprocessor/Unlit.hs, dist/build/Language/Preprocessor/Unlit.o, dist/build/Language/Preprocessor/Unlit.dyn_o )
[ 8 of 12] Compiling TimeCompat       ( new/TimeCompat.hs, dist/build/TimeCompat.o, dist/build/TimeCompat.dyn_o )
[ 9 of 12] Compiling Language.Preprocessor.Cpphs.MacroPass ( Language/Preprocessor/Cpphs/MacroPass.hs, dist/build/Language/Preprocessor/Cpphs/MacroPass.o, dist/build/Language/Preprocessor/Cpphs/MacroPass.dyn_o )
[10 of 12] Compiling Language.Preprocessor.Cpphs.CppIfdef ( Language/Preprocessor/Cpphs/CppIfdef.hs, dist/build/Language/Preprocessor/Cpphs/CppIfdef.o, dist/build/Language/Preprocessor/Cpphs/CppIfdef.dyn_o )

Language/Preprocessor/Cpphs/CppIfdef.hs:76:39: warning: [GHC-63394] [-Wx-partial]
    In the use of head
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
   |
76 |         cmd = if null ws then "" else head ws
   |                                       ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:77:40: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
   |
77 |         line = if null ws then [] else tail ws
   |                                        ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:78:42: warning: [GHC-63394] [-Wx-partial]
    In the use of head
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
   |
78 |         sym  = if null line then "" else head line
   |                                          ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:79:42: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
   |
79 |         rest = if null line then [] else tail line
   |                                          ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:100:45: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
100 |         "endif"  -> skipn syms False (Keep (tail ps)) xs
    |                                             ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:124:47: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
124 |                     cpp (newpos (read n) (un (tail ws)) p)
    |                                               ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:135:39: warning: [GHC-63394] [-Wx-partial]
    In the use of head
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
135 |         cmd = if null ws then "" else head ws
    |                                       ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:139:38: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
139 |         dend     | n==1      = Keep (tail ps)
    |                                      ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:140:46: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
140 |                  | otherwise = Drop (n-1) b (tail ps)
    |                                              ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:152:72: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
152 |     else if cmd == "elif"  then do v <- gatherDefined p syms (unwords (tail ws))
    |                                                                        ^^^^
[11 of 12] Compiling Language.Preprocessor.Cpphs.RunCpphs ( Language/Preprocessor/Cpphs/RunCpphs.hs, dist/build/Language/Preprocessor/Cpphs/RunCpphs.o, dist/build/Language/Preprocessor/Cpphs/RunCpphs.dyn_o )
[12 of 12] Compiling Language.Preprocessor.Cpphs ( Language/Preprocessor/Cpphs.hs, dist/build/Language/Preprocessor/Cpphs.o, dist/build/Language/Preprocessor/Cpphs.dyn_o )
Preprocessing executable 'cpphs' for cpphs-1.20.10..
Preprocessing library for cpphs-1.20.10..
Running Haddock on library for cpphs-1.20.10..
Warning: --source-* options are ignored when --hyperlinked-source is enabled.
[ 1 of 12] Compiling Language.Preprocessor.Cpphs.HashDefine ( Language/Preprocessor/Cpphs/HashDefine.hs, nothing )
[ 2 of 12] Compiling Language.Preprocessor.Cpphs.Options ( Language/Preprocessor/Cpphs/Options.hs, nothing )

Language/Preprocessor/Cpphs/Options.hs:106:67: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
106 | rawOption ('-':'D':xs) = Just $ Macro (s, if null d then "1" else tail d)
    |                                                                   ^^^^
[ 3 of 12] Compiling Language.Preprocessor.Cpphs.Position ( Language/Preprocessor/Cpphs/Position.hs, nothing )

Language/Preprocessor/Cpphs/Position.hs:90:56: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
   |
90 |                                             ++unwords (tail (words line))
   |                                                        ^^^^
[ 4 of 12] Compiling Language.Preprocessor.Cpphs.ReadFirst ( Language/Preprocessor/Cpphs/ReadFirst.hs, nothing )
[ 5 of 12] Compiling Language.Preprocessor.Cpphs.SymTab ( Language/Preprocessor/Cpphs/SymTab.hs, nothing )

Language/Preprocessor/Cpphs/SymTab.hs:42:43: warning: [GHC-63394] [-Wx-partial]
    In the use of head
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
   |
42 |                        else (Just . snd . head) vs
   |                                           ^^^^
[ 6 of 12] Compiling Language.Preprocessor.Cpphs.Tokenise ( Language/Preprocessor/Cpphs/Tokenise.hs, nothing )
[ 7 of 12] Compiling Language.Preprocessor.Unlit ( Language/Preprocessor/Unlit.hs, nothing )
[ 8 of 12] Compiling TimeCompat       ( new/TimeCompat.hs, nothing )
[ 9 of 12] Compiling Language.Preprocessor.Cpphs.MacroPass ( Language/Preprocessor/Cpphs/MacroPass.hs, nothing )
[10 of 12] Compiling Language.Preprocessor.Cpphs.CppIfdef ( Language/Preprocessor/Cpphs/CppIfdef.hs, nothing )

Language/Preprocessor/Cpphs/CppIfdef.hs:76:39: warning: [GHC-63394] [-Wx-partial]
    In the use of head
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
   |
76 |         cmd = if null ws then "" else head ws
   |                                       ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:77:40: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
   |
77 |         line = if null ws then [] else tail ws
   |                                        ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:78:42: warning: [GHC-63394] [-Wx-partial]
    In the use of head
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
   |
78 |         sym  = if null line then "" else head line
   |                                          ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:79:42: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
   |
79 |         rest = if null line then [] else tail line
   |                                          ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:100:45: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
100 |         "endif"  -> skipn syms False (Keep (tail ps)) xs
    |                                             ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:124:47: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
124 |                     cpp (newpos (read n) (un (tail ws)) p)
    |                                               ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:135:39: warning: [GHC-63394] [-Wx-partial]
    In the use of head
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
135 |         cmd = if null ws then "" else head ws
    |                                       ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:139:38: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
139 |         dend     | n==1      = Keep (tail ps)
    |                                      ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:140:46: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
140 |                  | otherwise = Drop (n-1) b (tail ps)
    |                                              ^^^^

Language/Preprocessor/Cpphs/CppIfdef.hs:152:72: warning: [GHC-63394] [-Wx-partial]
    In the use of tail
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
    |
152 |     else if cmd == "elif"  then do v <- gatherDefined p syms (unwords (tail ws))
    |                                                                        ^^^^
[11 of 12] Compiling Language.Preprocessor.Cpphs.RunCpphs ( Language/Preprocessor/Cpphs/RunCpphs.hs, nothing )
[12 of 12] Compiling Language.Preprocessor.Cpphs ( Language/Preprocessor/Cpphs.hs, nothing )
Haddock coverage:
Warning: 'smart' is out of scope.
    If you qualify the identifier, haddock can try to link it anyway.
 100% (  2 /  2) in 'Language.Preprocessor.Unlit'
  86% ( 25 / 29) in 'Language.Preprocessor.Cpphs'
  Missing documentation for:
    runCpphs (Language/Preprocessor/Cpphs/RunCpphs.hs:23)
    runCpphsPass1 (Language/Preprocessor/Cpphs/RunCpphs.hs:28)
    runCpphsPass2 (Language/Preprocessor/Cpphs/RunCpphs.hs:41)
    runCpphsReturningSymTab (Language/Preprocessor/Cpphs/RunCpphs.hs:55)
Warning: Language.Preprocessor.Cpphs: could not find link destinations for: 
	- Language.Preprocessor.Cpphs.HashDefine.HashDefine
Documentation created: dist/doc/html/cpphs/, dist/doc/html/cpphs/cpphs.txt
Installing executable cpphs in /var/lib/hackage-doc-builder/build-cache/tmp-install/bin
Warning: The directory
/var/lib/hackage-doc-builder/build-cache/tmp-install/bin is not in the system
search path.
Installing library in /var/lib/hackage-doc-builder/build-cache/tmp-install/lib/x86_64-linux-ghc-9.8.4/cpphs-1.20.10-HPTLKFqOoIsGNv2YGUXjjo
Completed    cpphs-1.20.10

Test log

[view raw]

Resolving dependencies...
No tests to run for all the packages in the project