From Newsgroup: comp.arch
George Neuner <
gneuner2@comcast.net> writes:
On Sat, 14 Mar 2026 09:34:55 -0700, Tim Rentsch
<tr.17687@z991.linuxsc.com> wrote:
George Neuner <gneuner2@comcast.net> writes:
On Sat, 14 Feb 2026 20:40:26 -0800, Tim Rentsch
<tr.17687@z991.linuxsc.com> wrote:
Returning to the main area of discussion - it occurs to me that we
may have different operational assumptions about the situations
where nested functions (or lambda expressions) are called. In
particular, there is an important distinction between a call where
it is known which nested function/lambda is being called, and a call
where that is not known, for example by virtue of having been passed
as a function argument, with the call being done through a formal
parameter.
I make no assumptions about whether a closure can outlive the call
chain that created it - unless the function is so simple as to be able
to be /compiled/ inline, that pretty much is a given.
But there is an operational difference between a 1st class closure
which is stored or passed upward and may be called from anywhere, and
a 2nd class closure which, if stored or passed at all, will be called
only at or below the scope that defined it.
And similarly, the ways in which the compiler can treat the closure
are different.
I know you [Tim] know this, but for sake of others following along,
there are two general methods for compiling a closure:
[..much longer set of comments..]
I'm sorry to have taken so long to respond. Various life events
have prevented me from responding sooner.
I have the impression that we are talking past each other. Under
the circumstances it seems best just to leave it at that at least
for now. Maybe the topic can be addressed anew at some point in
the future.
--- Synchronet 3.22a-Linux NewsLink 1.2