returning to cost of Integer
Bulat Ziganshin
bulat.ziganshin at gmail.com
Wed Aug 2 18:12:15 EDT 2006
Hello John,
Thursday, August 3, 2006, 1:25:45 AM, you wrote:
>> evaluated. If the contents of the constructor itself can be packed into
>> the other 30 bits, then there's no need for a pointer at all. For
>> enumerated types, you can use all 31 bits for the tag, since only 1 bit is
>> required to indicate evaluated/unevaluated and no pointer is needed.
> Not just for enumerated types, but for any constructors that don't have
> any components (independent of other constructors). as in 'Nothing' from
> Maybe could be represented this way.
the main condition is to use some special Int30# type instead of Int#
(which we got used to be 32 bits long). i.e. for the type [Char},
where Char= C# Int30# it will be ok, but for [Int] it will be bad
(i know about Haskell standard, but how many programs relies on 32-bit
Ints?)
--
Best regards,
Bulat mailto:Bulat.Ziganshin at gmail.com
More information about the Glasgow-haskell-users
mailing list