Hello,
I get funny results when I call getSymbolicLinkStatus in ghc 6.8.2 on
Ubuntu 7.10. This happens on several systems and has been confirmed by
other people. Though, some people on almost the exact same system
claimed to not see it at all. Here is an interactive example with
ghci, note how the result changes from run to run. (Although not shown
below, the values do sometimes repeat, so it is not completely
random):
Prelude> System.Posix.Files.getSymbolicLinkStatus "/etc/motd" >>= print . System.Posix.Files.fileID
13165085651657739420
Prelude> System.Posix.Files.getSymbolicLinkStatus "/etc/motd" >>= print . System.Posix.Files.fileID
13165312309966851228
Prelude> System.Posix.Files.getSymbolicLinkStatus "/etc/motd" >>= print . System.Posix.Files.fileID
623410571888290073
Prelude> System.Posix.Files.getSymbolicLinkStatus "/etc/motd" >>= print . System.Posix.Files.fileID
12892261005034
If I *compile* the following (with or without optimization):
module Main where
import System.Posix.Files
main =
do getSymbolicLinkStatus "/etc/motd" >>= print . fileID
getSymbolicLinkStatus "/etc/motd" >>= print . fileID
getSymbolicLinkStatus "/etc/motd" >>= print . fileID
getSymbolicLinkStatus "/etc/motd" >>= print . fileID
Then I get all 0:
/tmp # ./test
0
0
0
0
I have tested the same code under GHC 6.6 and 6.4 and it works fine.
Additionally, getFileStatus, seems to work fine
everytime. (Unfortunately, I really need getSymbolicLinkStatus).
If anyone has a work-around or fix that I can use in the next 15
hours, that would be extremely useful ;)
Thanks in advance!
j.