Improving the Int/Word story inside GHC

Johan Tibell johan.tibell at gmail.com
Thu Aug 7 11:21:09 UTC 2014


Simon M, is the intention of ByteOff and WordOff that they should be able
to represent negative quantities as well? If so we might need to split it
into ByteOff (still an Int) and ByteIndex (a Word) to have a type for
indexing into arrays.


On Thu, Aug 7, 2014 at 1:16 PM, Edward Z. Yang <ezyang at mit.edu> wrote:

> If it's strictly just in the codegen (and not affecting user code),
> seems fine to me.
>
> Edward
>
> Excerpts from Johan Tibell's message of 2014-08-07 12:10:37 +0100:
> > 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/826476cb/attachment.html>


More information about the ghc-devs mailing list