00:06:00  * brsonquit (Ping timeout: 250 seconds)
00:11:42  * isaacspart
00:11:46  * isaacsjoined
00:12:27  * brsonjoined
00:23:21  <piscisaureus_>why is readFile 10x as slow as readFileSync
00:23:22  <piscisaureus_>sigh
00:23:48  <piscisaureus_>no wonder vertx makes us crawl in that area
00:28:45  <bnoordhuis>we'll fix it someday
00:29:16  <bnoordhuis>we should have good fs benchmarks in libuv
00:30:15  <piscisaureus_>also we should probably write a good (shared) thread pool management system
00:30:40  <piscisaureus_>the windows one has way too much overhead to like it
00:34:57  <bnoordhuis>do threads always have the same characteristics on windows and unices?
00:35:09  <piscisaureus_>yes, I think so?
00:35:13  <piscisaureus_>why not?
00:38:40  <CIA-108>libuv: Bert Belder master * rda59427 / src/win/fs.c : windows: don't set WT_EXECUTELONGFUNCTION for fs operations - http://git.io/wSyUzQ
00:38:48  <piscisaureus_>bnoordhuis: can uv in node be upgraded?
00:40:39  <bnoordhuis>piscisaureus_: one sec
00:40:40  * travis-cijoined
00:40:40  <travis-ci>[travis-ci] joyent/libuv#434 (master - da59427 : Bert Belder): The build passed.
00:40:40  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/14ffaa668d41...da59427c66ff
00:40:40  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1670022
00:40:40  * travis-cipart
00:41:18  <CIA-108>node: Ben Noordhuis watchFile * r853e52c / (src/node.h src/node_file.cc): node: replace NODE_STAT_STRUCT with uv_statbuf_t - http://git.io/n8CqdQ
00:41:19  <CIA-108>node: Ben Noordhuis watchFile * r0b5d4f6 / test/pummel/test-fs-watch-file-slow.js : test: add another fs.watchFile() test - http://git.io/wzz_sA
00:41:21  <CIA-108>node: Ben Noordhuis watchFile * rca1c0a0 / (3 files in 3 dirs): deps: upgrade libuv to 14ffaa6 - http://git.io/eFEgrw
00:41:22  <CIA-108>node: Ben Noordhuis watchFile * r7173e95 / (5 files in 3 dirs): fs: make fs.watchFile() work on windows - http://git.io/e_PdXw
00:41:31  <bnoordhuis>piscisaureus_: you should review that ^
00:42:27  <CIA-108>node: Bert Belder master * rae7a3cd / (4 files in 4 dirs): uv: upgrade to da59427 - http://git.io/GxGpow
00:42:54  <bnoordhuis>guess i can scrap the libuv upgrade from that branch :)
00:43:06  <piscisaureus_>bnoordhuis: yeah, it's outdated now
00:43:09  <piscisaureus_>bnoordhuis: reviewing
00:43:37  <CIA-108>node: Ben Noordhuis watchFile * r09150b0 / (src/node.h src/node_file.cc): node: replace NODE_STAT_STRUCT with uv_statbuf_t - http://git.io/Syiy2w
00:43:37  <CIA-108>node: Ben Noordhuis watchFile * rd24a8c1 / test/pummel/test-fs-watch-file-slow.js : test: add another fs.watchFile() test - http://git.io/wENHLQ
00:43:37  <CIA-108>node: Ben Noordhuis watchFile * rca78bfa / (5 files in 3 dirs): fs: make fs.watchFile() work on windows - http://git.io/0dsDPA
00:44:42  <piscisaureus_>also running the tests in the meantime
00:45:00  <piscisaureus_>+1 for uv_statbuf
00:45:02  <piscisaureus_>\o/
00:45:21  <piscisaureus_>next step will be to add UV_S_IFLNK etc
00:45:22  <piscisaureus_>:-)
00:48:19  * piscisaureus__joined
00:48:26  <piscisaureus__>hmm internet dropped
00:50:30  * piscisaureus_quit (Ping timeout: 246 seconds)
00:54:28  <piscisaureus__>bnoordhuis: https://github.com/joyent/node/commit/7173e95555e2a405cd4a7a755507779ff555d8d3#commitcomment-1484982
00:54:49  <bnoordhuis>oh hah
00:54:58  <bnoordhuis>forgot to remove the windows check
00:56:06  <CIA-108>node: Ben Noordhuis watchFile * rd98a857 / test/pummel/test-fs-watch-file-slow.js : test: add another fs.watchFile() test - http://git.io/MYphpg
00:56:07  <CIA-108>node: Ben Noordhuis watchFile * r3b81599 / (5 files in 3 dirs): fs: make fs.watchFile() work on windows - http://git.io/enMrmw
00:56:16  <bnoordhuis>piscisaureus__: ^
00:56:32  <bnoordhuis>want me to rename the file? it's so much work...
00:56:35  * ericktquit (Ping timeout: 248 seconds)
00:56:43  <piscisaureus__>bnoordhuis: not really, we can always do it later
00:57:07  <piscisaureus__>bnoordhuis: but these node_xx_watcher names have a strong 0.4 smell to them :-)
00:57:18  <bnoordhuis>yeah, true that
00:58:36  <piscisaureus__>compiling again
01:00:38  <piscisaureus__>D:\node4>Release\node test\pummel\test-fs-watch-file.js
01:00:38  <piscisaureus__>assert.js:320
01:00:38  <piscisaureus__> throw actual;
01:00:38  <piscisaureus__> ^
01:00:39  <piscisaureus__>TypeError: undefined is not a function
01:01:22  <bnoordhuis>err?
01:01:27  <bnoordhuis>is that the whole stack trace?
01:01:35  <piscisaureus__>yes
01:01:37  <piscisaureus__>odd eh
01:01:42  <piscisaureus__>bnoordhuis: but I have a better clue for you:
01:01:50  <piscisaureus__>D:\node4>Release\node test\pummel\test-watch-file.js
01:01:50  <piscisaureus__>watching for changes of D:\node4\test\fixtures\x.txt
01:01:50  <piscisaureus__>fs.js:877
01:01:50  <piscisaureus__> this._handle = new binding.StatWatcher();
01:01:50  <piscisaureus__> ^
01:01:50  <piscisaureus__>TypeError: undefined is not a function
01:01:51  <piscisaureus__> at new StatWatcher (fs.js:877:18)
01:01:58  <piscisaureus__>bnoordhuis: statwatcher still commented out
01:02:06  <piscisaureus__>in node.cc
01:02:10  <bnoordhuis>ah, it's not compiled on windows
01:02:19  <piscisaureus__>also needs to be added to the gyp file
01:02:21  <bnoordhuis>fixing that
01:03:12  <piscisaureus__>bnoordhuis: do you have an rdp client btw?
01:03:18  * brsonquit (Ping timeout: 244 seconds)
01:04:26  * Ariajoined
01:06:30  <bnoordhuis>piscisaureus__: yes. why do you ask?
01:07:44  <bnoordhuis>piscisaureus__: https://github.com/joyent/node/commit/f0ce984
01:10:17  <piscisaureus__>hmm, cia dead?
01:10:32  <bnoordhuis>looks that way
01:10:52  * dapquit (Quit: Leaving.)
01:10:54  <piscisaureus__>hmm, no, git fetch origin also yields no new commits for me
01:11:30  <piscisaureus__>it more looks like github is broken
01:11:44  <CIA-108>node: Ben Noordhuis watchFile * rf0ce984 / (8 files in 4 dirs): fs: make fs.watchFile() work on windows - http://git.io/GRJ2EQ
01:11:48  <bnoordhuis>there it is!
01:12:05  <piscisaureus__>ah!
01:14:03  <piscisaureus__>nice
01:14:08  <piscisaureus__>all pass
01:14:52  <piscisaureus__>hmm
01:15:03  <piscisaureus__>test-watch file fails 1 out of 5 times
01:17:33  <piscisaureus__>probably due to the lack of high precision ctime
01:20:21  <bnoordhuis>piscisaureus__: i think it needs to delay the write by about a second
01:21:29  * piscisaureus_joined
01:21:43  <bnoordhuis>piscisaureus_: the initial stat() takes place in the thread pool so it's a race what happens first, the stat() or the write
01:21:56  <piscisaureus_>bnoordhuis: ah
01:22:54  <piscisaureus_>bnoordhuis: that's not great, but I suppose you can ship this
01:23:14  <piscisaureus_>bnoordhuis: it could also be timestamp resolution on windows. I will high res timestamps to uv_stat later
01:23:18  <bnoordhuis>cool
01:23:24  * piscisaureus__quit (Ping timeout: 246 seconds)
01:23:36  <piscisaureus_>bnoordhuis: but that thread pool race is a conceptual flaw :-p
01:24:29  <bnoordhuis>piscisaureus_: the alternative is making that first stat blocking, that doesn't sound too appealing
01:24:42  <CIA-108>node: Ben Noordhuis master * r09150b0 / (src/node.h src/node_file.cc): node: replace NODE_STAT_STRUCT with uv_statbuf_t - http://git.io/Syiy2w
01:24:42  <CIA-108>node: Ben Noordhuis master * rd98a857 / test/pummel/test-fs-watch-file-slow.js : test: add another fs.watchFile() test - http://git.io/MYphpg
01:24:42  <CIA-108>node: Ben Noordhuis master * rf0ce984 / (8 files in 4 dirs): fs: make fs.watchFile() work on windows - http://git.io/GRJ2EQ
01:25:25  <piscisaureus_>bnoordhuis: well, if we're doing an on-thread stat() every 5 seconds, I suppose one more wouldn't hurt :-)
01:25:26  <bnoordhuis>piscisaureus_: if anything, it's a conceptual flaw in the test
01:25:37  <piscisaureus_>bnoordhuis: ideally all stat() calls would happen in the thread pool
01:25:43  <piscisaureus_>let's see how many bug reports this generates
01:25:51  <piscisaureus_>I am already happy with it
01:25:59  <bnoordhuis>piscisaureus_: that's what happens, they're all done from inside the thread pool
01:26:17  <bnoordhuis>i just mentioned that for the initial stat to explain why there's a race in the test
01:27:26  <piscisaureus_>ah, cool
01:27:37  <piscisaureus_>+1
01:27:48  <piscisaureus_>I also suspect timestamp precision on windows could be an issue
01:27:57  <piscisaureus_>bnoordhuis: I will look into that, and add hi-res stat to libuv
01:28:09  <bnoordhuis>cool
01:28:13  <piscisaureus_>bnoordhuis++
01:28:19  <piscisaureus_>I'm leaving now
01:28:29  <bnoordhuis>sleep tight, bertje
01:29:20  <piscisaureus_>you should too
01:29:44  <piscisaureus_>oh nog ff tegen rik aanpraten
01:34:00  * brsonjoined
01:35:38  * hzquit
02:06:35  * mcavagejoined
02:14:19  * TooTallNatequit (Quit: Textual IRC Client: www.textualapp.com)
02:19:55  * perezdjoined
02:26:48  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
02:49:43  * philipsquit (Excess Flood)
02:50:18  * philipsjoined
02:55:38  * mcavagequit (Remote host closed the connection)
03:11:42  * abraxasjoined
03:34:25  * ericktjoined
03:34:55  <ik>LOUDBOT: them hoes call me tunechi baby
03:34:56  <LOUDBOT>ik: CLUTTER GLOBAL SCOPE!
03:35:08  <ik>LOUDBOT: fellas think they seein' me / they hallucinatin'
03:35:09  <LOUDBOT>ik: ^ SEE THIS BULLSHIT.
03:38:45  * piscisaureus_joined
03:38:56  * piscisaureus_quit (Client Quit)
03:49:49  * ericktquit (Read error: Operation timed out)
03:51:48  * isaacstopic: RCs http://nodejs.org/dist/v0.8.0/
04:01:43  <ik>DAYCHANGE!
04:01:43  <LOUDBOT>WE CAN HAVE A SLEEPOVER
04:08:52  * ericktjoined
04:24:11  * ericktquit (Ping timeout: 248 seconds)
04:37:31  * ericktjoined
04:41:27  * philipsquit (Excess Flood)
04:44:18  * brsonquit (Ping timeout: 246 seconds)
04:44:49  * philipsjoined
04:51:39  * brsonjoined
04:55:44  * Ariaquit (Remote host closed the connection)
04:57:46  * ericktquit (Quit: erickt)
05:36:48  * paddybyersjoined
05:54:53  * bnoordhuisquit (Ping timeout: 264 seconds)
06:44:29  * perezdquit (Quit: perezd)
06:46:37  * stephankquit (Quit: *Poof!*)
07:09:10  * rendarjoined
07:33:58  * hzjoined
07:45:06  * paddybyers_joined
07:47:00  * paddybyersquit (Ping timeout: 246 seconds)
07:47:01  * paddybyers_changed nick to paddybyers
08:32:45  * brsonquit (Remote host closed the connection)
09:56:10  * mmaleckijoined
10:47:04  * loladirojoined
10:47:10  * loladiroquit (Client Quit)
10:49:56  * loladirojoined
10:50:01  * loladiroquit (Client Quit)
10:59:30  * loladirojoined
11:15:21  * loladiroquit (Ping timeout: 246 seconds)
11:50:50  * abraxasquit (Remote host closed the connection)
12:04:53  * loladirojoined
12:16:41  * loladiroquit (Ping timeout: 260 seconds)
12:18:23  * paddybyersquit (Quit: paddybyers)
12:21:20  * bnoordhuisjoined
12:23:11  * loladirojoined
12:33:08  * mmaleckiquit (Ping timeout: 272 seconds)
12:34:27  * TheJHjoined
12:51:24  * loladiroquit (Ping timeout: 240 seconds)
12:59:02  * loladirojoined
13:03:20  * loladiroquit (Ping timeout: 250 seconds)
13:04:01  * mmaleckijoined
13:06:05  <CIA-108>node: Ben Noordhuis master * ref1ffcb / (lib/fs.js src/node_stat_watcher.cc src/node_stat_watcher.h): fs: make fs.watchFile() interval default to 5007 - http://git.io/-BM2MQ
13:06:05  <CIA-108>node: Ben Noordhuis master * r8708bb0 / doc/api/fs.markdown : doc: update fs.watchFile() docs - http://git.io/9VqHbw
13:14:17  <indutny>heya
13:26:19  <ik>hi
13:29:47  * paddybyersjoined
13:30:37  <bnoordhuis>hoya
13:30:59  <bnoordhuis>mmalecki: what's the deal with #3496? spoon feed it me, please
13:34:00  * piscisaureus_joined
13:37:46  * TheJHquit (Ping timeout: 260 seconds)
13:42:29  <mmalecki>bnoordhuis: what
13:42:31  <mmalecki>bnoordhuis: ah ok
13:42:38  <mmalecki>bnoordhuis: uncaught thing?
13:42:53  <mmalecki>!gh joyent/node#3496
13:42:54  <bnoordhuis>mmalecki: well, the async part
13:43:11  <bnoordhuis>because i don't think it is, the ipc channel
13:43:21  <bnoordhuis>one of our dirty little secrets
13:43:24  <mmalecki>bnoordhuis: so, try doing process.send('something'); process.exit()
13:43:33  <mmalecki>it's clearly a race condition
13:43:39  <mmalecki>at least on os x
13:43:59  <bnoordhuis>mmalecki: do you see the write when you dtruss it?
13:44:20  <mmalecki>bnoordhuis: trying
13:44:30  * c4milojoined
13:48:26  <mmalecki>bnoordhuis: no
13:48:55  <mmalecki>bnoordhuis: we send few messages, but not all get to parent
13:49:03  <mmalecki>bnoordhuis: do you want to see that in the wild?
13:49:06  <mmalecki>I've got a branch
13:50:46  <piscisaureus_>indutny: #3434
13:50:58  <piscisaureus_>indutny: if I add process.stdin.resume() it all works
13:51:04  <indutny>piscisaureus_: indeed
13:51:09  <indutny>piscisaureus_: the thing is
13:51:10  <piscisaureus_>indutny: that's normal, right?
13:51:23  <piscisaureus_>indutny: you thing .pipe() should auto resume
13:51:23  <indutny>piscisaureus_: if you'll look carefuly
13:51:29  <indutny>you'll see that it outputs 123123
13:51:34  <indutny>in case of --load
13:51:37  <indutny>err
13:51:38  <indutny>--loud
13:51:45  <indutny>while it should output 123
13:51:50  <piscisaureus_>ah
13:51:52  <indutny>because stdin is not resumed
13:52:09  <piscisaureus_>indutny: aha, so the problem is that .write implicitly resumes stdin?
13:52:12  <indutny>yeah
13:52:17  <indutny>somehow
13:55:55  <indutny>the thing is that it shouldn't resume it at all
13:56:03  <indutny>and that's looks fucked up to me
13:56:13  <indutny>because it does some unexpected behaviour here
13:56:20  <indutny>stdout.write('123') writes directly to the fd=1
14:02:26  <indutny>haha
14:02:33  <indutny>piscisaureus_: that's artefact of stream.js
14:02:44  <indutny>piscisaureus_: it's resuming stdin once stdout emit 'drain' event
14:02:53  <indutny>piscisaureus_: do we really want this?
14:03:09  <indutny>piscisaureus_: I think we should ignore 'drain' events when no write has returned 'false'
14:04:00  <mmalecki>bnoordhuis: ?
14:04:03  <piscisaureus_>indutny: huh?
14:04:15  <piscisaureus_>indutny: ah, sure, I see what you're at
14:04:36  <piscisaureus_>indutny: I would do it the other way round
14:04:47  <piscisaureus_>indutny: .pipe() should always implicitly resume :-)
14:04:51  <indutny>piscisaureus_: em...
14:05:01  <piscisaureus_>indutny: but you'd have to discuss with isaacs as well
14:05:10  <indutny>piscisaureus_: yeah, sounds good
14:05:14  * loladirojoined
14:05:25  <indutny>piscisaureus_: but you agree that current behaviour is strange
14:05:27  <indutny>right?
14:05:35  <piscisaureus_>indutny: yes
14:05:38  <indutny>ok
14:05:43  <indutny>just good to know that I'm not mad :P
14:06:08  <indutny>isaacs:
14:06:10  <indutny>oops
14:06:20  <indutny>isaacs: please ping me once you'll be there
14:11:16  <indutny>piscisaureus_: about https://github.com/joyent/node/issues/3493, consider writing test case? ;)
14:11:22  <indutny>piscisaureus_: can't reproduce it with raw tests
14:11:37  <piscisaureus_>indutny: ok
14:12:03  <piscisaureus_>I also want to add a pty option
14:12:06  <piscisaureus_>:-)
14:13:22  <indutny>piscisaureus_: https://github.com/indutny/node/commit/ff34563db41ab9dd83d00c5c6330c7f11ffa847e
14:13:27  <indutny>possible fix for that problem ^
14:14:12  <indutny>piscisaureus_: what are ptys good for?
14:14:49  <piscisaureus_>indutny: maybe you're right about closing. I will try to reproduce.
14:15:11  <piscisaureus_>indutny: ah, yes, lemme try
14:15:28  <piscisaureus_>indutny: ptys are used to make the child process think it's talking to a tty
14:15:37  <indutny>oh, nice
14:15:39  <piscisaureus_>indutny: e.g. if you want to implement sshd in node
14:15:44  <indutny>so tty.isTTY(process.stdin) would work
14:15:48  <piscisaureus_>yes
14:16:02  <indutny>please do not implement sshd in node :)
14:16:05  <piscisaureus_>indutny: http://linux.die.net/man/3/forkpty
14:16:44  * piscisaureus_bbl
14:23:01  * xaqjoined
14:23:07  * mcavagejoined
14:26:23  <mmalecki>indutny: why not?
14:26:30  <indutny>mmalecki: what not
14:26:34  <indutny>ah, sshd
14:26:45  <indutny>well, it's obviously bike-shedding
14:26:57  <indutny>though it's an interesting project
14:27:01  <mmalecki>oh, well, yeah, it can be kinda pointless
14:27:16  <mmalecki>but I don't really imagine scaling sshd to thousands of users
14:29:32  <saghul>you could implement a SSH reverse forwarder :-)
14:34:48  <indutny>I've received 3000 emails this month
14:34:52  <indutny>nice
14:39:06  <bnoordhuis>mmalecki: back
14:39:18  <bnoordhuis>a test case might be nice but i believe you
14:42:14  <mmalecki>bnoordhuis: brb changing cafes
14:42:22  <mmalecki>bnoordhuis: I'll create a branch for you
14:43:56  * hz_joined
14:45:50  * hz_quit (Client Quit)
14:47:59  * hzquit
14:49:11  * hzjoined
14:49:31  * mmaleckiquit (Ping timeout: 260 seconds)
14:51:16  * loladiroquit (Ping timeout: 246 seconds)
14:52:09  <indutny>piscisaureus_: btw, call in ~1 hour 10 minutes?
14:56:22  <indutny>bnoordhuis: ^
14:58:48  <bnoordhuis>indutny: yes
15:01:32  <isaacs>indutny: pong
15:01:39  <isaacs>call in 1 hour, yes,
15:03:54  <indutny>isaacs: so what do you think about calling .resume() in .pipe()
15:07:51  <indutny>isaacs: nothing? :)
15:07:58  * mmaleckijoined
15:09:41  * ericktjoined
15:10:39  <isaacs>indutny: i'm not sure i agree about pipe auto-resuming.
15:10:50  <isaacs>that sounds a little bit scary to change right now
15:11:10  <indutny>well, I'm ok with getting it into 0.9
15:11:23  <indutny>isaacs: see https://github.com/joyent/node/issues/3484 for more info
15:11:34  <isaacs>i'll try to ask around and see if that'll break anyone who's doing creating things wiht streams right now. dominictarr, mikeal, maxogden, and substack would be good ones to ask
15:11:43  <isaacs>indutny: thanks
15:12:59  <isaacs>indutny: what does child_process.fork('2') do?
15:13:12  <isaacs>calls `node 2`?
15:13:18  <isaacs>should that be fork('1.js')?
15:13:24  <indutny>yes
15:13:29  <indutny>look at the example below
15:13:41  <indutny>first one is too raw for understanding
15:13:57  <indutny>that's not really related to child_process (as I found later)
15:13:59  <indutny>isaacs: ^
15:14:01  <isaacs>yeah
15:15:48  <isaacs>indutny: i think it's probably safe, but i think making a behavior change at this point, which we haven't already discussed in 0.7, is pretty scary.
15:16:09  <isaacs>indutny: if the response from those guys is something like, "Wait, that doesn't already do that?!" then we should do it.
15:16:10  <indutny>isaacs: agree
15:16:17  <indutny>haha
15:16:22  <indutny>I think it'll be actually like that
15:16:25  <isaacs>indutny: another option is for this behavior to only work for stdin.
15:16:32  <indutny>because it has really undefined behaviour right now
15:16:39  <indutny>isaacs: this test case is artificial
15:16:44  <isaacs>since *most* streams don't start out paused, this is really only a wart for stdin.
15:16:48  <indutny>I haven't seen thing like that in the real world
15:16:51  <isaacs>indutny: yeah, i'll post a clearer issue.
15:17:04  <isaacs>it's a pita that process.stdin.pipe(process.stdout) !== cat(1)
15:17:12  <isaacs>that second line is an eye sore
15:17:25  <indutny>yes
15:17:50  <isaacs>and we could do that pretty easily with stdin.pipe = function(dest) { Stream.prototype.pipe.call(this, dest); this.resume(); }
15:18:19  <isaacs>we used to .resume() stdin just by accessing it, which avoids this footgun, but creates many others.
15:18:52  <isaacs>indutny: i'll create a clearer issue for it, so the child_process stuff isn't confusing things.
15:25:35  * pieternjoined
15:25:51  <isaacs>https://github.com/joyent/node/issues/3503
15:26:07  <piscisaureus_>indutny: bnoordhuis: isaacs: I will be ready for call in 30 minutes. I won't join our standup today, so no delays. (And I am time pressured, have to run after the standup)
15:27:28  <isaacs>have to run after ours?
15:27:34  <piscisaureus_>yes
15:27:36  <isaacs>piscisaureus_: k
15:27:42  <isaacs>bnoordhuis: you avialable also?
15:27:59  <piscisaureus_>isaacs: the problem with 3484 is actually slightly different :-) But auto-resume on pipe would "fix" that issue too.
15:28:02  * isaacsis available now, or whenever, so if you guys wanna do it earlier, then that's fine.
15:28:14  <isaacs>piscisaureus_: but if you add stdin.resume() then it fixes it
15:28:53  <piscisaureus_>yes, it hides the problem effectively :-)
15:28:54  <piscisaureus_>which is good
15:29:13  <piscisaureus_>isaacs: I am also available now, but we'd have to wait for TooTallNate and bnoordhuis I suppose
15:29:48  <isaacs>sure
15:33:40  <bnoordhuis>i'm here
15:36:04  * mmaleckiquit (Ping timeout: 245 seconds)
15:36:35  <isaacs>kewl, calling
15:37:44  <isaacs>log into skype, guys
15:37:50  <piscisaureus_>bnoordhuis: get ur ass on skype
15:37:52  <piscisaureus_>:-)
15:42:46  <bnoordhuis>100,000,000 stats (sync): 0s (539,823,651/s)
15:42:58  <bnoordhuis>either stat on linux is really fast or i'm not measuring this right
15:43:23  <indutny>bnoordhuis: cache?
15:43:37  <bnoordhuis>yes, i warm up the dentry cache beforehand
15:43:43  <bnoordhuis>still, those numbers kind of surprise me
15:46:03  * stephankjoined
15:46:05  <bnoordhuis>hah, maybe i should actually do the stat() syscall :)
15:47:43  <bnoordhuis>can you guys here me?
15:47:44  <isaacs>bnoordhuis: hello?
15:47:46  <isaacs>nope
15:47:49  <indutny>bnoordhuis: here you no
15:47:52  <isaacs>mute?
15:50:12  <bnoordhuis>1,000,000 stats (sync): 0s (1,411,528/s) <- still not bad
15:51:02  <indutny>bnoordhuis: cache
15:51:12  <indutny>bnoordhuis: hdd's cache
15:56:18  * hzquit (Ping timeout: 246 seconds)
15:56:25  <CIA-108>node: Ben Noordhuis master * r1bf704a / src/node_io_watcher.cc : iowatcher: add deprecation warning - http://git.io/HRfQMg
16:06:10  * hzjoined
16:06:51  <piscisaureus_>isaacs: degradation is not due to the libuv change
16:07:00  <piscisaureus_>isaacs: will investigate tonight
16:07:24  <piscisaureus_>maybe someone can bench io.js on unix too (0.6 vs 0.8)
16:09:28  <bnoordhuis>piscisaureus_: i'll do that
16:09:37  <piscisaureus_>bnoordhuis: +1
16:10:11  * xaqquit (Read error: Connection reset by peer)
16:10:15  <isaacs>piscisaureus_: oh, that's kind of good news, actually.
16:10:41  * xaqjoined
16:11:43  <isaacs>piscisaureus_: so, we can theoretically keep the fs.readFile enhancement, then :)
16:12:03  <piscisaureus_>isaacs: yes
16:12:15  <piscisaureus_>isaacs: the thread pool manager is seeing an awful lot of lock contention
16:12:28  <piscisaureus_>not really for isaacs I suppose ^
16:14:01  * loladirojoined
16:14:02  <piscisaureus_>node::MakeCallback seems to blame
16:14:28  <isaacs>interesting
16:14:38  <indutny>piscisaureus_: v8 then?
16:15:11  <indutny>or domains?
16:16:56  <isaacs>hm. i was pretty meticulous about watching for perf regressions while building domains, but that was on a different version of V8
16:17:00  <isaacs>so it could be a little of both.
16:17:14  <isaacs>maybe what domain is doing was fine with v8 3.9, but not with v8 3.11?
16:34:16  * mmaleckijoined
16:39:23  * piscisaureus_quit (Ping timeout: 276 seconds)
16:52:13  <isaacs>bnoordhuis, indutny: I'd like to add a --no-deprecation flag to node.
16:52:29  <isaacs>getting some complaints about noisy stderr in cases where you need to have programs work on both 0.6 and 0.8
16:52:41  <isaacs>and it seems kind of valid.
16:52:46  <indutny>well
16:52:50  <indutny>+1 for that
16:52:57  <indutny>I seen a lot of people complaining about that
16:53:09  <indutny>and the most of the times it happens in uncontrolled dependency
16:53:21  <indutny>which is **really** annoying
16:53:22  <indutny>so +1
16:53:23  <indutny>isaacs: ^
16:56:38  <isaacs>ok. other options would be a ./configure variable, or an environment var.
16:56:49  <isaacs>also, it must warn by default.
16:59:27  <indutny>I think cli flag is the best one
17:01:55  <isaacs>k. lemme whip up a patch.
17:03:36  <isaacs>indutny, bnoordhuis: Also, the "This type of response MUST NOT have a body" is rather annoying in produciton.
17:03:40  <isaacs>and in development
17:04:06  <isaacs>we already DTRT, it just fills up logs unnecessarily, and express et al just wrap to silence it.
17:05:11  * sh1mmer_joined
17:05:34  * sh1mmer_quit (Read error: Connection reset by peer)
17:05:54  * sh1mmer_joined
17:07:39  * ericktquit (Remote host closed the connection)
17:07:57  * ericktjoined
17:08:48  * sh1mmerquit (Ping timeout: 246 seconds)
17:08:48  * sh1mmer_changed nick to sh1mmer
17:37:01  * japjjoined
17:37:51  * brsonjoined
17:38:32  * loladiroquit (Ping timeout: 276 seconds)
17:39:44  <indutny>we need a node.js song
17:41:10  * `3rdEdenjoined
17:41:32  * TooTallNatejoined
17:42:08  <japj>rap or no rap?
17:43:50  <indutny>rock
17:45:17  <japj>make a 'node band' room in one of the next conferences and have people play ;)
17:46:24  * TheJHjoined
17:56:26  <indutny>Rock-band "EVENTEMITTER"
18:03:38  * `3rdEdenquit (Quit: Leaving...)
18:06:23  * `3rdEdenjoined
18:06:31  * `3rdEdenquit (Client Quit)
18:08:45  * dapjoined
18:10:32  <isaacs>indutny, piscisaureus, bnoordhuis: are our cli flags accessible from C++ modules in some standard way?
18:10:47  <indutny>isaacs: em.. I don't think so
18:10:55  <isaacs>i want --no-deprecation to turn off the deprecation warning in IOWatcher as well
18:11:01  <isaacs>that's really the only one
18:11:07  <tjfontaine>those don't end up in process?
18:11:07  <isaacs>all the other deprecations immediately abort()
18:11:34  <indutny>yeah, the only way to access them is using `process` variable AFAIK
18:11:34  <isaacs>tjfontaine: well, but node_io_watcher doesn't have access to process, without going throguh some long involved dance.
18:11:59  <isaacs>nono, stuff like --eval, etc
18:12:08  <isaacs>the argv options that we handle, not stuff after the filename
18:12:20  <isaacs>ie, process.execArgv, not process.argv
18:12:52  <indutny>process.argv is not a stuff after filename
18:12:54  <indutny>it contains node
18:12:57  <indutny>filename
18:13:00  <indutny>and all the stuff after filename
18:13:09  <indutny>though it doesn't contain v8 args if you're talking about that
18:14:09  <isaacs>right
18:14:13  <isaacs>i'm talking about the node and v8 args.
18:14:20  <isaacs>the stuff we process in src/node.cc
18:14:29  <indutny>well, we may set value of some static variable
18:14:34  <isaacs>yes, that's what we do.
18:14:35  <indutny>and export it through node_internals.h
18:14:45  <indutny>or through node.h
18:14:50  <indutny>if you want to expose that to addon makers
18:15:41  <indutny>ok, I'm going to the place without internet
18:15:51  <indutny>anything that I should look into while I'm offline
18:16:06  <indutny>isaacs: ^^
18:16:35  <indutny>ok, gtg
18:16:38  <indutny>ttyl
18:16:41  <indutny>tomorrow, actually :)
18:18:02  <isaacs>tomorrow :)
18:40:42  * japjquit (Remote host closed the connection)
18:41:26  * piscisaureus_joined
18:41:43  * mjr_joined
18:47:18  <piscisaureus_>something really funny is going on
18:49:05  <piscisaureus_>aaah
18:49:10  <piscisaureus_>who write the io benchmark????
18:50:05  <piscisaureus_>I think next guy to receive a phone call is going to be ..... pquerna
18:50:34  <piscisaureus_>or ryah
18:52:25  <isaacs>Review, please: https://github.com/isaacs/node/commit/no-deprecation
18:52:31  <isaacs>piscisaureus_, indutny: ^
18:53:57  <isaacs>TooTallNate: oh, you're here. you can review, too :) https://github.com/isaacs/node/commit/no-deprecation
18:54:47  <isaacs>It'd be nice if IOWatcher and ev-emul/eio-emul would respect the flag as well.
18:55:08  <isaacs>but it's a little bit trickier.
18:56:12  <CIA-108>node: Bert Belder master * r6e5217d / benchmark/io.js : Fix bug in io benchmark - http://git.io/PwS-CQ
18:57:00  <isaacs>piscisaureus_ ++
18:57:04  <TooTallNate>isaacs: seems pretty good (haven't pulled)
18:57:07  <TooTallNate>isaacs: what's the motivation?
18:57:51  <isaacs>TooTallNate: people whining about getting deprecation warnings a lot. there are some cases where you might need to have a script that runs in both a v0.6 and a v0.8 context.
18:58:04  <isaacs>if it's a cli command, and you're doing something with the output, a deprecation warning can ruin your day.
18:59:01  <TooTallNate>isaacs: one case of arguments switched
18:59:07  <TooTallNate>but lgtm after that
18:59:09  <isaacs>?
18:59:16  <isaacs>TooTallNate: whereat?
18:59:28  <TooTallNate>https://github.com/isaacs/node/commit/no-deprecation#L3R1089
19:00:25  <isaacs>TooTallNate: yessir.
19:00:27  <isaacs>on it, thanks :)
19:00:38  <piscisaureus_>Wrote 10485760000 bytes in 29.07s using 65536 byte buffers: 343.9972480220158 mB/s
19:01:00  <piscisaureus_>^-- with 65k buffers it's all I/O bound
19:01:26  <piscisaureus_>So we would need speedups for small files mostly
19:02:20  <isaacs>TooTallNate: force-pushed to https://github.com/isaacs/node/commit/no-deprecation
19:07:10  <isaacs>TooTallNate, piscisaureus_: Also: I desperately want to move the 'this type of response MUST NOT have a body' to a debug() message.
19:07:13  <isaacs>we do the right hting anwyay
19:07:20  <isaacs>there's absolutely no need for this
19:07:27  <isaacs>it's making me go insane with npm-www
19:07:41  <isaacs>*everyone* just wraps res.write() so that it doesnt' show that warning
19:07:56  <piscisaureus_>isaacs: huh, y u sending HEAD requests with bodies?
19:08:20  <isaacs>piscisaureus_: because my thing just says, "If it's a HEAD or a GET, then do the thing where you just send a template or whatever"
19:08:32  <isaacs>piscisaureus_: since i have to figure out the content-length and ETag anyway
19:08:38  <piscisaureus_>isaacs: aah, right
19:08:43  <isaacs>piscisaureus_: this is responses TO head requests
19:08:46  <piscisaureus_>isaacs: makes sense. Yeah, get rid of the wardning
19:08:55  <isaacs>i like it as a NODE_DEBUG=http thing
19:09:02  <piscisaureus_>isaacs: it's not our business to teach people about html
19:09:04  <isaacs>landing
19:09:09  <CIA-108>node: isaacs master * r260695a / lib/http.js : http: Hush 'MUST NOT have a body' warnings to debug() - http://git.io/a3J1pg
19:09:10  <CIA-108>node: isaacs master * r5b39929 / (11 files in 4 dirs): Add --no-deprecation and --trace-deprecation flags - http://git.io/-FMA_g
19:09:12  <piscisaureus_>er, *http
19:09:20  <isaacs>piscisaureus_: well... that sort of is our job.
19:09:31  <isaacs>but we should do so in a reasonable way, not like a dick
19:10:03  <isaacs>piscisaureus_: Hey, how can we get --no-deprecation to be respected in node_io_watcher and other places where we fprintf(stderr, "drrrr")
19:10:16  <isaacs>basicaly just io_watcher and ev_emul
19:10:44  <piscisaureus_>isaacs: er, add a static in node.cc ?
19:11:04  <piscisaureus_>isaacs: and then add an `extern bool` in node-internals.h ?
19:11:33  <piscisaureus_>isaacs: lemme help
19:11:35  <isaacs>oh, ok, the extern is the bit i was lacking.
19:11:41  <piscisaureus_>isaacs: or do you want to practice c++ ?
19:11:44  <isaacs>there's already a static bool in node.cc
19:11:52  <isaacs>piscisaureus_: fucks given: 0.
19:11:57  <isaacs>piscisaureus_: make it work. that is all :)
19:12:21  <piscisaureus_>isaacs: fucks given: 0 <-- oh my, time to get some practice then
19:12:38  <isaacs>hahah
19:12:43  <einaros>:O
19:12:59  <isaacs>i mean, it's just a deprecation warning, right? just make it shut up when no_deprecation is true
19:13:22  <isaacs>if you wanna do it in a C style, or more idiomatically proper c++, who cares?
19:13:39  <isaacs>oh, or were you asking me if I personally want to practice my C++?
19:13:41  <isaacs>i get it.
19:13:53  <piscisaureus_>isaacs: yes
19:13:56  <tjfontaine>heh
19:14:28  <piscisaureus_>brb
19:17:23  * mmaleckiquit (Ping timeout: 248 seconds)
19:19:05  * mmaleckijoined
19:21:23  <piscisaureus_>isaacs: ok, fixing
19:21:28  <isaacs>piscisaureus_: like this? https://github.com/isaacs/node/commit/2510192a2ada1cbfbfd34b04fefd6c9f0e0017ba
19:21:33  <isaacs>piscisaureus_: tht seems to work^
19:22:14  <piscisaureus_>isaacs: that works by accident :-0
19:22:35  <piscisaureus_>isaacs: the vars in node.cc must have no "extern" and no "static"
19:22:36  <CIA-108>node: isaacs reviewme * r02a2898 / (4 files): Apply --no-deprecation to C++ warnings as well (+15 more commits...) - http://git.io/gcAu7Q
19:22:36  <piscisaureus_>just
19:22:40  <isaacs>oh, ok :)
19:22:53  <isaacs>piscisaureus_: they pretty much all have static
19:23:06  <tjfontaine>static means "this file only" in that context
19:23:07  * loladirojoined
19:23:12  <isaacs>ok
19:23:36  <piscisaureus_>isaacs: `extern` means that you're referencing a variable in another file
19:23:53  <piscisaureus_>isaacs: but there must be one file where the variable actually exists, which should be node.cc
19:24:27  <piscisaureus_>isaacs: and indeed, `static` means it is not accessible from other files (static can mean many things, hence "in that context" as tjfontaine said)
19:25:57  * brsonquit (Ping timeout: 252 seconds)
19:26:11  <isaacs>ok
19:27:06  <loladiro>piscisaureus_: Did you ever get a chance to look at the pipe IPC issue?
19:27:14  <piscisaureus_>loladiro: not yet.
19:27:18  <isaacs>i think i get it. one sec
19:27:22  <loladiro>piscisaureus_: ok
19:27:35  <piscisaureus_>loladiro: very busy getting 0.8 out. Will look into that next week (since 0.8 is done now)
19:27:50  <CIA-108>node: isaacs reviewme * r6e70e9b / (4 files): Apply --no-deprecation to C++ warnings as well - http://git.io/k5tr1g
19:27:54  <isaacs>piscisaureus_: like that? ^
19:27:56  <loladiro>piscisaureus_: Ok, that's great. Thank you
19:28:35  <piscisaureus_>isaacs: yes
19:29:03  <CIA-108>node: isaacs reviewme * r1b45250 / src/ev-emul.h : move the slash back, he says. - http://git.io/czwqqQ
19:29:30  <isaacs>piscisaureus_: lgty otherwise?
19:30:23  <piscisaureus_>isaacs: lgtm
19:31:30  <CIA-108>node: isaacs master * r48c3d20 / (4 files): Apply --no-deprecation to C++ warnings as well - http://git.io/d1geJw
19:34:40  <bnoordhuis>isaacs: node_internals.h is not visible to modules
19:34:55  <piscisaureus_>bnoordhuis: IoWatcher and ev_emul see it right?
19:35:09  <bnoordhuis>piscisaureus_: not when you're compiling a module
19:39:34  <piscisaureus_>isaacs: ok, I didn some investigation into the io stuff... it didn't really get worse, in fact (on windows) it got better
19:39:40  <piscisaureus_>roughly +60%
19:40:01  <piscisaureus_>so no worries
19:40:30  * mikealjoined
19:40:57  <piscisaureus_>and it seems that readfile is mostly bound by latency introduced by thread pool scheduling overhead
19:53:01  * mikealquit (Quit: Leaving.)
19:59:42  <isaacs>bnoordhuis: yeah, not quite the best comment, i guess.
19:59:47  <isaacs>bnoordhuis: i meant our internal C++ modules
20:00:17  <isaacs>though, since it's exposed on process.noDeprecation, maybe it's fair to put it in node.h as well. <shrug>
20:00:26  <isaacs>0.9!
20:08:39  <bnoordhuis>isaacs: it needs to be fixed, i'll bet you a sixpack you can't build a module anymore now
20:09:23  <bnoordhuis>it works like this: the module includes node.h, node.h includes ev-emul.h, ev-emul.h references no_deprecation but that's defined in node_internals.h - which is not included (or even installed)
20:11:09  <bnoordhuis>10,000,000 stats (sync): 6s (1,445,378/s)
20:11:10  <bnoordhuis>1,000,000 stats (1 concurrent): 11s (89,558/s)
20:11:10  <bnoordhuis>1,000,000 stats (2 concurrent): 2s (491,907/s)
20:11:10  <bnoordhuis>1,000,000 stats (3 concurrent): 2s (493,992/s)
20:11:10  <bnoordhuis>1,000,000 stats (4 concurrent): 1s (518,361/s)
20:11:10  <bnoordhuis>1,000,000 stats (5 concurrent): 1s (552,584/s)
20:11:12  <bnoordhuis>1,000,000 stats (6 concurrent): 1s (565,492/s)
20:11:14  <bnoordhuis>1,000,000 stats (7 concurrent): 1s (597,787/s)
20:11:16  <bnoordhuis>1,000,000 stats (8 concurrent): 1s (618,639/s)
20:11:18  <bnoordhuis>^ the overhead of the thread pool...
20:15:55  <piscisaureus_>bnoordhuis: bad, innit
20:16:06  <piscisaureus_>bnoordhuis: is that a js test or a uv test?
20:16:22  <piscisaureus_>bnoordhuis: you should land it, we definitely need more of these
20:17:02  <piscisaureus_>bnoordhuis: for me, at concurrency level 1 I can do ~2100 readFile ops per second
20:17:21  <piscisaureus_>with concurrency 10 it's 18000
20:17:28  <piscisaureus_>with -c 20 it's 21000
20:17:40  <bnoordhuis>piscisaureus_: libuv benchmark
20:17:54  <bnoordhuis>i'll tweak it a little more and land it
20:18:17  <piscisaureus_>(to wit, node 0.6 maxes out at ~13000 readFiles per second)
20:23:59  <piscisaureus_>bnoordhuis: btw, we should measure no-ops
20:24:09  <piscisaureus_>how many no-ops per second can we do in the thread pool?
20:24:51  <bnoordhuis>go ahead and write the benchmark :)
20:24:59  <piscisaureus_>sure
20:25:14  <piscisaureus_>the number of concurrent no-ops per second
20:25:15  <piscisaureus_>awesome
20:27:46  * brsonjoined
20:39:13  <CIA-108>libuv: Ben Noordhuis master * r8d7ebf2 / (test/benchmark-list.h uv.gyp test/benchmark-fs-stat.c): bench: add thread pool I/O benchmark - http://git.io/qLX4lw
20:39:24  <bnoordhuis>piscisaureus_: ^ give it a try, i'm curious what you'll get
20:39:30  <isaacs>bnoordhuis: ahhh, right.
20:39:32  <isaacs>ok.
20:40:04  <piscisaureus_>bnoordhuis: test\benchmark-fs-stat.c(50): error C2036: 'void *' : unknown size [D:\libuv\ru
20:40:04  <piscisaureus_>n-benchmarks.vcxproj]
20:40:09  <piscisaureus_>bnoordhuis: lemme fix it first
20:40:36  <bnoordhuis>piscisaureus_: oh, my bad - gcc implicitly casts it to char*
20:40:46  <bnoordhuis>i'll force-push the fix
20:41:21  <CIA-108>libuv: Ben Noordhuis master * r5dc024f / (test/benchmark-list.h uv.gyp test/benchmark-fs-stat.c): bench: add thread pool I/O benchmark - http://git.io/oQ5Q8g
20:41:23  <piscisaureus_>bnoordhuis: 1 * 1e16 <-- double
20:41:26  <bnoordhuis>gcc really ought to warn about that
20:41:27  <piscisaureus_>bnoordhuis: tut tut
20:41:40  <bnoordhuis>piscisaureus_: yeah, but that's okay - it gets implicitly cast to int
20:41:51  <bnoordhuis>and it's easier to read than 1000000
20:43:01  <piscisaureus_>bnoordhuis: takes forever
20:43:21  <piscisaureus_>bnoordhuis: I think that's because stat is many syscalls atm
20:43:22  <bnoordhuis>windows eh?
20:43:28  <piscisaureus_>I don't know
20:43:40  <bnoordhuis>lower the #defines in test/benchmark-fs-stat.c
20:43:50  <piscisaureus_>it times out
20:44:10  <bnoordhuis>piscisaureus_: run-benchmarks.exe fs_stat fs_stat
20:46:06  * loladiroquit (Ping timeout: 250 seconds)
20:50:03  <isaacs>bnoordhuis: review? https://github.com/isaacs/node/commit/master
20:50:40  <bnoordhuis>isaacs: have you verified that it works? :)
20:51:27  <bnoordhuis>btw, are all the deprecation warnings unix-only?
20:51:38  <bnoordhuis>if yes, okay. if no, it needs a NODE_EXTERN
20:51:52  <tjfontaine>damn you dlls!
20:52:17  * mmaleckiquit (Ping timeout: 265 seconds)
20:52:43  <isaacs>bnoordhuis: k
20:52:51  <piscisaureus_>bnoordhuis: https://gist.github.com/2968450
20:53:42  <bnoordhuis>piscisaureus_: your os got owned
20:54:00  <piscisaureus_>bnoordhuis: it is incredibly slow
20:54:02  <tjfontaine>interesting increase
20:54:07  <piscisaureus_>bnoordhuis: very weird
20:54:24  <bnoordhuis>tjfontaine: yeah, i see something similar on linux
20:54:52  <tjfontaine>bnoordhuis: your rate of increase was more dramatic over one additional concurrency, piscisaureus_'s takes more time to reach max
20:55:11  <piscisaureus_>tjfontaine: it's just because the thread pool scheduler works differently
20:55:16  <piscisaureus_>let me try again with WT_EXECUTELONG
20:55:21  <tjfontaine>nod
20:56:00  <bnoordhuis>https://gist.github.com/e18259be52d901bf0ba5 <- linux
20:56:09  <bnoordhuis>yeah, the concurrent==1 case is odd
20:56:20  <bnoordhuis>everything gets serialized, of course, but still
20:56:50  <tjfontaine>oh interesting growth there too, I guess the abbreviated irc paste didn't help my suspicions
20:56:56  <isaacs>bnoordhuis: this seems to work now: https://github.com/isaacs/node/commit/master
20:57:04  <isaacs>bnoordhuis: ran through the zookeeper test
20:57:14  <piscisaureus_>WT_EXECUTELONG makes it far more weird
20:57:15  <piscisaureus_>let's not
20:57:17  <isaacs>bnoordhuis: and it does indeed not print deprecation warnings.
20:57:29  <bnoordhuis>isaacs: yep, lgtm
20:57:35  <isaacs>kewl, thanks
20:57:46  <CIA-108>node: isaacs master * r8988af5 / (src/ev-emul.h src/node.h src/node_internals.h): Externalize node::no_deprecation - http://git.io/swud5w
20:58:08  * mmaleckijoined
20:58:16  * ryahjoined
20:58:33  <ryah>isaacs: do you have a bulleted list of major changes in v0.7 ?
20:58:56  <ryah>or unbulleted :)
20:59:19  <bnoordhuis>ryah: https://github.com/joyent/node/wiki/API-changes-between-v0.6-and-v0.8 ?
20:59:33  <bnoordhuis>you probably know that one though
20:59:36  <ryah>no, something to summerize
20:59:40  <ryah>for the blog
20:59:50  <bnoordhuis>oh, like that. "bigger, better, faster, stronger"?
21:00:05  <ryah>it'd be good if we could consolidate the changes into like 10 features
21:00:31  <ryah>#10 being a link to that wiki page "and many more small changes"
21:00:56  <bnoordhuis>i can only think of two major ones, domains and the new cluster module
21:00:59  <ryah>good communication breeds good software
21:01:12  <ryah>GYP is another one
21:01:54  <TooTallNate>maybe the readline/repl refactor
21:01:56  <ryah>I'd say the perf improvements for large TCP writes is worthy of a bullet point
21:02:26  <ryah>i dont even know about the readline/repl stuff
21:02:51  <tjfontaine>hrtime as well! :)
21:03:02  <ryah>hrtime was there in v0.6 wasn't it?
21:03:16  <ryah>i remember doing that last year... or ?
21:03:19  <tjfontaine>did that get backported?
21:03:28  <TooTallNate>no, hrtime() wasn't in 0.6
21:03:29  <bnoordhuis>i didn't so the answer is probably 'no' :)
21:03:47  <ryah>hm.. maybe we only did the libuv part of it?
21:03:47  <bnoordhuis>no, not in 0.6
21:03:50  <bnoordhuis>yes
21:04:26  * travis-cijoined
21:04:26  <travis-ci>[travis-ci] joyent/libuv#435 (master - 8d7ebf2 : Ben Noordhuis): The build was broken.
21:04:26  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/da59427c66ff...8d7ebf2ead3c
21:04:26  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1677123
21:04:26  * travis-cipart
21:04:31  <TooTallNate>we definitely need to mention the new "stdio" stuff from child_process
21:04:43  <tjfontaine>bad ben broke the build
21:04:59  * travis-cijoined
21:04:59  <travis-ci>[travis-ci] joyent/libuv#436 (master - 5dc024f : Ben Noordhuis): The build is pending.
21:04:59  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/8d7ebf2ead3c...5dc024f67656
21:04:59  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1677149
21:04:59  * travis-cipart
21:05:08  <ryah>have you guys seen this "opa" thing?
21:05:14  <bnoordhuis>tjfontaine: i think it was github that broke it. fatal: reference is not a tree: 8d7ebf2ead3cb39cf3e85ce39a19f57a05f9d19c
21:05:21  <tjfontaine>bnoordhuis: indeed
21:05:22  <ryah>it appears they just wrap node with millions of lines of bullshit to make it slower
21:05:32  <ryah>https://gist.github.com/2964609
21:05:37  <bnoordhuis>that's enterprise software for you
21:05:50  <ryah>it's really sad...
21:06:21  <isaacs>ryah: yes, i'm working that out now
21:06:22  <ryah>it seems they put a lot of work into it too - there is tons of source code
21:07:01  <isaacs>ryah: i'm fed up with wordpress. i can't take it any more.
21:07:11  <isaacs>ryah: i'm about to land `make blog` that parses markdowns in doc/blog/
21:07:19  <ryah>isaacs: oh great - it'd be good to have that in a gist so we can bat around ideas. it should be short enough that a layperson would read it
21:07:24  <isaacs>yes.
21:07:51  <isaacs>ryah: i will have something by the end of today
21:08:05  <ryah>cool
21:08:06  * dapquit (Quit: Leaving.)
21:08:13  * mcavagequit (Remote host closed the connection)
21:08:18  <piscisaureus_>bnoordhuis: hmm. there is a lot of room to optimize here
21:08:26  <isaacs>i'm thinking it's best to do the big press release social media whizzbangs on Monday morning, though
21:08:40  <isaacs>to take advantage of the fact that no one works on monday morning and instead they all just look at hacker news.
21:08:51  * dapjoined
21:08:53  <ryah>isaacs++
21:09:05  <isaacs>but: i want it *done* tomorrow.
21:09:18  <isaacs>ideally, a weekend without any patches landing.
21:09:25  <isaacs>(or having to be landed, of course)
21:10:12  <isaacs>that'll give joyent and voxer and jitsu and all them time to see if it completely wrecks them in some way.
21:10:21  <isaacs>(which i don't expect, but it's good to be extra safe)
21:11:41  <ryah>what are the major improvements to libuv in v0.7?
21:11:51  <tjfontaine>ref refactor
21:11:59  <ryah>what's that?
21:12:15  <tjfontaine>the way refcounts are handled it's a lot easier to see what's holding the loop open
21:12:43  * mikealjoined
21:12:53  <tjfontaine>(or not holding it open for that matter)
21:12:58  <ryah>is there like a uv_walk thing now?
21:13:26  <tjfontaine>yup
21:13:45  <ryah>is there a binding of that into node?
21:14:02  <tjfontaine>bnoordhuis had one at one point, I don't know if it's exposed, lemme look at my issue
21:14:15  * mmaleckiquit (Ping timeout: 245 seconds)
21:14:27  <ryah>grepping src doesn't show anything
21:14:45  <ryah>that's too bad - would be a great feature
21:14:50  <ryah>does uv_walk work in windows too?
21:15:43  <tjfontaine>I believe so, it's in uv-common.c at least
21:15:58  <ryah>piscisaureus_: uv_walk work in win?
21:16:10  <piscisaureus_>ryah: yeah, I think so.
21:16:35  <piscisaureus_>ryah: I'm not sure it will leave out all internal handles btw... It should tho
21:16:47  <tjfontaine>probably can close https://github.com/joyent/libuv/issues/350 though
21:17:47  <piscisaureus_>done
21:18:46  <tjfontaine>there is actually _getActiveHandles in node.cc
21:19:43  <tjfontaine>which isn't entirely related to uv refs
21:19:55  <piscisaureus_>it returns wraps, yeah
21:20:08  <ryah>oh sweet
21:20:13  <ryah>so is this part of domains?
21:20:53  <ryah>that's going to be super useful for debugging
21:21:30  <bnoordhuis>ryah: process._getActiveHandles()
21:21:51  <tjfontaine>hmm net.Socket.unref didn't make it in, will we be able to add that in a point release of .8 or will that be left to .9?
21:21:59  <bnoordhuis>there's also process._getActiveRequests() btw
21:22:15  <ryah>reqs aren't a type of handle?
21:22:25  <bnoordhuis>no
21:22:42  <bnoordhuis>tjfontaine: i think piscisaureus_ is/was working on that
21:22:54  <bnoordhuis>on a general ref/unref thingy actually, not restricted to just sockets
21:23:08  <piscisaureus_>bnoordhuis: I thought indutny was
21:23:17  <tjfontaine>bnoordhuis: ok, because child_process has an explicit unref added to it
21:24:54  <piscisaureus_>tjfontaine: yeah, indutny does that
21:24:56  <piscisaureus_>*did
21:25:43  <tjfontaine>right, would it be worth my time to submit a pullreq that mimics the functionality on net.Socket?
21:30:18  <bnoordhuis>tjfontaine: i'd rather see it solved generically
21:30:25  <bnoordhuis>it's too late for v0.8 anyway
21:30:47  <piscisaureus_>Ok, question
21:30:53  <bnoordhuis>ok, answer
21:30:55  <tjfontaine>bnoordhuis: ok
21:31:12  <piscisaureus_>How many nsecs passed between January 1, 1601 (UTC). and the unix epoch ?
21:31:19  <bnoordhuis>hah
21:31:35  <bnoordhuis>i have no idea, consult wikipedia :)
21:32:37  <tjfontaine>"When times prior to the epoch need to be represented, it is common to use the same system, but with negative numbers."
21:33:14  <tjfontaine>I somehow doubt this
21:35:54  * loladirojoined
21:37:47  * avalanch_joined
21:38:06  <indutny>piscisaureus_: oh
21:38:12  <indutny>ref/unref stuff never got landed
21:38:21  <indutny>forgot about it :(
21:38:26  * avalanche123quit (Ping timeout: 260 seconds)
21:38:26  * avalanch_changed nick to avalanche123
21:38:31  <indutny>isaacs: too late to include?
21:38:37  <tjfontaine>more than likely
21:38:40  <indutny>ryah: how are ya?
21:38:41  <indutny>hi
21:40:29  <ryah>indutny: good
21:40:44  <piscisaureus_>tjfontaine: +(new Date("1601-01-01T00:00:00.000Z")) <-- you're right :-)
21:41:25  <tjfontaine>:)
21:42:06  <piscisaureus_>tjfontaine: and now that I know to google for 11644473600000, it's everywhere
21:42:23  <tjfontaine>who uses 1601 as sentinel?
21:42:57  <tjfontaine>oh active directory of course
21:42:58  <ryah>piscisaureus_: http://www.wolframalpha.com/input/?i=time+between+%28January+1%2C+1601+UTC%29+and+%28jan+1%2C+1970+UTC%29+in+nanoseconds
21:44:21  <piscisaureus_>hah, that thing is not stupid
21:44:26  <piscisaureus_>however the answer is not precise enough
21:48:23  <CIA-108>node: isaacs master * rfce7c95 / test/fixtures/deprecated.js : test: add deprecation fixture - http://git.io/PrzQuQ
21:48:31  <isaacs>sorry about that ^
21:49:47  <ryah>% gista /tmp/x.txt
21:49:48  <ryah>sys.js:1
21:49:48  <ryah>throw new Error(
21:49:48  <ryah> ^
21:49:48  <ryah>Error: The "sys" module is now called "util".
21:49:50  <ryah> at sys.js:1:69
21:49:52  <ryah> at NativeModule.compile (node.js:588:5)
21:49:55  <ryah> at Function.NativeModule.require (node.js:556:18)
21:49:57  <ryah> at Function.Module._load (module.js:297:25)
21:50:00  <ryah> at Module.require (module.js:362:17)
21:50:02  <ryah> at require (module.js:378:17)
21:50:05  <ryah> at Object.<anonymous> (/home/ryan/local/node/lib/node_modules/gista/node_modules/node-gist/node_modules/nest/deps/querystring/querystring-parse.js:15:11)
21:50:08  <ryah> at Module._compile (module.js:449:26)
21:50:10  <ryah> at Object.Module._extensions..js (module.js:467:10)
21:50:13  <ryah> at Module.load (module.js:356:32)
21:50:15  <ryah>^-- :(
21:50:30  * rendarquit
21:50:35  * mikealquit (Quit: Leaving.)
21:50:37  <ryah>two sad faces: 1 because it doesn't work. 2 because of the deeply nested node_modules
21:56:38  * c4miloquit (Remote host closed the connection)
21:56:53  <mjr_>isaacs: would you expect that 0.8 would work for us now?
21:57:22  <piscisaureus_>1,000,000 stats (sync): 18.50s (54,067/s)
21:57:31  <piscisaureus_>^-- (x32) slightly better already
21:58:35  * hzquit
21:59:21  * ibcjoined
21:59:47  <ibc>Hi, let me a question about the uv_poll callback: void (*uv_poll_cb)(uv_poll_t* handle, int status, int events);
22:00:10  <ibc>could "int events" include both UV_READABLE and UV_WRITEABLE in the same callback?
22:00:11  * paddybyers_joined
22:00:18  * loladiroquit (Quit: Konversation terminated!)
22:00:31  * dapquit (Quit: Leaving.)
22:00:37  <piscisaureus_>ibc: yes
22:00:46  <ibc>thanks a lot
22:01:02  * dapjoined
22:01:56  * paddybyersquit (Ping timeout: 250 seconds)
22:01:56  * paddybyers_changed nick to paddybyers
22:02:54  <bnoordhuis>valgrind --tool=drd --trace-barrier=yes --trace-cond=yes --trace-mutex=yes --trace-rwlock=yes --trace-semaphore=yes --trace-fork-join=yes out/Release/run-benchmarks fs_stat fs_stat
22:03:04  <bnoordhuis>couldn't they have added a --trace-all flag? :/
22:03:06  * loladirojoined
22:07:05  <piscisaureus_>ryah: what about upgrading gista?
22:07:14  <piscisaureus_>ryah: for me it just works(tm)
22:07:38  * ibcquit (Remote host closed the connection)
22:13:54  * TheJHquit (Ping timeout: 240 seconds)
22:20:21  <ryah>piscisaureus_: after cleaning everything i get
22:20:22  <ryah>22:06 <tim_smart> *unfriendly
22:20:23  <ryah>er
22:20:34  <ryah>npm ERR! Error: No compatible version found: nest@'>=0.1.5'
22:20:34  <ryah>npm ERR! Valid install targets:
22:20:34  <ryah>npm ERR! ["0.0.1","0.0.2","0.0.3","0.0.4","0.1.0","0.1.1","0.1.2"]
22:26:05  <isaacs>mjr_: if 0.7 has ever worked for you in any way, then ues
22:26:09  <isaacs>yes, use it
22:26:14  <isaacs>mjr_: or wait until tomorrow :)
22:26:44  <ryah>mjr_: twice the throughput for 12k writes on tcp
22:27:35  <piscisaureus_>ryah: string writes only, tho
22:28:31  <piscisaureus_>ryah: ah, I think I installed it with 0.6
22:28:41  <piscisaureus_>ryah: but the version of ngist I use works with 0.8
22:31:09  <mjr_>wow, cooo.
22:31:11  <mjr_>l
22:31:18  <mjr_>No, I don't think we've ever used 0.7 successfully
22:31:26  <mjr_>Gotta start somewhere.
22:31:43  <TooTallNate>mjr_ is dying to use the new repl stuff ;)
22:31:53  <mjr_>TooTallNate: you have no idea
22:32:02  <mjr_>I have just been REPLing around for the past hour, in fact.
22:32:26  <mjr_>Cannot wait to have proper readline.
22:32:41  <TooTallNate>mjr_: i hacked up a quick telnet server, and integrated it with the repl. so at that point you just use telnet(1) to connect
22:32:43  <TooTallNate>pretty baller
22:33:20  * paddybyersquit (Quit: paddybyers)
22:33:29  <mjr_>But I want a node-based one so I can get a history file.
22:33:49  <mjr_>I'm always switching around between different processes, and I often want to run the same giant one-liner on another process.
22:34:21  <ryah>piscisaureus_: my problem with gista has been fixed by tim_smart
22:34:27  <ryah>finally a gist program that works
22:34:36  <piscisaureus_>ngist worked for a while for me
22:34:49  <piscisaureus_>unfortunately they never updated it for github api v3
22:34:49  <TooTallNate>https://gist.github.com/a7017a1dddc543238012
22:35:22  <TooTallNate>mjr_: once there's history support i would expect it to be server-side
22:35:35  <TooTallNate>i.e. you reconnect to the same repl server and have the same history
22:35:48  <TooTallNate>i guess that's opinionated though
22:39:46  * paddybyersjoined
22:47:10  * paddybyersquit (Quit: paddybyers)
22:48:55  * loladiroquit (Quit: Konversation terminated!)
22:49:00  <CIA-108>node: isaacs blog * rebdc029 / (28 files in 6 dirs): Initial blog source - http://git.io/e-sLYQ
22:49:01  <CIA-108>node: isaacs blog * rbbd58f3 / (166 files in 36 dirs): Generate static HTML blog content out of markdown - http://git.io/NYAH3Q
22:49:05  <isaacs>anyone wanna review?
22:49:28  <bnoordhuis>is 'no' an option?
22:49:37  <isaacs>yes, very much so :)
22:49:41  <isaacs>the important bits are in doc/blog/
22:49:56  <bnoordhuis>28 and 166 files...
22:49:59  <bnoordhuis>i'll take a sneak peek
22:50:15  * mikealjoined
22:50:15  <isaacs>and thats explained in https://github.com/joyent/node/blob/ebdc029fc9eee0821a9fb3de92ca7e4b0fe8fb0f/doc/blog/README.md
22:50:53  <isaacs>you can also add "8.12.44.238 blog.nodejs.org" to your /etc/hosts and see what it generates
22:54:06  <isaacs>i'm gonna flip the switch to start pointing it to there instead of wordpress.
22:54:18  <bnoordhuis>isaacs: looks good
22:54:40  <ryah>somehow github is down for me
22:54:53  <bnoordhuis>wfm
22:56:48  <isaacs>oh, actually, nvm.
22:56:53  <isaacs>ryah: where is the DNS for nodejs.org set?
22:57:29  <ryah>*shrug* i guess it was comcast dns. 8.8.8.8 works now
22:57:57  <isaacs>ryah: whois says DNS1.JOYENTDNS.COM, but i'm not finding it in dynect
22:58:16  <ryah>isaacs: i think it's on namescheap
22:58:24  <ryah>isaacs: ask emily
22:58:27  <isaacs>k
22:58:58  <piscisaureus_>isaacs: are you sure you want this hosted in the node repo?
22:59:47  <isaacs>piscisaureus_: sure, why not?
22:59:52  <isaacs>piscisaureus_: it's quite a bit smaller than our docs.
23:00:12  <ryah>yeah you might want to update the blog outside of the branching scheme in the repo
23:00:25  <ryah>*shrug*
23:00:30  <isaacs>ryah: so, i update, and `make blog-update`
23:00:33  <isaacs>er, blog-upload
23:00:39  <isaacs>it's not tied to the version or anything
23:00:41  <indutny>dear OpenSSL
23:00:43  <indutny>fuck you
23:00:45  <indutny>really
23:00:46  <bnoordhuis>haha
23:00:52  <bnoordhuis>what's the problem, indutny?
23:00:54  <indutny>instead of reporting - this line is too long
23:01:00  <indutny>it says incorrect base64
23:01:12  <indutny>and also we have incorrect error reporting in node_crypto.cc
23:01:26  <isaacs>ok, we're gonna unpause stdin on pipe. 70% of precincts reporting.
23:01:32  <bnoordhuis>'t is true, openssl doesn't take kindly to > 72 chars base64 lines
23:01:42  <isaacs>any last minute objections?
23:01:47  <bnoordhuis>that's why we have our own encoder/decoder in node
23:01:54  <indutny>bnoordhuis: >80
23:01:56  <indutny>actually
23:02:01  <indutny>isaacs: yes
23:02:02  <bnoordhuis>80? heresy!
23:02:04  <indutny>bugfix for node_crypto
23:02:13  <indutny>isaacs: ^
23:02:48  <piscisaureus_>isaacs: +1 for unpause
23:04:12  <indutny>isaacs: please pull this in https://github.com/indutny/node/commit/58433a2fdec234cf98caf0f9a8049b7390ef7bc4
23:04:15  <indutny>bnoordhuis: review please ^
23:05:14  <indutny>c'mon guys
23:05:17  <indutny>I'm on GPRS
23:05:27  <indutny>can you do it a little bit faster?
23:05:33  <indutny>I think my money are burning in roaming
23:05:34  <indutny>:P
23:05:38  <tjfontaine>heh
23:05:57  <indutny>piscisaureus_: ^^^^^
23:06:08  <bnoordhuis>indutny: why the change?
23:06:15  <bnoordhuis>i mean, what was wrong with False()?
23:06:22  <indutny>bnoordhuis: because SetCert throws error
23:06:37  <indutny>that should be thrown in SetKey
23:06:49  <indutny>because OpenSSL's ctx state is gets fucking dirty
23:06:55  <bnoordhuis>indutny: line 291 also returns False()
23:06:57  <indutny>and I spent 1.5 hours debugging it
23:06:58  <isaacs>indutny: testing now
23:06:59  <indutny>instead of sleeping
23:07:15  <indutny>bnoordhuis: that's ok
23:07:25  <indutny>well, actually not
23:07:28  <indutny>it should throw too
23:07:33  <indutny>it's used in server
23:07:47  <indutny>and if it won't throw - it'll be ignored
23:08:16  <bnoordhuis>indutny: a test would be nice
23:08:25  <isaacs>indutny: doesn't seem to cause any ill effects here. make bnoordhuis happy, and i'm +1 on it
23:08:40  <isaacs>imo, that's a bug, though, not a release blocker.
23:08:48  <indutny>isaacs: well, indeed
23:08:48  <isaacs>and not API change. so it *can* wait until 0.8.1
23:09:05  <bnoordhuis>indutny: yeah. go to bed :)
23:09:05  <indutny>ok, I'll do that on a normal internet connection tomorrow
23:09:13  <isaacs>we have so many tests now.
23:09:13  <indutny>bnoordhuis: will do
23:09:14  <isaacs>this is crayz
23:09:18  <indutny>sorry, I was just very angry
23:09:27  <isaacs>[02:04|% 100|+ 432|- 0]: Done
23:09:32  <indutny>hehe
23:09:34  <piscisaureus_>indutny: y u angry?
23:09:42  <isaacs>piscisaureus_: he's been chatting with openssl all day
23:09:43  <indutny>piscisaureus_: because openssl is fucking retarded
23:09:49  <piscisaureus_>aah
23:09:50  <piscisaureus_>:-)
23:09:52  <piscisaureus_>indutny: good
23:10:03  <piscisaureus_>indutny: anger is a strong motivator
23:10:12  <indutny>anger occured later
23:10:14  <piscisaureus_>indutny: I should make you more anger
23:10:17  <piscisaureus_>*angy
23:10:24  <indutny>once I discovered where the problem was in
23:10:35  <indutny>good motiviator motivates before action, not after it
23:10:36  <indutny>I think
23:11:00  <indutny>now I'm motivated to write a letter of anger to openssl@ mailing list
23:11:02  <indutny>that's not good
23:11:18  <indutny>ok, time to sleep :)
23:11:22  <indutny>see ya tomorrow, guys
23:11:26  <bnoordhuis>sleep tight, fedor
23:11:29  * c4milojoined
23:14:38  <bnoordhuis>piscisaureus_: time to branch off v0.8 in libuv?
23:14:57  <piscisaureus_>bnoordhuis: like, as it is?
23:15:06  <bnoordhuis>how else?
23:15:13  <piscisaureus_>we should add a version macro
23:15:16  <piscisaureus_>do we have that?
23:15:18  <bnoordhuis>no
23:15:24  <piscisaureus_>let's add one
23:15:27  <bnoordhuis>why?
23:15:46  <piscisaureus_>Because we can feel important then etc
23:15:54  <piscisaureus_>or, whatever
23:15:58  <piscisaureus_>maybe not
23:16:11  <bnoordhuis>i don't care about a version macro until we're doing official releases
23:16:15  <bnoordhuis>i.e. not anytime soon
23:16:23  <piscisaureus_>bnoordhuis: it's useful for binding writers
23:16:31  <piscisaureus_>but I suppose they have NODE_VERSION to look at
23:17:28  <bnoordhuis>biab, mees is awake
23:17:52  <isaacs>review? https://github.com/isaacs/node/commit/5ec056633f4ce1a19058dbb55a24e9d0dff3c183
23:17:55  <CIA-108>libuv: Bert Belder master * rd169ba1 / test/benchmark-fs-stat.c : Make the stat benchmark run shorter - http://git.io/RjtywQ
23:18:28  <piscisaureus_>isaacs: lgtm
23:18:54  <CIA-108>node: Fedor Indutny master * raf52bc4 / src/node_crypto.cc : crypto: fix error reporting in SetKey() - http://git.io/LoXYUw
23:18:55  <CIA-108>node: isaacs master * r5ec0566 / (src/node.js test/simple/test-stdin-pipe-resume.js): Fix #3503: stdin: resume() on pipe(dest) - http://git.io/fqlmAQ
23:18:55  <CIA-108>node: isaacs master * rc6f7fd7 / (src/node.js test/simple/test-stdin-pipe-resume.js): Merge branch 'stdin-resume-pipe' - http://git.io/WSc8iw
23:19:07  <piscisaureus_>isaacs: Buffers.concat(buffers).toString()
23:19:18  <piscisaureus_>^-- bad example
23:19:53  * travis-cijoined
23:19:53  <travis-ci>[travis-ci] joyent/libuv#437 (master - d169ba1 : Bert Belder): The build passed.
23:19:53  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/5dc024f67656...d169ba1a1b02
23:19:53  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1678036
23:19:53  * travis-cipart
23:20:10  <isaacs>piscisaureus_: howcome?
23:20:24  <isaacs>(granted, it's "better" to use a StringDecoder)
23:20:37  <piscisaureus_>isaacs: well, it doesn't matter in a test. But concat-ing buffers is ineffecient. We have something for that: string_decoder.
23:20:48  <piscisaureus_>yes
23:21:39  <CIA-108>node: isaacs master * rddf52bd / (28 files in 6 dirs): Initial blog source - http://git.io/f8iKOw
23:21:40  <CIA-108>node: isaacs master * r8f1a38d / (166 files in 36 dirs): Generate static HTML blog content out of markdown - http://git.io/MswQvw
23:21:40  <CIA-108>node: isaacs master * r9df5fda / (186 files in 37 dirs): Merge branch 'blog' - http://git.io/Nnfp6A
23:24:24  <isaacs>RC5 uploading
23:26:20  * xaqquit (Remote host closed the connection)
23:32:02  * ryahquit (Quit: leaving)
23:39:52  <piscisaureus_>atime: Fri Aug 01 44442 03:04:34 GMT+0200 (Western Europe (DST)),
23:39:57  <piscisaureus_>^--hmm not quite correct
23:46:16  <CIA-108>libuv: Bert Belder master * rea3e2cd / (src/win/fs.c src/win/internal.h src/win/util.c): windows: get rid of overly complicated uv_filetime_to_time_t helper - http://git.io/HtVzkQ
23:48:20  * travis-cijoined
23:48:20  <travis-ci>[travis-ci] joyent/libuv#438 (master - ea3e2cd : Bert Belder): The build passed.
23:48:20  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/d169ba1a1b02...ea3e2cd48085
23:48:20  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1678140
23:48:20  * travis-cipart
23:58:42  * mikealquit (Quit: Leaving.)