That, along with your HSrts.o later, ties in with the files that change
file size except that /usr/lib/ghc-6.0/package.conf gains a "pthread" in
the rts extra libraries.

Ah yes, I overlooked that, because it doesn't happen on Mac OS X :-).


It looks like I want to make a package-threaded.conf that thinks the rts
package is 'hs_libraries = ["HSrts-threaded"],' which I install into the
same directory [...]

Something like that, I guess.


As for the .hi files... no idea why they should be different, the
configure flag absolutely positively doesn't affect how the libraries
are built - do the hi files perhaps contain a timestamp or something
else that might change on its own?

Could be - looking at one of the .a files at random (libHSposix.a) it looks like it is the timestamps of the files inside it that has changed.

FWIW the .hi differences on /usr/lib/ghc-6.0/imports/GHC/Int.hi are:
(again chosen at random) (note that these are not contiguous)

I don't see anything here.


One more thing - is there an easy way to check to see if it has worked?
I assume a Haskell program can't tell whether or not it is being run in
a threaded-rts? I have access to a dual-CPU machine so I can time things
with and without if that makes sense.

Dual-CPU doesn't help, as the threaded RTS still only runs one Haskell thread at a time (SMP is a lot harder). However,


import Foreign

foreign import ccall sleep :: Int -> IO () -- slightly wrong signature, but still works :-)

main = do
    forkIO $ sequence_ $ repeat $ putStrLn "Hello, world."
    sleep 10

If the above program prints "Hello, world." like mad for 10 seconds, it's the threaded RTS; if it prints it at most a few times and then stops for 10 seconds, it's the non-threaded RTS.


Hope that helps,


Cheers,

Wolfgang

_______________________________________________
Glasgow-haskell-users mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to