All right... in the last moments before February 1st, I've committed it. So now we're running in a much more unbound world than before!
-
The change so that @XXX produces bound material is a big help, and it makes the places that need changes a lot less ugly.
-
For now, the calls to IN are INSIDE. This makes it easier to find, and also I think having it be an abbreviation is a good idea so that code that isn't binding-focused can use IN as a variable name if it feels like, and then for the occasional binding call use INSIDE or LIB.IN.
-
I tinkered some things to get performance parity with the pre-pure-virtual executable, though they would have made that executable even faster. Just trying to keep the overall experience from getting intractably slow.
-
Some quoting functions depend on getting binding information from the callsite applied to their arguments. Prominently, the @ operator in
@ XXX
does this, but also things like foo and (baz bar) which short circuits the evaluation of baz bar by quoting the group... and I've mentioned I don't want that to be done as foo and [baz bar]. How these exceptions work need to be considered carefully.
There's tons of open questions, but I just feel the old way was such a dead end that the sooner we move away from it the better.