Lionel Elie Mamane <[EMAIL PROTECTED]> writes: > On Mon, Aug 22, 2005 at 08:39:26AM +0200, Kurt Roeckx wrote: >>> Changes: >>> scheme48 (1.3-4) unstable; urgency=low >>> . >>> * Don't build on 64 bit architectures (Closes: #324390) > >> Is there some reason that 64 bit architectures are not supported or >> something? > > Upstream issue. Known. Old. Same story as scsh (which is based on (and > older version of) scheme48, and inherited the issue from it). > > I never looked in detail at the deep reason why it needs special > support. Maybe it is doing similar tricks to what OCaml is doing to > have unboxed gc-friendly integers (reserving one bit of the int for > use by the gc).
Scheme48 is using a virtual machine and bit field type tags, and sadly, the assumptions on 32 bit are deeply ingrained into the whole system. Type tags for values in Scheme are important for run time type checks. Every kind of immediate value---fixnums, characters, booleans, the empty list, etc.---and also non-immediates---i.e. pointers to the real values---require a type tag, and 32 bit architectures have tight constraints on them due to the limited number of bits (the more bits you take for type tags, the less bits you have for fixnums, and worse, pointers for non-immediates). 64 bit architectures allow different optimizations in this regard, as the pointer alignment is different. The correct solution is to provide conditional support for 64 bit and 32 bit architectures. I'm not aware of any attempt to port Scheme48 to 64 bit for now. Upstream is working on a completely new native code compiler backend, which _might_ support 64 bit, but this is just speculation on my part. Since there is no intention for Scheme48 to run on 64 bit architectures, I think this is not a bug. The bug was that I tried to build it on them. Greetings, -- Jorgen -- Debian GNU/Linux Developer [EMAIL PROTECTED] http://www.forcix.cx/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]