Subject: Re: bug#36649: 27.0.50; pure space and pdumper

From: Robert Pluim <[email-masked]>
Date: Sun, 21 Jul 2019 17:06:00 +0200

>>>>> On Sun, 21 Jul 2019 14:36:41 +0000, Pip Cet <[email-masked]> said:

    Pip> On Sun, Jul 21, 2019 at 1:44 PM Robert Pluim <[email-masked]> wrote:
    >> >>>>> On Sun, 21 Jul 2019 12:53:21 +0000, Pip Cet <[email-masked]> said:
    Pip> I think we should do (1) for now, since it simplifies the code enough
    Pip> to introduce immutable objects "soon"; but until that time, we waste
    Pip> more space on duplicate objects that we no longer know to be
    Pip> immutable, so cannot merge.
    Pip> I'm attaching a first patch that removes pure space, pinned symbols,
    Pip> pinned objects, but keeps Fpurecopy (for hash consing), and doesn't
    Pip> touch the Lisp codebase.
    >> 
    >> This doesnʼt build for me on macOS. After adjusting the parameters to
    >> the call to make_hash_table in image.c, it crashes when dumping:

    Pip> Thanks for testing! Indeed, I'd only verified it builds here.

    Pip> My first guess is there's a symbol in the obarray which used to be
    Pip> pinned, but is now collected before it is interned.

    Pip> Can you try with the attached patch relative to the one I'd sent
    Pip> before, and see what the output is?

Hmm, it crashed the first time I ran make, then I got distracted, so I
ran make again later, and this time it built:

make[2]: Nothing to be done for `all'.
  ELC      char-fold.elc
freeing symbol def-tmp-var