00:00:10  <isaacs>don't do that! ;P
00:00:26  <piscisaureus_>isaacs: within 30 seconds /
00:00:30  <isaacs>sure
00:00:40  <isaacs>and i hadn't pulled the original, so i don't actually care
00:00:45  <piscisaureus_>haha
00:00:49  <piscisaureus_>nobody has
00:00:57  <isaacs>you'd be surprised
00:01:10  <isaacs>people see those CIA updates and are very attentive sometimes
00:01:28  <isaacs>TooTallNate: have you landed a node-gyp that uses npmlog yet?
00:01:36  <isaacs>TooTallNate: s/landed/published/
00:01:42  <piscisaureus_>igorzi: hmm. the ETW stuff breaks on x64
00:01:45  <TooTallNate>isaacs: ya, check out v0.5.0
00:01:50  <TooTallNate>just tagged a couple hours ago
00:01:51  <isaacs>oic
00:01:52  <piscisaureus_>igorzi: I get assert(status == ERROR_SUCCESS);
00:01:53  <isaacs>k
00:02:02  <isaacs>TooTallNate: published to npm?
00:02:12  <TooTallNate>isaacs: yup
00:02:17  <isaacs>awesome
00:02:24  <isaacs>btw, i've got some seriously hot stuff planned for npm init.
00:02:25  <piscisaureus_>bnoordhuis: do we not set NDEBUG in the release build?
00:02:33  <igorzi>piscisaureus_: "vcbuild x64"?
00:02:38  <piscisaureus_>igorzi: yes
00:02:41  <bnoordhuis>piscisaureus_: libuv or node?
00:02:50  <piscisaureus_>igorzi: vcbuild x64 test-all :-)
00:02:54  <piscisaureus_>bnoordhuis: node
00:03:03  <bnoordhuis>i guess the answer to both is 'no' so yes, we don't
00:03:11  <piscisaureus_>hmm, ok
00:03:23  <piscisaureus_>I think we should do a release build with NDEBUG set, actually
00:03:26  <TooTallNate>piscisaureus_: i think gyp itself adds that define when you're doing a Release build
00:03:40  <piscisaureus_>well, assert() triggers for me in node release builds
00:05:09  <piscisaureus_>also
00:05:10  <piscisaureus_>ind . -iname '*.gyp*' -type f -exec grep NDEBUG {} \;
00:05:19  <piscisaureus_>^-- some files show up
00:06:16  <piscisaureus_>yes
00:06:23  <piscisaureus_>in uv's common.gypi :-)
00:07:13  <TooTallNate>ok, ya, scratch what I said then :p
00:08:32  <bnoordhuis>piscisaureus_: re assert() triggering, that's why we build without NDEBUG :)
00:12:25  * loladiroquit (Quit: loladiro)
00:13:17  * loladirojoined
00:13:33  * loladiroquit (Client Quit)
00:17:35  <piscisaureus_>TooTallNate: hey
00:17:48  <TooTallNate>yo
00:17:53  <piscisaureus_>TooTallNate: it seems that node picks up dlls from Release but not from Debug
00:17:55  <piscisaureus_>is that right?
00:18:19  <TooTallNate>it depends on the build type
00:18:33  <piscisaureus_>TooTallNate: when I do
00:18:34  <piscisaureus_>vcbuild debug test-gc
00:18:35  <TooTallNate>piscisaureus_: but we should probably pass --debug to node-gyp when vcbuild is building a debug build
00:18:45  <piscisaureus_>ah, right
00:18:53  <TooTallNate>so currently, it's always trying to use the Release one
00:18:55  <TooTallNate>we should fix that
00:19:03  <piscisaureus_>that explains :-)
00:19:35  <piscisaureus_>TooTallNate: but actually, it is building the debug dll
00:19:54  <piscisaureus_>TooTallNate: but then require('weak') complains that it cannot find Release/weak.node
00:20:06  <TooTallNate>oh oh oh oh
00:20:08  <TooTallNate>damn
00:20:09  <piscisaureus_>maybe there's a part of how node-gyp works that I am not familiar with
00:20:30  <TooTallNate>no, well that's basically the reason i wrote node-bindings
00:20:41  <TooTallNate>but i ripped it out real quick from this bundled version of node-weak
00:22:46  <CIA-108>node: yangguo@chromium.org master * r54b74b8 / (4 files in 4 dirs): Remove faster ticks for debug mode. - http://git.io/N-697g
00:24:43  <igorzi>piscisaureus_: x64 node.exe runs fine for me
00:25:13  <piscisaureus_>igorzi: hmm
00:25:28  <piscisaureus_>igorzi: could it be that I nead to clean or something
00:25:59  <piscisaureus_>igorzi: I get Assertion failed: status == ERROR_SUCCESS, file d:\node4\src\node_win32_etw_provider-inl.h, line 121
00:27:01  * pieternquit (Ping timeout: 244 seconds)
00:28:28  <TooTallNate>piscisaureus_: i think this should do it: https://github.com/TooTallNate/node/compare/weak
00:29:07  <TooTallNate>piscisaureus_: but we now we need to do the same thing in Makefile too :D
00:29:08  <piscisaureus_>TooTallNate: looks like that could work :-)
00:29:19  <piscisaureus_>TooTallNate: hence, gypify that stuff :-p
00:29:37  <piscisaureus_>does node not expose it's debugliness somewhere?
00:29:57  <TooTallNate>with process.config it's easy enough to check
00:30:02  <piscisaureus_>require('kant').self.isDebug
00:30:12  <TooTallNate>oh, that's why it was already picking up the debug dll
00:30:18  <TooTallNate>since the node itself was a debug build
00:30:24  <TooTallNate>cool, well at least that worked :p
00:30:35  <bnoordhuis>piscisaureus_: very eloquent :)
00:30:44  <TooTallNate>so that %debug_arg% part is superfulous
00:30:55  <piscisaureus_>igorzi: still getting it :-(
00:31:12  <igorzi>piscisaureus_: is there a specific test that triggers it?
00:31:24  <piscisaureus_>test\simple\test-child-process-set-blocking
00:31:26  <piscisaureus_>for me
00:31:32  <piscisaureus_>and I've seen others as wel
00:32:04  <piscisaureus_>igorzi: have you pulled in latest master?
00:32:18  <piscisaureus_>igorzi: maybe - although unlikely - it could be due to the v8 upgrade
00:32:22  <igorzi>piscisaureus_: ahh, i got it
00:32:40  <igorzi>piscisaureus_: i need to go offline for about 30 min; i'll look at it after that
00:32:46  <piscisaureus_>igorzi: ok, that's okay
00:32:57  <piscisaureus_>igorzi: it would be cool if you managed to look into it this week :-)
00:33:07  <piscisaureus_>igorzi: I will probably not be online in 30 minutes tho
00:33:31  <igorzi>piscisaureus_: ok, i'll look at it in about 30 min.. i'll send you an update in email
00:33:37  <piscisaureus_>igorzi: +1
00:34:05  <piscisaureus_>I am heading out, guys.
00:34:11  <piscisaureus_>bnoordhuis: see you tomorrow
00:34:21  <TooTallNate>piscisaureus_: can i get a LGTY from you on these first? https://github.com/TooTallNate/node/compare/weak
00:34:48  <bnoordhuis>piscisaureus_: sleep tight, bertje
00:35:01  <piscisaureus_>bnoordhuis: are you coming tomorrow?
00:35:11  <piscisaureus_>TooTallNate: testing
00:35:35  <bnoordhuis>piscisaureus_: er, maybe. i want to but my sleep pattern is kind of screwed
00:35:49  <piscisaureus_>bnoordhuis: that's why you should break it
00:36:06  <piscisaureus_>bnoordhuis: I noticed already. You didn't start until 5pm today, right :-)
00:36:21  <piscisaureus_>bnoordhuis: so close that lid and take a nap
00:36:40  <bnoordhuis>in an hour :)
00:38:16  <piscisaureus_>TooTallNate:
00:38:18  <piscisaureus_>D:\node4\test\gc\node_modules\weak\lib\weak.
00:38:18  <piscisaureus_> if (err.code === 'MODULE_NOT_FOUND') {
00:38:24  <piscisaureus_>ReferenceError: err is not defined
00:38:36  * TooTallNatefacepalm
00:38:37  <piscisaureus_>TooTallNate: I think I know why
00:40:33  <TooTallNate>piscisaureus_: forced-pushed the fux
00:40:34  <TooTallNate>fix
00:40:51  <piscisaureus_>TooTallNate: it worked in debug mode
00:40:58  <piscisaureus_>TooTallNate: now retrying release
00:50:08  <piscisaureus_>TooTallNate: lgtm (with fix)
00:50:21  <TooTallNate>piscisaureus_: cool, thanks
00:50:30  <TooTallNate>and good night!
00:54:24  * ericktquit (Ping timeout: 244 seconds)
00:55:15  <piscisaureus_>about to most pointless commit of the year
00:55:31  <CIA-108>node: Bert Belder master * r4a1698c / LICENSE : LICENSE: punctuation fixes - http://git.io/RiKyFw
00:55:31  <CIA-108>node: Bert Belder master * r511e328 / LICENSE : LICENSE: add node-weak - http://git.io/Cd8OHA
00:55:38  <piscisaureus_>tadaaa
00:55:44  <piscisaureus_>bnoordhuis: you have 35 minutes left
00:55:53  * piscisaureus_part
00:59:22  <CIA-108>node: Nathan Rajlich master * rc752f6c / test/gc/node_modules/weak/.gitignore : test: add a .gitignore file to ignore weak's compiled "build" dir - http://git.io/BuHvUA
00:59:22  <CIA-108>node: Nathan Rajlich master * r05fe70b / test/gc/node_modules/weak/lib/weak.js : test: use the debug build of node-weak when necessary - http://git.io/eydozA
01:03:01  * indutnyquit (Read error: Connection reset by peer)
01:06:43  * pieternjoined
01:11:27  * dapquit (Quit: Leaving.)
01:17:17  * isaacsquit (Remote host closed the connection)
01:17:46  * isaacsjoined
01:18:10  * isaacsquit (Remote host closed the connection)
01:41:27  <TooTallNate>bnoordhuis: -fPIC is only needed for compile right? not linking?
01:48:33  <bnoordhuis>TooTallNate: for both
01:49:02  <bnoordhuis>TooTallNate: that is if you use gcc for linking
01:50:26  <TooTallNate>bnoordhuis: is his setup a little weird? i mean buffertools compiles on all the machines i tested on
01:50:49  <TooTallNate>bnoordhuis: alternatively we need to add an "ldflags" section here: https://github.com/joyent/node/blob/master/tools/addon.gypi#L20
01:51:12  <TooTallNate>but i do specifically remember asking whether or not that was needed back when I added the "cflags" one :p
01:55:35  <bnoordhuis>TooTallNate: yeah, it shouldn't be necessary
01:55:36  * pieternquit (Quit: pietern)
01:55:38  * ericktjoined
01:55:49  <bnoordhuis>but there's at least one gcc release that's broken in that respect
01:56:46  <TooTallNate>bnoordhuis: you think it's possible that his libstdc++ wasn't compiled with fPIC? seems unlikely...
01:58:17  <bnoordhuis>TooTallNate: hm, rereading that bug report, i see that g++ is trying to link against libstdc++.a
01:59:05  * abraxasjoined
02:01:29  <TooTallNate>later y'all
02:02:31  <bnoordhuis>TooTallNate: g'night
02:04:56  <CIA-108>libuv: Ben Noordhuis master * r2c983fb / src/unix/ev/ev.c : unix: fix memory leak in libev - http://git.io/EkYfBA
02:06:12  * TooTallNatequit (Ping timeout: 265 seconds)
02:06:51  * travis-cijoined
02:06:51  <travis-ci>[travis-ci] joyent/libuv#417 (master - 2c983fb : Ben Noordhuis): The build passed.
02:06:51  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/4d7f1e186498...2c983fb99489
02:06:51  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1615903
02:06:51  * travis-cipart
02:30:12  * brsonquit (Quit: leaving)
03:01:04  * iraquit (Quit: Computer has gone to sleep.)
03:04:19  * brsonjoined
04:40:33  * isaacsjoined
04:46:59  <isaacs>bnoordhuis: you around by any chance?
04:47:02  <isaacs>bnoordhuis: thoughts on this? https://github.com/joyent/node/pull/3435
04:47:18  <isaacs>https://github.com/isaacs/node/compare/worker-dot-unique-worker-id-number-identification-of-uniqueness-via-incrementation-of-numbers
04:48:31  <isaacs>or anyone else :)
04:49:20  * isaacsquit (Remote host closed the connection)
04:51:43  * isaacsjoined
04:52:29  * isaacsquit (Remote host closed the connection)
04:56:36  * ericktquit (Quit: erickt)
05:31:21  * paddybyersjoined
06:12:45  * loladirojoined
06:19:23  * loladiroquit (Read error: Connection reset by peer)
06:19:53  * loladirojoined
06:31:26  * mmaleckijoined
06:47:09  * loladiroquit (Read error: Connection reset by peer)
06:47:20  * loladirojoined
06:48:58  * stephankquit (Quit: *Poof!*)
07:00:15  * loladiro_joined
07:01:36  * loladiroquit (Ping timeout: 252 seconds)
07:01:36  * loladiro_changed nick to loladiro
07:04:13  * bnoordhuisquit (Ping timeout: 244 seconds)
07:26:34  * rendarjoined
07:35:44  * AvianFluquit (Ping timeout: 244 seconds)
07:56:36  * indutnyjoined
08:18:08  * paddybyers_joined
08:21:12  * paddybyersquit (Ping timeout: 244 seconds)
08:21:12  * paddybyers_changed nick to paddybyers
08:26:22  * mmaleckiquit (Quit: leaving)
08:47:26  * paddybyers_joined
08:49:57  * indutnyquit (Remote host closed the connection)
08:50:45  * paddybyersquit (Ping timeout: 265 seconds)
08:50:45  * paddybyers_changed nick to paddybyers
09:03:11  * brsonquit (Remote host closed the connection)
09:16:59  * indutnyjoined
09:35:59  * indutny_webjoined
09:37:24  <indutny_web>ircretary: tell piscisaureus_ to ping me, because I'm interested in results of his v8 3.11 benchmarks.
09:37:24  <ircretary>indutny_web: I'll be sure to tell piscisaureus_
09:37:56  <indutny_web>ircretary: tell piscisaureus_ that Erik Corry was asking me about which version we're going to stick to and he is waiting for the answer
09:37:56  <ircretary>indutny_web: I'll be sure to tell piscisaureus_
09:42:00  * indutny_webquit (Quit: Page closed)
10:25:02  * toothrquit (Read error: Connection reset by peer)
10:25:18  * toothrjoined
10:25:18  * toothrquit (Changing host)
10:25:18  * toothrjoined
10:46:55  <ryah>indutny: i think 3.11
10:47:05  <ryah>indutny: tried it today, it seemed okay
10:49:54  <indutny>ryah: oh, cool
10:50:12  * mmaleckijoined
10:50:22  <indutny>ryah: the thing is that 3.11 doesn't meant to be stable
10:50:31  <indutny>ryah: it's a dev version (according to Erik Corry's words)
10:50:36  <indutny>3.10 is beta
10:50:48  <indutny>but 3.10 doesn't have performance bugfix
10:50:57  <indutny>so we should either stick to 3.11 or to 3.9 :(
11:00:07  <ryah>indutny: talk to isaac, but i think he was okay with 3.11 this afternoon
11:01:07  <indutny>ryah: ok
11:22:54  * loladiroquit (Read error: Connection reset by peer)
11:23:00  * loladiro_joined
11:24:48  * irajoined
12:40:31  * hz|pc2joined
12:43:25  * mmaleckiquit (Ping timeout: 240 seconds)
12:56:39  * piscisaureus_joined
12:57:19  <piscisaureus_>indutny: I landed 3.11 yesterday
12:58:01  <piscisaureus_>indutny: we're going to stick with it unless we find other serious issues
12:58:18  <indutny>ok
12:59:29  <indutny>just told that Erik Corry
12:59:32  <indutny>he's away atm
13:00:29  <piscisaureus_>I also did
13:00:35  <indutny>:)
13:00:40  <indutny>he surely knows now
13:00:43  <piscisaureus_>yes
13:00:44  <piscisaureus_>:-)
13:05:55  <piscisaureus_>ircretary tell bnoordhuis zucht
13:05:55  <ircretary>piscisaureus_: I'll be sure to tell bnoordhuis
13:06:44  <piscisaureus_>indutny: 3.11 will be stable within a week
13:06:55  * hz|pc21joined
13:07:05  <indutny>emm...
13:07:06  <indutny>no
13:07:06  <piscisaureus_>indutny: the problem was that they didn't feel like backporting the perf fix to 3.10
13:07:08  <indutny>3.10 will be
13:07:17  * hz|pc21quit (Read error: Connection reset by peer)
13:07:29  <indutny>indeed, because it's going to be stable in ~10 days
13:07:34  <indutny>and 3.11 is the current dev version
13:07:38  <indutny>3.10 is beta
13:07:43  <piscisaureus_>indutny: no, 3.12 is the current dev version
13:07:55  * hz|pc21joined
13:07:57  <piscisaureus_>indutny: last push to trunk for 3.11 was yesterday
13:07:57  <indutny>Erik Corry
13:07:57  <indutny>3.10 is in beta
13:07:57  <indutny>According to the plan it goes stable in less than 2 week.s
13:07:57  <indutny>3.11 is in the dev channel
13:07:57  <indutny>We just branched for 3.11 yesterday.
13:07:57  <indutny>So it's bug fixes only for 3.11 from now on.
13:07:57  <indutny>3.10 is basically only very serious bug fixes (crashes, security, simple changes that fix important bugs)
13:08:10  <indutny>oh, he was talking about chromium
13:08:30  <indutny>ok, probably you're right
13:08:41  <piscisaureus_>hmm
13:08:45  <piscisaureus_>that sounds right
13:08:51  <piscisaureus_>anyway, 3.11 will only receive bug fixes now
13:08:59  * hz|pc2quit (Ping timeout: 246 seconds)
13:09:09  <piscisaureus_>I suppose it's not really unstable
13:09:40  <indutny>yeah
13:09:59  <indutny>well, the thing is that if we'll stick to 3.9 - we'll have quite old version of v8 for quite a long time
13:10:15  <piscisaureus_>yeah
13:10:24  <piscisaureus_>I like sticking to 3.11
13:10:30  <piscisaureus_>it seems pretty stable to me now
13:28:13  <CIA-108>node: Igor Zinkovsky master * r39d2337 / (src/node.cc src/node_win32_etw_provider-inl.h): Windows: don't fire GC ETW events without ETW consumers - http://git.io/06g1xg
13:31:59  * ericktjoined
13:32:03  * ericktquit (Client Quit)
13:36:50  <piscisaureus_>test-bad-unicode is failing for me
13:37:07  <piscisaureus_>apparently the way v8 deals with incorrect \uxxxx changed
13:47:49  * c4milojoined
13:49:32  * bnoordhuisjoined
13:49:50  <bnoordhuis>piscisaureus_: maybe tomorrow :)
13:52:40  <piscisaureus_>bnoordhuis: start planning :-)
13:52:48  <piscisaureus_>bnoordhuis: don't go to bed at 6
13:53:00  <piscisaureus_>or 7
13:53:04  <bnoordhuis>piscisaureus_: i didn't. it was more like 10.30
13:53:20  <piscisaureus_>
13:53:20  <piscisaureus_>ircretary: At 2012-06-14T06:59:44.232Z, in PM, bnoordhuis said: tell piscisaureus_ ik kom vandaag toch maar niet naar 020, eerst nog wat bijslapen :)
13:53:26  <piscisaureus_>ah, timezones :-)
13:57:08  * hz|pc21quit (Read error: Connection reset by peer)
13:57:49  * hz|pc2joined
13:58:03  * hz|pc2quit (Client Quit)
14:01:27  <CIA-108>node: Ben Noordhuis master * r9dda8e5 / test/simple/test-bad-unicode.js : Revert "test: add test for bad unicode sequences" - http://git.io/4-CYMg
14:02:55  <bnoordhuis>piscisaureus_: https://github.com/joyent/node/commit/284816ee9ff67aaa997b803db4f1ebb207672c6d#commitcomment-1458254 <- i just scrapped it :)
14:03:14  <piscisaureus_>bnoordhuis: I was just changing the test ...
14:03:22  <piscisaureus_>to verify that it throws SyntaxError
14:03:33  <bnoordhuis>okay, just force-push it
14:04:38  * AvianFlujoined
14:06:42  * mikealjoined
14:07:56  <CIA-108>node: Bert Belder master * r34b0b6a / test/simple/test-bad-unicode.js : test-bad-unicode: update to reflect V8 3.11 behavior - http://git.io/rlRJ-g
14:14:40  * isaacsjoined
14:16:53  * xaqjoined
14:23:23  <isaacs>good morning
14:34:30  <bnoordhuis>hey isaac
14:35:36  * mikealquit (Quit: Leaving.)
14:38:17  <isaacs>how are things in the lands of neder?
14:39:31  <piscisaureus_>bad
14:39:34  <piscisaureus_>the germans won
14:41:01  * iraquit (Quit: Leaving...)
14:41:26  <isaacs>oh, no, do you have to speak german now?
14:42:49  <piscisaureus_>yes
14:43:25  <piscisaureus_>wir mußen jetzt Deutch sprechen
14:43:58  <isaacs>tut mir so leid für Ihren Verlust
14:44:24  <piscisaureus_>Und unsere Räder werden mitgenommen.
14:45:02  <piscisaureus_>Vielen Dank für Ihr Mitgefühl, Herr Isaac
14:45:07  <isaacs>Es ist sehr mühsam, bis Google Translate aus dem IRC zu wechseln. Jemand muss eine Übersetzung Roboter zu schreiben.
14:45:35  <ircretary>Please use english in the chat room. Thank you.
14:45:45  <piscisaureus_>Google Translate produziert kein korrekter Grammatik
14:46:43  <isaacs>hahaha, indeed
14:46:58  <isaacs>ircretary: will you be our translator of robot?
14:46:59  <ircretary>isaacs: I'm not sure what to do with that command. Ask for help in PM.
14:47:12  <einaros>washbucket: what do you make of google translate?
14:47:16  <washbucket>einaros: Many things.
14:47:30  <einaros>washbucket: such as?
14:47:34  <washbucket>einaros: Do you not remember?
14:48:16  <isaacs>piscisaureus_: this is very troubling: https://github.com/joyent/node/commit/34b0b6a6133ef70878c426af0812308869b5493b
14:48:30  <isaacs>piscisaureus_: "\uc/ef" should be valid javascript
14:48:34  <isaacs>piscisaureus_: not a syntax error.
14:48:37  <isaacs>i think that's a bug in v8, still
14:52:18  * loladirojoined
14:53:08  * loladiro_quit (Ping timeout: 252 seconds)
14:55:43  * mikealjoined
14:55:51  <isaacs>hm. actually, the spec is notably silent on that point.
14:57:10  <einaros>see 7.8.4
14:57:23  <einaros>it expects four HexDigits after \u
14:58:03  <piscisaureus_>isaacs: actually, the spec mandates that it is not valid js
14:58:10  <isaacs>really!?
14:58:12  <isaacs>where?
14:58:14  * mikealquit (Client Quit)
14:58:17  <einaros>isaacs: 7.8.4
14:58:28  <einaros>see the syntax declaration
14:58:30  <piscisaureus_>isaacs: let me look it up
14:59:06  <piscisaureus_>isaacs: strong hint: https://chromiumcodereview.appspot.com/9490006/diff/3003/test/test262/test262.status
15:01:07  <piscisaureus_>isaacs: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf page 24
15:01:22  <isaacs>hm, indeed.
15:01:29  <isaacs>that is a convoluted bit of spec right there.
15:01:31  <isaacs>:)
15:02:20  <einaros>how is the syntax declaration convoluted?
15:03:01  * loladiroquit (Read error: Connection reset by peer)
15:03:07  * loladiro_joined
15:03:08  <isaacs>NonEscapeCharacter ::
15:03:08  <isaacs>SourceCharacter but not EscapeCharacter or LineTerminator
15:03:10  <isaacs>that's it.
15:03:31  <indutny>hey guys
15:03:37  <indutny>are we doing a call today?
15:03:41  <isaacs>indutny: yessir
15:03:47  <indutny>cool
15:03:48  <isaacs>1 hour from now
15:03:51  <indutny>see ya
15:03:51  <indutny>:)
15:04:16  <isaacs>or whenever we're all here and ready
15:04:39  <isaacs>piscisaureus_: ok, i'm convinced. the patch lgtm ;)
15:05:06  <einaros>isaacs: oh, I thought that part looked pretty straight forward
15:05:13  <isaacs>einaros: it's not obvious from reading it that \u wouldn't be interpreted as a NonEscapeCharacter in the absence of 4 HexCharacters following it
15:05:21  <piscisaureus_>bnoordhuis: the hang in test-tls-server-verify concerns me. Does that ever happen on unix?
15:05:53  <einaros>isaacs: it's obvious in that there's no valid way of parsing \u[nonhexchar] or \u[hexchar][nonhexchar] :)
15:06:11  <piscisaureus_>isaacs: Firefox also does it:
15:06:11  <piscisaureus_>> "\uab/c"
15:06:11  <piscisaureus_>SyntaxError: malformed Unicode character escape sequence
15:06:11  <piscisaureus_>"\uab/c"
15:06:22  * mmaleckijoined
15:06:55  <piscisaureus_>Isaacs: and IE
15:06:56  <piscisaureus_>>> > "\uab/c"
15:06:56  <piscisaureus_>"Syntaxisfout"
15:08:11  <isaacs>kewl, ok
15:08:29  <isaacs>looks like webkit just got that in a recent update, as well, which is the one v8 seems to mimic
15:08:54  <piscisaureus_>maybe we should put in in the wiki
15:10:59  <einaros>seems like something 1.9 people would read, over the course of node.js' existence
15:11:51  <isaacs>seems like some new failures from child_process.fork()
15:12:23  <isaacs>bunch of failures around child processes, in fact.
15:13:30  <isaacs>simple/test-child-process-fork-exec-argv seems like the simplest failure case. the forked process isn't printing its stdout or stderr
15:13:40  * ericktjoined
15:13:50  <isaacs>piscisaureus_: could the "don't accidentally inherit" patch have affected this?
15:14:19  <piscisaureus_>isaacs: well, that seems unlikely. You could try to revert it.
15:14:49  <isaacs>yeah, bisecting will be painful with the recent v8 change
15:14:52  <isaacs>but that could be related, i guess
15:15:52  <isaacs>we should go back to putting the commit hash in node's version when IS_RELEASE is 0
15:16:07  <isaacs>the node installed in my /usr/local/bin doesn't have the error, but i have no idea when i built that
15:16:46  * isaacsgoes a-bisectin
15:18:34  <piscisaureus_>isaacs: +1
15:18:39  * piscisaureus_tries to be the new ryah
15:18:48  * piscisaureus_changed nick to piscisaureus
15:18:48  <isaacs>o/
15:18:50  <indutny>piscisaureus_: that's impossible
15:18:59  <indutny>you won't replace him
15:19:05  <indutny>ryah: ++
15:19:05  <kohai>ryah has 2 beers
15:19:23  <piscisaureus>piscisaureus += 0
15:19:31  <piscisaureus>how can I tell my beers?
15:19:36  <indutny>piscisaureus: ++
15:19:36  <kohai>piscisaureus has 2 beers
15:19:37  <indutny>piscisaureus: --
15:19:38  <kohai>piscisaureus has 1 beer
15:19:40  <indutny>:)
15:19:41  <piscisaureus>huh
15:19:45  <piscisaureus>have you reset the counters
15:20:04  <piscisaureus>First we loose from the germans, and now this
15:20:45  <isaacs>09be360 is good
15:21:03  <isaacs>er, no, 37d75ba is good. checkout out 09be360 now
15:21:19  <isaacs>09be360 is the first bad commit
15:21:50  <piscisaureus>isaacs: ah, so that broke it
15:21:54  <isaacs>hep
15:22:01  <piscisaureus>isaacs: there might be a bug in libuv
15:22:03  <isaacs>testing with it reverted now, one sec
15:22:11  <isaacs>we should probably just fix the bug, not revert the commit
15:22:23  <bnoordhuis>piscisaureus: no, never hangs
15:22:28  <piscisaureus>isaacs: so that the CLOEXEC flag doesn't get removed before fork
15:22:30  <isaacs>but if it's going to take a long while, i can live with the inheriting fds rather than breaking fork
15:23:41  <bnoordhuis>piscisaureus: maybe take a hard look at https://github.com/joyent/node/blob/34b0b6a/src/node_crypto.cc#L102 ?
15:24:07  <piscisaureus>ah
15:24:13  <piscisaureus>srw locks
15:24:23  <piscisaureus>bold :-)
15:24:47  * irajoined
15:25:10  * pieternjoined
15:25:15  <piscisaureus>bnoordhuis: hey, does dup2 remove the cloexec flag?
15:26:40  <bnoordhuis>piscisaureus: yes
15:26:47  <piscisaureus>ahah
15:26:50  <piscisaureus>then I know what it is
15:26:56  <isaacs>https://gist.github.com/2930966 <-- centos
15:27:06  <isaacs>withthe reverted fd inherit thing
15:29:26  <CIA-108>node: Bert Belder trythis * r8377d7c / deps/uv/src/unix/process.c : Maybe fix Isaacs' problem - http://git.io/EwW_mw
15:29:36  <piscisaureus>^-- isaacs: can you try that patch?
15:29:41  <isaacs>sure, one sec
15:30:34  <isaacs>by the way, the fact that readdir in os x returns alphabetized results is just so lovely.
15:30:36  * mikealjoined
15:30:49  <piscisaureus>that is just wrong
15:30:51  <isaacs>with linux, it's a surprise every time what order the tests will run in
15:31:15  <isaacs>it's the little things, you know?
15:31:18  <piscisaureus>isaacs: well, I think we should sort the list of filen mes
15:31:22  <piscisaureus>isaacs: well, I think we should sort the list of filenames
15:31:28  <isaacs>i agree
15:31:38  <isaacs>not in node, but in the test runner
15:31:41  <piscisaureus>yes
15:31:51  <isaacs>anyway, yeah, that fixed it
15:32:12  <piscisaureus>in windows the "natural order" is the order in which files were added to the directory
15:32:25  <piscisaureus>So usually it is sorted, but not always
15:32:37  <piscisaureus>it's like javascript objects ;_0
15:32:55  <isaacs>nice
15:33:58  <isaacs>speaking of which, how do you guys feel about alphabetizing the docs?
15:34:06  <isaacs>or putting them in some sort of reasonable order?
15:34:21  <piscisaureus>reason +1
15:34:23  <isaacs>i feel like i'm not really the target market to decide, since i always know what module i want, and go directly to that html page.
15:34:49  <piscisaureus>I don't know. I agree that the order is often suprising
15:35:03  <isaacs>or, perhaps, we could have a toc page, and an alphabetical index as the last page, or something
15:35:34  <isaacs>ok, same 4 failures on centos with that change.
15:35:47  <isaacs>piscisaureus: lgtm
15:35:57  <isaacs>i'm gonna fix this message test
15:36:16  <piscisaureus>isaacs: ok, cool
15:36:19  * indexzerojoined
15:36:23  <piscisaureus>isaacs: i will land the fix into libuv later today
15:36:33  <piscisaureus>isaacs: trying to get this tls crap sorted out first
15:37:44  * hij1nxjoined
15:37:56  <isaacs>k
15:38:39  <CIA-108>node: isaacs master * rdd85a8c / test/message/undefined_reference_in_new_context.out : Update message test for new v8 behavior - http://git.io/zxL3Ig
15:40:00  <piscisaureus>isaacs: ^-- ha
15:40:18  <piscisaureus>isaacs: I just "fixed" that test the other day when we went back to 3.9
15:40:50  <isaacs>:)
15:41:04  <isaacs>message tests are kind of a pita, but they're nice so that we notice when we change error stack traces.
15:41:16  <isaacs>that's an important part of node's user interface.
15:41:54  <piscisaureus>is there a way to peek into a TLS server's cypher stream before a connection is authed?
15:44:35  * piscisaureusquit (Quit: ~ Trillian Astra - www.trillian.im ~)
15:44:38  <isaacs>i do not know
15:45:48  <indutny>paddybyers: yes
15:45:50  <indutny>oop
15:45:55  <indutny>paddybyers: tab bug, sorry
15:46:04  <indutny>oh, bert is offline
15:47:54  <paddybyers>indutny: np
15:51:36  * piscisaureus_joined
15:51:48  * TooTallNatejoined
15:51:49  * mikealquit (Quit: Leaving.)
15:51:56  <indutny>piscisaureus_: yes, it's possible
15:52:03  <piscisaureus_>isaacs: our standup is a little delayed, but I will join before x:15
15:52:11  <isaacs>k
15:53:40  * loladiro_quit (Ping timeout: 265 seconds)
15:54:41  * loladirojoined
16:00:17  * TheJHjoined
16:04:07  <mmalecki>hm, when process is killed, should process.on('exit') get called? if it should, we have a bug
16:04:20  <indutny>no it shouldn't
16:04:24  <indutny>:)
16:04:34  <mmalecki>cool then
16:04:43  <indutny>AFAIK process.emit('exit') is called only when you do process.exit()
16:04:48  <mmalecki>yeah
16:04:53  <mmalecki>that's how it works
16:04:54  <TooTallNate>mmalecki: catch the signal
16:04:57  <mmalecki>or when node just exits
16:05:03  <TooTallNate>well also when a script finishes naturally
16:05:09  <mmalecki>TooTallNate: yeah, I'm asking more API-wise
16:05:14  <indutny>oh wait
16:05:29  <indutny>mmalecki: is it about 0.7.x or 0.6.x ?
16:05:43  <mmalecki>indutny: master
16:05:52  <indutny>mmalecki: ok, let me see
16:06:09  <indutny>'exit' should be emitted once event loop exits
16:06:29  <mmalecki>right, and we hook up to atexit
16:06:40  <indutny>ah, SignalExit is called on SIGINT and SIGTERM signals
16:06:48  <indutny>which is just doing _exit(1)
16:07:08  <indutny>and this is right behaviour, actually
16:07:16  <indutny>you don't want to wait for event loop to finish
16:08:03  <indutny>this way you don't need to do "kill -9" if node hang
16:08:12  <indutny>mmalecki: ^
16:08:26  <mmalecki>right
16:08:28  <piscisaureus_>bnoordhuis: call
16:08:36  * AndreasMadsenjoined
16:08:39  <isaacs>process.on('exit', function () { while (true); })
16:09:27  <mmalecki>isaacs: well, that's just user being an idiot
16:09:28  <indutny>or even that
16:09:49  <indutny>but libuv may hang somewhere i si
16:09:53  <indutny>s/i si/inside
16:10:36  <isaacs>bnoordhuis: ping
16:12:51  * stephankjoined
16:14:44  * indexzeroquit (Quit: indexzero)
16:21:39  <igorzi>https://github.com/joyent/node/issues/2846
16:22:07  * indexzerojoined
16:25:53  * travis-cijoined
16:25:53  <travis-ci>[travis-ci] wwwouter/node#1 (master - 66ed63d : wouterm): The build failed.
16:25:53  <travis-ci>[travis-ci] Change view : https://github.com/wwwouter/node/compare/ccc4e547ea91...66ed63da7e93
16:25:53  <travis-ci>[travis-ci] Build details : http://travis-ci.org/wwwouter/node/builds/1621512
16:25:53  * travis-cipart
16:26:31  * indexzeroquit (Client Quit)
16:28:41  <piscisaureus_>indutny: are you going to take a look at the handshaking perf ?
16:31:22  <CIA-108>libuv: Bert Belder master * r5d5688f / src/unix/process.c : unix: always set CLOEXEC flag for child process stdio FDs - http://git.io/7ML1RA
16:32:46  <AndreasMadsen>isaacs: No worries, actually it was the high point of the day
16:32:47  * TooTallNatequit (Quit: Computer has gone to sleep.)
16:33:19  * TooTallNatejoined
16:33:21  * travis-cijoined
16:33:22  <travis-ci>[travis-ci] joyent/libuv#418 (master - 5d5688f : Bert Belder): The build passed.
16:33:22  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/2c983fb99489...5d5688f24188
16:33:22  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1621773
16:33:22  * travis-cipart
16:34:04  <CIA-108>node: Andreas Madsen master * rc2c0819 / (3 files in 3 dirs): cluster: rename worker.unqiueID to worker.id - http://git.io/itlmhA
16:34:35  <isaacs>AndreasMadsen: i rebased in the legacy support
16:34:43  <isaacs>AndreasMadsen: this.workerID = this.uniqueID = this.id
16:35:10  <isaacs>https://github.com/joyent/node/commit/c2c08196d80d6034ca63866249e6a6d4b88650ca#L1R264
16:36:46  <AndreasMadsen>isaacs: why not :)
16:37:06  <TooTallNate>isaacs: gran your doc changes too
16:37:11  <TooTallNate>*grab
16:37:46  <CIA-108>node: Bert Belder master * rca003f4 / tools/license2rtf.js : license2rtf: collapse whitespace - http://git.io/t-QB1A
16:37:47  <CIA-108>node: Bert Belder master * r58b8b3f / (deps/uv/src/unix/ev/ev.c deps/uv/src/unix/process.c): uv: upgrade to 5d5688f2 - http://git.io/jxzxAw
16:37:50  <TooTallNate>ahh, you did, nvm
16:38:12  <isaacs>TooTallNate: no, AndreasMadsen had just made the exact same changes :)
16:38:38  <isaacs>piscisaureus_: feature request: can you make the vcbuild.bat delete the license.rtf and node.wixpdb after building the msi?
16:38:52  <isaacs>piscisaureus_: it'd save me a few extra commands when publishing
16:39:37  <piscisaureus_>isaacs: how so? Where would the files end up where they should not be?
16:41:45  <isaacs>piscisaureus_: license.rtf and node.wixpdb end up in the Release\ folder
16:42:01  <isaacs>piscisaureus_: which means I can't just do scp Release/* node@nodejs.org:dist/<version>/
16:42:08  <piscisaureus_>ah, hmm
16:42:12  <isaacs>piscisaureus_: well, i can, and i do, but then i ssh in and delete the license and wixpdb
16:42:49  <isaacs>piscisaureus_: if it's significantly harder than running those ssh commands, then don't bother.
16:43:00  <piscisaureus_>isaacs: no it isn't
16:43:22  * hij1nxquit (Quit: hij1nx)
16:43:53  <piscisaureus_>isaacs: but I though `vcbuild upload` was for that
16:44:13  <indutny>piscisaureus_: well, it isn't blocking 0.8.0, right?
16:44:32  <indutny>piscisaureus_: but yeah, I'm going to take a look at it
16:44:37  <piscisaureus_>indutny: cool
16:46:29  <piscisaureus_>isaacs: I don't like to delete build products as part of the build script. That way I can no longer introspect them.
16:46:29  <piscisaureus_>isaacs: but if you don't use `vcbuild upload` anyway, then I suppose we could change it to `preupload` which cleans the Release directory
16:46:57  <isaacs>wait wat? there's a vcbuild upload?
16:47:16  <piscisaureus_>isaacs: yes
16:47:21  <piscisaureus_>isaacs: although - it doesn't look up to date
16:47:34  <piscisaureus_>isaacs: it doesn't put x64 stuff in the x64 dir etc
16:47:46  <isaacs>i see
16:48:08  <isaacs>oh, also, is there a ssh keychain utility for windows that's good?
16:48:11  <piscisaureus_>and the msi filename is off
16:48:18  <piscisaureus_>isaacs: hmm, what do you mean?
16:48:20  <isaacs>piscisaureus_: i kind of like the new filenames
16:48:26  <piscisaureus_>yes
16:48:26  <isaacs>piscisaureus_: -x86 and -x64.msi
16:48:32  <piscisaureus_>me too
16:48:36  <isaacs>piscisaureus_: i'm just gonna fix it in the download page
16:48:40  <piscisaureus_>but vcbuild upload doesn't know about them
16:48:44  <isaacs>oh, ok
16:49:05  <isaacs>ssh keychain: well, every time i scp from windows, i have to type my key passphrase.
16:49:25  <isaacs>on unix, you have a ssh-agent that adds your key and unlocks it, and then that session can keep using that key without typing the passphrase.
16:49:54  <isaacs>on os x, this is integrated with the operating system keychain, so it's really seamless.
16:51:59  <TooTallNate>the out-of-the-box ssh on OS X is one of the few commands I don't recompile with homebrew, specifically for that keychain integration
16:52:06  <piscisaureus_>isaacs: well, pageant is the only one I am aware off
16:52:17  * loladiroquit (Read error: Connection reset by peer)
16:52:22  * loladiro_joined
16:52:32  <piscisaureus_>isaacs: but I think you need a special version of ssh for that
16:52:35  <isaacs>i see
16:52:48  <isaacs>it's ok. maybe i don't want my windows vm to have that. it already has my private keys.
16:52:55  <isaacs>that's probably scary enough ;)
16:54:31  <igorzi>piscisaureus_: hey, try running this on your windows machine: https://gist.github.com/2931446
16:55:11  <igorzi>piscisaureus_: after all connections are made - check how much CPU time System is using
16:55:37  <piscisaureus_>igorzi: yeah, weird
16:55:41  <piscisaureus_>igorzi: but it's not node
16:55:45  <TooTallNate>some weird stuff going on with child processes and master branch....
16:56:02  <piscisaureus_>TooTallNate: have you pulled the latest master
16:56:09  <igorzi>piscisaureus_: yeah, i think it is
16:56:15  <igorzi>piscisaureus_: https://github.com/joyent/libuv/blob/master/src/win/tcp.c#L71-L75
16:56:26  * TooTallNaterecompiling
16:56:44  <TooTallNate>i love -j4
16:56:54  <piscisaureus_>igorzi: I mean, it's probably node's fault, but node is not eating my cpu
16:56:59  <piscisaureus_>igorzi: it's the system process
16:57:17  <piscisaureus_>igorzi: I think windows starts sending keepalive packets like a madman when you set keepalive to 0
16:57:44  * loladiro_quit (Read error: Connection reset by peer)
16:58:15  * loladirojoined
16:58:57  * madsonjoined
16:59:01  * AndreasMadsenquit (Read error: Connection reset by peer)
16:59:36  * pieternquit (Remote host closed the connection)
17:00:12  <piscisaureus_>igorzi: do you think setKeepalive(0) shoudl turn it off?
17:00:15  * pieternjoined
17:00:27  <igorzi>piscisaureus_: hmm
17:00:37  <bnoordhuis>sorry, got stuck in traffic
17:00:57  <bnoordhuis>and since i was going to be late anyway, i didn't hurry :)
17:00:59  <igorzi>piscisaureus_: we should be using this instead to set the interval (i think): http://msdn.microsoft.com/en-us/library/windows/desktop/dd877220(v=vs.85).aspx
17:01:17  <piscisaureus_>igorzi: that would be better, yes
17:01:28  <piscisaureus_>igorzi: but somehow it gets lost in translation
17:01:42  <piscisaureus_>igorzi: http://nodejs.org/api/net.html#net_socket_setkeepalive_enable_initialdelay
17:01:50  <igorzi>piscisaureus_: yeah, but you're right.. i did a etw trace, and there's a bunch of keepalive packets being sent
17:01:58  <piscisaureus_>igorzi: so setKeepalive(0) should turn it off
17:02:09  <piscisaureus_>igorzi: but libuv gets told it should be on with a 0 interval
17:03:02  <igorzi>piscisaureus_: so maybe just do a check fo delay==0, and skip setsockopt(.., TCP_KEEPALIVE) ?
17:03:15  <piscisaureus_>igorzi: yes
17:03:51  <piscisaureus_>igorzi: and also make sure then setKeepalive(0) translates to uv__tcp_keepalive(... int enable = 0)
17:03:54  <piscisaureus_>:-)
17:04:41  <piscisaureus_>igorzi: maybe fix it here as well: https://github.com/joyent/libuv/blob/master/src/unix/tcp.c#L260
17:05:45  <igorzi>piscisaureus_: maybe on unix setting interval to 0 means something else?
17:06:24  <piscisaureus_>igorzi: I think on windows TCP_KEEPALIVE might implicitly enalbe SO_KEEPALIVE
17:07:22  <piscisaureus_>igorzi: http://linux.die.net/man/7/tcp, see TCP_KEEPIDLE
17:09:38  <TooTallNate>piscisaureus_: pulling+recompiling seemed to make child processes act better, thanks :)
17:13:02  <CIA-108>node: isaacs master * rf70fa3b / deps/v8/build/common.gypi : v8: Replace 'echo -n' with 'echo' in build commands - http://git.io/8zEe5Q
17:13:23  <piscisaureus_>igorzi: I also wouldn't mind changing to SIO_KEEPALIVE_VALS
17:14:17  <piscisaureus_>bnoordhuis: is TCP_KEEPINTVL somewhat portable, or is that really a linux-only thing?
17:15:35  * mikealjoined
17:16:49  <bnoordhuis>piscisaureus_: not portable except to AIX (that's where linux stole it from :)
17:17:03  <piscisaureus_>ah, ok
17:17:09  <piscisaureus_>are we ready announce AIX support yet
17:17:10  <bnoordhuis>piscisaureus_: does a handle need to be active in order for uv_want_endgame() to work?
17:17:19  <bnoordhuis>ready when you are :)
17:17:32  <piscisaureus_>bnoordhuis: I am doing the dev/poll backend
17:17:44  <piscisaureus_>bnoordhuis: umm, no
17:17:49  <bnoordhuis>a port to aix or hp-ux would be kind of nice
17:18:07  <piscisaureus_>bnoordhuis: should not need to be active, but there are some loose ends in this area
17:18:23  <bnoordhuis>okay, i'll just try it
17:18:52  <bnoordhuis>piscisaureus_: the reason i ask is that uv_close() calls uv__timer_start(), then uv_want_endgame()
17:19:06  <bnoordhuis>for timer handles, that is
17:19:20  * ericktquit (Quit: erickt)
17:19:20  <piscisaureus_>bnoordhuis: oh, that's odd
17:19:28  <piscisaureus_>ooh
17:19:29  <piscisaureus_>yeah
17:19:34  <piscisaureus_>bnoordhuis: that is to keep the loop alive
17:19:34  <bnoordhuis>for prepare, check and idle handles too btw
17:19:41  <piscisaureus_>bnoordhuis: yeah, for all handles
17:20:00  <bnoordhuis>ah okay... that might complicate things a little
17:20:18  <piscisaureus_>bnoordhuis: that *is* the loose end
17:20:31  * mikealquit (Quit: Leaving.)
17:20:35  <bnoordhuis>i guess i can work around it by checking uv_is_active(h) || uv_is_closing(h)
17:20:54  <piscisaureus_>bnoordhuis: the problem is that the reference counting scheme is not aware of handles that are closing
17:21:02  <piscisaureus_>bnoordhuis: I mean, this is a bug :-)
17:21:14  <bnoordhuis>is there a good way to solve it?
17:21:25  <bnoordhuis>it'd be nice if the close logic could be shared between unix and windows btw
17:21:49  <piscisaureus_>bnoordhuis: yes. Share UV__HANDLE_CLOSING. Add uv__handle_closing, and make sure that a handle keeps the loop alive when it is either closing or active (or both)
17:22:21  <piscisaureus_>bnoordhuis: this conceptual problem also exists on unix but it doesn't bite because you always dispatch close callbacks in the same loop iteration as the uv_close call
17:22:26  <piscisaureus_>hence the loop will never fall out too early
17:22:37  <piscisaureus_>but on windows, closing stuff can take some loop iteration
17:22:37  <piscisaureus_>s
17:23:10  <bnoordhuis>complications, complications
17:23:25  <piscisaureus_>bnoordhuis: it's a loose end that I want to tie up soon
17:23:30  <bnoordhuis>okay, i'll start with the easy solution first
17:23:37  <piscisaureus_>bnoordhuis: ok
17:23:41  <bnoordhuis>which is to ignore the problem and handle it in uv_stat :)
17:24:02  <piscisaureus_>ok
17:24:09  <piscisaureus_>hah, cool that you're doing uv_stat
17:24:20  <piscisaureus_>bnoordhuis: btw, ev_io and ev_timer shims, will that work?
17:24:48  <bnoordhuis>piscisaureus_: yes, with some effort
17:25:03  <bnoordhuis>i mean, there's an easy solution there too
17:25:06  <piscisaureus_>bnoordhuis: isaacs is kinda concerned about that. it would be nice to get that out soon.
17:25:12  * ericktjoined
17:25:14  <bnoordhuis>but it'd be nice to maintain binary compatibility
17:25:24  <piscisaureus_>bnoordhuis: well, binary compatibility is broken anyway
17:25:33  <piscisaureus_>bnoordhuis: since you shuffled around all the struct layouts in libuv
17:25:36  <isaacs>bnoordhuis: yeah, binary compatibility is not important. source-level compatibility is ideal.
17:25:48  <isaacs>a build-time warning would also be nice.
17:25:56  <bnoordhuis>okay, source compatibility is relatively easy
17:25:58  <piscisaureus_>I would like an insult
17:26:16  <bnoordhuis>#warning you use ev_io? what are you, a german?
17:26:21  <bnoordhuis>like that?
17:26:25  <ircretary>piscisaureus_: You're kind of smelly.
17:26:30  <bnoordhuis>haha
17:26:37  <isaacs>ircretary: is that teh best you can do?
17:26:37  <ircretary>isaacs: I'm not sure what to do with that command. Ask for help in PM.
17:27:21  <piscisaureus_>ircretary: insult isaacs
17:27:21  <ircretary>piscisaureus_: I'm not sure what to do with that command. Ask for help in PM.
17:27:26  <mmalecki>!insult piscisaureus_
17:27:26  <kohai>piscisaureus_ smells of elderberry wine!
17:28:19  <bnoordhuis>!insult kohai
17:28:20  <piscisaureus_>http://bash.org/?246405
17:28:46  <piscisaureus_>washbucket is also a bot ?
17:28:52  <piscisaureus_>!echo "hello"
17:28:59  <indutny>washbucket: who are ya?
17:29:01  <piscisaureus_>!console.log("hello")
17:29:04  <washbucket>indutny: You have not answer who are you before...
17:29:06  <piscisaureus_>!"foo"
17:29:17  <indutny>washbucket: I am Fedor Indutny
17:29:19  <piscisaureus_>!require('child_process')
17:29:20  <washbucket>indutny: Why?
17:29:27  <piscisaureus_>!Moduke
17:29:30  <piscisaureus_>!Module
17:29:33  <piscisaureus_>!module
17:29:37  <piscisaureus_>!window
17:29:40  <piscisaureus_>!global
17:29:42  <CIA-108>node: isaacs reviewme * r750bc0d / tools/installer.js : build: Add node.d and node.1 to installer - http://git.io/DzwqMw
17:29:42  <CIA-108>node: isaacs reviewme * r73de3cb / doc/node.1 : doc: update v8-options in man page - http://git.io/shcVzA
17:30:00  <piscisaureus_>!this
17:30:10  <piscisaureus_>!this.__proto__
17:30:51  <piscisaureus_>!this.__proto__.toString = function(){while(true);};
17:31:05  <piscisaureus_>!this.__proto__.toString = function(){while(true);};{}+"";
17:31:12  <piscisaureus_>!this.__proto__.toString = function(){while(true);};""+{}+"";
17:31:23  <piscisaureus_>!while(true){}
17:32:05  <piscisaureus_>!0
17:32:41  <isaacs>this is why js bots are annoying.
17:32:45  <piscisaureus_>yeah
17:32:50  <isaacs>because you JUST CANT HELP YOURSELF and have to figure out how to break them
17:32:51  <piscisaureus_>because people have no self control
17:32:57  <isaacs>i know, i do it, too
17:34:58  <isaacs>bnoordhuis: actually, the best of all possible worlds would be a warning with a url to a wiki page explaining how to migrate to uv
17:35:14  <isaacs>but we can update it to do that once we've written the wiki page :)
17:35:19  <bnoordhuis>isaacs: warning but still compile and work?
17:35:25  <isaacs>bnoordhuis: yeah
17:35:29  <bnoordhuis>can do
17:35:35  <isaacs>then we rip it make it a build failure in 0.9 sometime.
17:35:38  * washbucketquit (Ping timeout: 250 seconds)
17:35:42  <isaacs>or later, i dunno.
17:35:51  <piscisaureus_>^-- goodbye, stupid bot
17:36:01  <isaacs>piscisaureus_: you killed it?
17:36:16  <piscisaureus_>isaacs: I think !while(true){} did it
17:36:24  <bnoordhuis>heh
17:36:26  <isaacs>yeah, probably
17:36:38  <isaacs>bnoordhuis: any strong feelings on the man/dtrace install?
17:36:44  <piscisaureus_>atleast, that is when it stopped responding
17:36:49  <isaacs>bnoordhuis: i'm wondering if we ought to not install node.d on linux
17:37:09  <isaacs>bnoordhuis: or if it's better to install it anyway, just to taunt the linux community and help inspire them to port dtrace
17:37:25  <bnoordhuis>isaacs: it's kind of pointless on anything besides oracle unbreakable linux
17:37:35  <bnoordhuis>(which is a joke because it won't work there either)
17:37:38  <isaacs>yeah
17:38:07  <bnoordhuis>i guess my main reason not to install it would be to preempt the inevitable bug reports
17:38:25  <bnoordhuis>which are well meaning, of course
17:38:42  <isaacs> // dtrace
17:38:42  <isaacs> if (!process.platform.match(/^linux/)) {
17:38:43  <isaacs> copy(['src/node.d'], 'lib/dtrace/');
17:38:44  <isaacs> }
17:38:46  <isaacs>how's that?
17:39:06  <bnoordhuis>what about beos?
17:39:10  <isaacs>HAHAHAHahah
17:39:17  <isaacs>i mean...
17:39:21  <bnoordhuis>heh
17:39:21  <isaacs>aren't the porting dtrace to beos?
17:39:32  <bnoordhuis>yeah, lgtm
17:39:35  <isaacs>k
17:39:57  <bnoordhuis>do all other supported unices have dtrace?
17:40:02  <bnoordhuis>hm, i guess they do
17:40:14  <CIA-108>node: isaacs master * r8bec3fe / tools/installer.js : build: Add node.d and node.1 to installer - http://git.io/8QTiIA
17:40:14  <CIA-108>node: isaacs master * ra0a5c4c / doc/node.1 : doc: update v8-options in man page - http://git.io/TFJcqQ
17:40:53  * hij1nxjoined
17:41:17  <indutny>I'm glad that installer is still working :P
17:43:11  <bnoordhuis>piscisaureus_: i think i'm coming over tomorrow
17:43:20  <bnoordhuis>make sure the fridge is properly stocked
17:48:56  <piscisaureus_>bnoordhuis: cool
17:49:00  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
17:49:33  * hij1nxquit (Quit: hij1nx)
17:51:05  <isaacs>bnoordhuis: so, once you land the ev_ stuff we're good to release 0.7.11, last one before 0.8
17:51:27  * piscisaureus_joined
17:53:47  <madson>isaacs: don't forget the domain stuff
17:54:11  <isaacs>yeah, there are a few more patches and pulls to review, as well.
17:54:14  <isaacs>but this is the big blocker
17:54:19  * madsonquit (Remote host closed the connection)
17:54:30  * AndreasMadsenjoined
17:56:12  * AndreasMadsenquit (Read error: Connection reset by peer)
17:56:44  * brsonjoined
17:56:56  * AndreasMadsenjoined
18:02:14  * brsonquit (Read error: Connection reset by peer)
18:02:22  * brsonjoined
18:05:39  <piscisaureus_>bnoordhuis: indutny: https://gist.github.com/2931856 <-- either of you has any idea what could be going on here
18:05:42  <piscisaureus_>after this, the test hangs
18:06:18  <bnoordhuis>piscisaureus_: no idea
18:06:23  <indutny>hahaha
18:06:26  <indutny>bnoordhuis: fast reading
18:06:50  <indutny>piscisaureus_: let me guess, you're testing it on windows?
18:07:01  <piscisaureus_>orly?
18:07:04  <indutny>D:\node4\test\common.js:114
18:07:10  <indutny>haha
18:07:13  <indutny>I'm quite sure you are
18:07:22  <indutny>looking
18:10:01  <indutny>piscisaureus_: does it just hangs (i.e. event loop doesn't exit) or eats all CPU?
18:10:07  <piscisaureus_>indutny: just hangs
18:10:36  <indutny>piscisaureus_: can you check what uv handles are active?
18:10:52  <piscisaureus_>yeah, there are a couple
18:10:57  <piscisaureus_>tls server et
18:10:58  <piscisaureus_>c
18:11:15  <piscisaureus_>the problem is that some callback should be made, which never happens
18:11:28  <indutny>yeah, you should figure out what callback it is :P
18:11:30  <indutny>haha
18:11:47  <piscisaureus_>indutny: the server connection callback
18:12:10  <indutny>oh, interesting
18:12:49  * loladiroquit (Read error: Connection reset by peer)
18:13:10  * loladirojoined
18:14:09  <indutny>well, that's not true as I can see in logs
18:14:17  <indutny>you're running only one test case
18:14:37  <piscisaureus_>yes
18:14:38  <indutny>and it prints out "- authed connection: agent1"
18:14:43  <piscisaureus_>yes
18:14:51  <piscisaureus_>and then it tries with agent2, which should be rejected
18:14:57  <indutny>second test case doesn't starts
18:15:04  <indutny>because there no "Running..."
18:15:10  <indutny>aah
18:15:11  <indutny>sorry
18:15:12  <piscisaureus_>indutny: connecting with agent2
18:15:27  <piscisaureus_>that's the last message it'll output (without the debugging stuff I added)
18:15:28  <indutny>there're multiple agents
18:16:12  * hij1nxjoined
18:16:32  <piscisaureus_>ah hmm
18:16:36  <piscisaureus_>it seems that openssl doesn't exit
18:16:52  <indutny>piscisaureus_: so it hangs somewhere inside it
18:17:10  <indutny>piscisaureus_: can you get backtrace?
18:17:26  <piscisaureus_>indutny: from openssl.exer ?
18:17:28  <piscisaureus_>indutny: from openssl.exe ?
18:17:36  <piscisaureus_>indutny: sure, but I'd have to compile it first
18:17:45  <piscisaureus_>that's gonna take a while
18:17:55  <indutny>piscisaureus_: can't you connect Visual Studio to hanging node with test
18:18:06  <indutny>piscisaureus_: and break where it is running atm
18:18:07  <piscisaureus_>indutny: ook
18:18:22  <piscisaureus_>indutny: I know that - it's hancing in GetQueuedCompletionStatusEx
18:18:31  <indutny>ok
18:18:33  <piscisaureus_>so it's expection IO completions, but that neber happens
18:18:57  <indutny>hm
18:19:30  <indutny>ah, we're using openssl client here
18:19:33  <indutny>got ya finally :P
18:19:51  <indutny>yeah, backtrace may be useful
18:20:08  <indutny>but looks like it's just waiting for some data
18:20:23  <indutny>you can use wireshark to analyze TCP traffic between them
18:20:32  <indutny>see if some frames are broken or incomplete
18:20:43  <piscisaureus_>hmm, ok
18:20:54  <indutny>but theese are just some generic hints
18:21:03  <indutny>I have no idea what's happening
18:25:04  <indutny>piscisaureus_: can you add 'console.log("this way")' here https://github.com/joyent/node/blob/master/lib/tls.js#L977
18:25:15  <indutny>I think it halts after reaching that path
18:25:16  * mcavagejoined
18:25:29  <piscisaureus_>indutny: thanks, I will try
18:25:40  <piscisaureus_>indutny: the weird thing is that openssl spits out nothing on stdout
18:25:51  <piscisaureus_>it seems that openssl.exe is just doing nothing somehow
18:25:58  <mcavage>TooTallNate: do you have any pointers to good examples of a native add-on doing whatever it needs to to replace eio_custom?
18:26:06  <indutny>well, it's sending client handshake as I can see from server logs
18:26:31  * loladiro_joined
18:27:14  <isaacs>piscisaureus_: this is weird...
18:27:16  <isaacs>> exec('whoami /priv', console.error)
18:27:16  <isaacs>Error: spawn EINVAL
18:27:48  <isaacs>mcavage: TooTallNate: the only example i'm immediately familiar with is stuff that's internal to node/src/
18:27:54  <piscisaureus_>isaacs: yes, that's weird
18:28:01  <isaacs>piscisaureus_: this is on 0.7.10
18:28:13  * dapjoined
18:28:18  * loladiro_quit (Client Quit)
18:28:18  <piscisaureus_>isaacs: what happens on master
18:28:40  <isaacs>not sure, haven't built yet. i'll let you know when i do
18:29:03  <piscisaureus_>isaacs: good
18:29:14  <indutny>piscisaureus_: yeah, looks like it's going that branch
18:29:19  <indutny>piscisaureus_: and socket should be destroyed
18:29:24  * loladiroquit (Ping timeout: 248 seconds)
18:29:25  <piscisaureus_>indutny: yes
18:29:28  <piscisaureus_>indutny: here too
18:29:48  <piscisaureus_>indutny: it looks to me as if openssl should exit when the handshake is rejected
18:29:54  <piscisaureus_>but this doesn't happen
18:30:06  <piscisaureus_>however, it does when I just run the same command on the command line
18:30:08  <piscisaureus_>e.g
18:30:08  <piscisaureus_>openssl s_client -connect -key D:\node4\test\fixtures\keys\agent2-key.pem -cert D:\node4\test\fixtures\keys\agent2-cert.pem
18:30:24  <indutny>odd
18:30:32  <indutny>yes, for me it looks exactly the same
18:30:40  <indutny>because server is not waiting for 'connection' event
18:30:45  <indutny>it just waits for process to exit
18:30:58  <piscisaureus_>yes
18:31:03  <piscisaureus_>but the exit event never comes
18:31:08  <indutny>looks like a bug in openssl client
18:31:19  <indutny>you really may try debugging it
18:31:32  <piscisaureus_>well....
18:31:36  <piscisaureus_>could be
18:31:40  <indutny>.. if we care about it
18:31:48  <piscisaureus_>heh
18:31:49  <indutny>:D
18:32:05  <piscisaureus_>well, it exits when spawned from the command line
18:32:15  <piscisaureus_>but not if node spawns it
18:32:29  <piscisaureus_>however the test continues when I kill openssl.exe manually
18:32:50  <indutny>yeah, it should
18:33:00  <indutny>could latest uv_spawn changes affect that?
18:33:15  <indutny>ok, I've an idea
18:33:15  <piscisaureus_>maybe I should close process.stdin()
18:33:25  <indutny>indeed
18:33:26  <piscisaureus_>nah, this test has been failing for many weeks now
18:33:35  <indutny>before uv_spawn change?
18:33:42  <piscisaureus_>yes
18:33:45  <indutny>oh
18:33:56  <indutny>well, you could try closing stdin
18:34:06  <indutny>at least to be sure that it isn't something damn stupid
18:34:36  <piscisaureus_>that wasn't it
18:34:41  <piscisaureus_>let's see where openssl is hanging
18:34:48  <piscisaureus_>what it is waiting for
18:35:32  <piscisaureus_>ah
18:35:34  <piscisaureus_>WSPRecv
18:35:52  <piscisaureus_>so somehow it doesn't notice that the connection died
18:36:39  <indutny>great
18:36:42  <indutny>a windows bug
18:36:45  <indutny>hahahah
18:37:27  <piscisaureus_>ah
18:37:32  <piscisaureus_>I think it's a node bug, actually
18:37:45  <piscisaureus_>indutny: the first process never exits
18:38:01  <piscisaureus_>but when I spawn 10, nrs 2 - 10 "pass"
18:38:03  <indutny>so there's a stray process
18:38:06  <piscisaureus_>e.g. they exit cleanly
18:38:06  <piscisaureus_>no
18:38:17  <piscisaureus_>the first ssl connection has some internal state fucked up
18:39:17  <indutny>I don't really got ya
18:39:28  <indutny>language barrier, you know
18:39:31  * mikealjoined
18:39:34  <indutny>you're dutch, I'm russian
18:39:39  <indutny>we're talking on english
18:39:41  <indutny>a lot of trouble
18:39:41  <piscisaureus_>indutny: ok, so I don't spawn the openssl client process
18:39:49  <piscisaureus_>indutny: I just create the server
18:40:00  <piscisaureus_>now when I spawn the openssl process from the command line, it hangs too
18:40:08  <piscisaureus_>but when I kill it and spawn it again, it exits
18:40:10  <piscisaureus_>as it should
18:40:19  <indutny>hm...
18:40:29  <piscisaureus_>and the 3rd, 4th etc time i spawn it behaves correctly too
18:40:31  <indutny>have you added logging in that place?
18:40:37  <indutny>tls.js
18:41:03  <indutny>if it gets to that place - that means that error is somewhere on uv_tcp_t level
18:41:08  <indutny>if not in node
18:41:57  <piscisaureus_>indutny: yes, it gets there
18:42:04  <piscisaureus_>the first time too
18:42:27  <indutny>well, then 'socket.destroy()' is called, I guess
18:42:33  <piscisaureus_>ok, good to know, thanks
18:42:39  <piscisaureus_>let me see if we properly destroy the socket
18:43:37  <piscisaureus_>actually, we don't
18:43:39  <piscisaureus_>hmm
18:44:09  * mikealquit (Client Quit)
18:44:14  <indutny>nice
18:44:29  <indutny>I wonder how is that possible
18:44:45  <piscisaureus_>oh hmm
18:44:47  <piscisaureus_>actually we do
18:44:59  <indutny>hahah
18:45:00  <piscisaureus_>that's very weird
18:45:15  <piscisaureus_>because openssl should get socket error when we do that.
18:45:25  <isaacs>the backslashes.
18:45:29  <isaacs>I will never get used to the backslashes.
18:45:44  <isaacs>it's SO WRONG
18:45:53  <piscisaureus_>very weird
18:46:12  <piscisaureus_>as soon as node exits then openssl does return
18:46:14  <piscisaureus_>very strange
18:46:20  <indutny>oh nice
18:46:27  <indutny>nginx is using it's own openssl sessions storage
18:46:27  <piscisaureus_>but when I close the socket, it doesn't ....
18:46:40  <indutny>I suppose apache is doing the same thing
18:46:49  <indutny>apache httpd
18:55:54  <piscisaureus_>indutny: gotcha!
18:56:01  <piscisaureus_>indutny: accidental handle inheritance
18:56:11  <indutny>oh crap
18:56:15  <piscisaureus_>^-- isaacs: here's why you don't want accidental handle inheritance
18:56:37  <indutny>piscisaureus_: can you post some code samples? :
18:56:39  <indutny>;)
18:56:51  <indutny>so it's like (uv_handle_t*) (junk) ?
18:56:55  <piscisaureus_>indutny: the problem was, openssl only exits when the socket handle is destroyed
18:57:10  <piscisaureus_>indutny: because that will cause it to see ECONNRESET or FIN at it's end
18:57:29  <piscisaureus_>however, openssl itself accidentally inherited node's end of the socket handle
18:57:40  <piscisaureus_>so when node closed it, it wasn't destroued
18:57:51  <piscisaureus_>because there was another process left with an open handle
18:58:16  <isaacs>piscisaureus_: yeah, i'm convinced. :)
18:58:19  <piscisaureus_>indutny: this is very easy to reproduce in unix... just make sure that you don't set CLOEXEC on handles that are accepted
18:58:25  <piscisaureus_>er, fds
18:58:27  <isaacs>piscisaureus_: as long as it doesn't break fork(), totally agree with you.
18:58:43  <indutny>ahha
18:58:54  <piscisaureus_>isaacs: hehe. no the solution is different here
18:59:17  <piscisaureus_>but it doesn mean that libuv is totally not threadsafe right now
18:59:20  <TooTallNate>mcavage: https://github.com/rbranson/node-ffi/blob/master/src/ffi.cc#L276-281
18:59:21  <indutny>isaacs: so I'm just explored httpd and nginx code and seems to me that they're both using external sessions storages for ssl stuff
18:59:46  <mcavage>TooTallNate: thanks
18:59:53  <indutny>isaacs: I think I may be able to create one for node too
19:00:10  <TooTallNate>np
19:00:23  <indutny>isaacs: do you want this to go into 0.8?
19:00:39  <indutny>or can we land it in after release
19:01:18  <isaacs>indutny: what're we considering for inclusion here? i haven't been following too closely
19:01:37  <indutny>isaacs: ok, so there's such thing as SSL sessions
19:02:02  <indutny>isaacs: if server supports SSL sessions - it may skip handshake with clients that was previously handshaken with it
19:02:10  <indutny>s/was/hash
19:02:28  * brsonquit (Ping timeout: 248 seconds)
19:02:35  <indutny>isaacs: that's related to https://github.com/joyent/node/issues/2846
19:02:58  <isaacs>right
19:03:02  <indutny>I'll continue investigation, but it seems that httpd and nginx are using external session storage (i.e. they had implemented their own storage for sessions)
19:03:27  <indutny>which may be the reason why they can handle more handshakes/sec
19:03:36  <indutny>(I'm still not sure, but that sounds reasonable to me)
19:03:44  <isaacs>that sounds like something that we can potentially implement in a later v0.8 release, or in v0.9+
19:04:05  <isaacs>it'd sure be *nice* to make node's handshake performance better, but i'm not sure how essential it is to get into v0.8.0
19:04:29  * brsonjoined
19:04:42  <isaacs>we can just do it in such a way that it doesn't expose the session storage to the external apis.
19:05:11  <indutny>ok
19:05:23  <indutny>I'll continue working on that thenn
19:05:48  <isaacs>great!
19:06:56  <indutny>btw, he's talking about apache configuration which as he said: The Apache config was provided to the nodejs-dev mailing list.
19:07:13  <indutny>TooTallNate: isaacs: does anyone of you guys know in which thread he did it?
19:07:31  <indutny>nvm
19:07:33  <indutny>just found it
19:08:08  <indutny>yes! he's using apache's cache
19:08:12  <indutny>cool
19:21:48  <CIA-108>libuv: Bert Belder master * rb1649b6 / src/win/tcp.c : windows: prevent accidental inheritance of sockets pending acceptance - http://git.io/0rOrNw
19:23:14  <indutny>piscisaureus_: ++
19:23:15  <kohai>piscisaureus_ has 12 beers
19:23:48  * travis-cijoined
19:23:48  <travis-ci>[travis-ci] joyent/libuv#419 (master - b1649b6 : Bert Belder): The build passed.
19:23:48  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/5d5688f24188...b1649b6f77a3
19:23:48  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1623132
19:23:48  * travis-cipart
19:23:54  <CIA-108>node: Bert Belder master * r25ae603 / deps/uv/src/win/tcp.c : windows: prevent accidental inheritance of pending accept sockets - http://git.io/kQIc5g
19:24:01  <piscisaureus_>huh
19:24:02  <piscisaureus_>shit
19:24:47  <CIA-108>node: Bert Belder master * r7f89688 / deps/uv/src/win/tcp.c : uv: upgrade to b1649b6f - http://git.io/Ss81Og
19:25:07  <indutny>force push?
19:25:09  <piscisaureus_>:-)
19:25:41  <piscisaureus_>for questions, please call my sollicitor
19:26:50  <indutny>I love force pushes
19:26:59  <indutny>looking forward to see you
19:27:03  <indutny>**face to face**
19:27:04  <indutny>;)
19:28:34  <isaacs>piscisaureus_: got a sec for a realpath question?
19:28:36  <isaacs>> fs.realpathSync('./test/tmp/node-test-realpath-abs-kids/a/link')
19:28:36  <isaacs>'c:\\Users\\Isaac Schlueter\\node\\test\\tmp\\node-test-realpath-abs-kids\\a\\b'
19:28:38  <isaacs>> fs.realpathSync('./test/tmp/node-test-realpath-abs-kids/a/link/c')
19:28:40  <isaacs>'c:\\Users\\Isaac Schlueter\\node\\test\\tmp\\node-test-realpath-abs-kids\\a\\li
19:28:42  <isaacs>nk\\c'
19:28:53  <isaacs>that seems like a genuine bug.
19:29:30  <isaacs>if you don't disagree, i'll fix it :)
19:29:40  <piscisaureus_>isaacs: I am trying to see it
19:29:51  <piscisaureus_>ah, yeas
19:30:00  <isaacs>piscisaureus_: c:\test\link -> c:\test\a
19:30:13  <isaacs>piscisaureus_: realpath(c:\test\link\x) should === c:\test\a\x
19:30:20  <piscisaureus_>isaacs: yes, sure
19:30:24  <piscisaureus_>ok. go fix it :-)
19:30:31  <isaacs>k, great.
19:30:39  <isaacs>otherwise i've got the test passing, and doing meaningful things.
19:30:44  <piscisaureus_>kewl
19:30:46  <piscisaureus_>isaacs++
19:30:46  <kohai>isaacs has 17 beers
19:30:51  <piscisaureus_>oh my
19:31:00  <piscisaureus_>isaacs didn't get his beers reset
19:31:05  <isaacs>the bash realpath stuff was bs anyway.
19:31:18  <piscisaureus_>isaacs: good to hear it gets better :-)
19:31:20  <isaacs>piscisaureus_: no, i just don't chug them as soon as i get them, because i'm not some crazy european
19:31:32  <piscisaureus_>I will yours
19:31:35  <piscisaureus_>isaacs--
19:31:36  <kohai>isaacs has 16 beers
19:31:39  <isaacs>hay!
19:31:43  <isaacs>i was savin those.
19:32:03  * igorziquit (Ping timeout: 245 seconds)
19:32:11  <piscisaureus_>as the germans would say
19:32:12  <piscisaureus_>in bielefeld da hab ich mir ein bier bestellt
19:33:59  <isaacs>in battlefields they have itchy mires in best beers
19:34:05  <piscisaureus_>http://www.youtube.com/watch?v=3OnOu13Au4k
19:34:21  * isaacs's german is even worse than his dutch
19:39:03  <piscisaureus_>[06:53|% 100|+ 460|- 7]: Done
19:39:05  <piscisaureus_>wooo
19:39:08  <piscisaureus_>time to get food
19:39:29  <indutny>piscisaureus_: ++
19:39:30  <kohai>piscisaureus_ has 13 beers
19:41:01  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
19:42:47  <isaacs>nice
19:44:25  * brsonquit (Ping timeout: 240 seconds)
19:47:34  <isaacs>ALWAYS WITH THE SLASHES.
19:47:35  <isaacs>srsly.
19:51:00  <isaacs>found the bug in fs.realpath. it's so dumb.
19:51:06  <isaacs>wrong slash being used in a regexp.
19:51:20  <AvianFlu>lol.
19:52:08  <isaacs>the backslash on paths is seriously the worst thing about windows.
19:52:21  <AvianFlu>I'd like to smack whoever decided that was necessary
19:52:23  <bnoordhuis>ircretary: tell piscisaureus_ https://github.com/bnoordhuis/libuv/compare/uv_stat
19:52:24  <ircretary>bnoordhuis: I'll be sure to tell piscisaureus_
19:52:27  <AvianFlu>back in the 80s or whenever
19:52:38  <isaacs>AvianFlu: well, i mean, it was an open question for a while
19:52:50  <isaacs>but clearly the world decided this, long ago
19:53:22  <isaacs>i can't even count all the hours spent fixing bugs that came down to something like replacing [\s\/] with [\s\/\\]
19:53:50  <isaacs>and of course, on like every unix, \ is a perfectly valid character to have in a path.
19:53:56  <isaacs>and means nothing
19:54:42  <AvianFlu>at least it's all happening in node, and not in every user's code, this time around :D
19:55:59  <bnoordhuis>the uv_stat code looks pretty hot
19:56:02  <bnoordhuis>but i may be biased
20:05:54  * mjr_joined
20:15:05  <isaacs>hm...
20:15:11  <isaacs>windows resolves symlinks weird.
20:15:40  <isaacs>given this:
20:15:41  <isaacs>.
20:15:42  <isaacs>├── cycles/
20:15:42  <isaacs>│   └── root.js
20:15:44  <isaacs>└── symlink -> ../tmp/cycles/root.js
20:16:05  <isaacs>windows will throw if you try to fs.stat(symlink)
20:16:21  <isaacs>(this is in a folder named tmp, of course)
20:20:04  * loladirojoined
20:23:22  <isaacs>ohhh... it works as expected if you use forward slashes.
20:23:36  <isaacs>:D
20:23:46  <isaacs>we need loudbot in here.
20:23:57  <isaacs>yelling isn't as much fun without a robot that yells back.
20:28:18  * piscisaureus_joined
20:39:17  <piscisaureus_>bnoordhuis: stat crashes for me
20:41:44  <isaacs>piscisaureus_: pullreq'd realpath on windows
20:41:57  * isaacsoff to lunch
20:42:45  <CIA-108>libuv: Bert Belder master * r9a3dff3 / test/test-hrtime.c : test: make the test-hrtime less likely to time out - http://git.io/jIhiwQ
20:43:16  * TheJHquit (Ping timeout: 248 seconds)
20:44:39  * travis-cijoined
20:44:39  <travis-ci>[travis-ci] joyent/libuv#420 (master - 9a3dff3 : Bert Belder): The build passed.
20:44:39  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/b1649b6f77a3...9a3dff35c019
20:44:39  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1623953
20:44:39  * travis-cipart
20:47:44  * brsonjoined
20:52:32  * paddybyers_joined
20:53:49  * paddybyersquit (Ping timeout: 265 seconds)
20:53:50  * paddybyers_changed nick to paddybyers
20:55:52  <isaacs>piscisaureus_: https://gist.github.com/2932901
20:55:56  * AndreasMadsenquit (Remote host closed the connection)
20:56:02  <isaacs>piscisaureus_: then i can't clean up that folder, even.
20:56:04  <isaacs>it's super annoying
20:57:14  <piscisaureus_>isaacs: this looks like forward slash intolerance right ?
20:57:43  <isaacs>piscisaureus_: no, this is cycle intolerance
20:58:34  <piscisaureus_>path._makeLong bug
20:59:10  <isaacs>ok, need food badly. bbiab
20:59:15  <piscisaureus_>isaacs: ok, later
21:08:21  * brsonquit (Quit: leaving)
21:08:36  * brsonjoined
21:13:29  <piscisaureus_>ircretary: tell bnoordhuis https://github.com/piscisaureus/libuv/commits/uv_stat
21:13:29  <ircretary>piscisaureus_: I'll be sure to tell bnoordhuis
21:14:18  <piscisaureus_>ircretary: tell bnoordhuis I am not 100% sure that naming the thing uv_stat is a good idea, but let's discuss when we are both here
21:14:18  <ircretary>piscisaureus_: I'll be sure to tell bnoordhuis
21:27:06  * mralephjoined
21:30:59  <ryah>what about upgrading OpenSSL to 1.0.0j or 1.0.1c before 0.8 ?
21:31:22  * paddybyersquit (Quit: paddybyers)
21:32:21  <ryah>ircretary: tell bnoordhuis what about upgrading OpenSSL to 1.0.0j or 1.0.1c before 0.8?
21:32:21  <ircretary>ryah: I'll be sure to tell bnoordhuis
21:32:54  <indutny>isaacs: ping
21:33:03  <indutny>isaacs: when are you going to release 0.7.11 ?
21:33:22  <indutny>isaacs: I think my session cache stuff my add an API change
21:33:27  <indutny>isaacs: as I want it to be optional
21:35:10  <piscisaureus_>indutny: how far are you with the session cache stuff ?
21:35:23  <indutny>piscisaureus_: I should be able to finish it within next 1-2 days
21:35:41  <piscisaureus_>indutny: I suppose that if you get it done before monday, we could defer 7.11 until then
21:35:42  <indutny>piscisaureus_: so if we'll release 0.7.11 at monday, session cache will be there
21:35:49  <piscisaureus_>right
21:36:02  <indutny>piscisaureus_: yeah, but the thing is that it won't affect `ab` benchmarks :(
21:36:12  <piscisaureus_>indutny: oh :-(
21:36:13  <indutny>piscisaureus_: as it isn't reusing sessions
21:36:33  <piscisaureus_>indutny: how could we make the ssl handshake faster?
21:36:42  <piscisaureus_>for ab-like scenarios?
21:36:50  <indutny>piscisaureus_: no way :P
21:36:59  <indutny>only if ab will be patched to support sessions
21:37:06  <indutny>but that may work for browsers
21:37:13  <indutny>well, it'll work
21:37:18  <piscisaureus_>indutny: well, if these people are saying that iis is like 6 times faster
21:37:22  <piscisaureus_>in doing handshakes
21:37:27  <piscisaureus_>then that's a lot right :-)
21:37:37  <indutny>:)
21:40:10  * rendarquit
21:44:14  * paddybyersjoined
21:45:39  <indutny>bnoordhuis: piscisaureus_: do you have time for review of WIP?
21:46:10  <piscisaureus_>indutny: well, yes, but you should be aware that my openssl knowledge is very limited :-)
21:46:47  <indutny>piscisaureus_: well, there're not a lot of openssl stuff, actually: https://github.com/indutny/node/compare/feature-ssl-external-cache
21:46:52  <indutny>bnoordhuis: ^
21:47:04  <indutny>I'm just maintaining a hashmap with sessions
21:47:13  <indutny>and loading/storing/removing them in openssl's callbacks
21:47:36  <indutny>there're two things left - destroying SessionStorage object and option for tls.js
21:47:41  <indutny>and test
21:48:02  <piscisaureus_>indutny: the question I have - why jenkins? :-)
21:48:11  <indutny>piscisaureus_: hash map access?
21:48:13  <piscisaureus_>indutny: murmur3 ftw :-)
21:48:17  <indutny>hahahaha
21:48:28  <indutny>jenkins works quite well in v8 and in candor
21:48:33  <indutny>and in almost every other
21:48:37  <indutny>:)
21:48:41  <piscisaureus_>ok
21:49:56  * mralephquit (Quit: Leaving.)
21:49:56  <ryah>so excited for 0.8 - it feels like the first real release :)
21:50:18  <indutny>ryah: hahaha
21:50:23  <indutny>ryah: I'd waited for it for too long
21:50:41  <indutny>ryah: in case if you're interested https://github.com/indutny/node/compare/feature-ssl-external-cache
21:50:42  <ryah>node-spdy out of the box. it's going to be sick
21:50:46  <indutny>ryah: yeah
21:51:23  <ryah>indutny: in-memory session cache?
21:52:17  <ryah>it seems openssl should provide that by default - or?
21:52:47  <indutny>ryah: it is, but it's slow and retarted AFAIK
21:53:03  <indutny>ryah: I believe there is a reason why both httpd and nginx implemented their own
21:53:04  <ryah>also - god i hate the openssl session get API
21:53:13  <ryah>the fact that you have to return the session from the same function
21:53:15  <indutny>ha! don't tell me
21:53:22  <ryah>makes async shit impossible
21:53:31  <indutny>well, openssl != async
21:53:47  <ryah>this is the one really bad situation though
21:54:08  <ryah>would be lovely to be able to expose these callbacks to JS and allow people to hook it up to memcached
21:54:20  <ryah>but nope - got to block the whole pthread
21:54:28  <indutny>ryah: yes, same with SNI stuff
21:54:32  <ryah>oh right
21:54:42  <indutny>ryah: I did a module that intercepts TLS packets and allows you to run some async stuff :P
21:54:50  <indutny>ryah: and only after that pass it to openssl
21:54:53  <ryah>what, really?
21:54:56  <indutny>hahah, yes
21:55:01  <indutny>it's private but it exists
21:55:02  <ryah>man - hacker
21:55:26  <ryah>indutny: can openssl be upgraded?
21:55:41  <ryah>it looks like bnoordhuis did the last one
21:55:59  <bnoordhuis>ryah: newest versions of openssl enable tls 1.2 by default, might confuse some clients
21:56:07  <bnoordhuis>i've seen a number of bug reports about that
21:56:18  <indutny>TLS is retarted too
21:56:18  <ryah>bnoordhuis: you mean 1.0.1 ?
21:56:22  <indutny>retarded*
21:56:27  <bnoordhuis>ryah: yes
21:56:36  <ryah>bnoordhuis: there are some new patches on 1.0.0
21:57:34  <ryah>indutny: you should push that in better session cache upstream to openssl
21:57:49  <ryah>s/in//
21:57:50  <bnoordhuis>ryah: i think i already pulled in the most critical ones :)
21:58:06  <bnoordhuis>but i can look into it
21:58:44  <indutny>ryah: if it works :P
22:00:14  <piscisaureus_>http://bash.org/?244321
22:04:06  <indutny>piscisaureus_: troll
22:13:42  <indutny>ok, it doesn't work :(
22:13:49  <indutny>deserialization is borked somehow
22:14:54  <indutny>oh, no, it works!
22:16:29  <indutny>no it doesn't :(
22:18:17  <piscisaureus_>for how long are we going to support 0.6?
22:18:32  <piscisaureus_>I think there were some plans about that.
22:20:17  * paddybyersquit (Quit: paddybyers)
22:24:46  * igorzijoined
22:24:54  <isaacs>back
22:24:58  <isaacs>piscisaureus_: 6 months
22:25:10  <isaacs>piscisaureus_: but as far as i'm concerned, that's bnoordhuis's problem.
22:25:13  <isaacs>;)
22:25:28  <isaacs>0.6 is already mostly dead to me
22:25:45  <isaacs>indutny: i'd rather not delay 0.7.11
22:25:58  <isaacs>indutny: go ahead and try to finish asap anyway. it can be new in 0.8
22:26:20  * ryahquit (Quit: leaving)
22:31:44  * c4miloquit (Remote host closed the connection)
22:37:25  <CIA-108>node: mstarzinger@chromium.org master * rc231321 / (2 files in 2 dirs): Fix assertion for map code cache of shared maps. - http://git.io/8Eop2A
22:37:53  <indutny>yeah I made it work!
22:38:44  <indutny>oh
22:38:47  <indutny>it's really faster
22:39:01  <CIA-108>node: danno@chromium.org master * r35ce31a / (deps/v8/src/ic.cc deps/v8/src/version.cc): Merged r11807 into trunk branch. - http://git.io/PFUTIQ
22:39:12  <piscisaureus_>eh
22:39:31  * loladiroquit (Read error: Connection reset by peer)
22:39:37  * loladiro_joined
22:39:48  <indutny>36 hadshake/sec vs 28 h/s
22:39:51  <indutny>:D
22:40:01  <indutny>it's with very rough benchmarking
22:40:10  <indutny>while true; do openssl s_client -connect localhost:8081 -sess_in outfile -sess_out outfile -ssl3 > /dev/null 2> /dev/null; done
22:40:32  <indutny>so it's like 28 % faster
22:42:36  <CIA-108>node: danno@chromium.org master * r00247d5 / deps/v8/src/ic.cc : Fix Kraken regression due to optimistic monomorphic element transitions - http://git.io/SvdV1w
22:43:17  <piscisaureus_>indutny: so, is that in comparison to "no caching" or vs "openssl builtin caching" ?
22:43:26  <indutny>piscisaureus_: vs openssl builtin
22:43:38  <piscisaureus_>well, that's a significant difference
22:43:38  <indutny>which doesn't work
22:43:39  <indutny>:P
22:43:44  <indutny>dunno why
22:43:49  <indutny>haha
22:43:51  <indutny>just noticed
22:43:59  <AvianFlu>I gotta say, that's one hell of a commit message on that last patch XD
22:45:46  <isaacs>srsly
22:47:23  <piscisaureus_>AvianFlu: isaacs: read mralephs post about building a jit in javascript
22:47:36  <isaacs>piscisaureus_: it's in my open tabs
22:48:58  <isaacs>piscisaureus_: figured out why that "not well tolerated" test was failing.
22:49:09  <isaacs>piscisaureus_: it assumes that the cwd is ...\test
22:52:35  <piscisaureus_>isaacs: aha!
22:53:23  <isaacs>so it didn't break `make test`, but it failed running it explicitly (which i was doing in windows)
23:00:11  <isaacs>piscisaureus_: https://github.com/isaacs/node/commit/d8b98514948856c4cdeef6b70aa5abc6d8124096
23:03:23  <isaacs>piscisaureus_: also, at your request: https://github.com/joyent/node/issues/3440
23:03:43  <CIA-108>node: Bert Belder trythis * r4e3a154 / lib/fs.js : windows: make symlinks tolerant to forward slashes - http://git.io/ubg6dw
23:03:48  <piscisaureus_>^-- isaacs
23:03:55  <piscisaureus_>isaacs: it's not pretty but it does the job
23:03:56  <isaacs>ha!
23:04:08  <piscisaureus_>isaacs: eventualluy this will be fixed in uv
23:04:20  <piscisaureus_>isaacs: but I tried last week - it is a lot of work to get that all perfect
23:04:26  <isaacs>yeah
23:04:58  <isaacs>piscisaureus_: the test-fs-realpath.js look ok to you otherwise?
23:05:38  <piscisaureus_>isaacs: it did - the only comments I had were those about cycles and slashes
23:05:47  <piscisaureus_>isaacs: so unless you changed other stuff, lgtm
23:05:56  <piscisaureus_>isaacs: does the symlink patch lgty ?
23:05:59  <isaacs>nope, that's it.
23:06:13  <isaacs>piscisaureus_: i'm about to see if it fixes this realpath test without the _symlinkSync shim
23:06:20  <piscisaureus_>isaacs: kewl
23:07:52  <isaacs>generating code...
23:08:03  * xaqquit (Read error: Connection reset by peer)
23:08:06  <piscisaureus_>yeah
23:08:08  <piscisaureus_>takes too long eh
23:08:19  <piscisaureus_>I always build with nosnapshot nowadays
23:08:33  * xaqjoined
23:09:25  <isaacs>piscisaureus_: patch is only half-there
23:09:30  <isaacs>piscisaureus_: need symlinkSync, as well
23:09:33  <indutny>isaacs: piscisaureus_ bnoordhuis https://github.com/joyent/node/pull/3441 <- this is working
23:09:36  <piscisaureus_>ghe
23:09:36  <indutny>and almost done
23:09:51  * loladiro_quit (Quit: loladiro_)
23:09:58  <indutny>and I need your comments on following thing
23:10:19  <indutny>hashmap consist of 10*1024 objects maximum
23:10:29  <indutny>which may be cleaned up periodically to remove expired and free memory
23:10:43  <indutny>should we do this automatically or provide users API to do this?
23:11:49  <indutny>btw, current API for sessionStorage is: require('tls').createServer({ sessionStorage: {size: [optional size], timeout: [optional timeout in nanoseconds]}, ...).listen()
23:12:04  <isaacs>indutny: my gut would be that it should be done automatically, but tunably
23:12:19  <isaacs>like, a variable you can tweak to make it happen more or less
23:12:29  <isaacs>but, that's pretty fancy
23:12:33  <isaacs>an un-fancy way is fine,too
23:12:38  <isaacs>or just do it automatically and see who complains
23:13:00  <indutny>isaacs: ok, sounds good to me
23:13:13  <isaacs>if you're opting in to using a session storage, then maybe we could say that it's your responsibility to manage it
23:13:18  <isaacs>so an api is ok.
23:13:35  <isaacs>we can call that api automatically if it gets really extreme, i guess
23:13:50  <piscisaureus_>isaacs: yeah - found another issue as well :-)
23:13:52  <isaacs>10k objects is not THAT much, really
23:14:08  <isaacs>piscisaureus_: so, how about this: i'm gonna land this realpath test.
23:14:12  <indutny>isaacs: ok
23:14:16  <isaacs>piscisaureus_: when you make the shim no longer necessary,take it out.
23:14:19  <piscisaureus_>isaacs: ok, ok, cool
23:14:22  <piscisaureus_>sounds like a plan
23:14:23  <isaacs>but i don't see that as an urgent issue, really
23:14:31  <piscisaureus_>isaacs: it's easy
23:14:39  <isaacs>if people are using the path module methods, then they don't need this.
23:14:41  <piscisaureus_>isaacs: I just forgot to disable the fixup on unix :-)
23:14:48  <isaacs>oh, hahahah
23:14:52  <isaacs>yeah, that's a big deal :)
23:16:08  <CIA-108>node: isaacs master * r412c1ab / (lib/fs.js test/simple/test-fs-realpath.js): Fix test-fs-realpath on Windows - http://git.io/hpjyog
23:16:17  <isaacs>another windows test bites the dust! \o/
23:19:03  <indutny>isaacs: done https://github.com/joyent/node/pull/3441/files#L1R1057
23:19:11  <indutny>isaacs: session storage is enabled by default
23:19:23  <indutny>isaacs: but you can disable it by providing "sessionStorage": false in tls server options
23:19:28  <isaacs>ok
23:19:35  <indutny>isaacs: or you can override defaults by providing "sessionStorage": { ... }
23:19:36  <isaacs>indutny: does it automatically get managed then, as well?
23:19:46  <indutny>isaacs: do you mean cleanup?
23:19:50  <isaacs>yeah
23:19:50  <indutny>isaacs: no, it's manual
23:19:55  <isaacs>hm. that's tricky
23:20:02  <isaacs>it's opt out, but potentially leaky, then
23:20:09  <isaacs>like, you might not know it's there, and then have lots of memory usage
23:20:24  <indutny>isaacs: one session costs 8kb maximum
23:20:31  <isaacs>ok, i'll shut up then
23:20:34  <indutny>isaacs: 8kb * 10000
23:20:36  * benviequit
23:20:55  <isaacs>and we're limiting that to 10,000 sessions?
23:21:14  <indutny>yes
23:21:18  <isaacs>k.
23:21:26  <isaacs>can you set the max number of sessions in that sessionStorage field?
23:21:32  <indutny>yes
23:21:41  <indutny>but that doesn't work like backlog
23:21:45  <indutny>it's a hashmap's space size
23:21:46  <isaacs>sounds very reasonable
23:21:57  <indutny>so actual number of sessions could be less
23:22:00  <isaacs>right
23:22:12  <isaacs>that's fine, as long as it's documented and can be modified, that's all i really care about
23:22:27  <indutny>yeah
23:22:29  <isaacs>bnoordhuis or ryah should +1 it. or pquerna if he feels like getting involved :)
23:22:35  <indutny>haha
23:22:44  <indutny>yes, it needs a good C++/OpenSSL review
23:23:05  <isaacs>how's performance with it?
23:23:17  <indutny>isaacs: well, it's hard to create good benchmark
23:23:32  <indutny>isaacs: `ab` doesn't reuse tls sessions
23:23:32  <isaacs>hm. yeah, i guess, it's a bit tricky
23:23:53  <indutny>isaacs: but with simple loop in bash 'openssl s_client -connect localhost:8081 -sess_in outfile -sess_out outfile -ssl3' was doing 28 req/s w/o my patch
23:24:00  <indutny>and 36 req/s with my
23:24:42  <isaacs>well, bigger is better :)
23:24:55  <indutny>hahah
23:24:56  <indutny>sure
23:25:28  <isaacs>can you share the patch in teh comments on https://github.com/joyent/node/issues/2846?
23:25:28  <indutny>though performance of non-reused sessions is still bad
23:25:37  <indutny>yes, will do
23:25:42  <isaacs>maybe one of the people complaining about it would be able to see if it helps them
23:30:10  <piscisaureus_>isaacs: could it be that test-fs-realpath doesn't clean up test/tmp/a
23:30:16  <piscisaureus_>isaacs: if I run it twice in a row I get
23:30:27  <isaacs>piscisaureus_: it relies on the test runner to destroy that folder
23:30:33  <piscisaureus_>isaacs: ok, right
23:30:52  <isaacs>piscisaureus_: but, yeah, it probably ought to clean stuff up
23:30:58  <isaacs>a lot of tests do that
23:34:08  <CIA-108>node: Bert Belder trythis * r4da267b / (lib/fs.js test/simple/test-fs-realpath.js): windows: make symlinks tolerant to forward slashes - http://git.io/UzSr2Q
23:34:09  <piscisaureus_>^-- isaacs ?
23:34:24  <piscisaureus_>isaacs: works for me - I just hope it doesn't break unix :-)
23:34:31  <piscisaureus_>very unlikely thp
23:34:33  <piscisaureus_>*tho
23:36:31  <isaacs>lgtm
23:36:46  <piscisaureus_>somehow Ryah's "crowdsourced benchmark" tweet resurrected
23:36:55  <piscisaureus_>zomie tweet
23:38:12  <isaacs>oh, i retweeted it
23:38:16  <isaacs>(again)
23:38:32  <CIA-108>node: Bert Belder master * r13400e3 / (lib/fs.js test/simple/test-fs-realpath.js): windows: make symlinks tolerant to forward slashes - http://git.io/Ixpscw
23:38:38  <isaacs>everyone who sees it will see how much faster 0.8 is than 0.6
23:38:56  <piscisaureus_>we picked the wrong benchmark for that
23:39:02  <piscisaureus_>you should have benchmarks /12345
23:39:04  <piscisaureus_>:-)
23:39:04  <isaacs>it's guerrilla marketing with social media campaign and big data
23:39:07  <isaacs>chinamarket
23:39:09  <isaacs>html5
23:39:13  <piscisaureus_>html6
23:39:19  <chilts>CSS3!
23:39:21  <isaacs>mobile
23:39:23  <piscisaureus_>web 4.0
23:39:24  <isaacs>m2m
23:39:32  <chilts>webscale and DIRT
23:39:36  <isaacs>:D
23:39:45  * isaacsregretting what i started...
23:39:49  <chilts>heh
23:39:55  <isaacs>that's the problem with social marketing, it goes viral
23:39:59  * isaacsomg make it stop
23:40:02  <piscisaureus_>appification
23:40:05  <isaacs>LOL
23:40:21  <piscisaureus_>huge data
23:40:34  <piscisaureus_>thunderclouds
23:40:54  <chilts>isaacs: sorry, I had to : https://twitter.com/andychilton/status/213415488682852353
23:41:50  <chilts>heh, lovely
23:43:29  <AvianFlu>lol, 'thunderclouds'
23:46:12  <bnoordhuis>indutny: is a hash much faster than a binary tree or what have you?
23:46:30  <indutny>bnoordhuis: it's much faster in implementation
23:46:32  <indutny>:P
23:46:47  <bnoordhuis>i mean, everything is located on the heap anyway
23:47:01  <bnoordhuis>a little more pointer chasing won't have much impact
23:47:08  <bnoordhuis>(i assume)
23:48:21  <indutny>bnoordhuis: well, we may port it to some rb-tree or splay-tree eventually
23:48:40  <indutny>bnoordhuis: probably, I'll do it on weekend
23:48:44  <bnoordhuis>indutny: it's not a big issue, just curious
23:48:46  <indutny>just wanted to prototype something really fast
23:48:54  <bnoordhuis>indutny: that cleanup stuff in GetIndex() makes me kind of nervous though
23:48:56  <indutny>nginx is using rb tree
23:49:02  <indutny>writing up reply
23:49:05  <bnoordhuis>cool
23:49:18  * einarosquit (Quit: leaving)
23:49:23  <bnoordhuis>i'll reply tomorrow, i'm off to bed :)
23:49:27  <bnoordhuis>sleep tight
23:49:31  <indutny>bnoordhuis: sleep tight, thanks
23:49:34  * hitherequit (Remote host closed the connection)
23:51:50  * pieternquit (Ping timeout: 244 seconds)
23:53:03  * avalanch_joined
23:53:27  * iraquit (Quit: Textual IRC Client: http://www.textualapp.com/)
23:53:57  * bnoordhuisquit (Ping timeout: 246 seconds)
23:54:19  * einarosjoined
23:54:21  <indutny>ok, I'm off to bed too
23:54:27  <indutny>ttyl guys
23:54:32  <indutny>piscisaureus_: sleep tight ;)
23:54:44  <isaacs>g'nite
23:54:47  <isaacs>TooTallNate: Hey
23:55:07  <TooTallNate>yo
23:55:13  <isaacs>TooTallNate: what do you think about just overriding removeAllListeners on tty.ReadStream objects?
23:55:34  <TooTallNate>O.o
23:55:34  <piscisaureus_>indutny: you too
23:55:54  <isaacs>TooTallNate: it seems like that's the only area where we actually want to ensure that the array doesn't get deleted ever
23:55:57  <piscisaureus_>isaacs: bad... baaad
23:56:07  <isaacs>why?
23:56:19  <piscisaureus_>isaacs: you have to keep the API predictable and consistent
23:56:23  <isaacs>overriding methods is one of the core things that you do in OOP
23:56:26  <TooTallNate>isaacs: let's just fix emitKeypressEvents then
23:56:33  <TooTallNate>isaacs: it's a 2 line patch
23:56:36  <TooTallNate>one sec
23:56:51  <isaacs>i really want to revert this removeAllListeners change.
23:56:54  <piscisaureus_>isaacs: are we going to do the "removeAllListeners deletes teh array" thing?
23:57:00  <isaacs>it's so subtle, and hard to even really explain to people
23:57:04  <isaacs>piscisaureus_: yes, the way it's done in 0.6
23:57:06  <isaacs>we dont' have to change it
23:57:08  <piscisaureus_>meh
23:57:13  * piscisaureus_cries
23:57:18  <isaacs>rather, changing it is unnecessarily expensive for what it actually does
23:57:41  <piscisaureus_>I am pretty sure that people will now start complaining the other way around :-)
23:57:47  <isaacs>piscisaureus_: you can do this in your code pretty easily: ee.listeners('foo').splice(0)
23:57:59  <isaacs>piscisaureus_: no, they won't, because they're all already using 0.6, and not complaining about this
23:58:04  <piscisaureus_>isaacs: yes, exactly
23:58:13  <piscisaureus_>isaacs: that's why we don't need this change
23:58:29  <isaacs>piscisaureus_: we need to revert the new behavior that bnoordhuis and TooTallNate added in master.
23:58:38  <piscisaureus_>aah
23:58:38  <isaacs>that's the change we need. a change back :)
23:58:48  <piscisaureus_>lemme see
23:59:07  <isaacs>piscisaureus_: i've noticed there's a lot of boolean logic in our discussions lately ;)
23:59:21  <piscisaureus_>isaacs: yes, I was right.
23:59:28  <isaacs>we need to not not undo the thing we didn't do about deleting the thing we should keep!
23:59:35  <piscisaureus_>isaacs: I agree with the change that TooTallNate and bnoordhuis did
23:59:36  <isaacs>revert revert reapply revert!
23:59:47  <isaacs>piscisaureus_: so, you want the array to remain consistent, forever.