all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Pip Cet <pipcet@gmail.com>
To: Paul Eggert <eggert@cs.ucla.edu>
Cc: Eli Zaretskii <eliz@gnu.org>,
	Daniel Colascione <dancol@dancol.org>,
	emacs-devel@gnu.org
Subject: Re: Changes in GC and in pure space (was: [Emacs-diffs] master 5d4dd55: Fix lifetime error in previous patch)
Date: Fri, 16 Aug 2019 13:34:11 +0000	[thread overview]
Message-ID: <CAOqdjBcUnxZGhzHY3kcgvXeh8Hc14Cb580bkzC_wEtQCJdCuhQ@mail.gmail.com> (raw)
In-Reply-To: <9568ca7d-854f-1971-bbe8-03ba8c64af42@cs.ucla.edu>

On Thu, Aug 15, 2019 at 9:34 AM Paul Eggert <eggert@cs.ucla.edu> wrote:
> Pip Cet wrote:
>
> > Here are things I would consider urgent enough to warrant looking at
> > for Emacs 27:
> > - remove code like we have in `Ffset' to detect GC bugs that
> > presumably have been fixed by now
>
> Are you talking about just the code introduced in commit
> 2014-04-03T00:18:08Z!dancol@dancol.org
> (01ae0fbf30b74e2490144fceabbf5bc5d96f1ba7), or is some other code involved? I'll
> CC this to dancol to see if he has thoughts.

There's also reference to a GC bug in describe_vector.

> > - make_fixnum called for numbers outside the fixnum range
>
> I installed a patch to master just now to do that.

Thanks!

> > - various places that should detect circular lists but don't (lread.c
> > reading hash tables, for example)
>
> Can you give an example of that problem?

Try reading #s(hash-table data #0=(#0# . #0#))

> > - doubly-evaluated macro arguments (the one I can think of offhand is
> > DUMP_SET_REFERRER, which is harmless, but others might not be)
>
> Do you mean evaluated as in macro expansion, or evaluated as in execution at
> runtime? If the latter, I don't get the problem there. Many other macros assume
> that arguments are side effect free, and some of these cannot be turned into
> inline functions easily.

I think it's likely we still have some places that assume their
arguments are side-effect-free, but whose callers pass arguments with
side effects.

(At least, that's what I'd be looking for once I'm done looking over
the recent major hash table/GC changes to find segfaults like the
below)...

> > - since we appear to be stuck with lazy rehashing for now, the various
> > bugs this causes (I mentioned Fclrhash above)
>
> Sorry, what's the Fclrhash bug?

Calling clrhash on a dumped hash table that hasn't been accessed used
to leave it untouched; now it produces a segfault.

I haven't quite been able to follow how Eli's request went
uncontradicted, but then we ended up making major changes like the
hash table thing, anyway. That leads to this segfault, but I'm not at
all convinced it won't also lead to subtle bugs somewhere else.

(To reproduce the promised segfault, add

(defvar custom-dummy (make-hash-table :test 'eq))
(puthash custom-dummy custom-dummy custom-dummy)

to custom.el, then rebuild and run (clrhash custom-dummy) in Emacs -Q.
Trivial to fix, but apparently not obvious enough to have been caught
in the original changes).



  reply	other threads:[~2019-08-16 13:34 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20190721193221.1964.53182@vcs0.savannah.gnu.org>
     [not found] ` <20190721193222.8C19E20BE2@vcs0.savannah.gnu.org>
2019-07-22  4:12   ` [Emacs-diffs] master 5d4dd55: Fix lifetime error in previous patch Pip Cet
2019-07-22 13:40     ` Stefan Monnier
2019-07-23  1:06       ` Paul Eggert
2019-07-22 15:00     ` Changes in GC and in pure space (was: [Emacs-diffs] master 5d4dd55: Fix lifetime error in previous patch) Eli Zaretskii
2019-07-22 17:47       ` Paul Eggert
2019-07-22 18:19         ` Changes in GC and in pure space Eli Zaretskii
2019-07-22 19:58           ` Stefan Monnier
2019-07-23  1:43             ` Paul Eggert
2019-07-23 14:46               ` Eli Zaretskii
2019-07-23 16:27                 ` Paul Eggert
2019-07-23 16:58                   ` Eli Zaretskii
2019-07-23  2:25             ` Eli Zaretskii
2019-07-23  1:29         ` bug#36769: portable dumper mishandles user-defined hashtabs Paul Eggert
2019-07-23  2:06           ` Paul Eggert
2019-07-22 19:05       ` Changes in GC and in pure space (was: [Emacs-diffs] master 5d4dd55: Fix lifetime error in previous patch) Pip Cet
2019-07-23 14:56         ` Eli Zaretskii
2019-07-23 15:33         ` Changes in GC and in pure space Stefan Monnier
2019-07-24  3:06           ` Richard Stallman
2019-08-15  9:34         ` Changes in GC and in pure space (was: [Emacs-diffs] master 5d4dd55: Fix lifetime error in previous patch) Paul Eggert
2019-08-16 13:34           ` Pip Cet [this message]
2019-08-22  0:25             ` Paul Eggert
2019-08-22  2:06             ` Paul Eggert
2019-08-22  5:36             ` Paul Eggert
2019-09-04  6:05             ` Paul Eggert
2019-09-04 14:51               ` Eli Zaretskii
2019-09-04 16:56                 ` Paul Eggert
2019-09-04 17:36                 ` Daniel Colascione
2019-09-04 17:45                 ` Changes in GC and in pure space Stefan Monnier
2019-09-04 18:34                   ` Óscar Fuentes
2019-09-04 19:15                     ` Paul Eggert
2019-09-05  7:04                   ` Paul Eggert
2019-07-24  2:58       ` Changes in GC and in pure space (was: [Emacs-diffs] master 5d4dd55: Fix lifetime error in previous patch) Richard Stallman

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=CAOqdjBcUnxZGhzHY3kcgvXeh8Hc14Cb580bkzC_wEtQCJdCuhQ@mail.gmail.com \
    --to=pipcet@gmail.com \
    --cc=dancol@dancol.org \
    --cc=eggert@cs.ucla.edu \
    --cc=eliz@gnu.org \
    --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 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.