0

I understand from here that to use ThreadScope I need to compile with an eventlog and rtsoptions, eg "-rtsopts -eventlog -threaded"

I am using Stack, so my compilation call looks like:

$ stack ghc -- -O2 -funfolding-use-threshold=16 -optc-O3 -rtsopts -eventlog -threaded mycoolprogram.hs

Whereas normally, I do:

$ stack ghc -- -O2 -funfolding-use-threshold=16 -optc-O3 -threaded mycoolprogram.hs

This compiles fine. However, my program takes 2 and only 2 positional arguments:

./mycoolprogram arg1 arg2

I'm trying to add the RTS options +RTS -N2 -l, like so:

./mycoolprogram arg1 arg2 -- +RTS -N2 -l 

Or

./mycoolprogram +RTS -N2 -l -- arg1 arg2

How can I simultaneously run my program with arguments going into System.Environment.getArgs (like eg here) and also include these profiling flags?

Community
  • 1
  • 1
Mittenchops
  • 18,633
  • 33
  • 128
  • 246
  • `./mycoolprogram arg1 arg2 +RTS -N2 -l ` or `./mycoolprogram +RTS -N2 -l -RTS arg1 arg2` should work. – sjakobi Jan 29 '17 at 00:46

1 Answers1

2

As @sjakobi said you can use the +RTS ... -RTS other arguments or other arguments +RTS ... forms but there is also the option to pass them in an environment variable GHCRTS:

GHCRTS='-N2 -l' ./mycoolprogram arg1 arg2

Lost of more info is available in the GHC users guide.

ase
  • 13,231
  • 4
  • 34
  • 46