From: Charles Z. <ka...@be...> - 2018-05-14 03:48:46
|
Hello clisp, Everything is building under git, working with SLIME, quicklisp, etc. I've been trying to create Cleavir flow graphs with CLISP. Such 'front-end' compilation needs to take place in a lexical environment in order to get variable, function, optimize information etc as well as to hook into macroexpanders. However, I have found that CLISP does not adhere to the CLtL2 environment interface. Additionally, (ext:the-environment) does not seem to give compile time lexical environment information, only runtime environment information. This makes it hard to discover information about local variables or local functions. Even then, I couldn't find any interface to tell whether symbols were declared special with defvar. So, for the time being, I've been able to only get approximate information environment information by evaluating (boundp ...) and testing whether PROGV and LET yield the same information. This is enough to get basic forms like (lambda (x) x) compiling to HIR (the Cleavir flow graph representation) in clisp. However, in order to do more complicated stuff it seems like I'll need some way of getting at optimize, variable and function info at runtime. Any way of getting CLtL2-esque information here? Maybe buried in a codewalker? Charles |