Hello People,
The -hD profile on ghc-2.02 seems to break the hp2ps. The other
profiles seem to work. I suspect it is because somewhere (on line 14)
the words "FOREIGN OBJ" are outputted instead of "ForeignObj", because
if I hack the former with the latter it seems to work.
Details follow,
Cheerio,
Jon
----------------------------------------------------------------------
The Error:
----------
hp2ps-2.02 a.out.hp
hp2ps-2.02: a.out.hp, line 14: integer must follow identifier
The Program:
------------
> module Main where
> import System
> main = getArgs >>= \[x] ->
> foo (read x)
> foo :: Int -> IO ()
> foo x = do
> putStr "A"
> if x > 0 then foo (x-1) else putStr "Fin"
Compiled and Run (Solaris)
-------------------------
ghc-2.02 -prof Main.lhs
a.out 10000 +RTS -hD
hp2ps-2.02 a.out.hp
a.out.hp
--------
JOB "a.out +RTS -hD -i1.00 -RTS 10000"
DATE "Thu Apr 3 14:59 1997"
SAMPLE_UNIT "seconds"
VALUE_UNIT "bytes"
BEGIN_SAMPLE 0.00
END_SAMPLE 0.00
BEGIN_SAMPLE 1.00
ForeignObj 8
<STBase.ds_s4ON> 8
<Main.ds_s1oL> 8
<PrelBase.m./=_s1rPG> 8
<PrelRead.stg_c1cNB> 8
<STBase.ds_s4NQ> 8
FOREIGN OBJ 20
: 444
Right 8
I# 24
<IOBase.stg_cxG8> 12
PAP 52
WriteHandle 16
C# 288
MutableArray 12
Just 8
<System.stg_ccy3> 8
<IOHandle.stg_c1f84> 8
<Main.ds_s1ni> 12
<Foreign.stg_c6V2> 12
<STBase.ds_s4Or> 8
PTR-ARRAY(mut) 16
<PrelBase.m.==_s1rNU> 8
(,) 12
<Main.ds_s1nt> 8
<IOHandle.fail_s1aVo> 12
<STBase.stg_c5cS> 8
(,,) 16
<STBase.stg_c5cK> 12
END_SAMPLE 1.00
BEGIN_SAMPLE 1.40
END_SAMPLE 1.40