CLISP on 64-bit platforms has a puny 32-bit fixnums:
(integer-length most-positive-fixnum)
==> 32
this is very unfortunate: some application can start
consing unexpectedly.
even leaving a generous 16 bits for TYPECODES,
we still should be able to get 48-bit fixnums!
Logged In: YES
user_id=5923
Fixnums larger than 2^31 are extremely rare. Evidence is:
- Many Lisps work with 29-bit fixnums.
- During 6 years of application programming, so far I have
needed 64-bit integers only once (when doing Bresenham of
points with 32-bit coordinates).
Hundreds of code lines on clisp assume a fixnum's value fits in
an uint32. It's not worth doing huge changes for a gain that is
nearly nil.
Logged In: YES
user_id=5735
Yes, large fixnums are rare,
but this is not a good reason
not to be better than the others.
Besides, it appears that the 64-bit CMUCL will have
60+ bit fixnums.
New applications bring new challenges, see
<http://article.gmane.org/gmane.lisp.clisp.general:8716>
<http://article.gmane.org/gmane.lisp.clisp.general:8724>.
48 bit fixnums would be very welcome there.
IIUC, fixnum is assumed to fit into intL, which should be
redefined to be int64 on 64-bit architecture.
Remember Bill Gates "640kB should be enough for everyone"?
Let us not repeat this!
Logged In: YES
user_id=5735
<http://article.gmane.org/gmane.lisp.clisp.general:8731>:
"a 64-bit lisp on a 64-bit machine would presumably
have fixnum that are close to 60 bits in length"
Logged In: YES
user_id=5735
the next stage of the project I work on
will involve drastically larger datasets.
I will need to create huge sparce matrices.
it would be nice if accessing it did not cons
a new bignum for each index.
the matrix _is_ larger than 2^32x2^32!
Logged In: YES
user_id=5735
Thanks for the suggestion - it has been just implemented and
checked into the CVS repository, and will be available in the next
release.
If you cannot wait for the next release, you can get the latest
development sources from the CVS and compile them yourself.
Please be aware that the development sources are not stable and
might not even compile on your machine.
You should report any problems you encounter with the CVS sources
to the <clisp-devel> mailing list, not to the <clisp-list>.
If you use the CVS sources, you should read <clisp-devel>
since the CVS log goes there.