logo       

Re: Dynamic-extent ahead: msg#00359

lisp.cmucl.devel

Subject: Re: Dynamic-extent ahead

Raymond Toy <toy@xxxxxxxxxxxxxxx> writes:

> Gerd> (defun dynamic-extent-allocation-p (vars vals) nil)
>
> Gerd> should work, I think.
>
> Doesn't that disable everything?

The function DYNAMIC-EXTENT-ALLOCATION-P should only be called in the
LET cases. When it returns false, dynamic-extent is not done,
declaration or not.

> Anyway, as an experiment, I decided to make the
> %dynamic-extent-{start,end} do nothing, in case I was screwing up the
> vops. Are these really necessary? If we don't save and restore the stack
> pointer, should it be ok? When the function returns, the stack
> pointer gets restored anyway.
>
> Is that right?

As an example why they are needed, consider the case that such a
dynamic extent appears as an argument in a function call. Other args
might have been pushed on the stack, and the stack manipulation done
by dynamic-extent would make these args untraceable for the called
function, if we don't clean up after us. At least on x86.




<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise