On Wed, Aug 11, 2010 at 3:41 AM, Juan Jose Garcia-Ripoll <juanjose.garciarip...@googlemail.com> wrote: > Hi Gabriel, > > ECL just needs an integer type that fits a pointer. That type is used > for defining cl_fixnum / cl_index, and in various places you will find > conversions to and from cl_object. In the LLP model, which I did not > know of until now (*), both "int" and "long" are 32-bit and pointers > are 64-bits,
Yes. > which means they can not be used to implement cl_fixnum / > cl_integer. Thanks. I knew for cl_fixnum by going through src/aclocal.m4 and src/h/config.h.in, but I failed to notice that cl_integer has the same issue. Thanks! > If you find time, ECL's autoconf may be fixed to add that > additional type to the list of candidates for cl_fixnum / cl_integer. I did try last night to get ECL use intptr_t, when available, for cl_fixnum. That discovered some overflow arithmetics in the C code. I was too tired to investigate it. I'm on vacation with my family and I am supposed to be away from computing devices, so I will do that when everybody is sleeping. > > Juanjo > > (*) From a lot of code out there I gave for granted that "long" must > be long enough to fit a pointer, which is why ECL's autoconf just uses > "int" and "long" as candidates for cl_fixnum. This is probably a too > old assumption, but I fail to see the utility of the LLP model given > that :-/ I wondered the same. My speculative conclusion was that maybe that is needed for having LP32 binaries run on LLP64 without change. -- Gaby ------------------------------------------------------------------------------ This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev _______________________________________________ Ecls-list mailing list Ecls-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ecls-list