freenode/#clasp - IRC Chatlog
Search
17:09:06
Bike
beach: oh yeah, about the predicate thing- did you mean just clasp changing its typep-for-classes to use generic functions, or explicitly writing out generic functions in the cleavir source? the latter is what drmeister is talking about
17:17:24
drmeister
Bike: I can't submit a pull request to your fork of sicl because I'd have to have my own fork of sicl.
17:20:24
drmeister
There are two commits - one with the predicates and use of predicates and a second where I added :size 1024 :rehash-size 4.0 to the map-instructions-xxx hash-tables.
17:21:16
drmeister
I confess - I couldn't tell because of everything else I did. You could drop those ones and I can experiment with it a bit.
18:21:53
drmeister
I did look at how much rehashing there was before and after. After - about half as much
18:23:56
drmeister
I can’t do anything at the implementation level because I can’t tell these hash tables from others.
19:39:07
drmeister
Bike: I have some more cleavir changes - ast class predicates and changes to introduce-invoke that use them.
19:39:40
Bike
i'm kind of focusing on the hir rewrite stuff. which, again, will end in me deleting introduce-invoke. so don't worry about it much.
19:41:25
drmeister
But I think I figured out the main story about why the AST generation thread slows down along with the AST->HIR->llvm children.
19:43:28
drmeister
If you use the Activity Monitor, sample the process, save it and bring it up in emacs you can search for "pthread_mutex_lock_slow" - and everything becomes clear.
19:44:27
drmeister
Then we can either change a TYPEP to a predicate or use a load-time-value class-holder.
19:46:54
drmeister
That and we need an interpreter for cclasp-eval-with-env. defstruct goes crazy compiling forms.
19:55:45
Bike
(defstruct foo bar baz) expands to a defclass, a defgeneric, four declaims, four defuns, an eval-when setf, and two defsetfs
19:56:22
Bike
defsetf is kind of like defmacro here- it's a (setf whatever (lambda ...)) in an eval-when
21:54:08
drmeister
I've updated Bike's sicl repo with some more cleavir class predicates (this time ast classes).
22:03:34
drmeister
I mean - there were some changes in dev that I had to rebase - building everything now...
22:09:34
drmeister
Bike: wrt the literal bytecode interpreter idea - you were talking about using a stack where I was talking about using a sort of register machine with lots of registers. Did you have your idea fleshed out how to implement it?
22:13:00
drmeister
What the heck - I'll just do the register machine thing - I see how to do it and we are talking about different ways to manage temporary storage.