1:47:04karloszi was able to make the ast by faking up another function and replacing its node with the node i want, but when i graph it it seems like its not inlining properly
1:47:24Bikeyeah that's problem number two, inlining doesn't work in cst-to-ast at the moment.
1:47:36Bikeyou can try generate-ast, which is old but more functional
2:28:19karloszis there a reason why so many are generated?
2:28:38karloszit would make sense if there was an ssa sort of invariant being kept
2:29:13Bikein this case, the ast inlining generates assignments to match the parsing of the lambda list of the function being inlined.
2:29:26Bikethere are also several generated because of how ast-to-hir works.
2:29:46Bikei've spent a fair bit of time trying to figure out a way to generate less, but i haven't come up with much.
2:31:56karloszyeah, but even when there was no inling, just things like using a lexical location to a function would have to go through an assign instruction
2:31:56karloszsbcl uses a singlue use single set lvars where that makes sense
2:59:35Bikekarlosz: it generates more assignments and temporaries than it needs to, for sure. it's because of how ast-to-hir works. i couldn't think of a way to write it that avoided that while being understandable.
3:03:05karloszi think it wouldn't be so bad doing it in a separate coalescing pass if you have an interference graph
3:12:59karloszhm, it seems like this inlining approach can't work for functions with rest arguments
3:13:43karloszthe number of arguments the node is going to take is already precomputed ahead of time
3:14:02karloszwhen creating the IR in the function info
3:18:40Bikerest is tricky because you need to create a list at runtime
3:35:04karloszso even though the number of arguments is known at inlining time, its not possible to just make a HIR node with the right number of inputs?
3:35:35karloszthat would fit clisp's calling convention better than explicitly making a list in the hir graph
3:39:44karloszi don't understand. the funcall instruction can take any number of inputs, without creating a list. ie (+ 1 2 3) creates a hir node with 3 inputs
4:01:09karloszyeah, that's more what im looking for
4:01:36karloszis there a way to that done via cleavir?
4:02:03Bikeif you don't want to define an clisp-normal compiler macro function, you can have function-info just make one up like you're already doing with ASTs
4:02:49karloszoh, right. just spoof the host environment
13:29:17drmeisterNo, lower level - to allocate specific C++ classes in custom MPS pools.
13:29:33drmeisterC++ classes that are exposed to Common Lisp.
13:30:11drmeisterSo that they can be integrated seamlessly with everything else but be constantly compacted into their own small pool for good (hopefully) cache behavior.
13:30:45Bikewhat do you mean by custom allocators for slots, though?
13:33:49Bikedrmeister: does cando compare lisp number objects with < etc. in C++? because i'm trying to delete those operators (clasp doesn't use them)