Improving the Int/Word story inside GHC

Johan Tibell johan.tibell at gmail.com
Thu Aug 7 11:10:37 UTC 2014


Inside GHC we mostly use Int instead of Word, even when we want to
represent non-negative values, such as sizes of things or indices into
things. This is now causing some grief in
https://ghc.haskell.org/trac/ghc/ticket/9416, where an allocation boundary
case test fails with a segfault because a n < m Int comparison overflows.

I tried to fix the issue by changing the type of maxInlineAllocSize, which
is used on one side of the above comparison, to Word. However, that
unravels a bunch of other issues, such as wordsToBytes, ByteOff, etc are
all Int-valued quantities.

I could perhaps work around these problems by judicious use of fromIntegral
in StgCmmPrim, but I'm a bit unhappy about it because it 1) makes the code
uglier and 2) needs to be done in quite a few places.

How much work would it be to try to switch the codegen to use Word for most
of these quantities instead?

-- Johan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20140807/4c1150fc/attachment.html>


More information about the ghc-devs mailing list