freenode/#sicl - IRC Chatlog
Search
6:09:27
Gnuxie[m]
beach: why aren't many conditions given their own type in the spec more specific than error?
6:13:46
beach
For SICL, the goal is to signal a specific condition type for each distinguishable situation.
6:18:39
beach
In the current boot procedure, I am loading files containing source code into the different environments. But this is silly, because it means that all the macros used by some source file must exist in the environment into which the code of that source is loaded.
6:19:13
beach
Now that I have decided that the FASL format of SICL is the external version of the AST, I can load FASL files instead.
6:19:44
beach
The advantage is that the macros don't have to exist and that they can instead be loaded from FASL files at some later point.
6:20:29
beach
Furthermore, I can generate those FASL files by using macro expanders in the form of host functions.
6:22:12
beach
But I can imagine filling a single first-class global environment with all the standard macros that I need for compiling all the source code, then generating FASL files for all the SICL source code.
6:23:21
beach
The, to load the FASL files into specific environments becomes a matter of defining the functions and the classes that are required at load time, like MAKE-INSTANCE, STANDARD-GENERIC-FUNCTION, etc.
6:31:50
beach
Now it would be an advantage if I had a version of PARSE-MACRO that worked on CSTs, so that I don't lose all the source information.
6:32:48
beach
It is not *that* essential, since most macros don't expand to code that contains substantial parts from the macro body itself.
6:39:20
beach
Also, that single first-class global environment needs to contain all the special operators, including the Cleavir primops, but those are just defined with a flag, so that's easy. And I can fake all the standard functions by defining them as (lambda (&rest args) (error ...)) as long as I don't inline them.
9:11:22
MichaelRaskin
Would quasiquotations used in macros (eventually) count as substantial pieces of code from the macro body? Technically speaking every evaluation of quasiquotation with new unquoted values gives a new s-expression, but the origin of the code is still substantially the sameā¦
9:23:38
beach
Yes, the part of the quasiquoted form that is constant counts as code from the macro body.