Subject: bug#75322: SAFE_ALLOCA assumed to root Lisp_Objects/SSDATA(string)

From: Eli Zaretskii <[email-masked]>
Date: Sun, 05 Jan 2025 22:24:23 +0200

> From: Gerd Möllmann <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Sun, 05 Jan 2025 21:04:56 +0100
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > How can we possibly make sure this works reliably and safely??  For
> > each variable we have in every function, we will need to analyze
> > whether the variable is
> >
> >   . an automatic variable
> >   . a static variable that is protected by someone
> >   . a global variable that is protected by someone
> >   . a result of dereferencing a pointer that is somehow protected
> >
> > etc. etc., where "protected by someone" means that it is a descendant
> > of some staticpro, or of some root, or...
> >
> > And if we cannot prove to ourselves that one of the above happens,
> > then we'd need to force a copy of the variable to be on the stack?
> >
> > Does this sound practical?
> >
> > If this is the price of using MPS, and I'm not missing something
> > obvious, then it sounds like we should run away from MPS, fast.
> > Because we will sooner or later have to rewrite every single line of
> > code we ever wrote.
> 
> I'm bowing out again. It's not worth it.

I don't understand why?  I need to understand the implications to be
able to make decisions, which are part of my job.  So I ask questions,
and I'm grateful for your answers, which clarify the issues for me.
That I sometimes sound overwhelmed by the implications shouldn't be
held against me, it's just a normal human reaction, nothing more.

If I somehow sound impolite, I apologize.