emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: scratch/igc: Implications of MPS being asynchronous


From: Gerd Möllmann
Subject: Re: scratch/igc: Implications of MPS being asynchronous
Date: Sun, 12 Jan 2025 14:43:36 +0100
User-agent: Gnus/5.13 (Gnus v5.13)

Pip Cet <pipcet@protonmail.com> writes:

> "Stefan Kangas" <stefankangas@gmail.com> writes:
>
>> Eli Zaretskii <eliz@gnu.org> writes:
>>> And saying that "no GC here" assumptions are always false is too
>>> radical to my palate, and AFAIU is at least not accurate.
>
> Unfortunately, I have to be pedantic here: an assumption is "false" if
> the statement it assumes is false.  Most no-GC here assumptions aren't
> false, since GC is quite rare, even with MPS.
>
> As with jay-walking, there are different levels of wrongness here: if
> you simply assume there is no traffic, and you don't get hit, your
> assumption wasn't false, but that was mere luck.  The assumption was
> still unjustified.
>
> If you go to the considerable trouble of establishing that there is no
> other traffic, jay-walking is still illegal.
>
> And that's what the MPS documentation says in this case: even if there
> is a single application thread using MPS, and we know MPS doesn't create
> extra threads for itself (an implementation detail subject to change at
> any time), and we know no instruction in our critical section can
> possibly hit a memory barrier (another implementation detail), it's
> still wrong to make a no-GC assumption, because you're relying on MPS
> implementation details in an "illegal" way.
>
>> I'm not sure what "radical" means in this context.  If it is true, we
>> should write it, and if not, we shouldn't.
>
> It's a rule, like "red light means stop".  Eli is saying that we can
> prove in certain circumstances that the rule isn't necessary, and then
> it's okay to ignore it.  I disagree.
>
> Pip

Well said 👍



reply via email to

[Prev in Thread] Current Thread [Next in Thread]