libera/#sicl - IRC Chatlog
Search
9:56:20
paulapatience
Bike: I was thinking of letting cleavir-compilation-policy's optimize remain the list form, and convert from trucler:optimize-description to the list form at the interface, so as to not unnecessarily depend on Trucler.
9:57:33
paulapatience
Bike: Also cst-to-ast:policy needs an environment argument (in addition to client and (optimize-)description) in order to call cleavir-compilation-policy:compute-policy. Should cst-to-ast:attributes take an environment argument? (For now I gave it client and description.)
10:00:48
paulapatience
Oh, and the other thing: cleavir-env's global-macro-info has an %inline slot, whereas Trucler's global-macro-description doesn't. I don't think it would be right to add cst-to-ast:inline, since Trucler has inline for various other classes.
11:47:40
Bike
paulapatience: i think c-t-a:policy takes an environment argument because it predates our use of the client pattern. compilation-pollicy could maybe be rewritten to not take environment arguments. it looks like in clasp none of the policy computation uses the environment anyway, and clasp is the only user of the policy system.
11:48:53
Bike
paulapatience: as for inline... yyyyyes, actually macros do need inline information, because you can use inline to control whether compiler macros are used. (global-macro-description also needs a compiler-macro slot if it doesn't have one already)
11:54:35
paulapatience
global-macro-description has a compiler-macro slot. So that means we need to add inline to Trucler.
12:16:05
yitzi
beach: Does SICL have funcallable-standard-class during boot? I was storing some info about in Khazern parsers hackishly in symbol-plists, but SICL can't seem to (SETF GET).
12:23:28
yitzi
beach: Ok, I was asking about funcallable as a replacement since symbol-plists aren't available.
12:27:28
Bike
beach: it is a strange description, but it does control compiler macro usage. this is even mentioned in the clhs under "inline"
12:28:02
Bike
"In the presence of a compiler macro definition for function-name, a notinline declaration prevents that compiler macro from being used. An inline declaration may be used to encourage use of compiler macro definitions. inline and notinline declarations otherwise have no effect when the lexically visible definition of function-name is a macro definition."
12:36:42
Bike
since there's no other effect, i don't think the inline-data makes sense to incorporate. i think these are separate mixins in trucler already, so that should go fine
12:49:59
Bike
it would kind of surprie me if sicl didn't have funcallable objects pretty fundamentally