freenode/#clasp - IRC Chatlog
Search
10:44:25
makomo
beach: seems like i can't go with the macroexpansion solution after all, because i might have multiple :process blocks, each of which use <-. since the order of macroexpansion isn't defined, i wouldn't know which <- is being expanded and which process to associate it with
10:45:26
beach
You can create an environment to work with: (asdf:load-system :sicl-minimal-extrinsic-environment) and then:...
12:51:33
pfdietz
makomo: your macro functions are accessing some sort of global state, so order of macroexpansion is important?
12:52:33
makomo
pfdietz: yeah, pretty much. the "<-" macro would associate the given signal with the *current* process (that's the global state)
12:53:23
makomo
that might not mean anything to you, but in short -- my macro can take multiple processes (which are bodies of code that contain the <- macro)
12:54:54
makomo
it's supposed to arrange for these process bodies to be compiled (by creating functions out of them via LAMBDA) and therefore the <- macro to be expanded within them
12:55:31
pfdietz
In general, you don't want macros to access (or modify) global state. If you want to pass information down into a macro from surrounding lexical scope, it's best to use that weird &environment parameter, with surrounding forms populating it with fake macrolets whose purpose is not to be expanded into code, but to be queried by other macro functions.