freenode/#clasp - IRC Chatlog
Search
15:21:06
Bike
i'll start running that when i make cleavir changes, to make sure everything works... sorry about this.
15:23:10
Bike
i replaced it with cleavir-primop:multiple-value-call which assumes that its first argument is a function. which the special operator multiple-value-call should not do
15:24:08
Bike
So SICL has to provide some kind of definition for multiple-value-call, something like (defmacro multiple-value-call (function &rest arguments) `(cleavir-primop:multiple-value-call (coerce-to-function ,function) ,@arguments))
15:44:57
beach
By the way, the code in that system (sicl-extrinsic-environment) is basically the same as what you would need for Clasp.
16:20:03
Bike
drmeister: can we profile /easy/ compilations? like, i put in a bunch of inline definitions for cdar, second, etc., but there's a few dozen and each takes a few seconds, so overall it takes minutes
16:49:23
Bike
the only file in clasp/src/profiler is dot_sbclrc, it doesn't have any of those scripts you showed me.
16:56:09
drmeister
There is a way with dtrace to start timing when one function enters and stop when another enters - we can explore that.
1:14:47
drmeister
Ok - I can get the size of COMPILE'd functions in bytes - but it's a bit weird. The easiest thing would be to maintain a global thread-safe hash table with :test #'equal within which I associate function symbol (linux symbols) names with function sizes.
1:15:15
drmeister
Then disassemble can reference this to get the length of a function that you are trying to disassemble.
1:16:46
drmeister
Basically - if you COMPILE a function and then DISASSEMBLE it - you will get the disassembly of the function. Anything not COMPILE'd will give you the first 16 instructions and then you can ask for more.
1:18:57
drmeister
I think maybe if you load the bitcode of compile-file'd functions you will get this info.