>>>> "Hrvoje" == Hrvoje Niksic
<hniksic(a)srce.hr> writes:
Hrvoje> SL Baur <steve(a)xemacs.org> writes:
> Hrvoje Niksic <hniksic(a)srce.hr> writes in
xemacs-beta(a)xemacs.org:
>
> > I'm surprised that you all seem to miss it, but bignums cannot be
> > added as a module, because they require additional support in the Lisp
> > engine, as well as changes all over XEmacs.
>
> We're not talking about bignum support as it exists in CL. We're only
> talking about how large integers can be supported period.[1]
Hrvoje> I don't understand this distinction. Obviously, 31(63)-bit integers
Hrvoje> are the most we can do with the fixnums. To support larger numbers,
Hrvoje> we need a) a library of routines to deal with the numbers, and b) the
Hrvoje> changes in Emacs Lisp to support them.
There are two basic approaches to supporting bignums in Elisp:
a) Add them as another datatype comletely separate from Elisp fixnums,
with explicit coercions back and forth.
This, I believe, is possible with minimal changes to the Elisp
machine, even though it's still a sufficiently hairy job, 'cause
you need to interface with the garbage collector in a suitable way.
b) Unify fixnums and bignums so that the difference is no longer
visible from Elisp, i.e. with automatic conversions back and forth
and so on.
This is a much more involved change, because all arithmetic
operations need to be changed, parsing/unparsing of literals needs
to be reimplemented and so on and on.
This (hate to say it ...) may be better left to a new Lisp engine.
On the other hand, (a) may be entirely sufficient to implement crypto
stuff.
--
Cheers =8-} Chipsy
Friede, Völkerverständigung und überhaupt blabla