00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:18:03  * bnoordhuisquit (Ping timeout: 246 seconds)
00:18:56  * avalanch_quit (Remote host closed the connection)
00:21:58  * bradleymeckjoined
00:27:09  * avalanche123joined
00:28:23  * ncthom91quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:34:21  * avalanche123quit (Remote host closed the connection)
00:34:47  * avalanche123joined
00:37:18  * avalanch_joined
00:38:48  * stagas_quit (Ping timeout: 255 seconds)
00:39:15  * avalanche123quit (Ping timeout: 255 seconds)
00:58:51  * s3shsquit (Ping timeout: 260 seconds)
01:07:57  * avalanch_quit (Remote host closed the connection)
01:08:24  * avalanche123joined
01:13:23  * avalanche123quit (Ping timeout: 264 seconds)
01:18:44  * tunniclmchanged nick to fierydrake
01:18:50  * avalanche123joined
01:24:04  * avalanche123quit (Ping timeout: 272 seconds)
01:24:18  * bnoordhuisjoined
01:29:00  * bnoordhuisquit (Ping timeout: 250 seconds)
01:37:23  * bradleymeckquit (Quit: bradleymeck)
01:42:54  * bradleymeckjoined
01:47:17  * MoZu4k_quit (Quit: MoZu4k_)
01:53:03  * bradleymeckquit (Quit: bradleymeck)
01:54:56  * bradleymeckjoined
01:56:18  * brsonquit (Ping timeout: 250 seconds)
01:59:42  * ncthom91joined
02:02:17  * rmgquit
02:14:44  * warehouse13quit (Ping timeout: 272 seconds)
02:17:46  * warehouse13joined
02:19:16  * bradleymeckquit (Quit: bradleymeck)
02:20:00  * dap_quit (Quit: Leaving.)
02:25:26  * fierydrakequit (Ping timeout: 240 seconds)
02:28:14  * jgiquit (Quit: jgi)
03:03:45  * bradleymeckjoined
03:04:10  * bradleymeckquit (Client Quit)
03:14:53  * s3shsjoined
03:18:11  * jgijoined
03:18:14  * ncthom91quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:26:29  * s3shsquit (Remote host closed the connection)
03:27:11  * s3shsjoined
03:33:46  * jgiquit (Quit: jgi)
03:58:34  * jgijoined
04:00:33  * bradleymeckjoined
04:07:41  * avalanche123joined
04:12:10  * avalanche123quit (Ping timeout: 240 seconds)
04:19:33  * bradleymeckquit (Quit: bradleymeck)
04:21:19  * jgiquit (Quit: jgi)
04:53:18  * s3shsquit (Read error: Connection reset by peer)
04:53:58  * toothrotquit (Ping timeout: 250 seconds)
04:53:59  * s3shsjoined
05:01:04  * s3shs_joined
05:03:52  * s3shsquit (Ping timeout: 244 seconds)
05:14:36  * jgijoined
05:26:25  * jgiquit (Quit: jgi)
05:28:19  * brsonjoined
05:33:11  * brsonquit (Ping timeout: 265 seconds)
05:33:17  * brson_joined
05:37:27  * jgijoined
06:41:27  * bnoordhuisjoined
06:41:41  * happy-dudequit (Quit: Connection closed for inactivity)
06:44:27  * stagas_joined
07:08:03  * avalanche123joined
07:13:06  * avalanche123quit (Ping timeout: 260 seconds)
07:20:35  * brson_quit (Ping timeout: 260 seconds)
07:54:52  * orangemocha_joined
07:55:19  * orangemochaquit (Ping timeout: 240 seconds)
07:55:40  * stagas_changed nick to stagas
08:18:13  * AndreasMadsenjoined
08:20:42  * stagasquit (Ping timeout: 246 seconds)
08:33:54  * stagasjoined
08:45:41  <saghul|afk>creationix: great work!
08:47:27  * jgiquit (Quit: jgi)
09:04:08  * SergeiRNDjoined
09:13:15  * rendarjoined
09:15:41  * SergeiRNDquit (Quit: Leaving.)
09:38:53  * seishunjoined
09:59:33  * bnoordhuisquit (Ping timeout: 252 seconds)
10:05:46  * stagasquit (Ping timeout: 260 seconds)
10:20:49  * stagasjoined
10:26:58  * orangemocha_quit (Read error: Connection reset by peer)
10:28:06  * zkatquit (Ping timeout: 240 seconds)
10:29:11  * orangemochajoined
10:29:18  * zkatjoined
10:44:17  * avalanche123joined
10:48:26  * avalanche123quit (Ping timeout: 240 seconds)
10:48:44  * SergeiRNDjoined
11:03:32  * SergeiRNDquit (Quit: Leaving.)
11:06:16  * bnoordhuisjoined
11:10:46  * bnoordhuisquit (Ping timeout: 240 seconds)
11:13:32  * AndreasMadsenquit
11:13:42  * davijoined
11:13:42  * daviquit (Changing host)
11:13:42  * davijoined
11:50:41  * bnoordhuisjoined
12:02:57  * stagasquit (Ping timeout: 246 seconds)
12:16:46  * bnoordhuisquit (Ping timeout: 265 seconds)
12:18:16  * stagasjoined
12:41:03  * bradleymeckjoined
12:51:14  * qardquit (Read error: Connection reset by peer)
13:08:03  * daviquit (Ping timeout: 246 seconds)
13:08:55  * qardjoined
13:22:51  * bnoordhuisjoined
13:27:28  * bnoordhuisquit (Ping timeout: 250 seconds)
13:44:16  * AndreasMadsenjoined
14:20:23  * avalanche123joined
14:25:22  * avalanche123quit (Ping timeout: 260 seconds)
14:37:34  * AndreasMadsenquit (Remote host closed the connection)
14:39:05  * AndreasMadsenjoined
14:43:55  * AndreasMadsenquit (Remote host closed the connection)
14:50:17  * jasnelljoined
14:51:14  * alexforsterjoined
14:51:49  * jasnell_joined
14:52:46  * s3shs_quit (Quit: Computer has gone to sleep.)
14:54:26  * jasnellquit (Ping timeout: 240 seconds)
14:54:43  * AndreasMadsenjoined
14:56:47  * ncthom91joined
15:05:04  * ncthom91quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:12:49  * AndreasMadsenquit (Remote host closed the connection)
15:14:01  * AndreasMadsenjoined
15:17:24  * s3shsjoined
15:18:41  * Fishrock123joined
15:19:23  * stagasquit (Ping timeout: 264 seconds)
15:19:40  * mmicko_quit (Remote host closed the connection)
15:32:01  * AndreasMadsenquit (Remote host closed the connection)
15:34:07  * jgijoined
15:34:46  * jgiquit (Client Quit)
15:36:41  * AndreasMadsenjoined
15:45:27  * bnoordhuisjoined
15:54:01  * ncthom91joined
16:00:44  * AndreasMadsenquit (Remote host closed the connection)
16:00:47  * seishunquit (Read error: Connection reset by peer)
16:01:52  * seishunjoined
16:02:12  * bnoordhuisquit (Ping timeout: 255 seconds)
16:03:50  * AndreasMadsenjoined
16:04:11  * bnoordhuisjoined
16:06:19  * jgijoined
16:12:59  * davijoined
16:12:59  * daviquit (Changing host)
16:12:59  * davijoined
16:15:03  * AndreasMadsenquit
16:24:33  * seishunquit (Read error: Connection reset by peer)
16:29:55  * seishunjoined
16:33:57  * rmgjoined
16:34:02  * stagasjoined
16:36:19  * alexforsterquit (Ping timeout: 240 seconds)
16:37:55  * alexforsterjoined
16:40:01  * seishunquit (Read error: Connection reset by peer)
16:55:36  * AndreasMadsenjoined
17:12:37  * SergeiRNDjoined
17:15:59  * jgiquit (Quit: jgi)
17:18:13  * dap_joined
17:18:22  * SergeiRND1joined
17:18:49  * jgijoined
17:21:22  * SergeiRNDquit (Ping timeout: 246 seconds)
17:23:19  * SergeiRND1quit (Quit: Leaving.)
17:24:50  * seishunjoined
17:34:03  * daviquit (Ping timeout: 246 seconds)
17:41:54  * bradleymeckquit (Quit: bradleymeck)
17:47:24  * jhamhaderjoined
17:50:10  * davijoined
17:50:10  * daviquit (Changing host)
17:50:10  * davijoined
17:56:41  * avalanche123joined
18:01:19  * avalanche123quit (Ping timeout: 240 seconds)
18:24:12  * avalanche123joined
18:31:40  * dap_quit (Ping timeout: 250 seconds)
18:32:05  * dap_joined
18:39:04  * avalanche123quit (Remote host closed the connection)
18:49:28  * dignifiedquirejoined
19:06:04  * jasnell_quit (Remote host closed the connection)
19:14:15  * jgiquit (Quit: jgi)
19:15:38  * orangemochaquit (Ping timeout: 260 seconds)
19:18:31  * bradleymeckjoined
19:19:03  * daviquit (Ping timeout: 246 seconds)
19:24:01  * jgijoined
19:24:27  * dignifiedquirequit (Quit: dignifiedquire)
19:24:59  * stagasquit (Ping timeout: 240 seconds)
19:26:48  * Fishrock123quit (Quit: Leaving...)
19:27:07  * dignifiedquirejoined
19:44:39  * jhamhaderquit (Remote host closed the connection)
19:47:05  * s3shs_joined
19:49:54  * s3shsquit (Ping timeout: 252 seconds)
19:53:30  * dignifiedquirequit (Quit: dignifiedquire)
19:57:47  * jasnelljoined
20:03:27  * dignifiedquirejoined
20:09:08  * s3shsjoined
20:12:13  * jhamhaderjoined
20:12:51  * s3shs_quit (Ping timeout: 265 seconds)
20:17:57  * orangemochajoined
20:37:36  * jasnellquit (Remote host closed the connection)
20:55:32  * bradleymeckquit (Ping timeout: 250 seconds)
20:56:56  * bradleymeckjoined
21:00:30  * fierydrakejoined
21:20:19  * AndreasMadsenquit
21:26:16  * ncthom91quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:29:04  * jgiquit (Quit: jgi)
21:38:03  * jasnelljoined
21:39:14  * Fishrock123joined
21:39:50  * orangemochaquit (Ping timeout: 240 seconds)
21:43:18  * jasnellquit (Ping timeout: 255 seconds)
21:56:26  * dap_quit (Quit: Leaving.)
22:13:35  * jgijoined
22:20:29  * Fishrock123quit (Quit: Leaving...)
22:21:51  <indutny>trevnorris: you around?
22:23:06  <trevnorris>indutny: yup
22:23:25  <indutny>trevnorris: I'm currently working on https://github.com/indutny/llnode
22:23:38  <indutny>so far it is capable only of printing some values if you provide a pointer
22:23:41  <indutny>and printing backtrace
22:23:57  <indutny>nothing way to special, and it was already accomplished by some python scripts in the wild
22:23:58  <indutny>anyway
22:24:09  <indutny>I'm thinking about adding V8 scripting to LLDB via this plugin
22:24:15  <indutny>but not sure what it could be used for
22:24:20  <indutny>trevnorris: do you have any ideas?
22:26:14  <trevnorris>would be a great replacement for the previous --gdbjit flag in v8 that's been removed.
22:27:14  <trevnorris>being able to step through JS stacks while in gdb was useful. and IIRC it was actually possible to set breakpoints on some JS things.
22:28:27  * dap_joined
22:32:57  * stagasjoined
22:34:09  <indutny>trevnorris: oh well
22:34:14  <indutny>trevnorris: this is way too complex :)
22:34:28  <indutny>also
22:34:29  <indutny>https://github.com/thlorenz/lldb-jbt
22:34:41  <indutny>Thorsten already did this
22:34:53  <indutny>with --perf-basic-prof
22:35:10  <indutny>it is kind of fine for debugging, but won't work for post mortem
22:35:40  <jgi>indutny: is llnode made for the postmortem use case in mind?
22:35:47  <jgi>s/for/with/
22:35:48  <indutny>jgi: yep
22:35:53  <jgi>indutny: interesting
22:35:53  <indutny>jgi: it works the same way
22:36:04  * toothrotjoined
22:36:16  <trevnorris>indutny: wait. I think w/ the build config --gdb don't actually need --gdbjit. or at least shouldn't.
22:36:43  <trevnorris>gah. confusing.
22:37:32  <indutny>heh
22:37:40  <indutny>anyway
22:37:47  <indutny>the reason why I did it in C++ in first place
22:37:53  <indutny>is that I was thinking about embedding V8 into this thing
22:38:03  <indutny>or even running full-blown node.js in separate thread
22:38:07  <trevnorris>whoa. hardcore.
22:38:14  <indutny>not that much
22:38:17  <trevnorris>could I see what's in a JS object from gdb?
22:38:19  <indutny>I just don't know what to use it for
22:38:21  <indutny>aaaah
22:38:24  <indutny>not that hard core
22:38:27  <indutny>:)
22:38:30  <indutny>this wont' work
22:38:44  <indutny>wait, I thought you was talking about accessing objects from other thread
22:39:03  <indutny>trevnorris: you will be able to see JS object's contents with llnode
22:39:04  <indutny>eventually
22:39:13  <trevnorris>yes!
22:39:40  <indutny>I'm working on adding `this=`, and arguments to the bt
22:39:40  <trevnorris>b/c there's the gdb script in deps/v8/tools/gdbinit that can print out information.
22:39:43  <jgi>indutny: what do you mean by “I don’t know what to use it for”? You don’t what to use llnode for? or you don’t know what to use a V8 runtime embedded in lldb for?
22:39:52  <indutny>jgi: V8 runtime
22:39:56  <jgi>indutny: ok :)
22:40:09  <indutny>I could technically expose all of the lldb's APIs to JS
22:40:14  <indutny>and make it possible to write scripts in JS
22:40:20  <trevnorris>but find that a little difficult to use.
22:40:28  <jgi>indutny: that seems like it would be super useful
22:40:45  <indutny>jgi: yeah, but it is already possible to write python scripts
22:40:54  <jgi>indutny: I would like to be able to write scripts that analyze the heap of JS objects and infer some common pathological cases
22:40:55  <indutny>jgi: so it is not like a super-new feature
22:41:15  <jgi>indutny: ok, compared to using Python, or another scripting language. that’s true
22:42:43  <trevnorris>indutny: crazy one, could I take an object and walk the heap to see everything that refers to it?
22:43:04  <indutny>trevnorris: I will do this, but it will be generating heapsnapshot
22:43:12  <indutny>so you could walk it yourself
22:43:16  <indutny>or do you want more introspection?
22:47:02  <trevnorris>indutny: actually, guess there's nothing I couldn't get from a snapshot.
22:47:14  <trevnorris>and it's probably impossible to see where an object was created.
22:47:28  <indutny>yeah
22:47:31  <indutny>this is true
22:52:25  <bradleymeck>@trevnorris there is a way to see where it was made
22:52:38  <trevnorris>eh?
22:53:06  <bradleymeck>but only if you turned on --track-heap-objects, or the same before the obj in question was allocated
22:53:26  <trevnorris>ah, okay. how much overhead does that add to the application?
22:53:28  <bradleymeck>it is very useful, but I havent gotten the visualization on it
22:53:41  <trevnorris>eh. who needs visualizations.
22:53:47  <bradleymeck>trevnorris: mostly memory pressure, but more than a couple percent
22:54:02  <bradleymeck>trevnorris: for heap analysis, anyone sane
22:54:18  <bradleymeck>but thats my node knockout project so, we will see how it goes
22:54:28  <bradleymeck>jgi is there a specific thing you want to pull out?
22:54:34  <trevnorris>heh. valgrind has some pretty sick ASCII visualizations for memory. :P
22:54:44  <bradleymeck>also if you have time for a hangout I would love to talk a bit
22:55:04  <bradleymeck>trevnorris: kind of, not great at showing *which variable from which script is leaking how*
22:55:23  <trevnorris>ah yeah. true.
22:55:34  <bradleymeck>thats the goal to get started on here
22:55:42  <jgi>bradleymeck: this is mainly coming from ideas we have talked about for mdb_v8, I don’t know yet what patterns we might be able to find with such a tool, but I’m hopeful we could find some interesting ones
22:55:48  <bradleymeck>probably have to port my data processor off node and to C++ :-/
22:56:41  <trevnorris>indutny: mind giving https://github.com/nodejs/node/pull/3461 a quick review?
22:56:46  <bradleymeck>jgi: most useful I have been seeing, scripts => retaining_size of vars, scripts => total_reachable_size of vars
22:57:05  <jgi>bradleymeck: the obvious result we would be able to get is the biggest retainers in a given core file, although that’s already something you can get with a heapdump, so that’s not really groundbreaking
22:57:07  <indutny>bradleymeck: ohai
22:57:08  <trevnorris>indutny: the public AsyncWrap patch will have to be updated for this. would like to get that done.
22:57:12  <bradleymeck>you have to do some things to be sure you don't pull in nodes that cross closures into other scripts
22:57:15  <bradleymeck>indutny: jello~
22:57:30  <indutny>bradleymeck: have you seen my messages about llnode?
22:57:38  <bradleymeck>jgi: associating it w/ scripts makes it useful, retaining_size on its own is pretty meh
22:57:42  <bradleymeck>no?
22:58:06  <indutny>bradleymeck: I'm working on C++ plugin for node.js post-mortem in lldb
22:58:20  <indutny>bradleymeck: thinking about adding V8 scripting to it, but not sure if it is useful
22:58:23  <indutny>bradleymeck: do you have any ideas?
22:58:41  <bradleymeck>indutny: for memory analysis yes, but it would most likely want to be in C++
22:58:52  <indutny>bradleymeck: yeah, this is what I am doing now
22:59:01  <jgi>bradleymeck: often the structure of an object gives a few clues about how/who created that object and where. But the more information the better.
22:59:01  <bradleymeck>simple programs are using 200,000 heap nodes and 500,000 heap edges (which is ridiculous)
22:59:27  <bradleymeck>brb
22:59:57  <bradleymeck>indutny: can we have a hangout about it in like 10min, too much for chat
23:00:15  <indutny>bradleymeck: hm... sorry, but this is unlikely
23:00:18  <bradleymeck>jgi: you don't need to know what made the object most of the time
23:00:20  <bradleymeck>ah, kk
23:00:38  <bradleymeck>you want to know what is storing / the source code that can affect that variable
23:01:00  <bradleymeck>the only thing I can't pull off JSON heapsnapshots are the function line/column number for where it occurs
23:01:02  <jgi>bradleymeck: also, you can find which closures an object belongs too, and you can get access to the function associated with a closure, and finally its source code. That’s one of the steps I follow when doing post-mortem debugging.
23:01:28  <bradleymeck>jgi: yep, I am doing that and working on visualizations
23:01:29  <jgi>bradleymeck: and I would be more than happy to chat about all that any time (except today) :)
23:01:41  <jgi>bradleymeck: that’s awesome
23:01:51  <jgi>bradleymeck: is any of that work open source?
23:01:54  <bradleymeck>jgi: send me a time/email at bradley.meck @ gmail
23:02:01  <bradleymeck>jgi: yes and no
23:02:02  * orangemochajoined
23:02:09  <bradleymeck>the stuff we make in NKO is going to be open source
23:02:22  <bradleymeck>but I just got laid off / have time while looking for work to... work
23:02:43  <jgi>bradleymeck: :(
23:02:51  <bradleymeck>https://github.com/bmeck/snapshot-study is the tool I am using to automate / write scripts against
23:02:56  <bradleymeck>but it needs a slight overhaul
23:03:22  <bradleymeck>right now it uses everything in ram, which large snapshots are too big for with v8 object sizes
23:03:28  <bradleymeck>moving it to rust or C++ probably
23:03:35  <bradleymeck>but not for NKO
23:03:55  <jgi>bradleymeck: looking forward to your NKO project!
23:04:15  <bradleymeck>its going to be a proof of concept, but it does have some interesting stuff
23:04:46  <bradleymeck>would love to work on this stuff full time, but that would be hard
23:06:35  <jgi>bradleymeck: hard to work on that full time, or hard to find a job to work on that full time?
23:07:11  * alexforsterquit (Quit: Textual IRC Client: www.textualapp.com)
23:10:38  * seishunquit (Ping timeout: 272 seconds)
23:12:29  <bradleymeck>jgi: hard to find a job
23:12:46  <bradleymeck>esp since I'm not entry level pay
23:27:20  * dap_quit (Quit: Leaving.)
23:40:18  <indutny>parserOnHeadersComplete(this=<obj>, <smi: 1>, <smi: 1>, <unknown object>, <unknown object>, <string: >, <smi: 200>, <string: OK>, <unknown object>, <unknown object>) at _http_common.js:42
23:40:24  <indutny>this is starting to look like something :)
23:40:39  * jasnelljoined
23:44:49  <bradleymeck>nice
23:45:22  * jasnellquit (Ping timeout: 260 seconds)
23:46:39  <bradleymeck>indutny: when you get to the closure type lmk
23:53:46  * dignifiedquirequit (Quit: dignifiedquire)