• Re: Calling conventions (particularly 32-bit ARM)

    From Tim Rentsch@tr.17687@z991.linuxsc.com to comp.arch on Sun Aug 16 10:39:53 2026
    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