Skip to content

Eliminate eventlog way?

I have recently started to question the value of having the eventlog as a configurable option. It's an incredibly useful tool with little to no cost and the observability that is enables is something that is increasingly expected by users.

In general I wonder whether it wouldn't be best to :

  • drop the _l RTS ways, and
  • enable TRACING in the remaining ways
  • deprecate the -eventlog compiler flag

This would bring a few benefits:

  • users wouldn't need to opt-in to eventlogging
  • binary distributions get a bit smaller
  • we can drop a bit of build system complexity

The only cost is that all Haskell executables get larger by around 400kB:

-rw-r--r-- 1 ben users 6.2M Nov 12 09:55 _build/stage1/rts/build/libHSrts-1.0.a
-rw-r--r-- 1 ben users 6.6M Nov 12 09:55 _build/stage1/rts/build/libHSrts-1.0_l.a

-rwxr-xr-x 1 ben users 3.5M Nov 12 09:55 _build/stage1/rts/build/libHSrts-1.0-ghc9.1.0.20201111.so
-rwxr-xr-x 1 ben users 3.9M Nov 12 09:55 _build/stage1/rts/build/libHSrts-1.0_l-ghc9.1.0.20201111.so

In the age of terabytes of storage, this seems like a reasonable trade-off.

Thoughts?

Edited by Ben Gamari
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information