freenode/#sicl - IRC Chatlog
Search
5:26:54
beach
I am contemplating the replacement of CLEAVIR-ENV by Trucler. But we need to store the AST in the function description instance for inlining purposes. Now, Trucler does not know about ASTs, so I am thinking of adding a slot INLINE-INFORMATION to the INLINE mixin class. Any thoughts?
9:11:35
beach
heisig: What do you think about adding a slot+accessor to the inline-mixin of Trucler, containing information for the client to actually inline the function?
9:12:19
beach
heisig: In Cleavir-env, it is called AST, but I think it would be inappropriate to assume that clents store ASTs for this information.
9:14:03
heisig
beach: What do you mean by 'information to actually inline the function'? Some representation of the code to be inlined?
9:14:33
beach
Alternatively, we can have the INLINE slot have the 3 possible values: NIL meaning no information has been given, :notinline with the obvious meaning or any True value meaning :inline has been given and this is the information to be used by the client.
9:15:13
beach
But the last solution prevents client code from inlining when no declaration has been established.
9:17:07
heisig
The question is, should this information actually be a part of the inline-mixin? After all, the inline-mixin describes the use of a function, not its definition.
9:18:00
heisig
I'd prefer to have a separate function for retrieving the inline information of a function from a given environment.
9:18:55
beach
Well, here is the issue. Common Lisp says functions are not defined at compile time. So if a client needs some information about how a function is to be inlined at compile time, it can't be part of the function itself.
9:20:05
beach
But I suppose another option would be to keep it in a separate table during compilation.