00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:30:09  * indexzerojoined
00:48:29  * toddaarojoined
00:48:31  * acrichtojoined
00:50:21  <Domenic_>what's the python test runner command again? that'll do glob tests and such?
00:50:33  <acrichto>I was playing around with libuv recently adding some bindings for process management to rust, but I was having some problems. I ended up getting it whittled down to https://gist.github.com/alexcrichton/6259377. In that code I would expect the statement in 'on_exit' to be printed twice, but that doesn't always happen. Am I using libuv in a wrong way somehow? The most recent version I've tried this on is 0.10.13
00:51:03  * indexzeroquit (Quit: indexzero)
00:54:24  * mmaleckichanged nick to mmalecki[zzz]
00:54:48  <isaacs>Domenic_: python tools/test.py simple/test-http*
00:54:59  <Domenic_>isaacs: ty. in the home stretch here.
00:55:11  * AvianFluquit (Remote host closed the connection)
00:55:13  <isaacs>Domenic_: nice :)
00:58:45  <Domenic_>how do i read the messages test output?
01:04:26  <isaacs>Domenic_: message test failures means that the output of test/messages/*.js didn't match test/messages/*.out
01:04:49  <Domenic_>isaacs: got that part. but, what does the output mean when it fails? it just spews a bunch of stuff at me.
01:04:51  <isaacs>Domenic_: the output is kinda weird, but it tries to point out 1) if the number of lines differs, and 2) the first line where they differ
01:04:58  <isaacs>yeah, it spews a bunch of stuff
01:05:09  <isaacs>Domenic_: i usually just diff the output withthe file when i see a failure
01:05:23  <isaacs>Domenic_: alias gdiff='git diff --no-index --color'
01:05:39  <Domenic_>isaacs: ok cool, thanks!
01:06:38  <isaacs>Domenic_: er, wrong one, hold on...
01:10:41  <isaacs>Domenic_: oh, wait, i don't have a hadny thing for running just one of those.
01:10:49  <isaacs>Domenic_: because they have globs, that's right. and so i gave up.
01:11:45  * c4milojoined
01:12:35  <isaacs>TooTallNate: probably just need to make Agent.prototype.request(options) sniff for a socket, and if it's got one, just make a ClientRequest and slap that socket on it
01:13:14  <TooTallNate>isaacs: it should probably bypass Agent completely IMO
01:17:18  <Domenic_>isaacs: dammit. trying to express vm.js's statics in terms of smaller primitives screws up stack traces, introducing lines in vm.js into them.
01:17:51  <TooTallNate>isaacs: no way... i'm compiling now to test... but i think it only takes +4 LOC
01:17:53  <TooTallNate>lol
01:17:58  <isaacs>Domenic_: that's fine. just update the tests
01:18:11  <Domenic_>isaacs: no, i think it's a much worse UX, so I should fix it.
01:18:19  <isaacs>TooTallNate: well, http.get() ===> http.globalAgent.get()
01:18:34  <isaacs>Domenic_: it's fine to have a few extra lines at the bottom of the stack trace
01:18:49  <isaacs>most people don't read more than a few down anyway
01:18:56  <isaacs>you only care about the point in the stack where i'ts YOUR code
01:19:09  <Domenic_>isaacs: no it screws up (a) the top of the stack trace; (b) the line of code displayed as causing the error
01:19:15  <isaacs>context._mumboJumbo(..) (vm.js:123) is just extra
01:19:24  <isaacs>Domenic_: oh.. yes. that's relevant, then
01:19:34  <isaacs>no try/catch monkey business
01:19:34  <TooTallNate>isaacs: hmm... is _http_client.js basically just all legacy code?
01:19:38  <isaacs>doemrethrow
01:19:47  <isaacs>Domenic_: rethrow <-- that ruins everything
01:19:59  <isaacs>TooTallNate: no, _http_client is the ClientRequest class
01:20:07  <TooTallNate>ya i see now
01:20:32  <isaacs>TooTallNate: https://gist.github.com/isaacs/6259465
01:20:35  <isaacs>TooTallNate: untested
01:20:46  <isaacs>herp, didn't do else if
01:21:01  <TooTallNate>isaacs: i mean ya that's basically what i got :p
01:21:07  <isaacs>updated https://gist.github.com/isaacs/6259465
01:21:14  <isaacs>TooTallNate: test is tedious, though :)
01:23:52  * TooTallNatequit (Quit: Computer has gone to sleep.)
01:37:33  * qardjoined
01:37:38  * qardquit (Client Quit)
01:58:32  * acrichtopart
02:01:11  <tjfontaine>yawn
02:06:24  * kazuponjoined
02:16:23  <Domenic_>what's the deal with "util.debug: use console.error instead"
02:16:54  <tjfontaine>it's an old thing, do you actually want util.debuglog?
02:17:36  <Domenic_>no idea, i'm just running some old tests and that happens
02:17:51  <tjfontaine>they probably haven't been updated yet
02:18:02  <Domenic_>so switching them to util.debuglog is the way to go?
02:18:34  <Domenic_>i think it happens when doing common.debug
02:18:36  <tjfontaine>if they're in test/* they should probably be console.err
02:18:39  <tjfontaine>*error
02:18:47  <tjfontaine>debuglog is mostly for lib/*
02:18:52  <Domenic_>hmm ok
02:19:39  <Domenic_>oh god i broke everything -_-
02:33:48  <Domenic_>halp interpreting https://gist.github.com/domenic/6259629 stack trace
02:35:19  <tjfontaine>oh the windows
02:37:34  <Domenic_>i brought home my mac laptop if you think it'll be easier there?
02:38:14  <Domenic_>wait, sorry, it turns out this problem is caused earlier than my last commit
02:38:30  <tjfontaine>basically you're passing an empty local around
02:39:10  <Domenic_>where?
02:39:12  <tjfontaine>the frustrating part of the new abort layout is you don't necessarily get the native stack
02:39:31  <tjfontaine>whereas on unicies you'd get a core file and we could get a sane[r] backtrace
02:39:54  <tjfontaine>test\simple\test-vm-basic.js seems to be the inducer
02:39:59  <Domenic_>right yes :P
02:40:15  <tjfontaine>specifically runInNewContext
02:40:28  <tjfontaine>but the problem is in native land
02:40:40  <Domenic_>it turns out if i use process.binding('contextify').runInNewContext instead of vm.runInNewContext to bootstrap the module system, the stack traces are much saner...
02:41:22  <Domenic_>but, is there somewhere in there that would help me understand what's wrong with the C++?
02:41:40  <tjfontaine>well, if you run it in the vs debugger
02:41:47  <Domenic_>oh right of course, thanks
02:42:57  * kazuponquit (Remote host closed the connection)
02:47:22  <Domenic_>tjfontaine: this line is causing the problem: https://github.com/domenic/node/blob/b14d196d046ff49c2b43fad3857227c0a273e805/src/node_contextify.cc#L421 any ideas what i'm doing wrong?
02:48:23  <tjfontaine>Domenic_: I would guess ContextFromNewSandbox is somehow returning null?
02:48:39  <tjfontaine>er no
02:49:04  <tjfontaine>where is context::scope?
02:49:10  <tjfontaine>oh I guess that's v8
02:49:15  <Domenic_>ya
02:49:33  <Domenic_>oh it is returning null i think
02:49:35  <tjfontaine>ya, I woudl check if that's returning null
02:49:47  <Domenic_>well there's a null somewhere
02:49:49  <tjfontaine>which probably means sandbox is null?
02:50:13  <Domenic_>when i hover over context in CompileRunInNewContext it's non-null
02:50:26  <Domenic_>but when i hover over context in v8::Context::Scope::Scope it's null
02:54:29  <Domenic_>think i got it: https://github.com/domenic/node/blob/b14d196d046ff49c2b43fad3857227c0a273e805/src/node_contextify.cc#L502 // 0 should be i
02:55:25  <tjfontaine>if you say so, I am not very familiar with the code paths :)
02:55:47  <Domenic_>ok well it's still crashing but at tleast this time it's clearly because the returned context is null
02:56:00  <Domenic_>is there something bad about the way i'm using PersistentToLocal perhaps?
02:56:06  <Domenic_>In ContextFromNewSandbox
02:56:49  <tjfontaine>oh
02:57:46  <tjfontaine>ya, just return ctx->context_ I think is sufficient
02:58:08  <tjfontaine>that persistent is going out of scope, which I think kills the persistent
02:58:17  <tjfontaine>I think there's a comment about it
02:58:55  <Domenic_>ok cool thanks
02:59:02  <tjfontaine>https://github.com/joyent/node/blob/master/src/node_internals.h#L71-L73
02:59:14  <tjfontaine>I believe there's an implicit Dispose because the Persistent goes out of scope
02:59:34  <tjfontaine>but don't quote me on that
03:03:15  <Domenic_>oh, i am forgetting to wrap the context around something
03:03:27  <tjfontaine>that also matters
03:15:30  <Domenic_>is there any way I can just do `new ContextifyContext()`, but from C++?
03:16:52  <Domenic_>doing that gives me so much: it sets up the objectwrap, plugs the sandbox into the internals, etc. but i need a ContextifyContext* instance, in C++... last time I solved this by passing one in from JS, but that won't do here.
03:22:29  <tjfontaine>from the template function NewInstance
03:35:09  <Domenic_>sweet i think that did the trick. back to comprehensible errors.
03:39:57  <Domenic_>is there any way to do that and also pass in an argument?
03:45:02  * mikealquit (Ping timeout: 240 seconds)
03:50:33  * c4miloquit (Remote host closed the connection)
04:11:55  * c4milojoined
04:13:37  * mikealjoined
04:21:27  * jmar777joined
04:44:04  * c4miloquit (Remote host closed the connection)
04:51:22  * jmar777quit (Remote host closed the connection)
04:59:45  * mikealquit (Read error: Connection reset by peer)
04:59:51  * mikeal1joined
05:02:06  * mikeal1quit (Client Quit)
05:06:00  * mikealjoined
05:12:14  * mjr__joined
05:49:34  * groundwaterjoined
05:52:14  * groundwaterquit (Client Quit)
05:56:07  * mikealquit (Quit: Leaving.)
06:12:23  * groundwaterjoined
06:13:53  * groundwaterquit (Client Quit)
06:26:17  * mikealjoined
06:34:06  * groundwaterjoined
06:39:48  * dapjoined
06:44:17  * dapquit (Client Quit)
06:50:38  * dapjoined
06:51:39  * dlmanningquit (Quit: reboot)
06:52:44  <MI6>nodejs-v0.10-windows: #154 UNSTABLE windows-ia32 (8/597) windows-x64 (8/597) http://jenkins.nodejs.org/job/nodejs-v0.10-windows/154/
07:21:45  * stagasjoined
07:23:47  * groundwaterquit (Quit: groundwater)
07:24:51  * rendarjoined
07:39:48  * dapquit (Quit: Leaving.)
08:05:46  * mjr__quit (Quit: mjr__)
08:13:24  <indutny>hoya
08:31:52  * rendar_joined
08:33:45  * rendarquit (Ping timeout: 264 seconds)
08:35:34  * kazuponjoined
08:35:42  * inolenquit (Quit: Leaving.)
08:43:14  * kazuponquit (Remote host closed the connection)
09:14:20  * kazuponjoined
09:24:43  * AndreasMadsenjoined
09:25:19  * brsonquit (Quit: leaving)
09:35:03  * dominictarrjoined
09:35:12  * defunctzombiechanged nick to defunctzombie_zz
10:36:08  * rendar_changed nick to rendar
10:45:12  <MI6>nodejs-v0.10: #1424 UNSTABLE smartos-x64 (2/597) http://jenkins.nodejs.org/job/nodejs-v0.10/1424/
11:12:15  * dominictarrquit (Read error: Connection reset by peer)
11:23:04  * dominictarrjoined
11:27:51  * dominictarrquit (Ping timeout: 260 seconds)
11:36:53  * bnoordhuisjoined
11:53:17  * kazuponquit (Remote host closed the connection)
12:18:02  * c4milojoined
12:21:11  * dominictarrjoined
12:33:00  * AndreasMadsenquit (Read error: Connection reset by peer)
12:33:26  * AndreasMadsenjoined
13:05:00  * bnoordhuisquit (Ping timeout: 268 seconds)
13:15:26  * dominictarrquit (Ping timeout: 240 seconds)
13:22:53  * hzjoined
13:29:14  * dominictarrjoined
13:32:23  * mmalecki[zzz]changed nick to mmalecki
13:38:58  * AvianFlujoined
14:04:49  * kazuponjoined
14:25:03  * kazuponquit (Read error: Connection reset by peer)
14:25:10  * kazupon_joined
14:28:26  * bnoordhuisjoined
14:28:53  * dominictarr_joined
14:32:05  * dominictarrquit (Ping timeout: 245 seconds)
14:32:06  * dominictarr_changed nick to dominictarr
14:34:12  * AndreasMadsenquit (Remote host closed the connection)
14:59:19  * inolenjoined
15:03:17  * mjr__joined
15:10:14  <tjfontaine>Domenic_: did you figure out how to pass arguments? grepping through src/* will show you :)
15:17:00  <MI6>nodejs-master: #439 UNSTABLE smartos-x64 (11/628) smartos-ia32 (3/628) osx-x64 (2/628) osx-ia32 (2/628) linux-ia32 (2/628) linux-x64 (2/628) http://jenkins.nodejs.org/job/nodejs-master/439/
15:24:12  <Domenic_>tjfontaine: yeah I think so; I did https://gist.github.com/domenic/6262189
15:26:28  * mikealquit (Quit: Leaving.)
15:26:33  <Domenic_>is there a good file to look at for examples of how to throw exceptions but also de-duplicate code into helper functions?
15:28:06  * TooTallNatejoined
15:28:25  <Domenic_>my helper functions (like https://github.com/domenic/node/blob/0adf4e51c9e9741d1ab7eff5619276c89dc26b8f/src/node_contextify.cc#L509-L513 ) are failing but the only way i can see to deal with that is wrap invocations of them from the main functions in the awkward TryCatch try_catch; /* actual code that calls helper functions */ if (try_catch.HasCaught()) {
15:28:25  <Domenic_>try_catch.ReThrow(); return; }
15:28:51  <Domenic_>i would have thought V8 would have used C++ exceptions to emulate JS exceptions.
15:42:24  <bnoordhuis>Domenic_: god, no. exceptions make code hard to reason about
15:42:59  <bnoordhuis>the google c++ style guide is quite clear on exceptions and what will be done to people who use them
15:47:58  <MI6>joyent/libuv: Ben Noordhuis v0.10 * b2ac4d3 : unix: retry waitpid() on EINTR - http://git.io/jCoVug
15:48:11  <bnoordhuis>^ first v0.10 commit in nearly a month
15:49:04  * c4miloquit (Remote host closed the connection)
15:49:31  <MI6>joyent/libuv: Ben Noordhuis master * 389fc44 : Merge remote-tracking branch 'origin/v0.10' (+1 more commits) - http://git.io/mXN2Dg
15:50:09  <MI6>libuv-v0.10: #106 UNSTABLE smartos (2/187) windows (5/188) http://jenkins.nodejs.org/job/libuv-v0.10/106/
15:56:02  <MI6>libuv-v0.10-gyp: #70 UNSTABLE windows-x64 (4/188) windows-ia32 (3/188) smartos-x64 (2/187) smartos-ia32 (2/187) http://jenkins.nodejs.org/job/libuv-v0.10-gyp/70/
15:59:59  <MI6>libuv-master: #169 UNSTABLE smartos (12/192) osx (1/193) windows (3/193) linux (2/192) http://jenkins.nodejs.org/job/libuv-master/169/
16:00:50  <MI6>libuv-master-gyp: #109 UNSTABLE windows-x64 (3/193) smartos-ia32 (5/192) smartos-x64 (2/192) windows-ia32 (4/193) linux-x64 (1/192) http://jenkins.nodejs.org/job/libuv-master-gyp/109/
16:02:24  <MI6>libuv-node-integration: #151 UNSTABLE smartos-x64 (3/597) http://jenkins.nodejs.org/job/libuv-node-integration/151/
16:18:43  <MI6>libuv-node-integration: #152 UNSTABLE smartos-ia32 (2/628) osx-ia32 (1/628) linux-x64 (2/628) linux-ia32 (2/628) osx-x64 (1/628) smartos-x64 (10/628) http://jenkins.nodejs.org/job/libuv-node-integration/152/
16:19:45  * AvianFluquit (Remote host closed the connection)
16:23:07  <isaacs>bnoordhuis, Domenic_: I actually think that JS exceptions tend to make code hard to reason about as well. for much the same reasons.
16:23:46  <isaacs>But that's the price you pay for a dynamic language. no compiler to prevent you from possibly reading a propery of null.
16:24:01  <isaacs>though, i guess, in C land you get segfaults for that anyway
16:24:05  <indutny>hoya
16:24:07  <isaacs>which is probably better.
16:24:18  <indutny>anyone wants to try out hackerdns.com for their domains? :)
16:24:38  * mikealjoined
16:31:06  <bnoordhuis>indutny: what does it do?
16:31:40  <indutny>bnoordhuis: dns server for your domain
16:31:49  <indutny>bnoordhuis: basically hackerdns.com is a frontend
16:31:59  <indutny>bnoordhuis: ns1.hackerdns.com - ns6.hackerdns.com are DNS servers
16:32:02  * groundwaterjoined
16:32:05  <indutny>though, its actually the only one server right now
16:33:08  <bnoordhuis>why would i use it?
16:33:11  <indutny>haha
16:33:17  <indutny>well, its free
16:33:25  <indutny>also, you could roll out your own server if you want
16:33:37  <bnoordhuis>are you in the cloud hosting business now?
16:34:00  <indutny>haha, not really
16:34:07  <indutny>its just a weekend stuff, you know
16:34:25  <bnoordhuis>ah okay
16:34:37  <bnoordhuis>well, i'm good for now. thanks though :)
16:34:57  * dominictarrquit (Ping timeout: 264 seconds)
16:39:17  * dominictarrjoined
16:42:12  * mikealquit (Quit: Leaving.)
16:54:51  * TooTallNatequit (Quit: ["Textual IRC Client: www.textualapp.com"])
16:57:52  * c4milojoined
17:04:22  * c4miloquit (Remote host closed the connection)
17:11:08  * dominictarr_joined
17:13:40  * dominictarrquit (Ping timeout: 260 seconds)
17:13:40  * dominictarr_changed nick to dominictarr
17:20:50  * c4milojoined
17:22:26  * mikealjoined
17:31:59  * M28joined
17:35:02  * hzquit (Ping timeout: 240 seconds)
17:37:22  * mikealquit (Quit: Leaving.)
17:38:04  * kazupon_quit (Remote host closed the connection)
17:47:36  * mikealjoined
17:53:05  <MI6>libuv-master: #170 UNSTABLE smartos (9/192) windows (3/193) http://jenkins.nodejs.org/job/libuv-master/170/
17:57:57  * mikealquit (Quit: Leaving.)
18:06:28  <MI6>libuv-node-integration: #153 UNSTABLE smartos-ia32 (3/628) osx-ia32 (1/628) linux-x64 (2/628) linux-ia32 (2/628) osx-x64 (1/628) smartos-x64 (10/628) http://jenkins.nodejs.org/job/libuv-node-integration/153/
18:11:42  * mikealjoined
18:13:33  * defunctzombie_zzchanged nick to defunctzombie
18:20:21  * groundwaterquit (Quit: groundwater)
18:21:30  * c4miloquit (Remote host closed the connection)
18:25:25  * dominictarrquit (Ping timeout: 245 seconds)
18:34:13  * inolenquit (Ping timeout: 248 seconds)
18:36:25  * inolenjoined
18:38:38  * `3E|Zzzchanged nick to `3rdEden
18:39:10  * bnoordhuisquit (Ping timeout: 245 seconds)
18:49:05  * dominictarrjoined
18:57:21  * dominictarrquit (Ping timeout: 276 seconds)
18:59:22  <MI6>nodejs-master-windows: #236 UNSTABLE windows-x64 (20/628) windows-ia32 (19/628) http://jenkins.nodejs.org/job/nodejs-master-windows/236/
19:04:03  * groundwaterjoined
19:05:07  * bnoordhuisjoined
19:09:01  * dominictarrjoined
19:12:18  * dapjoined
19:13:26  * bnoordhuisquit (Ping timeout: 240 seconds)
19:23:01  * mikealquit (Quit: Leaving.)
19:23:45  * indexzerojoined
19:28:02  * brsonjoined
19:35:37  * mikealjoined
19:43:40  * indexzeroquit (Quit: indexzero)
19:54:11  <Domenic_>vm2 fixed, now passes all tests, but the code is ugly and needs critiquing. https://github.com/joyent/node/pull/5918
19:55:34  * dominictarrquit (Quit: dominictarr)
19:59:18  <indutny>yikes
20:10:34  * dapquit (Quit: Leaving.)
20:18:15  * indexzerojoined
20:46:41  * dominictarrjoined
20:50:07  * bill1024joined
20:55:50  * bill1024quit
21:11:54  * rendarquit (Ping timeout: 276 seconds)
21:17:14  * indexzeroquit (Quit: indexzero)
21:23:43  * indexzerojoined
21:29:50  * paulfryzeljoined
21:31:12  * bnoordhuisjoined
21:48:42  * paulfryzelquit (Remote host closed the connection)
21:49:17  * wolfeidauquit (Remote host closed the connection)
21:49:19  * paulfryzeljoined
21:49:28  * wolfeidaujoined
21:52:53  * indexzeroquit (Quit: indexzero)
21:53:26  * paulfryzelquit (Ping timeout: 240 seconds)
22:39:01  * indexzerojoined
22:42:10  * indexzeroquit (Client Quit)
22:49:30  <indutny>bnoordhuis: hey man
22:49:36  <indutny>bnoordhuis: just FYI https://github.com/joyent/node/pull/6057
22:49:52  <indutny>bnoordhuis: I think I'll address some of issues after we'll land it
22:50:09  <indutny>bnoordhuis: your comments are good and precise, but it doesn't fit well DRYing commit
22:50:18  <indutny>bnoordhuis: or
22:50:30  <indutny>bnoordhuis: speaking better, I'd like to make sure that it'll land first
22:50:39  <indutny>bnoordhuis: and then make incremental improvements to it
22:50:49  <indutny>bnoordhuis: rather than rebasing and merging it later
22:51:02  <indutny>bnoordhuis: please consider it and let me know if it works for you
23:00:34  * inolenquit (Quit: Leaving.)
23:11:18  * dominictarrquit (Quit: dominictarr)
23:26:09  * inolenjoined
23:39:23  <bnoordhuis>indutny: okay, noted
23:59:08  <MI6>libuv-master-gyp: #110 UNSTABLE windows-x64 (3/193) smartos-ia32 (2/192) smartos-x64 (2/192) windows-ia32 (3/193) http://jenkins.nodejs.org/job/libuv-master-gyp/110/