00:00:00  <piscisaureus_>isaacs: yessir
00:00:25  <piscisaureus_>isaacs: because... people can quite easily do ee.listeners('foo').slice(0)
00:00:34  <isaacs>ee = new EventEmitter; ee.on('ev', fucntion(){}); x = ee.listeners('ev'); ee.removeAllListeners('ev'); x.length
00:00:40  <isaacs>piscisaureus_: but they aren't already doing that.
00:00:43  <isaacs>it's a change.
00:00:50  <isaacs>x.length should return 1 in that example.
00:00:56  <isaacs>that's how it was on 0.4 and0.6
00:01:01  * mjr_quit (Quit: mjr_)
00:01:02  <isaacs>and we've put in the docs that events.js is frozen
00:01:02  <piscisaureus_>isaacs: was it really in 0.4?
00:01:10  <isaacs>i believe so.
00:01:12  <piscisaureus_>I have a big tolerance for how stuff was in 0.4
00:01:28  <piscisaureus_>isaacs: however, we sort of guarantee that that listeners() remains consistent
00:01:59  <isaacs>yep
00:02:02  <isaacs>$ node
00:02:03  <isaacs>> var EE = require('events').EventEmitter
00:02:03  <isaacs>> var e = new EE()
00:02:04  <isaacs>> e.on('ev', function () {})
00:02:06  <isaacs>{ _events: { ev: [Function] } }
00:02:08  <isaacs>> x = e.listeners('ev')
00:02:10  <isaacs>[ [Function] ]
00:02:10  <piscisaureus_>isaacs: ee = new EventEmitter(); listeners = ee.listeners('ev'); ee.on('ev', ..); ee.length; //1
00:02:12  <isaacs>> e.removeAllListeners('ev')
00:02:14  <isaacs>{ _events: { ev: null } }
00:02:16  <isaacs>> x.length
00:02:18  <isaacs>1
00:02:20  <isaacs>> process.version
00:02:22  <isaacs>'v0.4.12'
00:02:30  <piscisaureus_>meh
00:02:44  <piscisaureus_>maybe we should just drop this consistency thing altogether
00:03:02  <piscisaureus_>PHP problems this
00:03:06  <TooTallNate>isaacs: if we are going to revert the removeAllListeners() behavior, then we at least should apply https://github.com/TooTallNate/node/compare/emitKeypressEvents-dont-cache-the-keypress-listeners
00:03:07  <isaacs>piscisaureus_: absent some very very compelling reason why this is actually a bug, removeAllListeners needs to maintain the same behavior.
00:03:19  <piscisaureus_>api fuckup, stick to it forever :-(
00:03:37  <isaacs>piscisaureus_: i'm not convinced this is a fuckup
00:03:56  <isaacs>or actually, to the extent that it is, the fuckup is exposing that array in the first place.
00:03:56  <piscisaureus_>isaacs: when was our parking lot appointment again?
00:03:59  <isaacs>hahah
00:04:02  <piscisaureus_>isaacs: I agree
00:04:05  <isaacs>i thought it was pistols at dawn
00:04:13  <piscisaureus_>isaacs: listeners() should just return a copy
00:04:20  <piscisaureus_>that would be +2 from me
00:04:35  <isaacs>the point isn't that we should maintain consistency forever regardless, the point is that api chagnes to events.js are stupidly expensive for us and our users.
00:04:43  <piscisaureus_>as opposed to change that will now be reverted - that is +.5
00:05:19  <isaacs>TooTallNate: yes, that patch is very much the common pattern for checking if there are listeners or not
00:05:39  <isaacs>piscisaureus_: let's investigate making listeners() return a copy for v0.9
00:05:42  * isaacsoff to log it
00:05:49  <piscisaureus_>isaacs; ok
00:05:52  <piscisaureus_>isaacs: I am also off
00:06:00  <piscisaureus_>moar tomorrow
00:06:14  <piscisaureus_>Goodbye all
00:06:51  <TooTallNate>piscisaureus_: later
00:07:21  <isaacs>piscisaureus_: go +1 this, then :) https://github.com/joyent/node/issues/3442
00:07:46  <isaacs>or +2 it, i guess :)
00:07:48  * xaqquit (Remote host closed the connection)
00:07:57  <piscisaureus_>done
00:08:27  <isaacs>TooTallNate: so, the reason for this change, then, is that you get to not call listeners() repeatedly?
00:08:27  <piscisaureus_>ok
00:08:29  <piscisaureus_>ttyl
00:08:33  <isaacs>g'nite :)
00:08:34  <isaacs>thanks
00:08:50  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
00:09:05  * mjr_joined
00:09:40  <TooTallNate>isaacs: you just can't rely on caching the array returned from listeners; if it's volatile you need to use it immediately
00:10:20  <isaacs>TooTallNate: the problem is that a = ee.listeners('ev'); ee.removeAllListeners('ev') <-- empties a as well
00:10:27  <isaacs>whereas before it didn't.
00:11:36  <TooTallNate>isaacs: the new behavior allowed you to be sure that calling .listeners('') would be the same array 100% of the time, so you could cache it
00:11:44  <isaacs>right
00:11:55  <TooTallNate>isaacs: but if we're gonna refer this new stuff, then we have to be sure we're not relying on that behavior
00:12:03  * mjr_quit (Client Quit)
00:12:18  <TooTallNate>this emitKeypressEvents has been like that for ages, so that's part of why we changed it
00:12:51  <TooTallNate>so i say revert it, and apply this readline patch
00:13:16  <isaacs>it looks like readline is the only place we cache it anyway
00:13:28  <isaacs>including many hot paths, where we do stuff like req.listeners(eventType).length repeatedly
00:13:58  * hzjoined
00:14:01  <hz>hello
00:14:58  <hz>im a msvc user.. stdint.h is missing
00:15:11  <TooTallNate>hz: are you using msvc 2010?
00:15:16  <hz>2008
00:15:39  <TooTallNate>ya… you need 2010… that or get that msstdint.h file from the internet
00:16:20  <hz>why authors can include msstdint.h into their repo?
00:16:23  <hz>cant
00:16:52  <TooTallNate>isaacs: ya the caching isn't necessary for performance or anything, plus it's just "keypress" anyways
00:17:12  <isaacs>right
00:17:15  <isaacs>not a hot path
00:17:22  <isaacs>if we're not caching in http, clearly this is premature optimization
00:17:23  <hz>i would like to make a c++ port of libuv
00:21:17  * ericktquit (Ping timeout: 244 seconds)
00:22:42  <isaacs>TooTallNate: writing the doc now, i'll have a review request in a sec
00:24:48  <isaacs>TooTallNate: also, it'd be nice to have something like emitter.has('ev') that would return true or false
00:25:06  <isaacs>TooTallNate: in core, we almost always use listeners() to do if (emitter.listeners(event).length) { ... }
00:25:19  <TooTallNate>indeed
00:25:21  <TooTallNate>+1
00:25:39  <TooTallNate>i was gonna mention .count() or something, but .has() is probably a better use case
00:25:51  <TooTallNate>rather… the only use case :D
00:26:13  <isaacs>TooTallNate: https://github.com/isaacs/node/compare/GH-3431
00:27:08  <isaacs>tests pass
00:27:22  <isaacs>just looking for a +1 on the docs, i guess ;)
00:27:53  <TooTallNate>isaacs: ya, LGTM :)
00:28:05  <CIA-108>node: Reid Burke master * rc9a1b5d / (2 files in 2 dirs): Fix #3425: removeAllListeners should delete array - http://git.io/hQMzFQ
00:28:05  <CIA-108>node: Nathan Rajlich master * r032fc42 / lib/readline.js : readline: don't cache the "keypress" listeners - http://git.io/MHTyjA
00:28:06  <CIA-108>node: isaacs master * re72addc / doc/api/events.markdown : event: Document the mutability of listeners() - http://git.io/NAgqJQ
00:29:25  * toothrquit (Ping timeout: 240 seconds)
00:33:01  * toothrjoined
00:35:08  * hzquit
00:40:17  * pieternjoined
00:40:44  * pieternquit (Remote host closed the connection)
00:41:24  * pieternjoined
00:51:49  * hzjoined
00:54:49  * hzquit (Client Quit)
01:10:37  * dapquit (Quit: Leaving.)
01:21:26  * isaacsquit (Remote host closed the connection)
01:27:53  * toothrquit (Read error: Connection reset by peer)
01:37:14  * brsonquit (Ping timeout: 244 seconds)
01:38:35  * toothrjoined
01:49:11  * brsonjoined
02:02:19  * ericktjoined
02:12:23  * hij1nxquit (Quit: hij1nx)
02:16:02  * avalanche123quit (Ping timeout: 246 seconds)
02:16:06  * avalanch_changed nick to avalanche123
02:20:12  * bulatshakirzyanojoined
02:20:38  * avalanche123quit (Quit: Computer has gone to sleep.)
02:20:40  * bulatshakirzyanochanged nick to avalanche123
02:25:10  * irajoined
02:27:21  * avalanche123quit (Ping timeout: 244 seconds)
02:30:45  * avalanche123joined
02:36:32  * c4milojoined
02:48:30  * AvianFluquit (Quit: This computer has gone to sleep)
02:49:34  * avalanche123quit (Ping timeout: 244 seconds)
02:51:07  * pieternquit (Ping timeout: 244 seconds)
02:55:06  * avalanche123joined
03:07:13  * avalanche123quit (Quit: Leaving...)
03:23:16  * brsonquit (Ping timeout: 248 seconds)
03:34:35  * AvianFlujoined
03:36:37  * isaacs_joined
03:37:22  * isaacs_changed nick to isaacs
03:46:31  * c4miloquit (Remote host closed the connection)
03:54:20  * brsonjoined
03:59:37  * isaacsquit (Disconnected by services)
04:00:19  * isaacs_joined
04:01:00  * ericktquit (Quit: erickt)
04:05:05  * iraquit (Quit: Leaving...)
04:07:45  * isaacsjoined
04:22:17  * xaqjoined
04:31:54  * isaacs_quit (Quit: dies)
04:54:12  * benviejoined
04:57:40  * xaqquit (Remote host closed the connection)
05:18:48  <CIA-108>node: isaacs master * r283d735 / doc/api/zlib.markdown : doc: Include zlib constants - http://git.io/6o83Fw
05:31:03  * paddybyersjoined
05:45:09  * TooTallNatequit (Quit: Computer has gone to sleep.)
06:03:28  * paddybyersquit (Quit: paddybyers)
06:57:28  * stephankquit (Quit: *Poof!*)
06:59:51  * rendarjoined
07:06:53  <indutny>tls performance make kittens cry
07:33:10  * paddybyersjoined
07:37:08  * AvianFlupart ("Leaving")
07:40:09  * paddybyersquit (Quit: paddybyers)
07:45:36  * paddybyersjoined
07:46:17  * paddybyers_joined
07:47:06  * loladirojoined
07:47:56  * loladiroquit (Client Quit)
07:49:45  * paddybyersquit (Ping timeout: 244 seconds)
07:49:45  * paddybyers_changed nick to paddybyers
07:59:08  * rendarquit
08:00:57  * rendarjoined
08:00:58  * rendarquit (Excess Flood)
08:01:07  * mmaleckiquit (Ping timeout: 244 seconds)
08:01:16  * rendarjoined
08:01:18  * rendarquit (Excess Flood)
08:01:36  * rendarjoined
08:20:52  * brsonquit (Remote host closed the connection)
08:31:32  * hzjoined
09:30:07  * hij1nxjoined
09:51:13  * hij1nxquit (Quit: hij1nx)
10:03:28  * paddybyersquit (Quit: paddybyers)
10:09:46  * hij1nxjoined
10:10:40  * paddybyersjoined
10:18:47  <indutny>pquerna: ping
10:22:55  * mmaleckijoined
10:37:28  * abraxasquit (Remote host closed the connection)
10:40:24  * mmaleckiquit (Ping timeout: 240 seconds)
10:42:34  * \toothrotjoined
10:42:55  * hij1nxquit (Quit: hij1nx)
10:44:54  * toothrquit (Ping timeout: 240 seconds)
10:49:56  * hij1nxjoined
11:02:12  * paddybyersquit (Quit: paddybyers)
11:20:31  * hij1nxquit (Quit: hij1nx)
11:31:57  * hij1nxjoined
11:49:17  * mmaleckijoined
12:03:20  * paddybyersjoined
12:05:40  * loladirojoined
12:10:07  * piscisaureus_joined
12:10:30  * loladiro_joined
12:13:46  * loladiroquit (Ping timeout: 244 seconds)
12:13:46  * loladiro_changed nick to loladiro
12:13:57  * irajoined
12:19:57  * hij1nxquit (Quit: hij1nx)
12:20:25  * bnoordhuisjoined
12:28:49  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
12:30:44  * hij1nxjoined
12:30:52  * piscisaureus_joined
12:31:56  * \toothrotquit (Quit: here we are)
12:33:15  * toothrjoined
12:37:03  * theColejoined
12:40:38  * loladiroquit (Ping timeout: 244 seconds)
12:43:41  * loladirojoined
12:56:30  <indutny>bnoordhuis: hey man
12:56:39  <bnoordhuis>indutny: ho man
12:56:57  <indutny>bnoordhuis: have you seen this https://github.com/joyent/node/issues/2846#issuecomment-6353947 ?
12:57:38  <bnoordhuis>indutny: interesting
12:58:03  <bnoordhuis>i could've told you that about apache's ssl impl though :)
12:58:13  <indutny>hahaha
12:58:18  <indutny>bnoordhuis: well, anyway
12:58:28  <indutny>bnoordhuis: I'm going to stub out async handshake support
12:58:32  <bnoordhuis>cool
12:58:40  <bnoordhuis>from inside the thread pool or ?
12:58:45  <indutny>bnoordhuis: yes
12:58:55  <indutny>bnoordhuis: from uv_work_t request
12:58:57  <bnoordhuis>okay, rad
12:59:27  <bnoordhuis>you may need to tweak the thread pool, there are only a couple of worker threads now
12:59:43  <indutny>well, if I'll get it working - I'll look into it
13:00:12  <indutny>isaacs: do you think it can be merged in 0.8.0 once I'll finish it?
13:00:30  <indutny>I don't mind to put into 0.9, just asking you know
13:08:45  <bnoordhuis>it's a pretty radical change, i'd hold it off until after the release
13:25:29  * kolektivjoined
13:25:45  <kolektiv>hi all. apologies that this may well be dumb...
13:25:55  <kolektiv>i'm trying to fix a 3rd party lib!
13:26:32  <kolektiv>they're calling delete &message_async;
13:26:46  <kolektiv>where &message_async is uv_async_t
13:27:01  <kolektiv>but, it crashes when &message_async has never been assigned
13:27:31  <kolektiv>(pointer being freed not allocated)
13:27:49  <kolektiv>so, how can i put a check in to only delete if it's allocated?
13:28:04  <kolektiv>(as i say, dumb, but i'm not a c/c++ programmer!)
13:28:15  <kolektiv>grateful for any help :)
13:30:28  <indutny>kolektiv: can you please post some parts of code that's causing problems
13:30:34  <indutny>it's not really clear from your messages
13:30:58  <kolektiv>ok, hang on, will create a gist
13:31:41  <kolektiv>or instead: https://github.com/kolektiv/node-midi/blob/master/src/node-midi.cpp
13:31:50  <kolektiv>line 190
13:32:22  <kolektiv>will cause an error if nothing has ever registered a callback
13:32:33  <kolektiv>(for example, line 229)
13:32:50  <indutny>this code is very odd
13:33:04  <indutny>why are you doing this?
13:33:13  <kolektiv>it's not my code, sadly
13:33:23  <kolektiv>it's a wrapper around rtmidi for nodejs
13:33:52  <kolektiv>i've diagnosed it, just don't know what to type to fix it!
13:34:13  <kolektiv>(i.e. if you never make a callback it'll crash unless that line is gone)
13:34:27  <kolektiv>with a callback it's fine, because &message_async "exists"
13:34:55  <kolektiv>c++ has never been my thing
13:34:55  <kohai>c has 14 beers
13:34:56  <indutny>kolektiv: message_async always exists as it is a part of your NodeMidiInput class
13:34:58  <indutny>it's not a pointer
13:35:07  <kolektiv>hmmmm
13:35:10  <indutny>you're trying to free memory that was never allocated
13:35:21  <kolektiv>with the "delete" call?
13:35:27  <indutny>you can "delete" things only if they were allocated with "new"
13:35:33  <indutny>kolektiv: with any call
13:35:42  <indutny>kolektiv: why do you need to delete it?
13:35:44  <kolektiv>yes, i see what you mean
13:36:13  <kolektiv>indutny: i honestly don't know! as i say, i didn't write this code. i presume it would be a resource leak otherwise...
13:36:25  <indutny>kolektiv: no, it won't be
13:36:37  * hij1nxquit (Quit: hij1nx)
13:36:44  <kolektiv>but it would be if it had been allocated?
13:37:06  <kolektiv>(which it "sometimes" would have been, i presume in the call to uv_async_send)
13:37:07  <indutny>kolektiv: it can't be allocated :)
13:37:23  <kolektiv>indutny: ok :)
13:37:31  <kolektiv>so that line is *always* pointless?
13:37:34  <indutny>yes
13:37:37  <kolektiv>haha
13:37:39  <kolektiv>right
13:37:49  <indutny>it's not just pointless, but it's incorrect
13:38:20  <kolektiv>for my curiosity, why would it not crash sometimes? i.e. after calls like uv_async_send(&input->message_async);
13:39:13  * hij1nxjoined
13:40:02  * kolektivhas not written c for years, and avoids c++
13:40:06  <kolektiv>:)
13:55:52  <tjfontaine>I was happy that node-midi used rtmidi, but I wasn't thrilled with their implementation, I just haven't got around to doing my own yet
13:56:29  * xaqjoined
13:56:57  <kolektiv>tjfontaine: if you ever do get round to it, let me know! at the moment i'm building on node-midi but am considering alternatives
13:57:37  <kolektiv>(current alternative - write some decent bindings to coremidi in go)
13:57:50  <kolektiv>want to avoid that though for now! quite a bit of work
14:02:09  <kolektiv>(also i'm not a total fan of rtmidi - seems to lose quite a lot in the abstractions)
14:02:57  <tjfontaine>it's a bit too in love with std::
14:04:25  * c4milojoined
14:05:07  <kolektiv>anything which tries to work with coremidi, win32 winmm and ALSA has my sympathy and admiration if it gets anywhere though to be fair :)
14:25:40  * AvianFlujoined
14:29:59  * theColequit (Quit: theCole)
14:30:45  * theColejoined
14:36:59  * theColequit (Quit: theCole)
14:42:12  * \toothrotjoined
14:43:05  * hij1nxquit (Quit: hij1nx)
14:43:25  * toothrquit (Ping timeout: 240 seconds)
14:49:04  <CIA-108>libuv: Ben Noordhuis master * rcc7c854 / (15 files in 7 dirs): unix, windows: add stat() based file watcher - http://git.io/ow6htg
14:49:04  <CIA-108>libuv: Ben Noordhuis master * r5ff2b61 / src/fs-poll.c : unix: stat: detect sub-second changes on linux - http://git.io/hi7fGQ
14:49:04  <CIA-108>libuv: Ben Noordhuis master * r7ca524e / src/fs-poll.c : unix: stat: detect sub-second changes on darwin - http://git.io/y-9adw
14:49:12  * theColejoined
14:49:52  * loladiroquit (Quit: loladiro)
14:51:02  * travis-cijoined
14:51:02  <travis-ci>[travis-ci] joyent/libuv#421 (master - 7ca524e : Ben Noordhuis): The build passed.
14:51:02  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/9a3dff35c019...7ca524e133b1
14:51:02  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1628483
14:51:02  * travis-cipart
14:54:25  * sh1mmerquit (Quit: sh1mmer)
15:08:18  * txdvquit (Read error: Connection reset by peer)
15:11:34  * txdvjoined
15:24:40  * bnoordhuisquit (Remote host closed the connection)
15:29:42  <isaacs>Good day-parts.
15:38:53  <isaacs>ircretary: tell bnoordhuis to ping me when he comes back
15:38:54  <ircretary>isaacs: I'll be sure to tell bnoordhuis
15:42:03  * bnoordhuisjoined
15:42:56  <bnoordhuis>isaacs: pong
15:47:29  <isaacs>hey
15:47:49  <isaacs>where are you at with the libev exports change?
15:53:55  <isaacs>bnoordhuis: ie, should i hold off on this build, or will be be longer, are there problems, etc.
15:54:52  * theColequit (Quit: theCole)
15:56:25  * paddybyersquit (Quit: paddybyers)
15:58:34  * paddybyersjoined
15:58:47  * stephankjoined
16:03:09  <bnoordhuis>isaacs: no problems as such, i haven't had the time yet
16:08:39  <isaacs>bnoordhuis: ok. what needs to happen for that to get done? can you explain the approach in an issue or something?
16:09:00  <isaacs>it's currently the only thing holding back 0.8, and i'd really like to get it into a 0.7 build first if at all possible.
16:11:40  * xaqquit (Remote host closed the connection)
16:23:12  * toothrjoined
16:24:24  * \toothrotquit (Ping timeout: 240 seconds)
16:30:34  * loladirojoined
16:35:23  <CIA-108>node: Bert Belder master * r8ccb3cb / test/simple/test-domain-implicit-fs.js : test-domain-implicit-fs: make it pass on windows - http://git.io/OHNppg
16:35:25  <piscisaureus_>^-- isaacs: that acceptable to you?
16:36:57  <isaacs>piscisaureus_: so, the diff is mostly just checking the file path with a regexp instead of a string, am i reading that right?
16:37:12  <piscisaureus_>isaacs: yes
16:37:21  <piscisaureus_>isaacs: on windows. the error includes the full filename
16:37:30  <piscisaureus_>isaacs: (including path)
16:37:33  <isaacs>ahh, gotcha
16:37:35  <isaacs>yeah, that's fine.
16:37:35  <piscisaureus_>test-domains needs a similar fix
16:37:46  <piscisaureus_>but we're going out now - ttyl
16:37:51  <isaacs>piscisaureus_: in test-domains, though, it needs to keep the big switch
16:38:02  <bnoordhuis>isaacs: will do. biab
16:38:07  <isaacs>k, have fun
16:38:24  <piscisaureus_>isaacs: that's unfortunate - I don't see any compelling reason to change the error message
16:38:26  <piscisaureus_>on windows
16:38:32  <piscisaureus_>anyway
16:38:32  <piscisaureus_>later
16:38:42  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
16:38:58  * ericktjoined
16:43:21  * bnoordhuisquit (Ping timeout: 244 seconds)
16:45:36  <CIA-108>node: isaacs master * ra111390 / lib/zlib.js : zlib: use Buffer.concat() - http://git.io/XpEmmg
16:45:37  <CIA-108>node: Ben Kelly master * rc6185c8 / (11 files): doc: Improve cross-linking in API docs markdown - http://git.io/6mpwfA
16:50:07  <CIA-108>node: Andreas Madsen master * r1e0ce5d / (9 files): domain: the EventEmitter constructor is now always called in nodecore - http://git.io/pgcVNw
16:57:03  * loladiroquit (Read error: Connection reset by peer)
16:57:09  * loladiro_joined
17:01:31  <CIA-108>node: isaacs master * r911b0fd / (188 files in 30 dirs): Upgrade npm to 1.1.26 - http://git.io/exlqQw
17:02:26  * irapart ("Leaving...")
17:12:24  * TooTallNatejoined
17:21:51  * hij1nxjoined
17:30:55  <isaacs>TooTallNate: do you know when eio_custom's signature changed?
17:31:09  <isaacs>TooTallNate: it started requiring a "channel" arg, some time between 0.6 and master
17:31:13  <isaacs>not sure where or why, though.
17:31:42  * brsonjoined
17:33:04  <TooTallNate>isaacs: well i know it did once in between 0.5.5 and 0.5.6
17:33:09  <TooTallNate>i guess it did again
17:33:24  <TooTallNate>but i've moved on to uv_queue_work completely
17:33:26  * theColejoined
17:33:38  <isaacs>yeah
17:33:41  <TooTallNate>for a while now actually
17:34:12  <isaacs>yeah
17:34:20  <isaacs>i've got folks trying to use 0.7 and complaining about this
17:35:21  <TooTallNate>i mean any ev/eio api's have been deprecated in my mind since v0.6
17:35:42  <TooTallNate>i mean, they won't work with windows, etc.
17:35:44  <isaacs>TooTallNate: well, deprecating is one thing. but they're broken.
17:35:48  <TooTallNate>they should really just update their module
17:35:51  <isaacs>TooTallNate: true.
17:36:07  <TooTallNate>short of that, what else can we do?
17:36:09  <isaacs>TooTallNate: but we have to acept that every instance of "they should really just" is a cost
17:37:36  * milanijoined
17:38:47  <mcavage>since isaacs is speaking on my behalf -> people can go update their module, but I don't really see how that's helpful for an 0.8 release. i.e., that API existed in 0.6, and things are dependent on it. I think it's fine to say it's deprecated and break it in the next release cycle, but it's really not great that it's painful to go from 0.6 -> 0.8.
17:39:24  <TooTallNate>mcavage: but the same thing happened from v0.4 to v0.6, the eio_custom() signature changed then as well
17:39:29  <TooTallNate>from returning int to void
17:39:41  <mcavage>yeah, and it was painful then too.
17:39:53  <TooTallNate>which is why i wrote https://gist.github.com/1368935
17:40:38  <TooTallNate>mcavage: at least this time when you update you get windows support (potentially) as well
17:40:48  <milani>it would be nice to have a guide for moving from 0.6 to 0.8 in node blog
17:41:29  <milani>like explaining broken signatures and their equivalent.
17:44:26  <mcavage>TooTallNate: I get it. I'm not actually opposed to moving my module from eio_ uv_ -> i mean, it's not like a hard code change. it's more just a general sentiment that there's a lot of care to not break JS apis release to release, but not so much the native side. There's a lot of c++ code out there on eio_custom that's going to get a shock at 0.8.
17:46:33  <TooTallNate>but we do break the JS api as well :)
17:46:56  <TooTallNate>i suppose they go through a little more formal of a deprecation process though
17:47:04  <TooTallNate>(usually)
17:47:14  <isaacs>right
17:47:18  <TooTallNate>mcavage: i mean, what do you propose though?
17:47:22  <isaacs>first we warn, then in the next stable release, we delete.
17:47:46  <isaacs>mcavage: the real problem is that we did not clearly message the deprecation.
17:47:58  <isaacs>mcavage: using eio_* or ev_* should have warned at compile time in 0.6, but didn't.
17:47:59  <mcavage>TooTallNate: provide some backwards compatible shims in 0.8 for the eio_ ev_ stuff that people are dependent on. mark it deprecated. spew to stderr if you want, and take it away in 1.0.
17:48:02  <isaacs>so, here we are.
17:48:13  <isaacs>mcavage ++
17:48:14  <kohai>mcavage has 1 beer
17:48:34  <TooTallNate>sounds fine to me
17:48:41  <mcavage>awesome :)
17:48:49  <TooTallNate>we'll have to edit the ev.h file though, since that's what people usually #include
17:48:57  <isaacs>TooTallNate: Can you update the 0.8 changes doc to reflect the changed signatures that you know about?
17:49:08  <isaacs>TooTallNate: maybe just a link to "How to migrate from eio_custom to uv_work" etc.
17:49:16  <mcavage>well, thankfully, node statically links and exports everything, so it's not like you're dependent on /usr/include ;)
17:49:29  <pquerna>indutny: pong
17:50:35  <tjfontaine>><
18:08:28  * paddybyersquit (Quit: paddybyers)
18:16:26  * sh1mmerjoined
18:17:39  * hzquit (Read error: Connection reset by peer)
18:18:06  * hzjoined
18:20:17  <TooTallNate>isaacs: node-gyp v0.5.1 (just published) contains the log.heading thing
18:20:26  <isaacs>sweet
18:20:34  <isaacs>i just patched that in the one npm's using anyway
18:20:45  <TooTallNate>oh ok
18:20:59  <TooTallNate>it also spawn up the given python to ensure that it's not version 3
18:21:08  <isaacs>nice
18:21:10  <TooTallNate>fail early, rather then run gyp and get a syntax error
18:21:26  <isaacs>yep
18:21:30  <isaacs>TooTallNate ++
18:21:30  <kohai>TooTallNate has 13 beers
18:21:35  <indutny>pquerna: pang
18:21:58  <indutny>pquerna: do you think that moving SSL_read, SSL_write to worker threads could improve performance of node.js TLS server?
18:22:20  <isaacs>test, please! http://nodejs.org/dist/v0.7.11/node-v0.7.11-RC0.tar.gz
18:23:30  <pquerna>indutny: performance of handshakes yes, performance of things like rc4 or aes with an aes-ni CPU, much more doubtful
18:23:52  <pquerna>so in away, you want to parallel the first ssl_read/write, then after that not :x
18:24:20  <indutny>pquerna: yeah, right before handshake end
18:24:28  <indutny>pquerna: thanks for a tip
18:24:31  <isaacs>indutny: i slept on it, and i think that putting your new SSL stuff into 0.8 is way too risky
18:24:41  <indutny>isaacs: indeed
18:24:42  <isaacs>indutny: but we should make it an early 0.9 enhancement
18:24:42  <indutny>:)
18:24:49  <isaacs>if it was a month ago, it'd be possible.
18:24:58  <isaacs>it's exciting, for sure :)
18:25:21  <indutny>well, have you seen my comment on it?
18:25:41  <indutny>and, are we talking about session storage or parallelizing things?
18:26:22  * loladirojoined
18:26:40  <indutny>pquerna: do you think processing regular packets in various threads would impact performance?
18:27:10  * loladiro_quit (Ping timeout: 246 seconds)
18:27:11  <pquerna>indutny: i think you'd have to benchmark it; message passing between threads vs the performance of an AES-NI enabled cpu
18:27:38  <pquerna>indutny: honestly, we are just using STUD in front of our node.js processes for tls termination :-/
18:27:41  <indutny>pquerna: agreed, better test on benchmarks
18:28:03  <indutny>what is a STUD?
18:28:54  * brsonquit (Ping timeout: 240 seconds)
18:29:16  <pquerna>indutny: https://github.com/bumptech/stud
18:29:41  <indutny>oh, nice
18:32:50  * mcavagequit (Quit: Leaving.)
18:42:52  <isaacs>Three tests failing on smartos
18:43:20  <isaacs>test-fs-watch is blowing an assertion
18:43:24  <isaacs>Assertion failed: !uv__is_active(handle), file ../deps/uv/src/unix/core.c, line 124
18:43:32  <isaacs>test-child-process-fork-net is timing out
18:43:45  <isaacs>er, no, test-cluster-disconnect is timign out
18:43:55  <isaacs>test-child-process-fork-net is hitting EADDRINUSE
18:43:57  * hij1nxquit (Quit: hij1nx)
18:48:30  * loladiroquit (Ping timeout: 244 seconds)
18:48:55  * c4milo_joined
18:51:43  * c4miloquit (Ping timeout: 252 seconds)
18:53:01  * hij1nxjoined
18:53:20  <TooTallNate>https://github.com/joyent/node/wiki/How-to-migrate-from-%60eio_custom()%60-to-%60uv_queue_work()%60
18:54:15  * milaniquit (Quit: Ex-Chat)
18:56:37  * hij1nxquit (Read error: Connection reset by peer)
18:57:03  * hij1nxjoined
18:57:49  * theColequit (Quit: theCole)
19:05:20  <isaacs>TooTallNate: ++
19:05:20  <kohai>TooTallNate has 14 beers
19:05:21  <isaacs>thanks
19:05:27  <isaacs>TooTallNate: Is https://github.com/joyent/node/issues/3099 still a thing?
19:05:49  * brsonjoined
19:08:35  <isaacs>grr twitter and their handling of % in urls.
19:08:42  <isaacs>just chagned the title to remove the ` and () bits
19:11:07  * brsonquit (Ping timeout: 244 seconds)
19:14:51  * hij1nxquit (Ping timeout: 244 seconds)
19:15:06  <isaacs>osx: [02:07|% 100|+ 428|- 0]: Done
19:15:52  <AvianFlu>isaacs, I'm still seeing that lame old test-http-full-response failure on osx
19:17:22  <isaacs>AvianFlu: post an issue, please.
19:18:04  * isaacstopic: There will be delicious cake: https://github.com/joyent/node/issues?milestone=10&state=open
19:18:13  * isaacstopic: delicious cake: https://github.com/joyent/node/issues?milestone=10&state=open
19:18:43  <AvianFlu>sure
19:23:07  * brsonjoined
19:24:41  * \toothrotjoined
19:25:24  * toothrquit (Ping timeout: 240 seconds)
19:29:45  * TheJHjoined
19:40:06  <isaacs>ok, i'm shipping 0.7.11
19:40:28  <AvianFlu>awesome
19:40:42  <AvianFlu>I think I'm gonna go have a slush puppy to celebrate the irony
19:40:58  <mmalecki>lol
19:42:44  <AvianFlu>isaacs, all tests passed on my debian machine just now, as well
19:42:52  <isaacs>wow, nice
19:42:56  <isaacs>my debian machine complained a bit
19:43:12  <AvianFlu>yeah, well, your osx didn't and mine did
19:43:14  <AvianFlu>go figure :D
19:48:03  <CIA-108>node: isaacs master * r1f93aa5 / (4 files in 4 dirs): 2012.06.15, Version 0.7.11 (unstable) - http://git.io/iscS7w
19:48:03  <CIA-108>node: isaacs master * rde2eb60 / (4 files in 4 dirs): Merge branch 'v0.7.11-release' - http://git.io/FTaSPQ
19:48:04  <CIA-108>node: isaacs master * r2b15cf5 / src/node_version.h : Now working on 0.7.12 - http://git.io/84t_Mw
19:51:01  <TooTallNate>isaacs: i vote we push #3099 to v0.9
19:51:34  <CIA-108>node: isaacs master * rc49f3b5 / tools/email-footer.md : email footer: Change Windows msi paths for x86 and x64 - http://git.io/fwgQrw
20:04:22  <isaacs>TooTallNate: sold. update the milestone on the bug, post a comment on it.
20:04:28  <isaacs>TooTallNate: thanks :)
20:05:01  * isaacschanged nick to isaacs[lunch]
20:09:13  * mcavagejoined
20:12:38  <TooTallNate>wow
20:12:44  <TooTallNate>release v0.7.11
20:12:47  <TooTallNate>let's all go get hot dogs
20:12:56  <TooTallNate>and slurpees
20:15:59  <mmalecki>I prefer mexican food.
20:16:06  <mmalecki>let's all get tacos.
20:16:28  <mmalecki>I'm pretty sure I can get some delivered here
20:17:20  <TooTallNate>isaacs[lunch]: Windows x64 Installer: http://nodejs.org/dist/v0.7.11/node-v0.7.11-x64.msi
20:17:24  <TooTallNate>^ broken link
20:17:46  <TooTallNate>mmalecki: sure, me too. just had Chipotle :p
20:18:07  <TooTallNate>it was just v0.7.11
20:18:12  <TooTallNate>7 eleven...
20:18:16  <TooTallNate>GET IT!!?
20:20:33  <mmalecki>TooTallNate: in my mind that turned into shitpotle
20:21:03  <mmalecki>the point is, I have only one mexican restaurant in my town :(
20:21:16  <TooTallNate>mmalecki: actually, do you have 7-eleven over there?
20:21:24  <tjfontaine>thou shalt not blaspheme the chipotle
20:21:29  <TooTallNate>just realized it's probably US-only :D
20:21:41  <mmalecki>TooTallNate: 7-eleven?
20:21:49  <TooTallNate>ahhhh, that explains it :p
20:22:03  <TooTallNate>it's just the shit food
20:22:09  <TooTallNate> + slurpees
20:22:22  <tjfontaine>convenience store :)
20:22:28  <TooTallNate>http://moneysavingmom.com/wp-content/uploads/2012/05/slurpees.jpg
20:22:36  <TooTallNate>i always get the coca cola flavor though
20:22:50  * isaacs_mobilejoined
20:26:01  * milanijoined
20:27:55  * TheJHquit (Ping timeout: 240 seconds)
20:43:11  * AndreasMadsenjoined
20:44:13  * isaacs_mobilequit (Remote host closed the connection)
20:50:28  * mmaleckiquit (Quit: leaving)
20:50:40  <AndreasMadsen>isaacs[lunch]: don't bother with it, but could you double check the change log in the future. It is through it that I get as many of the job offers. Both #3419 and #3391 is missing.
20:50:53  <TooTallNate>isaacs[lunch]: hmmm, compiling from the tarball reports v0.7.11-pre for me
20:52:34  <milani>TooTallNate, is tarball isaacs offered same as master?
20:53:01  <TooTallNate>i mean this one http://nodejs.org/dist/v0.7.11/node-v0.7.11.tar.gz
20:53:04  <TooTallNate>that's what "n" uses
20:54:20  <TooTallNate>ya, indeed. the node_version.h say it's not the release version
20:54:24  <TooTallNate>but the git tag is correct
20:54:29  <TooTallNate>so its just this tarball
20:56:29  <milani>I get 1 error testing master:
20:56:51  <milani>simple/test-child-process-fork2
20:57:12  <milani>Assertion Failed.
20:59:06  <milani>Ubuntu x64
21:01:06  * loladirojoined
21:05:24  * loladiroquit (Ping timeout: 240 seconds)
21:08:00  * brsonquit (Ping timeout: 244 seconds)
21:09:39  * loladirojoined
21:21:35  * hij1nxjoined
21:29:07  * milaniquit (Read error: Connection reset by peer)
21:36:11  * toothrjoined
21:36:28  * AndreasMadsenquit (Remote host closed the connection)
21:36:36  * \toothrotquit (Ping timeout: 248 seconds)
21:38:50  * brsonjoined
21:39:02  * brsonquit (Client Quit)
21:39:18  * brsonjoined
22:01:25  * isaacs[lunch]changed nick to isaacs
22:02:00  <isaacs>TooTallNate: wait, whoops
22:02:08  <isaacs>TooTallNate: for real? you get 11-pre on the tarball?
22:02:27  <TooTallNate>isaacs: ya dude; check it
22:02:46  * hzquit
22:03:49  <isaacs>TooTallNate: not sure how that happened
22:03:51  <isaacs>uploading a fix
22:03:56  <isaacs>can you try again?
22:04:09  * TooTallNaterecompiling
22:04:27  <isaacs>sorry about that
22:12:13  <TooTallNate>isaacs: no prob
22:12:15  <TooTallNate>that fixed it
22:13:04  * rendarquit
22:13:41  * \toothrotjoined
22:13:54  * toothrquit (Ping timeout: 240 seconds)
22:15:55  <isaacs>TooTallNate: ok, rebuilding the binaries
22:16:17  <TooTallNate>isaacs: i didn't check those. are they messed up too?
22:18:09  <isaacs>yep
22:18:16  <isaacs>i mean, i built them from the tarball
22:18:18  <isaacs>so it makes sense :)
22:18:33  <isaacs>luckily no one does stuff on friday afternoon :)
22:18:44  <isaacs>TooTallNate: btw, did you see the delicious cake?
22:19:10  <TooTallNate>isaacs: ummm, like literally?
22:19:24  <isaacs>TooTallNate: /topic
22:19:31  <isaacs>TooTallNate: you have to clsoe all the bugs to get the cake, though
22:19:40  <isaacs>but it will be soooo delicious :)
22:19:44  <TooTallNate>oh man
22:19:47  <TooTallNate>that v0.8 cake :p
22:20:47  <indutny>pquerna: yt?
22:21:10  <indutny>pquerna: I'd partially moved code to workers
22:21:21  <indutny>pquerna: and things got broken
22:21:50  * igorziquit (Quit: Page closed)
22:24:05  <pquerna>indutny: you'd have to make sure the SSL* is only accessed by one thread? what do you mean 'got broken'?
22:25:03  <isaacs>ok, should be all fixed
22:25:05  <isaacs>TooTallNate: thanks
22:25:15  <TooTallNate>kewl
22:26:44  <indutny>pquerna: well, I'm not really sure about it :P
22:26:56  <indutny>pquerna: and looks like it's the case
22:27:12  <indutny>* About to connect() to localhost port 8081 (#0)
22:27:12  <indutny>* Trying 127.0.0.1... connected
22:27:12  <indutny>* Connected to localhost (127.0.0.1) port 8081 (#0)
22:27:12  <indutny>* SSLv3, TLS handshake, Client hello (1):
22:27:12  <indutny>* Unknown SSL protocol error in connection to localhost:8081
22:27:12  <indutny>* Closing connection #0
22:27:12  <indutny>curl: (35) Unknown SSL protocol error in connection to localhost:8081
22:46:32  * c4milo_quit (Remote host closed the connection)
22:46:58  * \toothrotchanged nick to toothr
22:47:19  * theColejoined
22:54:12  <indutny>pquerna: do you have a minute to take a look at my code?
22:55:01  <indutny>pquerna: https://github.com/indutny/node/compare/feature-ssl-handshake-workers
22:55:30  <indutny>if I'll call callbacks in main event-loop's thread - it works just fine
22:55:39  <indutny>so no error in js side (I suppose)
23:03:59  * mcavagequit (Quit: Leaving.)
23:15:51  <indutny>pquerna: nvm, I think I figured it out
23:24:43  * mikealjoined
23:30:44  <indutny>pfox__: no, I hadn't fixed that
23:30:50  <indutny>oops
23:30:52  <indutny>pfox__: sorry
23:30:54  <indutny>pquerna: ^
23:31:02  <indutny>pquerna: it hangs after SSL_accept call
23:31:08  <indutny>never leaves it
23:31:54  <indutny>ok, going to sleep
23:31:55  <indutny>ttyl
23:39:21  <isaacs>ryah's tweets are so cute. it's like he's discovering node all of the sudden
23:46:29  * theColequit (Quit: theCole)
23:59:53  * mikealquit (Quit: Leaving.)