[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Using the GNU GMP Library for Bignums in Emacs
From: |
Tom Tromey |
Subject: |
Re: Using the GNU GMP Library for Bignums in Emacs |
Date: |
Thu, 05 Jul 2018 15:29:17 -0600 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1.50 (gnu/linux) |
>>>>> "Stefan" == Stefan Monnier <address@hidden> writes:
Stefan> There are several steps to adding GMP support. Some of those steps
Stefan> might involve non-trivial decisions. But the first few steps should be
Stefan> straightforward enough:
Stefan> A- add a new "bignum" type
Stefan> B- add new operations on them (this might be enough to start using them
in Calc)
Stefan> C- add support for bignums to some of the pre-existing functions (e.g.
+)
Stefan> D- add support for bignums to more of the pre-existing functions
Stefan> E- add support for bignums "everywhere" where numbers are usually
allowed.
Stefan> Anything before D/E should be fairly straightforward.
Stefan> I consider "support for read&print" to fall somewhere in D or maybe E.
I've got some of this working.
I've added configury for GMP and added a new bignum type.
I've made some operations work -- comparisons, abs, float. I haven't
made arith_driver bignum-aware yet, so no "+", "-", etc. This doesn't
look too hard.
Some part of "format" work but I haven't tried to handle all the cases
discussed in this thread.
A few things need to be discussed.
1. Should the C core change the names of things like NUMBERP to FIXNUMP?
Similarly should make_number -> make_fixnum?
I could do this with sed I suppose. In the meantime I've tweaked the
necessary spots in a somewhat ugly way.
2. What is (type-of 5)? Right now 'integer, but arguably perhaps
'fixnum is correct. Gerd's branch did this.
3. Should intbig_to_lisp et al be converted to use bignums?
I'm inclined to say no, for compatibility.
4. Should it be possible to make a "low-valued bignum"? For testing I
have a make-bignum function that turns a fixnum into a like-valued
bignum. However, maybe this should just not be possible. (And most
likely make-bignum should just be deleted before merging any of
this.)
I've pushed this to my github but I could push it to a branch on
savannah if that's useful. I don't know the current branch naming
convention, so I'd need guidance there.
Tom
- Re: Using the GNU GMP Library for Bignums in Emacs,
Tom Tromey <=
- Re: Using the GNU GMP Library for Bignums in Emacs, John Wiegley, 2018/07/05
- Re: Using the GNU GMP Library for Bignums in Emacs, Tom Tromey, 2018/07/06
- Re: Using the GNU GMP Library for Bignums in Emacs, Paul Eggert, 2018/07/06
- Re: Using the GNU GMP Library for Bignums in Emacs, Tom Tromey, 2018/07/07
- Re: Using the GNU GMP Library for Bignums in Emacs, Paul Eggert, 2018/07/07
- Re: Using the GNU GMP Library for Bignums in Emacs, Tom Tromey, 2018/07/07
- Re: Using the GNU GMP Library for Bignums in Emacs, Paul Eggert, 2018/07/07
- Re: Using the GNU GMP Library for Bignums in Emacs, Tom Tromey, 2018/07/09
- Re: Using the GNU GMP Library for Bignums in Emacs, Paul Eggert, 2018/07/09
- Re: Using the GNU GMP Library for Bignums in Emacs, Tom Tromey, 2018/07/09