Re: Is it possible to implement closures in PARI?

Bill Allombert <[email protected]> Sun, 14 Jan 2024 13:05:41 +0100
Newsgroups gmane.comp.mathematics.pari.devel
Message-ID <ZaPOFciKrlrYvPDF@seventeen>
On Thu, Jan 11, 2024 at 12:56:47PM -0800, Ilya Zakharevich wrote:
> Currently, PARI supports anonymous subroutines memoizing values of
> lexical variables (at the moment of creation).  Is it theoretically
> possible to implement¹⁾ closures instead? — In other words: are
> closures compatible with the PARI⸣s memory model?

Probably not. The problem is well-documented:
<https://en.wikipedia.org/wiki/Funarg_problem>

The problem is that the variable scope might end before the closure scope,
so the closure would have a reference to a freed variable, so we would need
smarter memory management than the stack.

Also it would not be compatible with parallelism, which require closures to
be immutable.

Cheers,
Bill