libera/#sicl - IRC Chatlog
Search
12:44:23
jackdaniel
the main motivation of what I'm doing right now is to separate the frontend from the backend of the compiler, so I can output the bytecode and/or the web assembly
12:45:04
jackdaniel
(because the bytecodes compiler as it is does only a minimal compilation and not on all targets the c compiler is available)
13:25:30
jackdaniel
bike: here's another question - in compile-ast you stipulate that the function returns NIL for no values, :no-return or (list bir) -- is NIL used anywhere? if so, couldn't it be represented with a bir standing for 0 values?
13:51:08
bike
jackdaniel: that's "no values" in a sense different from (values) - it means for ASTs that conceptually do not return values, like set-constant-symbol-value
14:00:13
jackdaniel
this ast does not seem to have a documentation; what is an advantage of having ast nodes that do not return values but are not non-local transfer control?
14:05:15
bike
set-constant-symbol-value represents the setting part of (setf *special* value). it's generated by convert-setq-special-variable. if you check convert-setq.lisp, you can see it only generates it in the middle of a progn where it's OK
14:06:22
jackdaniel
I see; would it make a difference if it was handled as if it were returning 42 or anything else?
14:12:19
bike
i'm not sure exactly what that would mean. the equivalent instruction has no outputs, so it doesn't "really" return anything
14:13:55
jackdaniel
I was thinking whether there are some gotchas if I don't handle such special case myself, that's all. I think I have a gist of it, thanks
14:18:48
bike
there are few of the no-value ASTs and it might be a good idea to eliminate them to make things more regular.