freenode/#clasp - IRC Chatlog
Search
19:15:41
karlosz
../../src/core/funcallableInstance.cc:353 Adding method to single dispatch method for function EXTEND receiver-class #S(BUILT-IN-CLASS CONS )
19:22:06
drmeister
I did - sorry - I'll take it out in a little while. I accidentally, prematurely pushed some changes to the master branch.
19:23:58
drmeister
I discovered that I don't populate the class-direct-subclasses slot of builtin classes when clasp boots up. I'm fixing that now. Once I have those I'll be able to satiate single dispatch generic functions quickly.
19:25:09
karlosz
Bike: i just pushed the change to IFI which makes it a little more like how things are in AST
19:25:38
karlosz
basically now there are conditional-test instructions like eq-test which must have ifi as its use. that way the backend can handle them specially
19:26:51
drmeister
Is there an equivalent of HIR graphs for BIR? I haven't seen you guys post anything since BIR was developed.
19:28:17
Bike
which i honestly prefer because it's a faster turnaround than going through dot, but i could put together something with graphviz too
19:28:48
Bike
https://github.com/clasp-developers/clasp/blob/master/src/lisp/kernel/cleavir/translate.lisp#L1131-L1136
19:31:07
Bike
that part is pretty much the same as in hir actually, except that in bir it's blocks that have them, not instructions directly
19:31:24
karlosz
Bike: could be good. with graphviz i think we could just splay the text onto the basic block structure like the way llvm ir does
19:34:56
karlosz
Bike: now that i'm looking at the case of (lambda (x) (if (not x) 1 2)) specifically, is there a reason why we inline the NOT on the ast level, but not fully inline it?
1:40:50
drmeister
::notify Bike I've made a mistake, satiation the way I imagined it does fully solve the dispatch problem. Instances of CL defined classes like STANDARD-GENERIC-FUNCTION have FUNCTION in their class precedence list - so the single-dispatch generic functions for FUNCTION have to handle instances of STANDARD-GENERIC-FUNCTION. It's not just C++ classes that have to respond. It looks like I'll have to put a mutex on
1:40:50
drmeister
these objects and update their call history like we do generic functions. A static dispatch table won't work.
1:43:16
drmeister
It looks like I can't avoid a mutex on the single dispatch generic functions.until we switch them to fastgf.