all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Andy Moreton <andrewjmoreton@gmail.com>
Cc: 68244@debbugs.gnu.org
Subject: bug#68244: hash-table improvements
Date: Mon, 15 Jan 2024 22:21:52 +0200	[thread overview]
Message-ID: <83o7dmcppb.fsf@gnu.org> (raw)
In-Reply-To: <86r0iiv013.fsf@gmail.com> (message from Andy Moreton on Mon, 15 Jan 2024 20:01:28 +0000)

> From: Andy Moreton <andrewjmoreton@gmail.com>
> Date: Mon, 15 Jan 2024 20:01:28 +0000
> 
> On Mon 15 Jan 2024, Eli Zaretskii wrote:
> 
> >> From: Andy Moreton <andrewjmoreton@gmail.com>
> >> Date: Sun, 14 Jan 2024 22:08:14 +0000
> >> 
> >> On Sat 13 Jan 2024, Mattias Engdegård wrote:
> >> 
> >> > All right, I've pushed the parts that I have little doubt about being a
> >> > definite improvement: a batch of refactoring steps, then the hash-table
> >> > printing reforms, the representation and growth algorithm improvements, and
> >> > finally documentation updates, all now on master.
> >> 
> >> Something in this patch series causes a build failure on Windows using
> >> the Mingw64 toolchain. I've tried bisecting this, and at each step doing
> >> "git clean -xdf" and then autogen, configure and make for a native build.
> >> 
> >> The last good commit on master is:
> >>   c3d0cc50faf5 ("Remove rehash-threshold and rehash-size struct members")
> >> 
> >> Bisect identifies this as the bad commit:
> >>   d3cefd3e9835 ("Leaner hash table dumping and thawing")
> >> 
> >> I have included the end of the log from the failing build below.
> >> 
> >>     AndyM
> >> 
> >>                            -----o0o-----
> >> 
> >> cp -f temacs.exe bootstrap-emacs.exe
> >> rm -f bootstrap-emacs.pdmp
> >> ./temacs --batch  -l loadup --temacs=pbootstrap \
> >> 	--bin-dest c:/emacs/30.0.50/mingw64-x86_64-O2-native/bin/ --eln-dest c:/emacs/30.0.50/mingw64-x86_64-O2-native/lib/emacs/30.0.50/
> >> Loading loadup.el (source)...
> >> Dump mode: pbootstrap
> >> Using load-path (c:/emacs/git/emacs/master/lisp c:/emacs/git/emacs/master/lisp/emacs-lisp c:/emacs/git/emacs/master/lisp/progmodes c:/emacs/git/emacs/master/lisp/language c:/emacs/git/emacs/master/lisp/international c:/emacs/git/emacs/master/lisp/textmodes c:/emacs/git/emacs/master/lisp/vc)
> >> Loading emacs-lisp/debug-early (source)...
> >> 
> >> ...[snipped]...
> >> 
> >> Loading c:/emacs/git/emacs/master/lisp/emacs-lisp/rmc.el (source)...
> >> Finding pointers to doc strings...
> >> Finding pointers to doc strings...done
> >> Dumping under the name bootstrap-emacs.pdmp
> >> Dumping fingerprint: 9f59e49a3ba95f3d7451327de9cf2863b9ddb392220c5f88f384f16245a619c2
> >> Dump complete
> >> Byte counts: header=100 hot=16147196 discardable=207320 cold=11360080
> >> Reloc counts: hot=1123689 discardable=5662
> >> ANCIENT=yes make -C ../lisp compile-first EMACS="../src/bootstrap-emacs.exe"
> >> make[3]: Entering directory '/c/emacs/git/emacs/master/build/mingw64-x86_64-O2-native/lisp'
> >>   ELC      /c/emacs/git/emacs/master/lisp/emacs-lisp/macroexp.elc
> >> 
> >> C:/emacs/git/emacs/master/src/lisp.h:2564: Emacs fatal error: assertion failed: 0 < size
> >
> > Thanks, but I see no assertion 0 < size on line 2564 of lisp.h, or
> > anywhere else in lisp.h.  Can you tell which assertion fails?
> 
> In commit d3cefd3e9835, line 2564 of lisp.h has "eassume (0 < size);" in
> HASH_TABLE_SIZE().
> 
> If the hash table changes now allow zero sized tables then that would
> trigger in a build with ENABLE_CHECKING. My build script had checking
> enabled, which would explain the failure. Sorry for not mentioning that
> earlier (I had forgotten that it was enabled).
> 
> With ENABLE_CHECKING disabled the build succeeds. Thus the invariants
> need looking at to allow a checked build to work.

I always build with ENABLE_CHECKING, so I still don't understand why I
don't see the problem.  Can you suggest a way that avoids a full
bootstrap, but just compiles a (small) bunch of Lisp files?





  reply	other threads:[~2024-01-15 20:21 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <170438379722.3921.9312235725296561206@vcs2.savannah.gnu.org>
     [not found] ` <20240104155642.B4A99C00344@vcs2.savannah.gnu.org>
2024-01-04 17:32   ` scratch/hash-table-perf 2d28042f56a 19/35: Use non-Lisp allocation for internal hash-table vectors Dmitry Gutov
2024-01-05 10:33     ` bug#68244: hash-table improvements Mattias Engdegård
2024-01-05 15:41       ` Dmitry Gutov
2024-01-06 11:34         ` Mattias Engdegård
2024-01-06 11:51           ` Eli Zaretskii
2024-01-07  3:13           ` Dmitry Gutov
2024-01-07  5:26             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-07 15:39               ` Dmitry
2024-01-07 18:36               ` Mattias Engdegård
2024-01-07 19:10                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-08 18:26                   ` Mattias Engdegård
2024-01-09  0:33                     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-09 10:26                       ` Mattias Engdegård
2024-01-13 20:06                         ` Mattias Engdegård
2024-01-04 16:27                           ` Mattias Engdegård
2024-01-04 16:39                             ` Eli Zaretskii
2024-01-04 17:02                               ` Mattias Engdegård
2024-01-04 17:45                                 ` Eli Zaretskii
2024-01-05 11:34                                   ` Mattias Engdegård
2024-01-05 17:14                                     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-06 11:46                                       ` Mattias Engdegård
2024-01-09 21:51                             ` Stefan Kangas
2024-01-12 15:42                               ` Mattias Engdegård
2024-01-14 22:08                             ` Andy Moreton
2024-01-15 12:31                               ` Eli Zaretskii
2024-01-15 13:26                                 ` Mattias Engdegård
2024-01-18 18:13                                   ` Mattias Engdegård
2024-01-15 20:01                             ` Andy Moreton
2024-01-15 20:21                               ` Eli Zaretskii [this message]
2024-01-16 21:57                             ` Andy Moreton
2024-01-17  3:31                               ` Eli Zaretskii
2024-01-18 20:29                             ` Andy Moreton
2024-01-19  6:37                               ` Eli Zaretskii
2024-01-20 20:20                             ` Andy Moreton
2024-01-21  5:11                               ` Eli Zaretskii
2024-01-21 13:03                             ` Basil L. Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-22  9:17                               ` João Távora
2024-01-22  9:18                                 ` João Távora
2024-01-23  9:44                                 ` Basil L. Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-14  5:25                           ` Gerd Möllmann
2024-01-14 14:42                             ` Mattias Engdegård
2024-01-21 12:41                           ` Stefan Kangas
2024-02-08  9:46                           ` Mattias Engdegård
2024-02-08 14:19                             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-08 14:36                               ` Gerd Möllmann
2024-02-08 14:42                               ` Mattias Engdegård
2024-02-08 15:13                                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-08 17:29                                   ` Mattias Engdegård
2024-02-08 17:49                                     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-12 12:16                                       ` Mattias Engdegård
2024-02-12 13:36                                         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-13  9:05                                         ` Gerd Möllmann
2024-02-13 10:12                                           ` Mattias Engdegård
2024-02-13 12:12                                             ` Gerd Möllmann
2024-02-13 12:43                                             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-14 12:37                                               ` Mattias Engdegård
2024-02-14 13:05                                                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-14 13:21                                                   ` Mattias Engdegård
2024-02-17 19:50                                                     ` Mattias Engdegård
2024-02-20 10:21                                                       ` Mattias Engdegård
2024-02-20 14:00                                                         ` Eli Zaretskii
2024-02-20 16:11                                                           ` Mattias Engdegård
2024-02-20 17:12                                                             ` Eli Zaretskii
2024-02-21 12:59                                                               ` Eli Zaretskii
2024-02-21 20:13                                                                 ` Andrea Corallo
2024-02-23 12:16                                                                 ` Mattias Engdegård
2024-02-24  9:45                                                                   ` Mattias Engdegård
2024-02-24 10:30                                                                     ` Eli Zaretskii
2024-02-24 10:53                                                                       ` Mattias Engdegård
2024-02-24 11:03                                                                         ` Eli Zaretskii
2024-02-24 17:20                                                                           ` Dmitry Gutov
2024-02-24 17:43                                                                             ` Mattias Engdegård
2024-02-24 17:48                                                                               ` Dmitry Gutov
2024-02-24 17:53                                                                                 ` Mattias Engdegård
2024-02-24 18:08                                                                                   ` Eli Zaretskii
2024-02-24 18:31                                                                                     ` Dmitry Gutov
2024-02-24 17:54                                                                             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-24 17:14                                                                         ` Dmitry Gutov
2024-02-24  2:46                                           ` Dmitry Gutov
     [not found] ` <20240104155642.6326FC00344@vcs2.savannah.gnu.org>
2024-01-04 18:52   ` scratch/hash-table-perf 3e9e68333ae 16/35: Remove rehash-threshold and rehash-size struct members Dmitry Gutov

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=83o7dmcppb.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=68244@debbugs.gnu.org \
    --cc=andrewjmoreton@gmail.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.