freenode/#clasp - IRC Chatlog
Search
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.