From: Paul Eggert <eggert@cs.ucla.edu>
To: Tom Tromey <tom@tromey.com>, Stefan Monnier <monnier@IRO.UMontreal.CA>
Cc: emacs-devel@gnu.org
Subject: Re: Using the GNU GMP Library for Bignums in Emacs
Date: Tue, 10 Jul 2018 19:35:15 -0700 [thread overview]
Message-ID: <9ee4b3c6-9d87-a8e6-7e07-455da91c8966@cs.ucla.edu> (raw)
In-Reply-To: <87lgaio7xd.fsf@tromey.com>
> I read this thread and I still don't know what a use case for this would be.
Yes, I'm not seeing it either.
> it's simpler to explain that there are just integers.
Yes, and this is a significant win.
If interning bignums (so that eq works on them) is what it takes to satify
Stefan's concerns, then I'm all for interning them. The idea is to avoid
unnecessary distinctions between fixnums and bignums, so that Lisp programmers
can focus on their problems rather than worry about integer representation.
Although it's OK to have user-visible predicates fixnump and bignump for the few
programmers who really need to know, I'm not seeing use cases for why these
predicates should be any more special than characterp or natnump are.
>> why would someone want to specialize a method just for fixnums, as
>> opposed to a method for integers?
>
> cl-generic has no trouble dispatching on a supertype of that returned by
> `type-of`.
That's fine, but I was asking for use cases not implementation motivation. THat
is, I was wondering why a Lisp programmer would want to use cl-generic that way.
Having cl-generic distinguish fixnums from bignums sounds like more a solution
looking for a problem than a truly useful feature.
>> The basic operations +, -, * etc. aren't specialized for fixnums.
>
> Actually, they are, but this is done by manual type-testing in the
> C code, not with cl-defmethod.
Yes, of course: with basic operations it's done under the hood, and Lisp
programmers don't need to worry about the details. This is a reasonable
programming style for Emacs Lisp, and it'd be a good thing if this style were
used as consistently as possible, to keep things simpler.
next prev parent reply other threads:[~2018-07-11 2:35 UTC|newest]
Thread overview: 281+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-21 14:15 Using the GNU GMP Library for Bignums in Emacs Siraphob (Ben) Phipathananunth
2018-04-21 14:34 ` Eli Zaretskii
2018-04-21 15:01 ` Siraphob (Ben) Phipathananunth
2018-04-21 15:23 ` Paul Eggert
2018-04-21 15:36 ` Eli Zaretskii
2018-04-21 15:40 ` Siraphob (Ben) Phipathananunth
2018-04-21 15:54 ` Eli Zaretskii
2018-04-21 16:08 ` Paul Eggert
2018-04-26 3:17 ` Tom Tromey
2018-04-26 3:33 ` Stefan Monnier
2018-04-27 15:56 ` Richard Stallman
2018-04-27 16:08 ` Stefan Monnier
2018-04-21 22:42 ` Richard Stallman
2018-04-22 2:48 ` dancol
2018-04-22 13:00 ` Philipp Stephani
2018-04-22 17:43 ` Paul Eggert
2018-04-22 18:04 ` Daniel Colascione
2018-04-22 18:34 ` Clément Pit-Claudel
2018-04-23 3:39 ` Richard Stallman
2018-04-22 8:00 ` Siraphob (Ben) Phipathananunth
2018-04-22 9:06 ` Paul Eggert
2018-04-23 5:19 ` Helmut Eller
2018-04-23 8:39 ` Andreas Schwab
2018-04-23 14:36 ` Paul Eggert
2018-04-23 19:22 ` Helmut Eller
2018-04-23 20:26 ` Paul Eggert
2018-04-23 3:36 ` Richard Stallman
2018-04-22 12:43 ` Helmut Eller
2018-04-22 17:47 ` Paul Eggert
2018-04-23 3:39 ` Richard Stallman
2018-04-23 4:41 ` Paul Eggert
2018-04-24 2:54 ` Richard Stallman
2018-04-24 4:35 ` Paul Eggert
2018-04-24 5:45 ` Helmut Eller
2018-06-03 23:44 ` Jefferson Carpenter
2018-04-25 1:05 ` Richard Stallman
2018-04-25 1:19 ` Paul Eggert
2018-04-25 22:40 ` Richard Stallman
2018-04-25 23:29 ` Paul Eggert
2018-04-30 3:07 ` Richard Stallman
2018-04-30 5:00 ` Michael Welsh Duggan
2018-04-30 12:34 ` Stefan Monnier
2018-05-01 3:01 ` Richard Stallman
2018-04-30 7:04 ` Paul Eggert
2018-05-01 3:01 ` Richard Stallman
2018-05-01 21:45 ` Paul Eggert
2018-05-03 3:34 ` Richard Stallman
2018-05-03 5:53 ` Paul Eggert
2018-05-03 6:26 ` Helmut Eller
2018-05-03 17:49 ` Eli Zaretskii
2018-05-03 18:26 ` Paul Eggert
2018-05-04 4:26 ` Richard Stallman
2018-05-05 5:03 ` Ken Raeburn
2018-05-06 3:12 ` Richard Stallman
2018-05-07 17:24 ` Ken Raeburn
2018-05-08 1:55 ` Richard Stallman
2018-05-07 18:40 ` Andreas Schwab
2018-05-03 18:51 ` Helmut Eller
[not found] ` <83sh78o6af.fsf@gnu.org>
2018-05-03 20:30 ` Helmut Eller
2018-05-03 21:48 ` Paul Eggert
2018-05-04 4:22 ` Richard Stallman
2018-04-24 2:54 ` Richard Stallman
2018-04-23 3:03 ` Stefan Monnier
2018-07-05 21:29 ` Tom Tromey
2018-07-05 21:53 ` John Wiegley
2018-07-06 20:43 ` Tom Tromey
2018-07-06 21:00 ` Paul Eggert
2018-07-07 4:27 ` Tom Tromey
2018-07-07 4:53 ` Paul Eggert
2018-07-07 6:20 ` Tom Tromey
2018-07-07 6:38 ` Paul Eggert
2018-07-09 5:37 ` Tom Tromey
2018-07-09 16:22 ` Paul Eggert
2018-07-09 22:56 ` Tom Tromey
2018-07-09 23:02 ` Paul Eggert
2018-07-09 23:13 ` Tom Tromey
2018-07-10 4:01 ` Tom Tromey
2018-07-10 13:46 ` Tom Tromey
2018-07-08 15:59 ` Tom Tromey
2018-07-09 5:43 ` Tom Tromey
2018-07-10 4:10 ` Stefan Monnier
2018-07-07 23:43 ` Richard Stallman
2018-07-08 4:58 ` Paul Eggert
2018-07-08 22:55 ` Richard Stallman
2018-07-08 5:01 ` Tom Tromey
2018-07-08 22:55 ` Richard Stallman
2018-07-09 5:39 ` Tom Tromey
2018-07-09 20:15 ` Stefan Monnier
2018-07-09 23:25 ` Paul Eggert
2018-07-10 3:41 ` Stefan Monnier
2018-07-10 5:32 ` Helmut Eller
2018-07-10 13:54 ` Stefan Monnier
2018-07-10 16:01 ` Paul Eggert
2018-07-10 16:48 ` Helmut Eller
2018-07-10 17:45 ` Paul Eggert
2018-07-10 19:14 ` Helmut Eller
2018-07-11 1:31 ` Stefan Monnier
2018-07-11 5:59 ` Helmut Eller
2018-07-11 14:23 ` Stefan Monnier
2018-07-11 2:04 ` Tom Tromey
2018-07-11 2:36 ` Paul Eggert
2018-07-10 20:33 ` Stefan Monnier
2018-07-11 1:52 ` Tom Tromey
2018-07-11 2:35 ` Paul Eggert [this message]
2018-07-11 3:16 ` Stefan Monnier
2018-07-11 3:30 ` Paul Eggert
2018-07-11 3:42 ` Stefan Monnier
2018-07-11 22:48 ` Richard Stallman
2018-07-12 4:51 ` Tom Tromey
2018-07-12 23:35 ` Richard Stallman
2018-07-15 15:02 ` Stefan Monnier
2018-07-18 10:20 ` Paul Eggert
2018-07-18 13:17 ` Stefan Monnier
2018-07-27 21:14 ` Making 'eq' == 'eql' in bignum branch Paul Eggert
2018-07-28 14:26 ` Stefan Monnier
2018-07-29 3:34 ` Paul Eggert
2018-07-29 4:09 ` Stefan Monnier
2018-07-29 14:35 ` Eli Zaretskii
2018-07-30 17:07 ` Stefan Monnier
2018-07-30 18:49 ` Eli Zaretskii
2018-07-30 20:10 ` Stefan Monnier
2018-07-30 21:58 ` Paul Eggert
2018-07-31 2:38 ` Eli Zaretskii
2018-07-31 7:10 ` Paul Eggert
2018-07-31 16:12 ` Eli Zaretskii
2018-07-31 22:44 ` Paul Eggert
2018-08-01 5:51 ` Eli Zaretskii
2018-08-01 6:43 ` Paul Eggert
2018-08-01 8:53 ` Eli Zaretskii
2018-08-03 7:40 ` Paul Eggert
2018-08-03 7:55 ` Eli Zaretskii
2018-08-10 11:12 ` Pip Cet
2018-08-10 15:15 ` Stefan Monnier
2018-08-10 15:43 ` Pip Cet
2018-08-10 15:55 ` Stefan Monnier
2018-08-10 16:52 ` John Yates
2018-08-10 19:45 ` Eli Zaretskii
2018-08-10 20:48 ` Paul Eggert
2018-08-10 7:05 ` Elias Mårtenson
2018-08-10 8:02 ` Paul Eggert
[not found] ` <<83d0v4p1si.fsf@gnu.org>
2018-07-31 15:08 ` Drew Adams
2018-07-31 16:24 ` Eli Zaretskii
2018-07-31 22:21 ` Paul Eggert
2018-08-20 0:04 ` Stefan Monnier
2018-08-20 1:33 ` Paul Eggert
2018-08-20 15:20 ` Stefan Monnier
2018-08-20 6:35 ` Pip Cet
2018-08-20 7:05 ` Paul Eggert
2018-08-20 7:19 ` Pip Cet
2018-08-20 7:27 ` Paul Eggert
2018-08-20 8:49 ` Andy Moreton
2018-08-20 16:03 ` Paul Eggert
2018-08-20 16:41 ` Andy Moreton
2018-08-20 16:51 ` Paul Eggert
2018-08-20 16:58 ` Andy Moreton
2018-08-20 19:50 ` Pip Cet
2018-08-20 21:54 ` Andy Moreton
2018-08-21 3:38 ` Richard Stallman
2018-08-20 17:23 ` Eli Zaretskii
2018-08-20 17:35 ` Paul Eggert
2018-08-20 15:13 ` Eli Zaretskii
2018-08-20 15:26 ` Stefan Monnier
2018-08-20 16:19 ` Eli Zaretskii
2018-08-21 15:01 ` Robert Pluim
2018-08-21 19:09 ` Robert Pluim
2018-08-21 19:35 ` Paul Eggert
2018-08-22 8:26 ` Lars Ingebrigtsen
2018-08-22 13:22 ` Herring, Davis
2018-08-22 13:28 ` Lars Ingebrigtsen
2018-08-22 13:55 ` Paul Eggert
2018-08-22 20:01 ` Stefan Monnier
2018-08-23 8:13 ` Robert Pluim
2018-08-23 13:45 ` Eli Zaretskii
2018-08-23 14:48 ` Robert Pluim
2018-08-23 18:43 ` Stefan Monnier
2018-08-24 9:51 ` Robert Pluim
2018-08-25 17:59 ` Stefan Monnier
2018-08-20 16:01 ` Paul Eggert
2018-08-20 16:26 ` Eli Zaretskii
2018-08-21 3:37 ` Richard Stallman
2018-08-20 15:12 ` Eli Zaretskii
2018-08-20 15:26 ` Lars Ingebrigtsen
2018-08-20 16:18 ` Eli Zaretskii
2018-08-22 19:59 ` Stefan Monnier
2018-08-21 3:38 ` Richard Stallman
2018-08-25 23:27 ` Paul Eggert
2018-08-26 12:45 ` Tramp and fixnum (was: Making 'eq' == 'eql' in bignum branch) Michael Albinus
2018-08-26 15:34 ` Paul Eggert
2018-08-26 16:06 ` Eli Zaretskii
2018-08-26 16:44 ` Tramp and fixnum Michael Albinus
2018-08-28 4:47 ` Tramp and fixnum (was: Making 'eq' == 'eql' in bignum branch) Paul Eggert
2018-08-26 16:49 ` Tramp and fixnum Michael Albinus
2018-08-28 4:48 ` Paul Eggert
2018-08-28 11:50 ` Michael Albinus
2018-08-28 14:33 ` Michael Albinus
2018-08-28 15:18 ` Paul Eggert
2018-08-29 8:09 ` Michael Albinus
2018-08-26 16:34 ` Making 'eq' == 'eql' in bignum branch Tom Tromey
2018-08-26 16:59 ` Stefan Monnier
2018-08-26 20:19 ` Alan Mackenzie
2018-08-26 20:31 ` Stefan Monnier
2018-08-27 2:31 ` Eli Zaretskii
2018-08-27 4:45 ` Stefan Monnier
2018-08-27 5:10 ` Paul Eggert
2018-08-27 14:59 ` Eli Zaretskii
2018-08-27 15:18 ` Stefan Monnier
2018-08-27 15:37 ` Eli Zaretskii
2018-08-27 15:47 ` Stefan Monnier
2018-08-27 18:57 ` Paul Eggert
2018-08-26 20:45 ` Richard Stallman
2018-08-26 22:10 ` Clément Pit-Claudel
2018-08-27 0:23 ` Paul Eggert
2018-08-27 22:50 ` Richard Stallman
2018-08-28 1:44 ` Paul Eggert
2018-08-28 14:12 ` Tom Tromey
2018-08-28 21:30 ` Richard Stallman
2018-08-28 22:03 ` Clément Pit-Claudel
2018-08-29 22:10 ` Richard Stallman
2018-08-28 18:03 ` Clément Pit-Claudel
2018-08-29 3:53 ` Stefan Monnier
2018-08-29 18:49 ` Clément Pit-Claudel
2018-08-28 1:33 ` Lars Ingebrigtsen
2018-08-28 2:25 ` Pip Cet
2018-08-28 3:45 ` Paul Eggert
2018-08-28 7:34 ` Ken Raeburn
2018-08-28 9:11 ` Helmut Eller
2018-08-28 12:15 ` Stefan Monnier
2018-08-28 18:00 ` Clément Pit-Claudel
2018-08-28 22:57 ` Pip Cet
2018-08-29 3:42 ` Herring, Davis
2018-08-29 5:40 ` Helmut Eller
2018-08-29 13:15 ` Pip Cet
2018-08-31 19:59 ` Alan Mackenzie
2018-08-31 20:30 ` Clément Pit-Claudel
2018-08-31 21:58 ` Alan Mackenzie
2018-09-01 1:26 ` Herring, Davis
2018-08-31 21:15 ` Stefan Monnier
2018-09-01 1:05 ` Herring, Davis
2018-09-02 10:57 ` Alan Mackenzie
2018-09-04 6:14 ` Herring, Davis
2018-09-01 4:47 ` Clément Pit-Claudel
2018-08-29 3:22 ` Elias Mårtenson
2018-08-29 18:56 ` Clément Pit-Claudel
2018-08-29 19:30 ` Stefan Monnier
2018-08-31 0:09 ` Stefan Monnier
2018-09-01 2:32 ` Richard Stallman
2018-08-31 16:41 ` Paul Eggert
2018-08-28 21:25 ` Richard Stallman
2018-08-30 19:13 ` Johan Bockgård
2018-08-30 21:14 ` Clément Pit-Claudel
2018-08-30 21:35 ` Tom Tromey
2018-08-30 21:56 ` Clément Pit-Claudel
2018-08-20 15:37 ` Stefan Monnier
2018-08-20 16:23 ` Eli Zaretskii
2018-08-20 16:12 ` Paul Eggert
2018-08-20 17:21 ` Helmut Eller
2018-08-20 14:02 ` Stefan Monnier
2018-07-18 15:55 ` Using the GNU GMP Library for Bignums in Emacs Eli Zaretskii
2018-07-18 21:42 ` Paul Eggert
2018-07-22 12:06 ` Ken Raeburn
2018-07-22 16:44 ` Paul Eggert
2018-08-01 7:57 ` Paul Eggert
2018-08-01 11:59 ` Eli Zaretskii
2018-08-02 2:06 ` Paul Eggert
2018-08-02 13:49 ` Eli Zaretskii
2018-07-22 19:57 ` Achim Gratz
2018-04-21 16:46 ` Markus Triska
2018-04-21 17:09 ` Eli Zaretskii
2018-04-21 17:27 ` Markus Triska
2018-04-21 18:37 ` Paul Eggert
2018-04-21 22:42 ` Richard Stallman
2018-04-22 2:43 ` Eli Zaretskii
2018-04-23 3:34 ` Richard Stallman
2018-04-23 4:21 ` Paul Eggert
2018-04-23 13:13 ` Stefan Monnier
2018-04-24 2:54 ` Richard Stallman
2018-04-24 4:34 ` Paul Eggert
2018-04-25 1:05 ` Richard Stallman
2018-04-23 15:18 ` Eli Zaretskii
2018-04-24 18:56 ` Emanuele Santoro
2018-04-26 15:52 ` Glenn Morris
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9ee4b3c6-9d87-a8e6-7e07-455da91c8966@cs.ucla.edu \
--to=eggert@cs.ucla.edu \
--cc=emacs-devel@gnu.org \
--cc=monnier@IRO.UMontreal.CA \
--cc=tom@tromey.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.