freenode/#sicl - IRC Chatlog
Search
3:56:30
beach
jcowan: You could treat them all in a similar way, but then RETURN-FROM and GO would be more expensive than they currently are. Since they are static constructs, the compiler takes advantage of that fact to generate more efficient code.
14:11:24
beach
For example, it might be good to define one or more environment-augmentation functions, rather than CONS and MAKE-...-ENTRY.
14:12:11
Bike
oh, well, yes. I was focused on the Cleavir part. those functions could still be more on the backend level, I think.
14:12:19
beach
Also, I need to think about the idea of keeping references to parent ASTs and to the function AST. Maybe a special type of variable holding the environment would be better.
14:13:05
Bike
With the references I think the thing is this does need to be available in HIR somehow or another, because it comes up in inlining.
14:13:59
beach
If the environment references turn into lexical variables (maybe a special type of such variables) then I think that would fix the problem.
14:16:33
Bike
so function-ast refers to a special lexical-ast, block-ast and etc. have one as input and one as output?
14:16:49
Bike
I was kind of going off analogy with closures, since the closure variable doesn't exist at ast level and all. but it's a different situation.
14:17:08
beach
In the SICL x86 backend chapter, I wrote that the time stamp is kept in the static environment of a function. Your suggestion makes me think that the dynamic environment should be treated like any other local variable, subject to capture, etc.