Skip to content

It's not possible to specify multiple `-with-rtsopts` flags

Motivation

Currently -with-rtsopts can only be specified once, repeat uses will clobber each other. The result of this is that it's cumbersome to, for example, conditionally specify/add RTS flags in cabal files (for example, adding additional compile time RTS options for profiling builds).

Proposal

There are two possible ways to fix this issue:

  1. Simply change -with-rtsopts to concatenate all the options from each flag
  2. Add a new flags -add-rtsopt or something along those lines which concatenates all its invocations together. This approach has several options:
    1. Extend the the last preceding -with-rtsopts with the new added options. (Confusing if a later -with-rtsopts clobbers this)
    2. Make -with-rtsopts and -add-rtsopt mutually exclusive
    3. Extend the final -with-rtsopts with these new options

Options 1 has the benefit of not adding a new flag and working as many people (anecdotally) already expect the flag to work, but could theoretically break existing uses of -with-rtsopts. Option 2.1 I think is to confusing to really consider. Option 2.2 is unambiguous, but also not very convenient. Option 2.3 plays nicely with (possible) existing uses of -with-rtsopts clobbering behaviour without making the behaviour of -add-rtsopt unnecessarily confusing.

Personally I tend towards options 1 or 2.3, but I don't have a very strong opinion on the bikeshed colour. It would be useful for people to chime in which option makes the most sense.

It's unclear if anyone is even using/relying the current behaviour of -with-rtsopts, so I'll create a comment for each option and people can thumbs up/down each option to poll opinion on the bikeshed colour.

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