unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Andy Moreton <andrewjmoreton@gmail.com>
To: emacs-devel@gnu.org
Subject: Re: bignum branch
Date: Fri, 03 Aug 2018 11:07:06 +0100	[thread overview]
Message-ID: <8636vv7ohh.fsf@gmail.com> (raw)
In-Reply-To: 831sbfvl11.fsf@gnu.org

On Fri 03 Aug 2018, Eli Zaretskii wrote:

>> From: Andy Moreton <andrewjmoreton@gmail.com>
>> Date: Fri, 03 Aug 2018 10:01:59 +0100
>> 
>> > I believe your changes also cover the 32-bit MinGW build with wide ints.
>> 
>> I expect so, but the build fails for 32bit MinGW builds on bignum branch
>> with gettimeofday problems. I have a feeling that this has already been
>> fixed on the master branch some time ago.
>
> Could be, but can you show the error messages?

On the bignum ranch for 32bit MinGW I get:

make -C lib all
make[1]: Entering directory `/c/emacs/git/emacs/bignum/build/mingw32/lib'
  CC       gettimeofday.o
In file included from c:/emacs/git/emacs/bignum/lib/gettimeofday.c:23:0:
c:/emacs/git/emacs/bignum/nt/inc/sys/time.h:11:19: error: field 'it_interval' has incomplete type
   struct  timeval it_interval; /* timer interval */
                   ^~~~~~~~~~~
c:/emacs/git/emacs/bignum/nt/inc/sys/time.h:12:19: error: field 'it_value' has incomplete type
   struct  timeval it_value; /* current value */
                   ^~~~~~~~
c:/emacs/git/emacs/bignum/lib/gettimeofday.c:64:1: error: conflicting types for 'gettimeofday'
 gettimeofday (struct timeval *restrict tv, void *restrict tz)
 ^~~~~~~~~~~~
In file included from c:/emacs/git/emacs/bignum/nt/inc/sys/time.h:4:0,
                 from c:/emacs/git/emacs/bignum/lib/gettimeofday.c:23:
c:\mingw\include\sys\time.h:108:29: note: previous declaration of 'gettimeofday' was here
 int __cdecl __MINGW_NOTHROW gettimeofday
                             ^~~~~~~~~~~~
c:/emacs/git/emacs/bignum/lib/gettimeofday.c: In function 'gettimeofday':
c:/emacs/git/emacs/bignum/lib/gettimeofday.c:100:5: error: dereferencing pointer to incomplete type 'struct timeval'
   tv->tv_sec = microseconds_since_1970 / (ULONGLONG) 1000000;
     ^~
make[1]: *** [gettimeofday.o] Error 1
make[1]: Leaving directory `/c/emacs/git/emacs/bignum/build/mingw32/lib'
make: *** [lib] Error 2


>> > Can you tell what is the following hunk about?
>> >
>> >> @@ -3414,7 +3473,7 @@ Markers are converted to integers.  */)
>> >>    else
>> >>      {
>> >>        eassume (FIXNUMP (number));
>> >> -      if (XINT (number) > MOST_POSITIVE_FIXNUM)
>> >> +      if (XINT (number) > MOST_NEGATIVE_FIXNUM)
>> >>  	XSETINT (number, XINT (number) - 1);
>> >>        else
>> >>  	{
>> 
>> The updated Fadd1 checks if the old value is MOST_POSITIVE_FIXNUM before
>> incrementing, as that would need a bignum result.
>> 
>> This hunk in Fsub1 should check if the old value is MOST_NEGATIVE_FIXNUM
>> before decrementing, as that would need a bignum result.
>
> So the previous code in Fsub1 had a bug?

The code on master is fine, but there was a bug in the conversion to
bignums. It looks like the code in Fsub1 was copy-pasted from Fadd1
but not all of the differences got fixed up.

>
>> > Also, this:
>> >
>> >> +(defun ccl-fixnum (code)
>> >> +  "Convert a CCL code word to a fixnum value."
>> >> +  (- (logxor (logand code #x0fffffff) #x08000000) #x08000000))
>> 
>> The CCL compiled codewords are 28bits, but the CCL implementation
>> assumes that the codewords are sign-extended, so that data constants in
>> the upper part of the codeword are signed. This function truncates a
>> codeword to 28bits, and then sign extends the result to a fixnum.
>> 
>> This ensures that the CCL compiler output is the same on master and
>> bignum branches.
>
> Yes, I know.  I was asking for a comment to that effect, so that
> others won't wonder what this is about.

I'll update the patch to add a comment.

    AndyM




  reply	other threads:[~2018-08-03 10:07 UTC|newest]

Thread overview: 205+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-13  4:26 bignum branch Tom Tromey
2018-07-13  7:38 ` Eli Zaretskii
2018-07-13  8:45 ` Robert Pluim
2018-07-13  9:51   ` Robert Pluim
2018-07-13 11:59     ` Eli Zaretskii
2018-07-13 13:31       ` Robert Pluim
2018-07-13 18:06         ` Tom Tromey
2018-07-13 12:04     ` Eli Zaretskii
2018-07-13 12:14       ` Eli Zaretskii
2018-07-13 13:02         ` Robert Pluim
2018-07-13 13:50           ` Eli Zaretskii
2018-07-15 16:29             ` Andy Moreton
2018-07-17 18:10               ` Robert Pluim
2018-07-17 18:24                 ` Eli Zaretskii
2018-07-17 19:06                   ` Eli Zaretskii
2018-07-17 20:00                   ` Robert Pluim
2018-07-17 21:17                     ` Clément Pit-Claudel
2018-07-18  1:01                       ` Stefan Monnier
2018-07-18  9:28                 ` Andy Moreton
2018-07-18 13:21                   ` Robert Pluim
2018-07-18 13:32                     ` Stefan Monnier
2018-07-18 16:01                     ` Eli Zaretskii
2018-07-18 16:21                       ` Robert Pluim
2018-07-18 16:47                         ` Eli Zaretskii
2018-07-13 12:34       ` Robert Pluim
2018-07-13 14:28 ` Andy Moreton
2018-07-13 14:42   ` Eli Zaretskii
2018-07-13 14:53     ` Andy Moreton
2018-07-13 15:03       ` Eli Zaretskii
2018-07-13 15:30   ` Andy Moreton
2018-07-13 19:35     ` Andy Moreton
2018-07-14 16:20       ` Eli Zaretskii
2018-07-14 20:04         ` Andy Moreton
2018-07-15 13:46           ` Tom Tromey
2018-07-15 15:01             ` Eli Zaretskii
2018-07-16 12:19               ` Stefan Monnier
2018-07-16 14:40                 ` Eli Zaretskii
2018-07-16 16:09                   ` Stefan Monnier
2018-07-16 18:06                     ` Eli Zaretskii
2018-07-16 18:32                       ` Stefan Monnier
2018-07-16 18:42                         ` Eli Zaretskii
2018-07-16 14:35             ` Tom Tromey
2018-07-16 22:28               ` Andy Moreton
2018-07-21 15:35                 ` Andy Moreton
2018-07-22 16:43                   ` Tom Tromey
2018-07-22 17:41                     ` Andy Moreton
2018-08-03  0:43                       ` Andy Moreton
2018-08-03  6:23                         ` Eli Zaretskii
2018-08-03  9:01                           ` Andy Moreton
2018-08-03  9:47                             ` Eli Zaretskii
2018-08-03 10:07                               ` Andy Moreton [this message]
2018-08-03 13:16                                 ` Eli Zaretskii
2018-08-03 14:05                                   ` Andy Moreton
2018-08-03 17:44                                     ` Eli Zaretskii
2018-08-03 19:54                                       ` Andy Moreton
2018-08-04  6:11                                         ` Eli Zaretskii
2018-08-04 11:14                                           ` Andy Moreton
2018-08-04 11:29                                             ` Eli Zaretskii
2018-08-03 20:17                                       ` Tom Tromey
2018-08-03 21:02                                         ` Paul Eggert
2018-08-03 21:19                                           ` Tom Tromey
2018-08-04  1:22                                             ` Paul Eggert
2018-08-04  6:18                                               ` Eli Zaretskii
2018-08-04 10:49                                                 ` Achim Gratz
2018-08-04 11:07                                                   ` Eli Zaretskii
2018-08-04 10:43                                             ` Achim Gratz
2018-08-04 16:33                                               ` Tom Tromey
2018-08-04 18:28                                                 ` Achim Gratz
2018-08-04  6:20                                           ` Eli Zaretskii
2018-08-04 11:17                                         ` Andy Moreton
2018-08-04 16:41                                           ` Tom Tromey
2018-08-06 10:18                                             ` Robert Pluim
2018-08-07  0:36                                           ` Tom Tromey
2018-08-07  8:38                                             ` Andy Moreton
2018-08-08  0:25                                               ` Tom Tromey
2018-08-04 17:10                                         ` Tom Tromey
2018-08-03 17:30                           ` Tom Tromey
2018-08-03 19:16                             ` Andy Moreton
2018-08-04  6:07                               ` Eli Zaretskii
2018-08-05 11:36                                 ` Andy Moreton
2018-08-05 15:18                                   ` Eli Zaretskii
2018-08-06 18:12                                     ` Andy Moreton
2018-08-07  0:41                                       ` Tom Tromey
2018-08-07  2:03                                         ` Paul Eggert
2018-08-07  3:59                                           ` Tom Tromey
2018-08-07  4:02                                             ` Tom Tromey
2018-08-07 11:22                                             ` Andy Moreton
2018-08-07 16:53                                             ` Paul Eggert
2018-08-07 17:12                                               ` Eli Zaretskii
2018-08-07 17:52                                                 ` Paul Eggert
2018-08-08  0:23                                                   ` Tom Tromey
2018-08-07 11:17                                         ` Andy Moreton
2018-08-08  0:26                                           ` Tom Tromey
2018-08-08 14:24                                             ` Andy Moreton
2018-08-08 16:35                                         ` Andy Moreton
2018-08-08 23:14                                           ` Tom Tromey
2018-08-09  2:33                                             ` Eli Zaretskii
2018-08-09  7:59                                               ` Michael Albinus
2018-08-09 13:01                                                 ` Eli Zaretskii
2018-08-09 17:31                                                   ` Paul Eggert
2018-08-09 18:32                                                     ` Eli Zaretskii
2018-08-09 19:22                                                     ` Stefan Monnier
2018-08-09 16:34                                               ` Tom Tromey
2018-08-09 18:28                                                 ` Eli Zaretskii
2018-08-09 19:30                                                 ` Tom Tromey
2018-08-08 23:37                                           ` Tom Tromey
2018-08-09  0:07                                             ` Andy Moreton
2018-08-09  2:03                                               ` Tom Tromey
2018-08-09  9:19                                                 ` Andy Moreton
2018-08-09 20:49                                                 ` Andy Moreton
2018-08-10  5:45                                                   ` Eli Zaretskii
2018-08-10  7:43                                                     ` Andy Moreton
2018-08-10  7:59                                                       ` Paul Eggert
2018-08-10  9:48                                                         ` Eli Zaretskii
2018-08-10 20:58                                                           ` Paul Eggert
2018-08-11  7:08                                                             ` Eli Zaretskii
2018-08-11  8:02                                                               ` Paul Eggert
2018-08-11 10:50                                                                 ` Eli Zaretskii
2018-08-11 12:57                                                                   ` Stefan Monnier
2018-08-11 19:38                                                                   ` Paul Eggert
2018-08-10 11:18                                                         ` Andy Moreton
2018-08-10 11:56                                                           ` Andreas Schwab
2018-08-10 12:25                                                             ` Eli Zaretskii
2018-08-10 12:27                                                             ` Andy Moreton
2018-08-10 18:37                                                               ` Achim Gratz
2018-08-10 12:26                                                           ` Eli Zaretskii
2018-08-10 12:46                                                             ` Andy Moreton
2018-08-10  9:46                                                       ` Eli Zaretskii
2018-08-10 11:39                                                         ` Andy Moreton
2018-08-10 12:33                                                           ` Eli Zaretskii
2018-08-10 14:05                                                             ` Andy Moreton
2018-08-10 19:57                                                               ` Eli Zaretskii
2018-08-11 15:21                                                                 ` Andy Moreton
2018-08-11 15:25                                                                   ` Tom Tromey
2018-08-11 16:04                                                                     ` Eli Zaretskii
2018-08-11 16:16                                                                   ` Eli Zaretskii
2018-08-11 16:54                                                                     ` Andy Moreton
2018-08-11 17:34                                                                       ` Eli Zaretskii
2018-08-11 17:56                                                                         ` Andy Moreton
2018-08-11 18:10                                                                           ` Eli Zaretskii
2018-08-11 18:15                                                                             ` Andy Moreton
2018-08-11 19:08                                                                               ` Eli Zaretskii
2018-08-11 22:15                                                                                 ` Andy Moreton
2018-08-12 18:54                                                                                   ` Eli Zaretskii
2018-08-12 19:44                                                                                     ` Andy Moreton
2018-08-13 15:02                                                                                       ` Eli Zaretskii
2018-08-13 23:13                                                                                         ` Andy Moreton
2018-08-14 14:55                                                                                           ` Eli Zaretskii
2018-08-14 15:11                                                                                             ` Andy Moreton
2018-08-14 15:19                                                                                               ` Eli Zaretskii
2018-08-14 16:16                                                                                                 ` Andy Moreton
2018-08-15 17:01                                                                                                   ` Eli Zaretskii
2018-08-11 17:00                                                                     ` Andy Moreton
2018-08-10 15:25                                                             ` Stefan Monnier
2018-08-10 16:45                                                               ` Andy Moreton
2018-08-10 19:34                                                               ` Eli Zaretskii
2018-08-09  3:49                                               ` Stefan Monnier
2018-08-09  9:21                                                 ` Andy Moreton
2018-08-09  2:37                                             ` Eli Zaretskii
2018-08-03 20:13                         ` Tom Tromey
2018-08-04 16:39                         ` Tom Tromey
2018-08-04 17:24                           ` Tom Tromey
2018-08-05 10:46                           ` Andy Moreton
2018-08-05 18:59                             ` Tom Tromey
2018-08-06 18:17                               ` Andy Moreton
2018-07-15 15:00           ` Eli Zaretskii
2018-07-15 17:31             ` Paul Eggert
2018-07-15 18:27               ` Eli Zaretskii
2018-07-16 19:02                 ` Paul Eggert
2018-07-17  2:42                   ` Eli Zaretskii
2018-07-17 15:53                     ` Paul Eggert
2018-07-17 17:03                       ` Eli Zaretskii
2018-07-17 17:24                         ` Paul Eggert
2018-07-17 17:38                           ` Eli Zaretskii
2018-07-17 17:41                             ` Paul Eggert
2018-07-17 17:53                               ` Eli Zaretskii
2018-07-17 18:55                                 ` Paul Eggert
2018-07-17 19:04                                   ` Eli Zaretskii
2018-07-17 22:39                                     ` Paul Eggert
2018-07-18  2:41                                       ` Eli Zaretskii
2018-07-18  7:39                                         ` Paul Eggert
2018-07-18 11:14                                           ` Andy Moreton
2018-07-18 11:57                                             ` Paul Eggert
2018-07-18 13:09                                               ` Clément Pit-Claudel
2018-07-18 13:18                                                 ` Stefan Monnier
2018-07-18 13:43                                                   ` Clément Pit-Claudel
2018-07-18 14:06                                                     ` Andy Moreton
2018-07-18 19:25                                                       ` Achim Gratz
2018-07-18 20:41                                                         ` Stefan Monnier
2018-07-19  2:36                                                           ` Eli Zaretskii
2018-07-19 20:32                                                         ` Paul Eggert
2018-07-20 20:02                                                           ` Achim Gratz
2018-07-20 20:58                                                             ` Paul Eggert
2018-07-20 21:48                                                               ` Stefan Monnier
2018-07-22 19:49                                                               ` Achim Gratz
2018-07-18 18:29                                                 ` Paul Eggert
2018-07-18 11:10                                       ` Andy Moreton
2018-07-18 18:34                                         ` Paul Eggert
2018-07-25 21:02             ` Andy Moreton
2018-08-09 14:26 ` Charles A. Roelli
2018-08-09 15:17   ` Andy Moreton
2018-08-09 16:23     ` Charles A. Roelli
2018-08-09 16:25     ` Tom Tromey
2018-08-09 17:08       ` Andy Moreton
2018-08-09 19:29         ` Tom Tromey

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8636vv7ohh.fsf@gmail.com \
    --to=andrewjmoreton@gmail.com \
    --cc=emacs-devel@gnu.org \
    /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 public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).