| 2 Mar 2026 |
Alex | Works fine for me.
alex@alex-pc3 ~> nix-shell -p ghc --run fish
alex@alex-pc3 nix-shell:/t/nix-shell-1930075-2124826253> ghc -prof Hello.hs
[1 of 2] Compiling Main ( Hello.hs, Hello.o )
[2 of 2] Linking Hello
alex@alex-pc3 nix-shell:/t/nix-shell-1930075-2124826253> ./Hello -RTS -p
Hello, world!
alex@alex-pc3 nix-shell:/t/nix-shell-1930075-2124826253> cat Hello.prof
Mon Mar 2 21:25 2026 Time and Allocation Profiling Report (Final)
Hello +RTS -p -s -RTS
total time = 0.00 secs (0 ticks @ 1000 us, 1 processor)
total alloc = 49,280 bytes (excludes profiling overheads)
COST CENTRE MODULE SRC %time %alloc
MAIN MAIN <built-in> 0.0 22.7
CAF GHC.Internal.IO.Handle.FD <entire-module> 0.0 70.5
CAF GHC.Internal.IO.Encoding <entire-module> 0.0 5.0
CAF GHC.Internal.Conc.Signal <entire-module> 0.0 1.3
individual inherited
COST CENTRE MODULE SRC no. entries %time %alloc %time %alloc
MAIN MAIN <built-in> 138 0 0.0 22.7 0.0 100.0
CAF GHC.Internal.Conc.Signal <entire-module> 262 0 0.0 1.3 0.0 1.3
CAF GHC.Internal.IO.Encoding <entire-module> 208 0 0.0 5.0 0.0 5.0
CAF GHC.Internal.IO.Encoding.Iconv <entire-module> 206 0 0.0 0.4 0.0 0.4
CAF GHC.Internal.IO.Handle.FD <entire-module> 197 0 0.0 70.5 0.0 70.5
CAF Main <entire-module> 145 0 0.0 0.1 0.0 0.1
| 21:26:47 |
Alex | For reproducibility, I should also mention this:
alex@alex-pc3 ~> nixos-version
25.11.2793.89dbf01df72e (Xantusia)
| 21:28:03 |
Alex | * Works fine for me.
alex@alex-pc3 ~> nix-shell -p ghc --run fish
alex@alex-pc3 nix-shell:/t/nix-shell-1930075-2124826253> ghc -prof Hello.hs
[1 of 2] Compiling Main ( Hello.hs, Hello.o )
[2 of 2] Linking Hello
alex@alex-pc3 nix-shell:/t/nix-shell-1930075-2124826253> ./Hello +RTS -p
Hello, world!
alex@alex-pc3 nix-shell:/t/nix-shell-1930075-2124826253> cat Hello.prof
Mon Mar 2 21:25 2026 Time and Allocation Profiling Report (Final)
Hello +RTS -p -RTS
total time = 0.00 secs (0 ticks @ 1000 us, 1 processor)
total alloc = 49,280 bytes (excludes profiling overheads)
COST CENTRE MODULE SRC %time %alloc
MAIN MAIN <built-in> 0.0 22.7
CAF GHC.Internal.IO.Handle.FD <entire-module> 0.0 70.5
CAF GHC.Internal.IO.Encoding <entire-module> 0.0 5.0
CAF GHC.Internal.Conc.Signal <entire-module> 0.0 1.3
individual inherited
COST CENTRE MODULE SRC no. entries %time %alloc %time %alloc
MAIN MAIN <built-in> 138 0 0.0 22.7 0.0 100.0
CAF GHC.Internal.Conc.Signal <entire-module> 262 0 0.0 1.3 0.0 1.3
CAF GHC.Internal.IO.Encoding <entire-module> 208 0 0.0 5.0 0.0 5.0
CAF GHC.Internal.IO.Encoding.Iconv <entire-module> 206 0 0.0 0.4 0.0 0.4
CAF GHC.Internal.IO.Handle.FD <entire-module> 197 0 0.0 70.5 0.0 70.5
CAF Main <entire-module> 145 0 0.0 0.1 0.0 0.1
| 21:29:28 |
| 3 Mar 2026 |
iclanzan | I figured it out. I am using TemplateHaskell and for that to work with -prof I needed to add -fexternal-interpreter. GHC’s error message indicated that as a possible solution but I didn’t explore it. 🤦 | 01:34:03 |
| 4 Mar 2026 |
sterni | in this case updating should help recent versions of nixpkgs build cabal2nix against Cabal 3.14 | 21:21:58 |