From: Andy Moreton <andrewjmoreton@gmail.com>
To: 68244@debbugs.gnu.org
Subject: bug#68244: hash-table improvements
Date: Mon, 15 Jan 2024 20:01:28 +0000 [thread overview]
Message-ID: <86r0iiv013.fsf@gmail.com> (raw)
In-Reply-To: <A4D8655E-B729-4C7A-99D6-D8FC7A3CF617@gmail.com>
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.
AndyM
next prev parent reply other threads:[~2024-01-15 20:01 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 [this message]
2024-01-15 20:21 ` Eli Zaretskii
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=86r0iiv013.fsf@gmail.com \
--to=andrewjmoreton@gmail.com \
--cc=68244@debbugs.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 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.