00:00:33  * piscisaureus_joined
00:01:12  * piscisaureus_quit (Read error: Connection reset by peer)
00:47:02  <CIA-99>node: Johannes Wüller master * r7817f48 / tools/installer.js : fixed booleans being treated as strings, resulting in missing node-waf and npm - http://git.io/L32Qxw
00:54:02  <bnoordhuis>igorzi: reviewed
01:00:20  * perezdquit (Quit: perezd)
01:00:43  <CIA-99>node: Erik Lundin master * rf2ebf24 / test/simple/test-typed-arrays.js : (log message trimmed)
01:00:43  <CIA-99>node: test: fix simple/test-typed-arrays
01:00:43  <CIA-99>node: * It incorrectly uses assert(a, b) instead of assert.equal(a, b), meaning all
01:00:43  <CIA-99>node: relevant assertions will pass regardless of whether they're supposed to when
01:00:43  <CIA-99>node: a == true.
01:00:43  <CIA-99>node: * It makes the assumption that elements in typed arrays for numerical types
01:00:44  <CIA-99>node: spanning more than one byte, like Uint32Array, are stored little-endian first
01:00:44  <CIA-99>node: Erik Lundin master * r4b1d492 / (2 files):
01:00:45  <CIA-99>node: test: merge typed arrays tests
01:00:45  <CIA-99>node: Merge simple/test-typed-arrays-typenames into simple/test-typed-arrays. - http://git.io/vgTg6A
01:02:08  * travis-cijoined
01:02:08  <travis-ci>[travis-ci] joyent/node#624 (master - 7817f48 : Johannes Wüller): The build is still failing.
01:02:08  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/06a058d...7817f48
01:02:08  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/911091
01:02:08  * travis-cipart
01:09:59  * dapquit (Quit: Leaving.)
01:12:52  * sh1mmerjoined
01:13:11  * sh1mmerquit (Client Quit)
01:14:43  <CIA-99>libuv: Ben Noordhuis master * ref47a62 / (include/uv-private/uv-unix.h include/uv.h): unix: move libeio specific fields to uv-unix.h - http://git.io/XZQU4w
01:14:44  <CIA-99>libuv: Ben Noordhuis master * r4ff0898 / (10 files in 2 dirs):
01:14:44  <CIA-99>libuv: unix: replace uv__close() with close()
01:14:44  <CIA-99>libuv: uv__close() was deprecated a while ago. It's been an alias for close() ever
01:14:44  <CIA-99>libuv: since. Remove it. - http://git.io/Mxj6cA
01:14:45  <CIA-99>libuv: Charlie McConnell master * r8e59042 / src/unix/error.c :
01:14:45  <CIA-99>libuv: unix: map ENETUNREACH to UV_ENETUNREACH
01:14:45  <CIA-99>libuv: UV_ENETUNREACH already exists, but was not mapped properly on unix. - http://git.io/RVoKOA
01:16:14  * travis-cijoined
01:16:14  <travis-ci>[travis-ci] joyent/node#625 (master - 4b1d492 : Erik Lundin): The build is still failing.
01:16:14  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/7817f48...4b1d492
01:16:14  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/911121
01:16:14  * travis-cipart
01:16:40  * travis-cijoined
01:16:40  <travis-ci>[travis-ci] joyent/libuv#144 (master - 8e59042 : Charlie McConnell): The build is still failing.
01:16:40  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/49d4e18...8e59042
01:16:40  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/911148
01:16:40  * travis-cipart
01:19:02  * sh1mmerjoined
01:19:20  * pietern_joined
01:20:18  * pietern__joined
01:20:18  * pietern_quit (Read error: Connection reset by peer)
01:22:17  * pieternquit (Ping timeout: 245 seconds)
01:24:36  * pietern__quit (Ping timeout: 240 seconds)
01:30:07  * mmaleckichanged nick to mmalecki[zzz]
01:36:55  * abraxasjoined
01:38:43  * pfox___joined
02:00:04  * brsonquit (Quit: leaving)
02:02:02  * TooTallNatequit (Quit: Linkinus - http://linkinus.com)
02:15:13  * pfox___quit (Ping timeout: 248 seconds)
02:42:20  * mikealjoined
02:42:25  * isaacsjoined
02:49:18  <CIA-99>node: isaacs master * r81cd3a3 / lib/readline.js : lint readline.js - single-quotes preferred - http://git.io/3fjr2Q
02:50:16  <isaacs>indutny_sleeping bnoordhuis: either of you around?
02:50:18  <isaacs>https://github.com/isaacs/node/compare/debug-repl-fix
02:50:31  <bnoordhuis>isaacs: i am
02:50:33  <isaacs>i'm not happy with this fix.
02:50:47  <isaacs>but the v8 debugger api is very large.
02:50:53  <bnoordhuis>i think there's been a heist just now
02:50:55  <isaacs>and i can't seem to find out how to tell when someone connects.
02:51:00  <isaacs>a heist?
02:51:13  <bnoordhuis>a bank robbery or something. there was a loud boom and now it's swarming with police helicopters
02:51:25  <isaacs>oh!! like, in real life, where you are?
02:51:31  <bnoordhuis>yep
02:51:34  <isaacs>wow
02:51:40  <isaacs>no wonder you're up in teh middle of the night
02:51:48  <bnoordhuis>well, i was awake anyway :)
02:51:51  <isaacs>that's exciting. not entirely in a good way :)
02:52:24  <isaacs>anyway, the debugger-repl races have been very exciting.
02:52:40  <isaacs>there are THREE race conditions that led to orphaned processes from those tests.
02:52:53  <isaacs>the first is the race to connect to the debugged process before it emits the line=1 breakpoint
02:53:06  <isaacs>the second is the race to get the "Can't backtrace now" message before the test gives up
02:53:15  <isaacs>and the third is the race to kill teh child before the parent dies.
02:53:36  <isaacs>https://github.com/isaacs/node/compare/debug-repl-fix seems to work around all three, but like i said, i'm not even slightly happy with it.
02:53:39  <isaacs>depressed, in fact.
02:54:13  <isaacs>the changes to the tests are fine, but setTimeout(Module.runMain, 50) is an admission of failure.
02:55:23  <bnoordhuis>what are the alternatives?
02:55:33  <bnoordhuis>it doesn't really surprise me that it's a timing issue
02:56:15  <isaacs>what would be better would be some kind of global.v8debug.onFirstConnection = Module.runMain
02:58:25  <isaacs>there's this wait_for_connection boolean that allegedly tells it not to go until there's a connection, but it seems flaky
02:59:50  <isaacs>50ms seems like a reasonable amount of time to wait, though. it's short enough that a human won't notice, but long enough that it's plenty of time for the server to be ready
03:00:14  <isaacs>i'm not 100% opposed to landing this. i'll just have to drink to soothe the pain.
03:00:48  <bnoordhuis>heh
03:01:23  <isaacs>it seems like the alternative is to wade into the v8 guts.
03:01:32  <isaacs>which is alwasy unpleasant.
03:02:46  <benvie>hah I couldn't tell if the police helipcopters were a metaphore or not
03:02:48  <benvie>still unsure
03:03:16  <benvie>pretty awesome though if it's true
03:03:22  * perezdjoined
03:04:26  <bnoordhuis>benvie: i'm as literal minded as they come
03:05:12  * travis-cijoined
03:05:12  <travis-ci>[travis-ci] joyent/node#626 (master - 81cd3a3 : isaacs): The build is still failing.
03:05:12  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/4b1d492...81cd3a3
03:05:12  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/911398
03:05:12  * travis-cipart
03:05:22  <isaacs>bnoordhuis: any thoughts on https://github.com/isaacs/node/commit/c781f17742170f2e127f9ee6652c56b406c30586?
03:06:08  <bnoordhuis>isaacs: looks okay to me
03:07:22  <isaacs>ok. whatever. i'm sick of this test failing every time. i'm landing it.
03:07:51  <CIA-99>node: isaacs master * rc781f17 / src/node.js : debug: Wait 50ms before running the main module - http://git.io/CsEj-g
03:07:52  <CIA-99>node: isaacs master * rd2389f8 / (2 files): (log message trimmed)
03:07:52  <CIA-99>node: debug repl tests: Add visibility, remove test that times out
03:07:52  <CIA-99>node: The 'Can't backtrace now' message takes over 10 seconds to return.
03:07:52  <CIA-99>node: That's too much time to have to wait for a test, and when it times
03:07:52  <CIA-99>node: out, it was causing an orphaned node process.
03:07:52  <CIA-99>node: This cleans up the node process, and also removes the test that's
03:07:53  <CIA-99>node: timing out, so that the case is hit less often.
03:07:59  <isaacs>THATS WHAT REVERT IS FOR!
03:08:14  <isaacs>dinner time. g'nite heroes.
03:09:36  <bnoordhuis>i wonder if v8 fails to generate proper breakpoint sometimes...
03:09:44  <bnoordhuis>*breakpoints
03:10:03  <bnoordhuis>but i'm not going to look into that tonight anymore :)
03:10:21  * Ariajoined
03:10:23  <isaacs>bnoordhuis: i watched the tcp
03:10:27  <isaacs>it's sending the breakpoint message
03:10:40  <isaacs>it's just before the connection happens
03:10:43  <isaacs>it's retarded.
03:11:10  <isaacs>er, not watched the tcp. dug into the bit that's trying to do the sending.
03:11:16  <bnoordhuis>isaacs: i think v8 generates an int 0x03 when wait_for_connection=true
03:11:24  <bnoordhuis>int 0x03 == breakpoint
03:11:29  <isaacs>that's why teh 50ms thing makes it work
03:11:51  <isaacs>bnoordhuis: there's another method we call which is supposedly equivalent to wait_for_connection=true
03:11:59  <bnoordhuis>right
03:12:06  <bnoordhuis>but i kind of wonder if v8 always does the right thing
03:12:14  <bnoordhuis>that breakpoint generating code is kind of convoluted
03:13:39  <isaacs>yeah
03:15:15  <bnoordhuis>oh, it's even spiffier - v8 generates code that calls your debug function
03:20:28  * isaacsquit (Remote host closed the connection)
03:23:24  * travis-cijoined
03:23:24  <travis-ci>[travis-ci] joyent/node#627 (master - d2389f8 : isaacs): The build is still failing.
03:23:24  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/81cd3a3...d2389f8
03:23:24  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/911467
03:23:24  * travis-cipart
03:23:54  * perezdquit (Ping timeout: 265 seconds)
03:24:09  * perezdjoined
03:30:08  * bnoordhuisquit (Ping timeout: 244 seconds)
04:04:36  * mikealquit (Quit: Leaving.)
04:13:39  * orlandovftwquit (Ping timeout: 244 seconds)
05:10:20  * orlandovftwjoined
05:14:08  * isaacsjoined
05:43:40  * orlandovftwquit (Ping timeout: 272 seconds)
05:44:47  * Ariaquit (Remote host closed the connection)
06:07:34  * orlandovftwjoined
06:10:37  <benvie>hmm I wonder what specific thing here isn't working with those changes to the windows build
06:28:12  * perezdquit (Quit: perezd)
06:44:40  * paddybyersquit (Quit: paddybyers)
06:49:34  * mikealjoined
06:57:42  * mikealquit (Quit: Leaving.)
07:02:53  * sh1mmerquit (Quit: sh1mmer)
07:13:07  * mikealjoined
07:13:42  * paddybyersjoined
07:52:40  * rendarjoined
07:59:51  * paddybyersquit (Quit: paddybyers)
08:04:44  * isaacsquit (Remote host closed the connection)
08:22:14  * txdv_joined
08:26:23  * txdvquit (Ping timeout: 264 seconds)
08:43:46  * paddybyersjoined
09:03:11  * rendarquit
09:10:49  * rendarjoined
09:11:07  * dshaw_quit (Quit: Leaving.)
09:30:59  * orlandovftwquit (Ping timeout: 276 seconds)
09:44:56  * abraxasquit
10:47:05  * piscisaureus_joined
11:01:38  * indutny_sleepingchanged nick to indutny
11:12:53  * skomskijoined
12:23:23  * wankdankerquit (Remote host closed the connection)
13:07:17  * bnoordhuis_joined
13:08:50  * bnoordhuis_quit (Client Quit)
13:09:43  * bnoordhuisjoined
13:32:08  <tjfontaine>the logs never go away
13:51:07  <bnoordhuis>fortunately almost no one speaks dutch
14:11:54  <CIA-99>libuv: Ben Noordhuis master * r8ce8bfa / (test/test-get-memory.c test/test-platform-output.c): test: fix format string warnings - http://git.io/iogCuA
14:11:55  <CIA-99>libuv: Ben Noordhuis master * rc9c9d80 / src/unix/stream.c :
14:11:55  <CIA-99>libuv: unix: ignore ECONNABORTED errors from accept()
14:11:55  <CIA-99>libuv: ECONNABORTED means that the connection was torn down by the peer before the
14:11:55  <CIA-99>libuv: TCP handshake completed. Ignore it, there's nothing we can do and it simplifies
14:11:55  <CIA-99>libuv: error handling for libuv users. - http://git.io/rWhCUg
14:13:51  * travis-cijoined
14:13:51  <travis-ci>[travis-ci] joyent/libuv#145 (master - c9c9d80 : Ben Noordhuis): The build is still failing.
14:13:51  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/8e59042...c9c9d80
14:13:51  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/914142
14:13:51  * travis-cipart
14:35:34  * mmalecki[zzz]changed nick to mmalecki
14:38:57  * pieternjoined
14:46:28  * mmaleckichanged nick to mmalecki[away]
15:05:43  * isaacsjoined
15:13:02  * indutnychanged nick to indutny_away
15:26:38  * sh1mmerjoined
15:32:57  * pfox___joined
15:48:14  * txdv_quit (Ping timeout: 265 seconds)
15:48:17  * k-s[AWAY]changed nick to k-s
15:55:18  <indutny_away>isaacs: heya :)
15:55:21  * indutny_awaychanged nick to indutny
15:55:27  <indutny>isaacs: how are you doing?
15:55:54  * perezdjoined
15:57:45  <isaacs>hola
16:00:14  <isaacs>indutny: so, i added a 50ms timeout on startup, and now debugger is working.
16:00:21  <isaacs>indutny: but this is a terrible fix. i'm not happy with it.
16:01:21  <indutny>on debugger startup?
16:01:25  <indutny>I think I did that before
16:01:29  <indutny>:)
16:01:36  <indutny>and we decided to remove that
16:01:42  <isaacs>ha
16:01:48  <isaacs>yeah, it *shouldn't* be necessary
16:02:03  <isaacs>but it looks like v8 sends the "breakpoint" message for line=1 before the client is ready to receive it
16:02:21  <indutny>aaah
16:02:24  <indutny>I remembered that
16:02:28  <indutny>yes, that's it
16:02:54  <indutny>I've an idea
16:02:58  <isaacs>so i added a timeout before we call Module.runMain()
16:03:19  <indutny>let it break somewhere in module.js before entering that module
16:03:25  <indutny>and on connection send "continue"
16:03:33  <isaacs>hm.
16:03:37  <isaacs>that sounds more reliable
16:03:37  <indutny>dunno, why I hadn't thought that before
16:03:40  <indutny>yes
16:03:52  <indutny>we can just ignore any messages before reply to our continue
16:03:57  <isaacs>if you feel like doing a patch for this, then that'd be fine. or, we could just figure out why it's hitting the breakpoint before there's a message.
16:04:11  <indutny>it just emits message
16:04:21  <indutny>messages ain't buffered
16:04:22  <isaacs>like, it'd be nice if we could do something like: global.v8debug.DebugServer.onConnection = Module.runMain
16:04:24  <isaacs>or something like that
16:04:33  <indutny>because connection may happen in the middle of execution
16:04:36  <indutny>or client may reconnect
16:04:45  <isaacs>sure
16:04:53  <isaacs>yeah, i guess.
16:04:54  <indutny>lets try my patch first :)
16:04:55  <isaacs>ok
16:04:56  <indutny>will work on that
16:05:07  <isaacs>i'm not very familiar with the debugger api, and it's kind of huge.
16:05:20  <isaacs>indutny: it does look like there are a few other methods we could expose pretty easily, though
16:05:39  <isaacs>i dunno if they've been added recently, or if there just wasn't any desire for them
16:05:47  <indutny>hm...
16:05:48  <isaacs>test/simple/test-dgram-pingpong.js is my next victim.
16:06:05  <indutny>what are those methods?
16:10:45  * orlandovftwjoined
16:14:52  <isaacs>scope, scopes, gc
16:15:20  <isaacs>indutny: also, it looks like we always loop over the full source code, but the "source" directive can pre-filter the lines.
16:15:30  <isaacs>getting this from here: http://code.google.com/p/v8/wiki/DebuggerProtocol
16:16:39  <indutny>ok
16:19:19  <isaacs>that isn't important, though, really.
16:19:21  <isaacs>gc would be cool
16:19:35  <isaacs>the more important thing is to work and not break the tests half the time ;)
16:19:46  <indutny>:)
16:26:27  * orlandovftwquit (Ping timeout: 252 seconds)
16:28:21  * dapjoined
16:39:07  <indutny>isaacs: yt?
16:39:24  <isaacs>hi
16:40:16  <isaacs>indutny: pong
16:40:19  <indutny>one sec
16:40:24  <indutny>finalizing my patch
16:52:31  * indutnyquit (Ping timeout: 265 seconds)
16:56:22  * indutnyjoined
16:56:35  <indutny>isaacs: https://github.com/indutny/node/commit/72e5237243c992015ac33a78c1b4058ce666f1d9
16:56:39  <indutny>test please
16:58:38  <isaacs>indutny: should also remove the 50ms timeout in src/node.js
16:58:49  <indutny>isaacs: agreed
17:00:15  <indutny>isaacs: https://github.com/indutny/node/commit/5882fbe9c2bc20e5533aaa30b53a08152eed86fb
17:01:13  <isaacs>indutny: it should probably just revert that commit. we *do* still need the nextTick
17:01:21  <indutny>oh
17:01:42  <indutny>whole commit?
17:02:18  <isaacs>indutny: yeah
17:02:19  <isaacs>c781f17
17:02:22  <isaacs>git revert c781f17
17:03:28  <indutny>one sec
17:03:58  <indutny>isaacs: two commits, then: https://github.com/indutny/node/compare/fix-debugger-repl-race
17:04:48  <isaacs>is it possible to just infer --debug-repl-start from --debug-brk?
17:04:56  * demarchijoined
17:04:57  <isaacs>oh, i guess not..
17:05:07  <isaacs>since it doesn't mean that w're necessarily going to get a repl connection immediately
17:05:15  <indutny>yes
17:05:22  <indutny>one may start node with just --debug-brk
17:06:22  <isaacs>so, let's say, yo udo `node --debug-brk foo.js`
17:06:36  <isaacs>the issue, then, is that you might be about to connect with node-inspector, or some other debugger client?
17:06:53  <isaacs>which doesn't know to send a `c` to start?
17:06:57  <indutny>yes
17:07:03  <indutny>that's why I've introduced --debug-repl-start
17:07:10  <indutny>which will add additional breakpoint
17:07:11  <isaacs>right.
17:08:52  <isaacs>indutny: i think it should probably be moved down a few lines, right before return compiledWrapper.apply(self.exports, args);, no?
17:09:05  <indutny>isaacs: are you ok with that?
17:09:21  <indutny>hm...
17:09:22  <isaacs>oh, i guess it doesn't matter... since you're just going to "continue" right into that anyway
17:09:26  <indutny>yes
17:09:38  <isaacs>and there's really nothign controversial between there...
17:09:55  <isaacs>ok, it passes meat-brain scrutiny. pulling and testing now. hold one
17:09:57  <isaacs>*hold on
17:10:22  <indutny>kk
17:13:42  <isaacs>indutny: hmm..
17:13:44  <isaacs>$ ./node debug --port=13683 test/fixtures/breakpoints.js
17:13:44  <isaacs>< debugger listening on port 13683
17:13:44  <isaacs>connecting... ok
17:13:46  <isaacs>break in test/fixtures/breakpoints.js:5
17:13:48  <isaacs> 3 var i = 10;
17:13:50  <isaacs> 4 while (--i != 0);
17:13:52  <isaacs> 5 debugger;
17:13:54  <isaacs> 6 return i;
17:13:56  <isaacs> 7 }
17:13:58  <isaacs>debug>
17:14:00  <isaacs>(^C again to quit)
17:14:02  <isaacs>debug>
17:14:36  <indutny>huh?
17:15:05  <indutny>it's quite different for me
17:15:10  * bnoordhuisquit (Ping timeout: 250 seconds)
17:15:18  <indutny>~/Code/git/indutny/node > ./node debug --port=13683 test/fixtures/breakpoints.js
17:15:18  <indutny>< debugger listening on port 13683
17:15:18  <indutny>connecting... ok
17:15:18  <indutny>break in test/fixtures/breakpoints.js:1
17:15:18  <indutny> 1 debugger;
17:15:18  <indutny> 2 function a(x) {
17:15:19  <indutny> 3 var i = 10;
17:15:19  <indutny>debug>
17:15:48  <isaacs>i sometimes also see this:
17:15:51  <isaacs>$ ./node debug --port=13683 test/fixtures/breakpoints.js
17:15:52  <isaacs>< debugger listening on port 13683
17:15:52  <isaacs>connecting... ok
17:15:53  <isaacs>break in test/fixtures/breakpoints.js:1
17:15:55  <isaacs> 1 debugger;
17:15:57  <isaacs> 2 function a(x) {
17:15:59  <isaacs> 3 var i = 10;
17:16:01  <isaacs>break in test/fixtures/breakpoints.js:5
17:16:03  <isaacs> 3 var i = 10;
17:16:05  <isaacs> 4 while (--i != 0);
17:16:07  <isaacs> 5 debugger;
17:16:09  <isaacs> 6 return i;
17:16:11  <isaacs> 7 }
17:16:13  <isaacs>debug>
17:16:15  <isaacs>like, it misses the one in lib/module.js, hits line 1, continues past it
17:16:24  <indutny>ok, it's too raw now
17:16:35  <indutny>I'll finish it tomorrow then
17:17:55  <isaacs>the approach seems like it might be a bit more efficient than a dumb 50ms timeout
17:17:59  <isaacs>but it's not much less hacky.
17:18:39  <isaacs>i'll try to ping some v8 guys and see if there's a hook we're just not aware of
17:19:29  * mmalecki[away]changed nick to mmalecki
17:29:26  * indutnypart
17:32:19  * stephankjoined
17:38:49  * AvianFluquit (Quit: Leaving)
17:41:05  * piscisaureus_quit (Ping timeout: 248 seconds)
17:44:20  * indutnyjoined
17:47:29  * mikealquit (Quit: Leaving.)
18:02:10  * mikealjoined
18:07:47  * brsonjoined
18:18:14  * dshaw_joined
18:32:55  * TooTallNatejoined
18:41:19  <TooTallNate>sup guys
18:41:22  <TooTallNate>anyone care to review? https://github.com/TooTallNate/node/commit/interactive
18:48:33  <benvie>how goes
18:52:37  * mikealquit (Quit: Leaving.)
18:57:11  * `3rdEdenjoined
18:58:16  <TooTallNate>tired
19:01:16  * mikealjoined
19:03:09  * mikealquit (Client Quit)
19:15:20  <isaacs>TooTallNate: lgtm.
19:15:46  <isaacs>TooTallNate: i think we meant to do that back in 0.5 but didn't for some reason.
19:15:50  <isaacs>probably lazines.
19:16:29  * AvianFlujoined
19:18:36  <TooTallNate>isaacs: thanks
19:18:38  <CIA-99>node: Nathan Rajlich master * rfeaa8a4 / (src/node.cc src/node.js test/simple/test-force-repl.js):
19:18:38  <CIA-99>node: cmd: add a -i / --interactive flag to force the REPL
19:18:38  <CIA-99>node: This is the only way to spawn a node child process in REPL mode, and will
19:18:38  <CIA-99>node: also be needed to be able to use the REPL in MinTTY. - http://git.io/H5ZQeg
19:21:01  <igorzi>isaacs: that v0.6 patch is still being reviewed (https://github.com/igorzi/node/commit/f8932effcddd1a0ee07e3d3dfd68fcfd1d6824bf)... hopefully it'll land later today
19:22:22  * mjr_joined
19:24:55  <benvie>amg
19:24:56  <benvie>mintty
19:25:23  <benvie>the i is for inspiration
19:25:47  <TooTallNate>benvie: it won't quite work in mintty just yet
19:25:58  <TooTallNate>benvie: my tty->readline migration branch needs to land first
19:26:03  <TooTallNate>just gotta find time to finish it up
19:30:06  * AvianFluquit (Ping timeout: 240 seconds)
19:32:19  * kohaiquit (Remote host closed the connection)
19:33:09  * AvianFlujoined
19:34:07  * kohaijoined
19:35:00  * travis-cijoined
19:35:00  <travis-ci>[travis-ci] joyent/node#628 (master - feaa8a4 : Nathan Rajlich): The build is still failing.
19:35:00  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/d2389f8...feaa8a4
19:35:00  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/916581
19:35:00  * travis-cipart
19:35:56  <benvie>ooh
19:35:57  <benvie>yeah
19:36:27  * skomskiquit (Remote host closed the connection)
19:38:38  * k-schanged nick to k-s[AWAY]
19:46:19  * igorziquit (Ping timeout: 245 seconds)
19:46:56  * mikealjoined
19:49:05  * orlandovftwjoined
19:50:54  <isaacs>igorzi: thanks
19:57:42  * orlandovftwquit (Quit: leaving)
19:58:02  * orlandovftwjoined
20:11:09  * AndreasMadsenjoined
20:34:34  * mikealquit (Quit: Leaving.)
20:46:42  * mikealjoined
20:49:08  * perezdquit (Read error: Connection reset by peer)
20:49:11  * perezd_joined
20:56:02  * mikealquit (Quit: Leaving.)
21:07:33  <creationix>what would cause "canio: src/unix/core.c:237: uv__finish_close: Assertion `!(handle->flags & UV_CLOSED)' failed."
21:07:43  <creationix>calling uv_close() twice on the same handle?
21:07:49  <creationix>I'm pretty sure I'm not doing that
21:10:44  * AndreasMadsenquit (Remote host closed the connection)
21:12:56  * `3rdEdenquit (Quit: Leaving...)
21:18:09  * mikealjoined
21:22:01  * paddybyersquit (Quit: paddybyers)
21:24:01  * paddybyersjoined
21:24:48  * `3rdEdenjoined
21:32:07  * igorzijoined
21:34:34  <creationix>Is there a way to know what's holding up the libuv event loop?
21:34:37  <creationix>from the C level
21:42:42  * rendarquit
22:01:17  * `3rdEdenquit (Quit: Linkinus - http://linkinus.com)
22:01:49  * perezd_quit (Quit: perezd_)
22:06:03  * dylukesjoined
22:06:20  <dylukes>I don't suppose this is a room for joyent/libuv, huh
22:12:10  <isaacs>dylukes: it is
22:12:17  <dylukes>whoo.
22:12:30  <dylukes>okay so... what's the equivalent in ares to getaddrinfo?
22:14:53  <dylukes>Or rather, how do I accomplish the same task as using getaddrinfo and then looping through the results?
22:15:12  * perezdjoined
22:15:49  <TooTallNate>dylukes: i think most of the uv gurus are offline atm, but when in doubt, read the node source code ;)
22:16:01  <dylukes>I'm trudging through the libuv source heh.
22:16:05  <dylukes>I've never touched node in my life.
22:16:17  <dylukes>I'm just looking to get familiar since rust seems to be adopting it.
22:21:38  * benviequit
22:22:57  <dylukes>I'm trying to puzzle out how to use area, haha.
22:23:34  * piscisaureus_joined
22:25:03  <piscisaureus_>hello
22:25:08  <piscisaureus_>isaacs: what's up?
22:25:22  <piscisaureus_>isaacs:
22:25:22  <piscisaureus_>ircretary: Here are your notes:
22:25:22  <piscisaureus_>ircretary: At 2012-03-21T19:54:48.107Z, in PM, isaacs said: when piscisaureus
22:25:27  <piscisaureus_>^-- not quite helpful
22:26:28  <isaacs>oh, hahahah
22:26:37  <isaacs>she should not make notes of when requests.
22:26:59  <isaacs>piscisaureus_: i think i wanted to ask if you knew anything about dgram failing, if that's something we should care about .
22:27:44  <piscisaureus_>isaacs: I know nothing about it, and whether we should care depdends on what the failure is.
22:27:46  <isaacs>https://github.com/joyent/node/issues/2981
22:28:06  <isaacs>piscisaureus_: it looks like this sporadically failing test is a result of the message not getting received properly
22:28:19  <isaacs>like, instead of getting 'PING' or 'PONG' it gets a buffer of length=0
22:28:36  <piscisaureus_>isaacs: right, that doesn't look right.
22:28:53  <isaacs>it's very sporadic. happens for me ~1/200 times
22:29:23  <piscisaureus_>I will try to reproduce on windows to see if it is a node issue or a libuv problem
22:31:49  * ircretaryquit (Remote host closed the connection)
22:31:56  * ircretaryjoined
22:32:02  <isaacs>thanks!
22:32:36  <piscisaureus_>kompaailing now
22:32:53  <isaacs>is that some kind of krazy nordic word?
22:33:04  <isaacs>i like it
22:34:11  <piscisaureus_>no
22:36:30  <piscisaureus_>isaacs: 1 in 200 runs or 1 in 200 packets?
22:37:28  <piscisaureus_>isaacs: on windows I can't repro it
22:38:25  <isaacs>piscisaureus_: 1 in 200 runs
22:38:47  <isaacs>piscisaureus_: https://github.com/isaacs/node/commit/dgram-pingpong makes it run a lot faster
22:38:57  <piscisaureus_>isaacs: yeah that's what I am using
22:39:00  <isaacs>and provide a clearer failure
22:39:01  <piscisaureus_>isaacs: never failes me
22:39:04  <isaacs>interesting
22:39:28  <piscisaureus_>isaacs: but - I am on windows. We have our own issues :-)
22:39:42  <isaacs>for sure. apparently this is not one of them, though.
22:39:51  * piscisaureus_summons bnoordhuis
22:40:22  <piscisaureus_>isaacs: my suspicion is that we either do not handle an error correctly or it is something similar to the ECONNABORTED issue we just fixed.
22:40:29  * paddybyersquit (Quit: paddybyers)
22:40:50  <piscisaureus_>isaacs: e.g. this is the kernel's own special way of saying "hey, there used to be some packet here but we dropped it"
22:41:24  <isaacs>piscisaureus_: did we just fix that? ben's patch lgty?
22:41:38  <piscisaureus_>yeah, it did. I think he landed it too.
22:41:50  <AvianFlu>isaacs, do you just see that test fail, or do you see the test runner crash?
22:42:13  <isaacs>AvianFlu: i see the test fail, but only 1/200 times
22:42:18  <isaacs>piscisaureus_: hm. i don't see it
22:42:26  <isaacs>oh, it's on master.
22:42:26  <AvianFlu>I see that test crash the test runner, and it's more like 1 in 5 for me
22:42:51  <isaacs>yeah, we need that in v0.6
22:42:53  <piscisaureus_>isaacs: yeah, should also be backported to 0.6
22:43:22  <isaacs>blazow.
22:43:22  <CIA-99>libuv: Ben Noordhuis v0.6 * r8409a67 / src/unix/stream.c :
22:43:22  <CIA-99>libuv: unix: ignore ECONNABORTED errors from accept()
22:43:22  <CIA-99>libuv: ECONNABORTED means that the connection was torn down by the peer before the
22:43:22  <CIA-99>libuv: TCP handshake completed. Ignore it, there's nothing we can do and it simplifies
22:43:22  <CIA-99>libuv: error handling for libuv users. - http://git.io/IMARTw
22:43:28  <isaacs>thanks, bnoordhuis
22:45:04  * travis-cijoined
22:45:04  <travis-ci>[travis-ci] joyent/libuv#146 (v0.6 - 8409a67 : Ben Noordhuis): The build is still failing.
22:45:04  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/4ae316b...8409a67
22:45:04  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/917979
22:45:04  * travis-cipart
22:45:46  * bnoordhuisjoined
22:46:50  <dylukes>The problem I'm having with c-ares,
22:47:03  <dylukes>is there doesn't seem to be a simple analog to getaddrinfo
22:51:52  <piscisaureus_>dylukes: uv_getaddrinfo ?
22:52:00  <dylukes>wait
22:52:01  <dylukes>really
22:52:03  <dylukes>;___;
22:52:05  <dylukes>fuck
22:52:17  <piscisaureus_>dylukes: it runs in the thread pool though
22:53:24  <dylukes>so can you give me a brief rundown of who to uh,
22:53:29  <dylukes>enter libuv's "main loop" so to speak?
22:53:39  <dylukes>or yield control to libuv?
22:53:44  <piscisaureus_>uv_run() ?
22:53:57  <dylukes>it always seems to exit immediately...
22:54:00  <dylukes>I assume I need,
22:54:07  <dylukes>to have something for it to run, or it stops?
22:54:14  <piscisaureus_>dylukes: yep, of course
22:54:48  <dylukes>alrighty, seems simple enough :)
22:55:05  <dylukes>The only similar thing I've used in C is libdispatch
22:55:22  <dylukes>So, what's up with uv_getaddrinfo_t, uv_connect_t...
22:55:29  <dylukes>it seems like every function has some struct associated with it?
22:57:25  <piscisaureus_>dylukes: I'm not here to provide you with a full intro to libuv. To figure out how to use it, look at include/uv.h, or look at test/echo-server.c for an example.
22:57:33  <dylukes>That's what I've been doing.
22:57:43  <dylukes>I'm just asking about that, since it's the one thing not catching.
22:57:52  <dylukes>Thanks anyways.
22:58:14  * mikealquit (Quit: Leaving.)
22:59:35  <piscisaureus_>dylukes: http://vimeo.com/24713213 is mostly accurate.
22:59:57  <dylukes>cool thanks.
23:09:05  * AvianFluquit (Quit: Leaving)
23:16:56  * mmaleckichanged nick to mmalecki[zzz]
23:21:56  <dylukes>piscisaureus_: uv_init is just gone now, right?
23:22:20  <piscisaureus_>dylukes: yeah, we now have uv_default_loop(). It auto-inits the default loop.
23:22:37  <dylukes>Oh I was just using uv_loop_new.
23:22:46  <piscisaureus_>dylukes: that also works.
23:23:01  <dylukes>actually, if I use uv_default_loop... it doesn't work :|
23:23:08  <dylukes>or is that my imagination...
23:23:17  <dylukes>indeed it is.
23:25:31  <dylukes>I guess uv_getaddrinfo_s is just kind of... there.
23:25:54  <dylukes>rather, it doesn't have a bunch of functions like say, uv_tcp_t
23:26:02  <dylukes>s/_s/_t
23:26:05  <piscisaureus_>dylukes: yeah, it is not a handle
23:26:16  <piscisaureus_>dylukes: it is more like uv_write but it doesn't operate on a handle
23:26:39  <dylukes>Header seems to indicate it's a "request" type?
23:26:51  <dylukes>not a handle.
23:27:00  <piscisaureus_>dylukes: https://github.com/joyent/libuv/blob/master/test/benchmark-getaddrinfo.c
23:27:40  <piscisaureus_>dylukes: you probably want to malloc the getaddrinfo_t struct
23:27:49  <dylukes>Right.
23:27:50  <piscisaureus_>(and free it in the callback)
23:28:04  <dylukes>So, as far as I see.. it's basically memory for libuv to do stuff with in the background.
23:28:11  <dylukes>It's just the state of the request.
23:28:24  * k-s[AWAY]changed nick to k-s
23:28:31  <piscisaureus_>dylukes: yes. it's just an opaque struct that libuv uses to store state.
23:28:42  <piscisaureus_>dylukes: the size of it is platform-dependent
23:28:57  <dylukes>Yeah, I noticed the macromagic.
23:29:18  <piscisaureus_>dylukes: the uv_getaddrinfo interface is a little weird (because the system getaddrinfo interface is also a little weird)
23:29:29  <dylukes>is it?
23:29:36  <dylukes>getaddrinfo isn't too strange, I don't think.
23:29:47  * bnoordhuisquit (Ping timeout: 245 seconds)
23:29:50  <piscisaureus_>welll... normally syscalls don't allocate memory :-)
23:30:52  <dylukes>oooh, that's true.
23:31:03  <dylukes>it does allocate the linked list and expect you to clean it up.
23:31:09  <piscisaureus_>yeah
23:31:10  <dylukes>But I mean, how would you have the user provide the memory? :\.
23:31:25  <piscisaureus_>dylukes: well - I'm not saying that it should
23:31:26  <dylukes>The user has zero idea how many results will come up... that's why they're calling the function :P.
23:31:32  <dylukes>Right right. I see your point though.
23:32:52  <dylukes>Hm, having everything asynchronous does... challenge my usual method of using gai. :\.
23:33:27  <dylukes>I usually loop through the results and try to connect in order, and take the first one that works... but it's not asynchronous.
23:33:30  <dylukes>I'll have to rethink this.
23:48:57  * perezdquit (Quit: perezd)
23:55:24  * perezdjoined