[Top][All Lists]

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

Re: [epsilon-devel] Questions about Epsilon and call-stack introspection

From: Luca Saiu
Subject: Re: [epsilon-devel] Questions about Epsilon and call-stack introspection.
Date: Sat, 04 Jan 2014 19:55:55 +0100
User-agent: Gnus (Ma Gnus v0.8), GNU Emacs, x86_64-unknown-linux-gnu

On 2014-01-04 at 19:36, Basile Starynkevitch wrote:

> A possible (but contrived) use case might be some aspect programming
> thing.
> Imagine that you have some function foo and you replace all the calls
> occurrences to foo with the same call to foo preceded by a print of its
> arguments and followed by a print of its result.

This is definitely useful, but I'd do it with a transform; or even by
just temporarily redefining foo.

However I think that we can always avoid the problem of needing to
"shift" frames by a few words because of the need of resizing another
underlying frame by temporarily replacing one stack with another,
without resorting to the extreme solution of having *all* frames
chain-linked with one another.

Temporarily replacing one stack with another requires a mechanism for
changing the return address of an existing frame, but we will have it.
Again, you convinced me that it's the right thing.

Now I'm thinking that there may be some naïf points in my previous
proposals; in particular now I believe that the idea of having registers
occasionally hold values from previous callers as an optimization is
unworkable in the presence of nonlocal returns --- Nonlocal returns, of
course, are more important than a minor optimization.

It's likely that I made some other mistakes.  I guess I should write
down something more details, when I get to it.  But as of now, I'm quite
happy with this new proposed design.

It will still be some time before I get to actually implement it, so if
you (Basile or anyone else) have suggestions or comments, please write
to the list.


Luca Saiu
Home page:   http://ageinghacker.net
GNU epsilon: http://www.gnu.org/software/epsilon
Marionnet:   http://marionnet.org

reply via email to

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