Allow programs to change the number of capabilities
It would be useful for a program to choose the number of capabilities it has, perhaps in response to a flag. i.e. I'd like users to type
hlint -j3 rather than
hlint +RTS -N3.
To support this change one option would be to allow increasing the number of capabilities after a program has started. Another option would be to provide a primitive
restartWithCapabilities :: Int -> IO () that aborted the program, and restarted
main but with the required settings.
Using RTS flags is unsuitable for people who use Haskell programs but aren't really Haskell developers. As more programs go multi-core, this feature will probably become more desirable. However, it's not too important and can always be solved by a little shell script.