From: Bruno H. <ha...@il...> - 2002-01-11 16:52:50
|
Sam wrote on 2001-12-22: > > But this means that #'(local foo bar) has no meaning, and (setf > > nope - this is just not a usual function. > it's a category of functions which will be created by the flet. OK, that's a clear statement. But then the notation #' is not very appropriate. And the returned value shouldn't be an object of type FUNCTION - otherwise users try to FUNCALL it and get crashes. (They'd get crashes because the bytecode in that CLOSURE refers to some vectors created by MAKE-VECTOR and stored via COPY-CLOSURE, but the CLOSURE is naked and doesn't contain these vectors.) > > My impression is that is makes a cool extension for TRACE but nothing > > of which you can define a sane semantics when you want to apply it to > > FUNCTION, SETF FUNCTION, > > why? it is meaningful to replace the appropriate slot in the > closure-consts list. So what is the meaning, in terms of variables, functions, environments? The function that you want to store in that slot cannot refer to the variables of the enclosing function, because that function is already compiled. > okay -- I'll look into adding (foo bar ...) to TRACE. Thanks! Bruno |