freenode/#clasp - IRC Chatlog
Search
3:51:20
drmeister
Bike: You asked about debugging and printing variables - sometimes it pays to start dumping likely registers.
3:51:54
drmeister
I was trying to figure out something/anything about a ENSURE-GENERIC-FUNCTION call.
13:23:21
shiho
drmeister, Lisp closed when I run (energy:minimize *agg*). It was no problem before updating...
13:52:47
drmeister
I'm trying to pull everything together today. fastgf, generic function dispatch passing just the method arguments list and next methods, bind-va-list
14:05:39
beach
If the only applicable method is a slot accessor, you can do the access directly in the discriminating function without calling an effective method. But it requires some trickery as I recall.
14:05:40
drmeister
Yes - but the special circumstances where the optimization is allowed isn't recognized yet.
14:06:57
drmeister
I think all the trickery is in place - and the discriminating function compiler will generate special code for them.
14:06:58
drmeister
https://github.com/drmeister/clasp/blob/funclos/src/lisp/kernel/cmp/cmpfastgf.lsp#L564
14:07:20
drmeister
https://github.com/drmeister/clasp/blob/dev/src/lisp/kernel/cmp/cmpfastgf.lsp#L564
14:07:35
Bike
currently a generic function call takes like seven frames to get to the method from the generic, for non fastgf reasons, which is obviously not good
14:08:00
drmeister
Bike and I have to sit down and figure out where to figure out when and where we can insert these: 'core:optimized-slot-reader and 'core:optimized-slot-writer outcomes.
14:08:34
Bike
might have to look at effective method computation to make sure that if there's only one method it's used as the effective
14:09:16
Bike
have defmacro in one environment, compile defmacro defun, load that fasl in another environment with no defmacro, still works
14:12:15
Bike
you'd think after making as many repls as i have i'd remember that slime doesn't do well with completions in them, but no
14:13:43
drmeister
Bike: (bind-va-list lambda-list va-list-args . forms) is taking the place of (apply (lambda lambda-list . forms) va-list-args) - right?