freenode/#clasp - IRC Chatlog
Search
4:53:26
scymtym
beach: i'm considering adding a required CLIENT parameter to ECLECTOR.PARSE-RESULT:READ instead of requiring clients to bind ECLECTOR.READER:*CLIENT*. that way, the protocol is harder to use incorrectly and incorrect uses are spotted at compile- rather than runtime. does that make sense?
11:25:36
beach
When I defined a macro with &KEY argument, I got an error from SBCL EVAL that some variable was unbound.
11:26:59
beach
It turns out it was when I used SBCL COMPILE to compile a (big) function resulting from the translation from HIR to Common Lisp.
11:27:56
beach
So I examined that function and it had a LOAD-TIME-VALUE form in which there was a variable that was not bound at compile time.
11:28:58
beach
So I used my IR visualizer on the HIR graph, and it had a FDEFINITION-INSTRUCTION in it.
11:29:38
beach
Normally, I don't generate those for SICL. So I looked at the AST and sure enough, there was an FDEFINITION-AST as well.
11:30:25
beach
That shouldn't happen because I have a method on CST-TO-AST:CONVERT-GLOBAL-FUNCTION-REFERENCE that does something else.
11:31:06
beach
However, as it turn out, after macro expansion, this particular compiler does not go through CST-to-AST, but uses Generate-AST (that should be fixed).
11:31:44
beach
And I had removed my method on the corresponding Generate-AST function thinking it wasn't necessary anymore now.
14:33:40
beach
Anyway, the IR visualizer worked perfectly for the job. I am thinking of writing an AST visualizer as well. It should be even simpler than the IR visualizer.