freenode/#clasp - IRC Chatlog
Search
11:48:40
drmeister
Shiho: Everything in 'dev' clasp/cando works - could you clone a new copy and call it 'cando-unsafe' and build that while you work on the older one.
12:17:30
drmeister
On line 142 - how do I access the 'cy' graph that is defined inside of the closure on line 34?
12:28:08
drmeister
I moved the 'cy' variable to the outer scope where onSubmitGraph() was defined and I used: var command = '(defparameter graph::*graph* \"' + JSON.stringify(cy.json()) + '\")';
12:49:18
Shinmera
Do not use onClick or any other JS attributes. Just don't use them. They're severe antipatterns that are obsolete and bad.
13:10:55
drmeister
Shinmera: That goes against the freewheeling "anything goes" ethos of Javascript - doesn't it? :-)
13:11:27
drmeister
var command = '(defparameter graph::*graph* \"' + JSON.stringify(cy.json()).replace(/\"/g,'\\\\\"') + '\")';
13:12:57
Bike
beach: it might have caused a problem in function-tree, presumably by virtue of functions no longer forming a tree, but i'm not sure yet
13:14:16
drmeister
Shinmera: Now - I can only have one of these up at a time right? If I try two - one of them flashes the graph and then goes blank.
13:14:48
drmeister
I only need one - and the new Jupyterlab will allow me to keep it in a separate panel alongside the notebook (I think).
13:54:29
beach
It is possible that some of the existing code does not take that possibility into account. But then that existing code should be modified.
13:58:49
beach
I can't check even though I am a member of the program committee, because I declared a conflict.
14:00:13
Bike
redoing things to account for the structure not actually forming a tree might be difficult.
14:10:39
Shinmera
drmeister: And no, in JS you have two choices: succumb to insanity, or be very rigorous about how you're doing things. You still suffer either way, but the latter option is preferable.
14:45:36
Bike
here i was thinking you could just throw the default initargs on the end of the argument list. guess not
14:48:49
Bike
i'm not clear on it myself, but what you get from class-default-initargs is apparently not a plist, for one.
16:34:41
Bike
drmeister: did we have some profiling thing to get self-times from traces? countt tips or something?
17:42:49
kpoeck
I will be glad to invite drmeister to his first Bitter Kas (or any other local drink)
18:52:53
drmeister
The travis-ci folks have upped clasp's build time to 180min and that is their limit. If that doesn't do it for us they say they have some other tricks.
18:53:35
drmeister
I don't have anything for self timing - we would have to write something to pull that out of the backtraces.
18:54:12
drmeister
You want to time how much time is spent in each function, subtracting the time spent in functions it calls - right? That's the self time.
19:28:10
drmeister
There's a lot of niggling little details that need to be right about these calculations.
19:36:51
Bike
stupid static constructors thing is still slow because stupid multiple value bind conses and it overwhels the time of actually allocating the stupid object
19:38:28
Bike
because it expands into (multiple-value-call (lambda ...) ...) and the closure has to be allocated
19:38:52
Bike
it should be inlined, and hir inlining is a good step for that, except the hir doesn't have enough information to actually determine it can be inlined
19:44:11
drmeister
I'm asking because multiple-value-bind consing has been a sore spot for a long time.
19:46:54
Bike
i'm really not sure. it's not something that fits very well into how cleavir works presently
19:49:50
Bike
also looking at the flame graph i can see a C++ wrapper spending at least 5% of its time in dynamic_cast. probably not an issue here but that still gets me antsy
19:59:21
Bike
there's also a comment in instance.h saying it always uses dynamic_cast, for isA i guess
20:04:29
drmeister
That will take backtraces N times a second and count what percentage of backtraces contain every function for each function.
20:05:17
drmeister
If clasp is spending a lot of time in a function, either self time or because it's on the stack - it will show up with a large percentage.
20:06:32
drmeister
You run 'do-dtrace' --> /tmp/out-<pid>.user_stacks and then ./count-calls -i /tmp/out-<pid>.user_stacks -o /tmp/out-report.txt
20:07:27
drmeister
It only counts the function once for each backtrace that it appears in. So recursive calls that are on a backtrace multiple times only count for one.
20:20:14
drmeister
Could you shut down your notebook and come by my office? I'll rearrange things and show you what I mean.