logo       

Re: Dynamic-extent ahead: msg#00357

lisp.cmucl.devel

Subject: Re: Dynamic-extent ahead

>>>>> "Gerd" == Gerd Moellmann <gerd.moellmann@xxxxxxxxxxx> writes:

Gerd> Raymond Toy <toy@xxxxxxxxxxxxxxx> writes:
>> Can you give some examples of the LET case?

Gerd> (defun foo ()
Gerd> (let ((x (list 1 2)))
Gerd> (declare (dynamic-extent x))
Gerd> (length x)))

Gerd> where LIST can also be LIST* or CONS.

Oh, I thought it meant something else.

>> Also, is it possible to disable the LET case?

Gerd> (in-package :c)
Gerd> (defun dynamic-extent-allocation-p (vars vals) nil)

Gerd> should work, I think.

Doesn't that disable everything?

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?

Ray




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

News | FAQ | advertise