Search
Tuesday, 26th of May 2020, 2:03:55 UTC
2:07:14
Bike
should do some metrics on the average spread, at some point when i'm less sick of this code
2:09:18
Bike
i gues a histogram of call history lengths would probably be a good start and easy to do
2:16:42
drmeister
Do you want to push that code then?
2:17:32
Bike
i'll do it tomorrow along with the interpreter.
2:17:44
drmeister
How do you generate the llvm-ir for a discriminator using compile-file?
2:18:30
Bike
quickest way would probably be #.(clos::generate-discriminator #'generic-function)
2:19:11
drmeister
That generates what? A Module?
2:19:42
Bike
try (generate-discriminator #'some-generic-function) in a repl and se
2:20:11
Bike
the discriminating function generator hasn't involved llvm in like over a year now
2:20:26
drmeister
Oh yeah - Common Lisp.
2:20:50
drmeister
Are we using Cleavir or bclasp to compile those then?
2:22:46
Bike
bclasp generally. if you put it in a file and you're in cclasp it'll be cleavir, though.
2:23:11
Bike
i have some ideas for using cleavir for the runtime compiles, but i haven't bothered
2:24:24
Bike
actually it might be possible to do so now since dispatch misses don't invalidate the function, but i dunno, i don't like going down that rabbit hole
2:24:31
drmeister
https://www.irccloud.com/pastebin/OR0WBPun/
2:24:42
drmeister
#<standard-generic-function print-object>
2:24:53
Bike
clos::discriminate is a macro that does most of the work
2:25:04
Bike
in this case it looks like you've never called print-object
2:25:13
Bike
so it just dispatch misses immediately
2:25:31
drmeister
Uh huh - right - I gotta call the generic function.
2:27:06
Bike
cleavir-ir:successors is a function i use for this sometimes, since it's inevitably got a call history that's like 60 long
2:27:22
Bike
though they all have the same outcome
2:27:29
drmeister
Ok but what do I do about the #<xxx>
2:27:53
Bike
you want to see how the macro expands/
2:28:22
Bike
i usually pick out the form and call macroexpand myself. like (macroexpand-1 (third (fourth (third (third (fourth form)))))) in this case
2:28:22
drmeister
I'd like to get the llvm-ir for a discriminating function.
2:28:26
Bike
not the prettiest, but it works
2:28:33
Bike
er, then just put it in a file and compile the file.
2:28:51
drmeister
It won't read because of the #<xxx>
2:28:53
Bike
like i said. just put #.(clos::generate-discriminator whatever) in an otherwise empty file and compile that.
2:29:29
drmeister
You said "quickest way would probably be #.(clos::generate-discriminator #'generic-function)"
2:29:44
drmeister
It helps to be more explicit like...
2:29:58
drmeister
The quickest way would probably be to put #.(clos::generate-discriminator #'generic-function) into a file and compile-file it.
2:31:32
drmeister
So I put this in a file...
2:31:32
drmeister
quickest way would probably be #.(clos::generate-discriminator #'generic-function)
2:31:44
drmeister
#.(clos::generate-discriminator #'clos::initialize-instance)
2:32:00
drmeister
https://www.irccloud.com/pastebin/BFnZUT6C/
2:32:38
Bike
lemme remember how to do this
2:33:50
Bike
uh, maybe do #.(clos::compile-time-discriminator #'initialize-instance (clos::generic-function-call-history #'initialize-instance))
2:34:23
drmeister
Yes - that worked.
2:37:49
drmeister
How do you get llvm-ir? I get a fasp file.
2:38:04
Bike
use the serial compiler
2:38:31
drmeister
f*ck - I can't even keep this straight.
2:39:45
Bike
your ir will have some fixnum tests it doesn't need to. i cut those out locally to see if they were the problem
2:39:51
Bike
otherwise it ought to look pretty much the same
2:58:57
beach
Good morning everyone!
Tuesday, 26th of May 2020, 14:03:55 UTC