00:05:35  * kazuponquit (Ping timeout: 240 seconds)
00:06:18  * saghulquit (Ping timeout: 255 seconds)
00:08:20  * EhevuTovquit (Quit: This computer has gone to sleep)
00:21:22  * EhevuTovjoined
00:26:24  <MI6>joyent/node: Ben Noordhuis master * 76ddf06 : tls: don't use a timer to track renegotiations It makes tls.createSecure - http://git.io/Ff6I9Q
00:27:07  <bnoordhuis>tjfontaine: the commit doesn't show up in #node.js
00:27:18  <bnoordhuis>i see MI6 lounging there though
00:27:32  <tjfontaine>er
00:28:03  <tjfontaine>hm that's odd
00:28:23  <tjfontaine> '#node.js': [
00:28:23  <tjfontaine> 'joyent/node',
00:28:23  <tjfontaine> 'joyent/libuv',
00:28:23  <tjfontaine> ],
00:28:26  <tjfontaine>well I didn't typo
00:28:49  <tjfontaine> 'joyent/node':
00:28:49  <tjfontaine> [ { network: 'irc.oftc.net', channel: '#native-dns' },
00:28:49  <tjfontaine> { network: 'irc.freenode.net', channel: '#libuv' },
00:28:49  <tjfontaine> { network: 'irc.freenode.net', channel: '#node.js' } ],
00:29:01  <tjfontaine>well I guess I have a logic bug I guess
00:29:40  <tjfontaine>and a redunancy problem while typing
00:29:52  <bnoordhuis>:)
00:32:35  * kazuponjoined
00:38:00  * hzquit
00:38:13  * MI6quit (Remote host closed the connection)
00:39:13  * MI6joined
00:40:07  * kazuponquit (Ping timeout: 264 seconds)
00:40:07  * EhevuTovquit (Quit: This computer has gone to sleep)
00:40:59  <tjfontaine>oh I have an idea
00:41:27  <tjfontaine>ya, good ol irc collation
00:42:59  <txdv_>bnoordhuis: is it possible to pause uv_listen?
00:43:03  * c4milojoined
00:43:05  * MI6quit (Remote host closed the connection)
00:43:15  * MI6joined
00:43:38  <tjfontaine>bnoordhuis: ok if/when someone else pushes it should appear this time
00:44:24  <bnoordhuis>txdv_: more or less. if you don't uv_accept() the connection in your callback, uv_listen() stops accepting new connections
00:44:50  <bnoordhuis>txdv_: there's one accepted connection pending in that case though, the one you didn't uv_accept()
00:44:53  <bnoordhuis>tjfontaine: thanks
00:48:56  <txdv_>and what happens with that not accepted connection?
00:49:40  <tjfontaine>damn where's tootallnate when I want to harass him
00:49:40  <txdv_>if I do a uv_listen again, does the callback get triggered immediately?
00:51:54  * c4miloquit (Remote host closed the connection)
00:54:19  <MI6>joyent/node: isaacs streams2 * 9539cf9 : streams2: Tests of new interfaces (+28 more commits) - http://git.io/Tb2TOA
00:55:07  <tjfontaine>excellent, looks good
00:55:31  * pastjeanquit (Remote host closed the connection)
00:55:34  <txdv_>dexter comming out tonight
00:56:04  * pastjeanjoined
00:59:17  <bnoordhuis>txdv_: what happens with that not accepted connection? <- it sits idle
00:59:52  <txdv_>if I do again a uv_listen, will it trigger with that connection immediately
00:59:54  <txdv_>?
01:00:08  <bnoordhuis>txdv_: no. you can call uv_listen() only once atm
01:00:25  <bnoordhuis>i think bert and i disccused adding a uv_listen_stop() or uv_listen_pause()
01:00:50  * pastjeanquit (Ping timeout: 260 seconds)
01:01:58  <txdv_>some control flows are for now impossible
01:04:27  <bnoordhuis>txdv_: open an issue and describe your use case, we'll probably add it
01:04:32  <bnoordhuis>or at least accommodate it
01:05:46  <txdv_>ill drop my few drops into the sea of issues
01:06:32  * kazuponjoined
01:09:13  * erickt_joined
01:13:59  * kazuponquit (Ping timeout: 252 seconds)
01:24:55  * bnoordhuisquit (Ping timeout: 240 seconds)
01:26:28  * erickt_quit (Quit: erickt_)
01:31:35  * joeandaverdequit (Ping timeout: 246 seconds)
01:37:36  * brsonjoined
01:40:24  * kazuponjoined
01:47:35  * kazuponquit (Ping timeout: 240 seconds)
01:51:49  * pastjeanjoined
01:56:17  * pastjeanquit (Ping timeout: 246 seconds)
01:57:55  * loladiroquit (Quit: loladiro)
02:05:15  * loladirojoined
02:05:19  * mmaleckiquit (Ping timeout: 252 seconds)
02:10:41  * kazuponjoined
02:22:58  * bradleymeckjoined
02:23:10  * bradleymeckquit (Client Quit)
02:29:02  * abraxasjoined
02:52:17  * pastjeanjoined
02:56:55  * pastjeanquit (Ping timeout: 260 seconds)
03:11:56  * isufyjoined
03:11:58  * mmaleckijoined
03:14:37  * isufyquit (Client Quit)
03:16:46  * mmaleckiquit (Ping timeout: 246 seconds)
03:24:47  * kazuponquit (Remote host closed the connection)
03:27:54  * kazuponjoined
03:52:47  * pastjeanjoined
03:57:32  * pastjeanquit (Ping timeout: 260 seconds)
04:06:16  * kazuponquit (Remote host closed the connection)
04:21:34  * kazuponjoined
04:27:53  * brsonquit (Quit: leaving)
04:38:25  * loladiroquit (Quit: loladiro)
04:39:41  * kazuponquit (Remote host closed the connection)
04:41:49  * kazuponjoined
04:43:46  * kazuponquit (Remote host closed the connection)
04:47:18  * loladirojoined
04:49:43  * kazuponjoined
04:50:15  * kazuponquit (Remote host closed the connection)
04:53:20  * pastjeanjoined
04:57:33  * pastjeanquit (Ping timeout: 246 seconds)
05:24:19  * paddybyersjoined
05:31:04  * ericktquit (Quit: erickt)
05:53:50  * pastjeanjoined
05:58:06  * pastjeanquit (Ping timeout: 246 seconds)
06:14:39  * kazuponjoined
06:19:29  * kazuponquit (Ping timeout: 248 seconds)
06:24:51  * AvianFluquit (Remote host closed the connection)
06:54:22  * pastjeanjoined
06:56:57  * rendarjoined
06:59:00  * pastjeanquit (Ping timeout: 260 seconds)
06:59:47  * saghuljoined
07:08:35  * Raltjoined
07:19:07  * mikealquit (Quit: Leaving.)
07:19:53  * mikealjoined
07:24:41  * loladiropart
07:25:54  * kazuponjoined
07:33:12  * mikealquit (Quit: Leaving.)
07:39:34  * stagasjoined
07:54:52  * pastjeanjoined
07:59:20  * pastjeanquit (Ping timeout: 260 seconds)
08:03:29  * mikealjoined
08:13:44  * mikealquit (Ping timeout: 256 seconds)
08:30:06  * kristatejoined
08:55:23  * pastjeanjoined
08:59:45  * pastjeanquit (Ping timeout: 260 seconds)
09:01:36  * stagas_joined
09:01:48  * V1joined
09:02:08  * V1changed nick to `3rdEden
09:03:44  * stagasquit (Ping timeout: 260 seconds)
09:03:48  * stagas_changed nick to stagas
09:04:02  * mikealjoined
09:06:14  * hzjoined
09:09:20  * mikealquit (Ping timeout: 260 seconds)
09:32:28  * stagasquit (Ping timeout: 240 seconds)
09:35:59  <indutny>hoya
09:48:09  * kazuponquit (Remote host closed the connection)
09:55:55  * pastjeanjoined
10:00:16  * pastjeanquit (Ping timeout: 246 seconds)
10:04:37  * mikealjoined
10:07:28  * kazuponjoined
10:10:24  * mikealquit (Ping timeout: 260 seconds)
10:26:06  * abraxasquit (Remote host closed the connection)
10:41:28  * hzquit (Disconnected by services)
10:41:33  * hzjoined
10:56:24  * pastjeanjoined
11:00:49  * pastjeanquit (Ping timeout: 246 seconds)
11:05:14  * mikealjoined
11:10:22  * mikealquit (Ping timeout: 244 seconds)
11:21:40  * kazuponquit (Remote host closed the connection)
11:29:39  * kazuponjoined
11:30:31  * mmaleckijoined
11:56:26  * ap_joined
11:56:57  * pastjeanjoined
11:57:46  <ap_>anyone up?
11:59:25  * hzquit (Disconnected by services)
11:59:30  * hzjoined
12:01:05  * ap_quit (Client Quit)
12:01:21  * pastjeanquit (Ping timeout: 246 seconds)
12:01:30  * bnoordhuisjoined
12:05:54  * mikealjoined
12:11:20  * mikealquit (Ping timeout: 260 seconds)
12:11:27  * hzquit (Ping timeout: 272 seconds)
12:30:14  * mmaleckichanged nick to mmalecki[away]
12:49:19  <txdv_>bnoordhuis: how is it going?
12:49:49  <bnoordhuis>txdv_: is that an american or a european 'how are you?'
12:50:16  <txdv_>i guess yes
12:50:21  <txdv_>i thought you were from america
12:50:34  <bnoordhuis>no, i'm from europe
12:50:38  <txdv_>what country
12:50:42  <bnoordhuis>the netherlands
12:51:21  <txdv_>you can assume that I would like to hear about the progress of ripping out of libev and uv_file_t if I am saying 'how is it going?' xD
12:51:28  <bnoordhuis>hah, okay
12:51:43  <bnoordhuis>the libev removal kind of works, it's in my rm-ev branch
12:51:52  <bnoordhuis>just need to clean it up a little
12:52:18  <bnoordhuis>actually, i forgot what uv_file_t was about. piping of arbitrary handles?
12:53:39  <txdv_>yeah, from an OO perspective uv_file_t would inherit from uv_stream_t, so all the uv_stream_t functionality could be applied on file handles(arbitrary handles as well i guess)
12:54:00  <txdv_>how does node implement that filestreamreader?
12:56:16  <bnoordhuis>txdv_: it's built out of fs.open/fs.read/etc. primitives
12:56:43  <bnoordhuis>txdv_: i.e. there's no magic, you could recreate it as a user module
12:57:25  * pastjeanjoined
12:59:51  * AvianFlujoined
13:00:01  <txdv_>I guess ill have to do that
13:00:17  <saghul>bnoordhuis but since the operations run in a threadpool, how does node guarantee the order?
13:00:22  * saghuldidn't check
13:01:03  <txdv_>wait for the first read to finish?
13:01:11  <bnoordhuis>saghul: it waits for event x to complete before posting x+1
13:01:25  <saghul>aha
13:01:30  <bnoordhuis>it's not terribly efficient really
13:01:38  <bnoordhuis>bert and i intend to address that in 0.10
13:01:45  <saghul>on libuv?
13:01:46  <bnoordhuis>or at least alleviate
13:01:46  <txdv_>lol
13:01:52  * pastjeanquit (Ping timeout: 245 seconds)
13:01:53  <bnoordhuis>saghul: yes
13:01:55  <txdv_>lol i thought the next step after 0.9 was 1
13:02:02  <saghul>bnoordhuis sweet!
13:02:49  <txdv_>address how? creating a uv_file_t : uv_stream_t version?
13:03:16  <bnoordhuis>txdv_: we have a couple of ideas, like batching operations
13:03:28  <bnoordhuis>i.e. bundle the open and first read syscall
13:03:43  <bnoordhuis>not i.e., e.g.
13:04:51  <bnoordhuis>and i might be able to pull off some nifty tricks with splice() on linux, that's where uv_pipe() would come in
13:05:05  <bnoordhuis>or sendfile() on other platforms
13:10:29  <bnoordhuis>indutny: how is tlsnappy coming along?
13:10:35  <bnoordhuis>also, hoya
13:12:30  <txdv_>what is the dutch version of how do you do
13:13:24  <bnoordhuis>txdv_: hoe gaat het?
13:13:42  <bnoordhuis>txdv_: or informally, hoe is ie?
13:13:59  <txdv_>what does gaat mean
13:14:11  <bnoordhuis>txdv_: literally? go
13:14:15  <bnoordhuis>i.e. how goes it
13:14:20  <txdv_>so 'how is it going'
13:14:29  <bnoordhuis>yep
13:14:41  <txdv_>15:46 < bnoordhuis> txdv_: is that an american or a european 'how are you?'
13:15:23  <bnoordhuis>the european version, where people are actually interested in the answer
13:15:32  <txdv_>aaa
13:15:33  <txdv_>i understand
13:16:45  <bnoordhuis>when an american asks 'how are you', it's a little hobby of mine to start some interminable dreary story until he flees in horror
13:17:16  <txdv_>i know what you are talking about
13:17:30  <txdv_>when i ask my lithuanian friends 'how is it going' (in lithuanian) they always say ITS OK
13:17:52  <txdv_>and then I poke around them to tell me what is so ok
13:18:11  <bnoordhuis>"truly everything?"
13:18:14  * pastjeanjoined
13:18:30  <txdv_>yeah
13:18:34  <txdv_>ok im off to town
13:18:40  <txdv_>good luck in your coding adventures
13:18:53  <bnoordhuis>you too :)
13:21:12  * hzjoined
13:54:50  <bnoordhuis>indutny: ping
13:59:23  * c4milojoined
14:03:19  * ericktjoined
14:09:55  * c4miloquit (Remote host closed the connection)
14:24:09  * piscisaureus_joined
14:24:20  <piscisaureus_>hello
14:24:22  <piscisaureus_>ircretary: notes
14:26:42  * erickt_joined
14:31:01  * c4milojoined
14:36:18  * c4miloquit (Remote host closed the connection)
14:59:05  * txdv_quit (Ping timeout: 260 seconds)
15:00:15  * txdvquit (Ping timeout: 260 seconds)
15:01:07  * dapjoined
15:15:43  * mmalecki[away]changed nick to mmalecki
15:17:16  * c4milojoined
15:18:33  <bnoordhuis>piscisaureus_: what's up, bertje?
15:18:52  <piscisaureus_>bnoordhuis: I'm back
15:20:00  <bnoordhuis>piscisaureus_: from what?
15:20:04  <piscisaureus_>jscon
15:20:05  <piscisaureus_>f
15:20:14  <bnoordhuis>oh, right
15:20:55  <piscisaureus_>bnoordhuis: what's up with you btw?
15:21:35  * pastjeanquit (Remote host closed the connection)
15:22:42  <bnoordhuis>piscisaureus_: i don't know, medical science still hasn't figured it out
15:22:57  <bnoordhuis>piscisaureus_: i've heard whispers of gargantuanism combined with priapism
15:23:04  <tjfontaine>oh god
15:23:10  <piscisaureus_>bnoordhuis: hace you considered seeing a vet?
15:23:20  <bnoordhuis>heh
15:23:37  <bnoordhuis>so how was jsconf?
15:23:42  <piscisaureus_>it was good
15:23:54  <piscisaureus_>i went to say hi to michael starzinger
15:24:14  <piscisaureus_>(and other new v8 guys if they would be there, but they weren't)
15:24:27  <piscisaureus_>it also was a very good conference in general
15:24:46  <piscisaureus_>a lot of variation, which I like
15:25:08  <bnoordhuis>yes? like what?
15:33:23  * erickt_quit (Quit: erickt_)
15:47:25  * ericktquit (Ping timeout: 246 seconds)
15:59:00  * pastjeanjoined
16:03:17  * pastjeanquit (Ping timeout: 246 seconds)
16:03:51  <isaacs>bnoordhuis: the correct answer to "How are you?" is "AWESOME as USUAL, and you?"
16:05:24  <piscisaureus_>bnoordhuis: https://docs.google.com/spreadsheet/pub?key=0AhO5JVicsAJOdG5FRTQ3VEFkbUl1c0R5UTBsUVN0dEE&output=html <-- just take a look yourself :-)
16:05:43  <piscisaureus_>slava's talk was super amazing btw
16:18:30  * ericktjoined
16:23:59  * TheJHjoined
16:24:15  * ericktquit (Ping timeout: 240 seconds)
16:26:40  * TheJHquit (Excess Flood)
16:26:57  * TheJHjoined
16:27:42  * dapquit (Quit: Leaving.)
16:28:42  <isaacs>piscisaureus_: slava's talks are always amazing.
16:32:17  * dapjoined
16:33:42  * AndreasMadsenjoined
16:35:50  <piscisaureus_>isaacs: this one was like, ehm, even more amazing ;-)
16:38:50  * lohkeyjoined
16:42:46  * pastjeanjoined
16:46:42  * joshthecoderjoined
16:47:04  * ericktjoined
16:48:16  * Raltquit (Ping timeout: 244 seconds)
16:51:08  * mralephjoined
16:58:25  * rendarquit (Excess Flood)
16:59:49  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
17:04:01  * pastjeanquit (Remote host closed the connection)
17:04:33  * pastjeanjoined
17:08:50  * TooTallNatejoined
17:09:10  * pastjeanquit (Ping timeout: 260 seconds)
17:12:46  <TooTallNate>isaacs: so i'm both impressed that this works, and upset at how complicated it is https://github.com/TooTallNate/node-icecast-stack/commit/d634ef35128d37282130a47326b776b81d6be193
17:13:16  <TooTallNate>isaacs: in a nutshell, most icecast servers respond with "ICY 200 OK" rather than "HTTP/1.0 200 OK" so node's HTTP parsers barfs
17:13:39  * kazuponquit (Remote host closed the connection)
17:13:54  <TooTallNate>that "preprocessor" file hijacks the "data" events from a net.Socket and rewrites the "ICY" as "HTTP/1.0" when it happens
17:14:17  <isaacs>TooTallNate: ugh
17:14:22  <isaacs>what is this icecast thing?
17:14:28  <isaacs>and why did it re-invent http?
17:15:01  <TooTallNate>isaacs: internet radio stations, basically non-ending HTTP responses that send infinite audio data
17:15:11  <TooTallNate>and idk why they broke HTTP, it pisses me off too
17:15:14  <isaacs>i see
17:15:21  <isaacs>i mean, http can do indefinite-ending connections
17:15:53  <TooTallNate>ya, and like 20% of the server's I've seen send regular HTTP headers rather than "ICY"
17:16:00  <isaacs>oh, srsly?
17:16:03  <isaacs>jeez, what a mess
17:16:09  <TooTallNate>haha, ya
17:17:09  <TooTallNate>isaacs: but the end result is pretty nice; actually *using* core http logic and api https://github.com/TooTallNate/node-icecast-stack/blob/ca5fc4aa083a27c9f3e1e66bdb4a53ae022fdaf3/t.js
17:17:20  <isaacs>ewll, that's good
17:18:09  <TooTallNate>isaacs: anyways, i just bring this up so that we give it a thought when the JS http rewrite becomes focus
17:18:32  <isaacs>it'd be nice if those tokens in the http parser were configurable
17:18:50  <TooTallNate>isaacs: i.e. 1) make it easier to extend the core http module (stick a stream in front of it) or 2) make the parser less strict
17:18:55  <TooTallNate>or ya, configurable
17:19:03  <isaacs>then you could just swap out parser.requestLineStart = /^(?ICY|HTTP).../
17:19:11  <TooTallNate>ya that'd be sweet
17:19:16  <isaacs>(?: rather
17:19:21  <isaacs>(non-capturing group)
17:19:31  * txdvjoined
17:19:36  <TooTallNate>damn, i need to learn that one :p
17:21:51  <TooTallNate>isaacs: are you gonna update readable-stream module with the latest streams2 stuff?
17:22:19  <TooTallNate>isaacs: it'd be kinda nice to add that as a dep to modules that want to use the new API, but still support v0.8
17:22:29  <TooTallNate>as a transitional thing
17:23:24  <isaacs>TooTallNate: yeah, that's the plan
17:23:37  <TooTallNate>kewl
17:23:44  <isaacs>i'm chewing on net streams right now. they're kind of complicated.
17:23:59  <TooTallNate>ya i bet, haha
17:24:29  <isaacs>mostly because the _write() call has this optimization to not turn the string into a buffer ahead of time.
17:24:49  <isaacs>and Writable.write(string,encoding) always changes to a buffer before calling _write(chunk, cb)
17:24:59  <isaacs>but that could just be a configurable option.
17:26:31  <isaacs>but on the readable side, it looks like it basically jsut calls readStart() to start consuming chunks, and readStop() to stop, which is actually really easy to work into the new model.
17:32:40  * `3rdEdenchanged nick to `3E|BUSY
17:36:28  * Raltjoined
17:42:10  * joshthecoderquit (Quit: Leaving...)
17:43:05  * Raltquit (Remote host closed the connection)
17:44:02  * kazuponjoined
17:45:37  * joshthecoderjoined
17:47:21  * joshthecoderquit (Client Quit)
17:47:30  * Raltjoined
17:50:57  * tomshredsjoined
17:53:08  * kazuponquit (Ping timeout: 240 seconds)
17:54:55  * rendarjoined
17:55:21  * ericktquit (Quit: erickt)
17:58:03  * `3E|BUSYchanged nick to `3rdEden
17:59:57  * pastjeanjoined
18:01:08  * kristatequit (Ping timeout: 244 seconds)
18:04:23  * pastjeanquit (Ping timeout: 246 seconds)
18:11:30  <tjfontaine>TooTallNate: so while I've been playing with ref-strict more I've hit a point where it might be useful if ref supported a mechanism where [de]refType could be handled in a user defined type, I haven't really sat down and thought about how to solve it without it yet but it was just a situation I hit over the weekend
18:12:26  <TooTallNate>tjfontaine: that's basically what node-ffi calling ref() on the object used to be there for (which we removed). what's your use case?
18:12:46  * brsonjoined
18:14:07  <TooTallNate>tjfontaine: oh no, refType() is different than ref() so it's not what node-ffi used to do, but still, i'm curious :)
18:14:52  <tjfontaine>well basically StrictType **t, (I'll need to eventually satisfy the case where that's an array but that's not the issue here)
18:15:14  <tjfontaine>basically I have StrictType(ref.refType(StrictType(baseType)))
18:15:52  <tjfontaine>I am thinking what I should be assert'ing against in that case is getPrototypeOf of what's being passed in
18:16:55  <tjfontaine>but being able to plumb a bit in refType to handle when someone is trying to make it indirect would make it slightly easier to handle type assignment
18:18:50  <tjfontaine>anyway, I haven't thought through it entirely yet, but it certainly adds a wrinkle :)
18:25:21  * joshthecoderjoined
18:33:59  * lohkeyquit (Read error: Connection reset by peer)
18:34:06  * Raltquit (Remote host closed the connection)
18:34:20  * lohkeyjoined
18:49:42  * kazuponjoined
18:54:21  * kazuponquit (Ping timeout: 245 seconds)
19:00:27  * pastjeanjoined
19:00:42  * lohkeyquit (Quit: lohkey)
19:03:33  * brsonquit (Quit: leaving)
19:05:12  * pastjeanquit (Ping timeout: 260 seconds)
19:09:10  * stagasjoined
19:14:58  * indexzerojoined
19:18:51  * piscisaureus_joined
19:19:02  <piscisaureus_>back
19:27:27  * tommybergeronjoined
19:27:27  * tommybergeronquit (Client Quit)
19:28:21  * lohkeyjoined
19:29:01  * mikealjoined
19:29:23  * mikealquit (Client Quit)
19:30:48  * brsonjoined
19:31:11  * tomshredsquit (Ping timeout: 246 seconds)
19:39:07  * `3rdEdenquit (Remote host closed the connection)
19:46:04  * tomshredsjoined
19:46:31  * stagasquit (Read error: Connection reset by peer)
19:47:04  * stagasjoined
19:50:44  * kazuponjoined
19:51:46  * V1joined
19:52:15  * V1changed nick to `3rdEden
19:55:39  * kazuponquit (Ping timeout: 255 seconds)
20:00:59  * pastjeanjoined
20:05:09  * pastjeanquit (Ping timeout: 246 seconds)
20:13:39  * piscisaureus_quit (Ping timeout: 255 seconds)
20:28:17  * AndreasMadsenquit (Remote host closed the connection)
20:51:42  * kazuponjoined
20:54:24  * stagasquit (Ping timeout: 260 seconds)
20:56:27  * kazuponquit (Ping timeout: 245 seconds)
20:59:57  <MI6>joyent/node: Andreas Madsen v0.8 * be5a8e2 : doc: consistent use of the callback argument - http://git.io/dLGJqg
21:12:40  * pastjeanjoined
21:12:42  * pastjeanquit (Ping timeout: 246 seconds)
21:30:21  * tjfontainequit (Changing host)
21:30:21  * tjfontainejoined
21:30:21  * MI6quit (Changing host)
21:30:21  * MI6joined
21:31:58  * rendarquit
21:37:34  * AvianFluquit (Remote host closed the connection)
21:52:34  * kazuponjoined
21:57:21  * kazuponquit (Ping timeout: 252 seconds)
21:59:34  * joeandaverdejoined
22:02:00  * pastjeanjoined
22:06:30  * pastjeanquit (Ping timeout: 264 seconds)
22:06:40  <bnoordhuis>https://gist.github.com/2cbc86de7719c37ba0d0 <- tls benchmark
22:07:18  <bnoordhuis>what's interesting is that pumping 2500 50K messages is almost ten times as slow as 1 million 125 byte messages
22:07:26  <bnoordhuis>while it's the exact same amount of data in the end
22:08:17  <bnoordhuis>i guess some profiling is in order
22:10:02  * `3rdEdenquit (Quit: Zzzzz)
22:14:33  <bnoordhuis>ah, it's the other way around - 1 million small messages are almost ten times as slow as 2500 50K messages
22:15:09  * piscisaureus_joined
22:15:24  <tjfontaine>bnoordhuis: quite interesting
22:17:04  <bnoordhuis>with 1M messages it's also kind of hit and miss if you get an OOM exception
22:17:28  * stagasjoined
22:17:32  <tjfontaine>with or without the block allocator?
22:17:37  <bnoordhuis>tjfontaine: with
22:17:44  <bnoordhuis>i'm testing it with the current master
22:20:19  <bnoordhuis>the many messages benchmarks use crazy amounts of memory, it's crossing the 6 GB RSS mark
22:20:45  <tjfontaine>well that can't be good at all
22:20:58  <bnoordhuis>i concur
22:21:22  <bnoordhuis>some more profiling is in order
22:22:00  <tjfontaine>as you tell indutny all the time :)
22:22:38  <bnoordhuis>heh, quite so
22:25:42  <TooTallNate>bnoordhuis: hey you have any idea why this doesn't work? https://gist.github.com/1f48f89f8250f3f05839
22:25:45  <MI6>joyent/node: Bert Belder homedir * f9a5a91 : windows: use USERPROFILE to get the user's home dir Fixes GH-3461 Fixes - http://git.io/KdUozw
22:26:04  <TooTallNate>specifically, I can't seem to use "void *" as a template type, is that legal?
22:26:15  <piscisaureus_>bnoordhuis: can you review that ^
22:26:27  <bnoordhuis>TooTallNate: what are foo and bar?
22:26:29  <piscisaureus_>bnoordhuis: i will review that thing that quite obviously needs my eyeballs :-p
22:26:38  <TooTallNate>bnoordhuis: functions
22:26:39  <bnoordhuis>piscisaureus_: will do :)
22:27:01  <bnoordhuis>TooTallNate: templates are a compile time thing, any arguments need to be static
22:27:09  <bnoordhuis>TooTallNate: what's the error you get?
22:29:34  <TooTallNate>bnoordhuis: doing this: `InvocationCallback c = (InvocationCallback)Test<(void *)foo>;`
22:29:45  <TooTallNate>yields: error: address of overloaded function 'Test' does not match required type 'v8::Handle<v8::Value> (const v8::Arguments &)'
22:30:29  <bnoordhuis>TooTallNate: why do you use a void pointer instead of a function pointer?
22:30:30  * lohkeypart
22:31:16  <TooTallNate>bnoordhuis: the function signature varies sometimes, i'm planning on using another template param to specify the type, and then cast the void* to the proper function pointer inside the function
22:31:40  <bnoordhuis>TooTallNate: oi, nasty
22:31:56  <bnoordhuis>technically speaking, you can't cast void pointers to function pointers or vice versa
22:32:02  <TooTallNate>bnoordhuis: i'm open to a better way to do this btw :p i'm trying to cut down on this copy & paste code /node-lame/blob/master/src/node_lame.cc#L188-244
22:32:05  <tjfontaine>isn't there some std:: way of doing Function?
22:32:10  <TooTallNate>https://github.com/TooTallNate/node-lame/blob/master/src/node_lame.cc#L188-244
22:32:36  <TooTallNate>tjfontaine: there's like a bind() function that looked promising, i'll probably have to look at that next
22:33:55  <TooTallNate>bnoordhuis: what's the "technically speaking" part? in node-ffi, we store function pointers in Buffer instances, so i'd love to know if that's unsafe somehow
22:34:14  <bnoordhuis>TooTallNate: well, it works on all architectures you should care about
22:34:35  <bnoordhuis>TooTallNate: but it's at least in theory possible that sizeof(code pointer) != sizeof(data pointer)
22:34:51  <TooTallNate>interesting
22:35:22  <bnoordhuis>luckily, msdos programming is mostly dead so you don't run into that often anymore
22:35:42  <bnoordhuis>re your question, i'd probably use macros instead of templates
22:35:46  <TooTallNate>bnoordhuis: is there a "accept all" function pointer type kinda like "void *"
22:35:48  <TooTallNate>?
22:36:14  <bnoordhuis>TooTallNate: yes. you can cast function pointers to void (*)(void) and back
22:36:26  <bnoordhuis>purists will scream bloody murder but it works
22:36:46  <CoverSlide>wait, no FreeDOS port? :,(
22:37:05  <bnoordhuis>no, but i'm working on the plan9 port
22:37:42  <bnoordhuis>TooTallNate: i should have said "use macros instead of templates *in this case*"
22:37:54  <bnoordhuis>if the arguments are heterogenous
22:38:35  <TooTallNate>bnoordhuis: so you'd make a macro that defines a V8 function, given a c function name basically?
22:38:37  * mmaleckichanged nick to mmalecki[brb]
22:38:47  <bnoordhuis>TooTallNate: yes
22:38:54  <TooTallNate>ok, i'll give that a shot
22:39:33  * TheJHquit (Read error: Operation timed out)
22:39:49  * piscisaureus__joined
22:40:07  * piscisaureus_quit (Read error: Connection reset by peer)
22:40:34  <tjfontaine>TooTallNate: fwiw this one of the eventual goals of node-libclang, not only generating ffi bindings but generating the c++ modules based on headers :)
22:40:49  <piscisaureus__>bnoordhuis: I don't see that tautological-compare warning on my machine, not even when I compile with -pedantic. (I suppose I should see a warning that says that an unsigned int is never negative, right?)
22:41:07  <TooTallNate>tjfontaine: that'd be really nice :)
22:41:28  <TooTallNate>tjfontaine: i mean, if the generated module simply exposed it's API 1-1 to JS, then that'd be awesome
22:41:40  <bnoordhuis>piscisaureus__: i think you only see it with gcc 4.7 or recent versions of clang
22:41:47  <piscisaureus__>bnoordhuis: the change looks harmless tho, although it's hard to see how it fixes anything.
22:41:47  <piscisaureus__>bnoordhuis: if you land it, also remove the RandomBytesGenerator typedef.
22:42:16  <bnoordhuis>piscisaureus__: the thing gcc doesn't like is that i was comparing the template arg to RAND_bytes
22:42:31  <bnoordhuis>piscisaureus__: because the result is either always true or always false
22:42:38  <bnoordhuis>stupid compiler is stupid but okay
22:42:54  <piscisaureus__>bnoordhuis: aaah
22:43:05  <piscisaureus__>bnoordhuis: that's a really shitty thing when working with templates :-)
22:43:10  <bnoordhuis>yes
22:43:55  <piscisaureus__>bnoordhuis: let's say that if this start to happen more often we don't do fixes like these. Because it doesn't really make the code easier to comprehend or anything.
22:44:06  <piscisaureus__>in this case it's not getting worse either, so i'm fine with it
22:44:30  <bnoordhuis>piscisaureus__: yeah, i wouldn't have done it if it resulted in more lines of code
22:44:49  <bnoordhuis>but in this case, it's a few lines less
22:44:55  <piscisaureus__>:-)
22:44:56  <bnoordhuis>and i find it easier to understand, at least :)
22:45:15  <piscisaureus__>ok
22:45:29  <tjfontaine>TooTallNate: OneDay anyway, slowly and surely :)
22:49:08  <MI6>joyent/node: Bert Belder master * 5288ed7 : windows: use USERPROFILE to get the user's home dir Fixes #3461 Close #3 - http://git.io/LskQiw
22:49:26  <MI6>joyent/node: Ben Noordhuis v0.8 * eec8c2e : crypto: fix -Wtautological-compare warning - http://git.io/OOhKiQ
22:50:51  <bnoordhuis>piscisaureus__: something i realized. that string optimization we do in lib/net.js and stream_wrap.cc, we should do that in lib/tls.js as well
22:51:19  <bnoordhuis>writing a big string to a tls stream is 100% unoptimized right now, it gets converted to a buffer
22:53:35  * kazuponjoined
22:54:48  <piscisaureus__>bnoordhuis: sure, sounds like a good idea :-)
22:55:12  <bnoordhuis>i'll open an issue for it
22:55:14  <piscisaureus__>bnoordhuis: but I suppose that it would be even more awesome if we could skip some boundary crossings
22:56:13  <piscisaureus__>bnoordhuis: I think the string conversion is relatively lightweight compared to a lot of other things going on in there :-)
22:56:32  <bnoordhuis>piscisaureus__: yeah. right now, openssl dominates everything
22:56:55  <bnoordhuis>piscisaureus__: i think fedor's threaded approach is fundamentally (or at least conceptually) sound
22:57:05  * AvianFlujoined
22:57:06  <piscisaureus__>yes
22:57:08  <bnoordhuis>also, it's kind of odd we do zlib in the thread pool but not openssl
22:57:34  <bnoordhuis>i mean, encryption/decryption is 10x or 100x as expensive as compressing/decompressing
22:57:38  <piscisaureus__>although I can also imagine that some people might want it to be on the main thread (because they run cluster anyway)
22:57:58  <bnoordhuis>hm, good point
22:58:05  <piscisaureus__>but I think for the vast majority of node users the thread pool thing is pretty awesome
22:58:19  * kazuponquit (Ping timeout: 256 seconds)
23:02:32  * pastjeanjoined
23:03:42  * EhevuTovjoined
23:05:41  <txdv>o boy o bou
23:05:43  <txdv>this will be fun
23:06:56  * pastjeanquit (Ping timeout: 246 seconds)
23:13:36  <isaacs>Ok, so... this "crypto defaults to binary encoding" thing is a huge pita.
23:13:44  <isaacs>it makes no sense at all, and i'm feeling resentful about it.
23:14:02  <isaacs>what was the reason we couldn't make it default to buffers? indutny do you remember?
23:14:13  <CoverSlide>ah well ... legacy
23:14:39  <isaacs>CoverSlide: yeah... i'm tempted to say that legacy users can write 'binary' in their code if they care.
23:14:54  <isaacs>if we change all of them at the same time (ie, the default input encoding, and the default output encoding) then it'll keep working
23:21:50  <bnoordhuis>isaacs: there were no buffers when crypto was introduced
23:22:42  * paddybyersquit (Ping timeout: 264 seconds)
23:23:33  <TooTallNate>bnoordhuis: the macro approach seems to work well, thanks! https://gist.github.com/1f48f89f8250f3f05839
23:26:41  <piscisaureus__>wow. 3653 views :-D
23:26:56  <piscisaureus__>hope something goods comes out of it
23:28:53  <isaacs>bnoordhuis: yes, i'm aware :)
23:29:11  <isaacs>bnoordhuis: it's a forgivable offense, but one we should rectify as soon as we can get away with it
23:29:31  <bnoordhuis>isaacs: yeah. switching to buffers gets my +1
23:33:26  <txdv>bnoordhuis: you never sleep
23:33:34  <txdv>you do work a normal dayjob, right?
23:33:56  <bnoordhuis>txdv: well, i usually don't get up before noon
23:34:34  <txdv>when is noon in a 24h system?
23:37:22  <isaacs>txdv: 1200
23:43:11  <piscisaureus__>I'm dead tired, gtg to bed
23:43:24  <piscisaureus__>see you later guys
23:43:29  * piscisaureus__quit (Quit: ~ Trillian Astra - www.trillian.im ~)
23:43:55  <txdv>did he say something about listen_stop?
23:47:56  * stagasquit (Ping timeout: 246 seconds)
23:50:59  * mmalecki[brb]changed nick to mmalecki
23:54:29  * kazuponjoined
23:59:03  <txdv>man
23:59:07  * dapquit (Quit: Leaving.)
23:59:20  <txdv>i am seriously starting to have doubts if I should expose the file api.
23:59:45  * kazuponquit (Ping timeout: 248 seconds)