Skip to content

CPP definitions from .cabal file not picked up (again) #75

@christiaanb

Description

@christiaanb

I have some doctest that looks like this:

#if __GLASGOW_HASKELL__ >= 908 && !defined(CLASH_MULTIPLE_HIDDEN)
>>> :t readNew (blockRam (0 :> 1 :> Nil))
readNew (blockRam (0 :> 1 :> Nil))
  :: ...
     ...
     ... =>
     Signal dom addr -> Signal dom (Maybe (addr, a)) -> Signal dom a

#else
>>> :t readNew (blockRam (0 :> 1 :> Nil))
readNew (blockRam (0 :> 1 :> Nil))
  :: ...
     ...
     ...
     ...
     ... =>
     Signal dom addr -> Signal dom (Maybe (addr, a)) -> Signal dom a

#endif

which fails with:

[ERROR  ] [ThreadId 668] /home/christiaan/devel/clash-compiler/clash-prelude/src/Clash/Prelude/BlockRam.hs:842: failure in expression `:t readNew (blockRam (0 :> 1 :> Nil))'
[ERROR  ] [ThreadId 668] expected: readNew (blockRam (0 :> 1 :> Nil))
[ERROR  ] [ThreadId 668]             :: ...
[ERROR  ] [ThreadId 668]                ...
[ERROR  ] [ThreadId 668]                ... =>
[ERROR  ] [ThreadId 668]                Signal dom addr -> Signal dom (Maybe (addr, a)) -> Signal dom a
[ERROR  ] [ThreadId 668]  but got: readNew (blockRam (0 :> 1 :> Nil))
[ERROR  ] [ThreadId 668]             :: (KnownDomain dom, Eq addr,
[ERROR  ] [ThreadId 668]                 Hidden (AppendSymbol dom "_clk") (Clock dom),
[ERROR  ] [ThreadId 668]                 Hidden (AppendSymbol dom "_rst") (Reset dom),
[ERROR  ] [ThreadId 668]                        ^
[ERROR  ] [ThreadId 668]                 Hidden (AppendSymbol dom "_en") (Enable dom), Enum addr, NFDataX a,
[ERROR  ] [ThreadId 668]                 NFDataX addr, Num a) =>
[ERROR  ] [ThreadId 668]                Signal dom addr -> Signal dom (Maybe (addr, a)) -> Signal dom a

because CLASH_MULTIPLE_HIDDEN is not defined when doctests are run.

I would've reoponed #71 but I don't have permissions

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions