freenode/#sicl - IRC Chatlog
Search
8:33:23
splittist
Yesterday I got a reasonable subset of Markdown working with MS Word docx (or, WordprocessingML).
13:10:29
heisig
beach: To answer your question from yesterday - yes, sealable metaobjects can be used to implement binary number functions.
13:12:19
heisig
In fact, I think a lot of the functions in the CL package could be made generic that way.
13:16:39
heisig
Number and sequence functions are a natural fit. But arrays, streams and hash tables could also profit a lot from using that technique.
14:19:35
beach
Having given some thought to the latter two, I think they are too SICL-specific to be part of Cleavir, at least for now.
14:20:13
beach
So I should just bite the bullet and make SICL-specific systems for additional primops, AST classes, and instruction classes.
14:25:58
beach
The dynamic environment is in a lexical variable, so the primop and AST would return the value of that variable.
14:26:25
beach
The instruction would have an output that will be assigned to the current dynamic environment.
14:27:28
beach
So that I can write the function that augments the dynamic environment with a variable binding.
14:29:06
beach
(defun augment-with-special-variable (name value) (cons (make-instance 'special-variable-entry :name name :value value) (sicl-primop:dynamic-environment)))
14:29:34
Bike
seems a little circular, but i suppose you don't want to write out calls to make-instance in IR...
14:31:22
Bike
well, maybe more convoluted than circular? you have a bind instruction but it turns into a call, and the definition of that function needs this other instruction
14:32:07
beach
The bind-instruction exists because each implementation may bind variables differently.
14:32:38
beach
SICL uses deep binding, so it makes sense to put a special-variable entry on the dynamic environment.
14:33:09
beach
Doing so is a fairly complicated operation that would justify abstracting it to a function.