ghc-events icon indicating copy to clipboard operation
ghc-events copied to clipboard

Assertion failure but nobody notices because assertions are off by default

Open nh2 opened this issue 8 months ago • 2 comments

I'm building ghc-events as part of static-haskell-nix's CI, where sometimes I build with -O0.

An assertion appears:

test-versions: Assertion failed
CallStack (from HasCallStack):
  assert, called at src/GHC/RTS/Events/Binary.hs:822:5 in ghc-events-0.19.0.1-863kLHKqkAq5pQOjpORL0w:GHC.RTS.Events.Binary

That's this one:

https://github.com/haskell/ghc-events/blob/2168f610bf3580a3a4dca7b0582c6384d5433413/src/GHC/RTS/Events/Binary.hs#L822-L830

I tested also with stack test on a stack.yaml with this config:

resolver:
  url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/22/25.yaml
packages:
- .

As documented in assert, it's disabled on -O, which cabal enables by default.

So probably nobody noticed that.

I recommend setting either

  ghc-options:      -Wall -fno-ignore-asserts

if assertions should be used in code, or not using assert.

nh2 avatar Jun 15 '24 21:06 nh2