00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:02:16  * trevnorrispart ("Leaving")
00:02:40  * trevnorrisjoined
00:06:38  <tjfontaine>ok I think I'm ready for you guys to review https://gist.github.com/tjfontaine/00e04f628c0ef55e7cb8
00:21:11  * loladiroquit (Quit: loladiro)
00:22:52  * werlequit (Quit: Leaving.)
00:23:40  * jonathanpquit (Quit: Page closed)
00:29:51  * mikealquit (Quit: Leaving.)
00:33:29  * mikealjoined
00:47:09  * defunctzombiechanged nick to defunctzombie_zz
00:47:19  * defunctzombie_zzchanged nick to defunctzombie
00:48:08  * defunctzombiechanged nick to defunctzombie_zz
00:52:39  <isaacs>streams docs!
00:52:41  <isaacs>https://github.com/joyent/node/pull/5857
00:52:46  <isaacs>trevnorris: pong
00:52:47  <tjfontaine>I'm already reading :)
00:53:20  * hzquit
01:12:08  * defunctzombie_zzchanged nick to defunctzombie
01:20:01  * inolenquit (Ping timeout: 256 seconds)
01:20:22  * inolenjoined
01:27:26  * abraxasjoined
01:30:14  <isaacs>tjfontaine: it'd be good to link to https://us-east.manta.joyent.com/NodeCore/public/blog/2013-07-15/apache.js so that people can see the script you used.
01:30:23  <isaacs>tjfontaine: of course, it means that we are now committed to that url forever :)
01:30:45  <isaacs>oh, lol, you do
01:30:48  <isaacs>tjfontaine: ignore me :)
01:33:15  <isaacs>tjfontaine: you can set options.decodeStrings=false in your ctor, and then you'll get utf8 by default, most likely
01:33:24  <isaacs>tjfontaine: but, meh. this works :)
01:33:39  * sblomquit (Ping timeout: 246 seconds)
01:34:28  * paulfryzeljoined
01:43:02  <isaacs>tjfontaine: lgtm. you wanna add the headers and commit to v0.10 in doc/blog/analytics/ or something?
01:43:54  * mikealquit (Quit: Leaving.)
01:44:44  * mikealjoined
01:46:58  * Benviequit (Read error: Connection reset by peer)
01:47:15  * Benviejoined
01:53:36  * indexzerojoined
01:58:40  * TooTallNatequit (Quit: Computer has gone to sleep.)
02:19:16  * defunctzombiequit (Ping timeout: 240 seconds)
02:19:59  * defunctzombiejoined
02:20:26  * defunctzombiequit (Changing host)
02:20:27  * defunctzombiejoined
02:20:37  * loladirojoined
02:28:21  * mikealquit (Ping timeout: 264 seconds)
02:49:59  * indexzeroquit (Quit: indexzero)
03:08:58  * mikealjoined
03:19:30  * bradleymeckjoined
03:26:19  * mcavagequit (Remote host closed the connection)
03:27:21  * TooTallNatejoined
03:31:27  <trevnorris>isaacs: here's the node.c api i'm working at: http://git.io/87MX2A
03:32:49  <isaacs>trevnorris: so you pass the listen() args to nc_server_init?
03:33:01  * mikealquit (Quit: Leaving.)
03:34:24  <isaacs>trevnorris: so, i'm finally reviewing that fs change.
03:34:31  <isaacs>trevnorris: popped the stack enough to get back to it :)
03:34:40  <trevnorris>isaacs: thank :)
03:34:50  <isaacs>trevnorris: you've got fs.write(fd, data[, position[, encoding]], callback) and fs.write(fd, buffer, offset, length[, position], callback)
03:35:08  <isaacs>it's kind of odd how position is in two different positions?
03:35:43  <isaacs>trevnorris: why not: fs.write(fd, buf, offset, length, position, cb) and fs.write(fd, string, encoding, position, cb)?
03:35:44  <trevnorris>isaacs: iirc that was to support the legacy api.
03:35:49  <isaacs>trevnorris: hrm..
03:36:11  <isaacs>does (fd,string,enc,pos,cb) conflict with the legacy api?
03:36:50  <isaacs>oh, ok, so: // legacy string interface (fd, data, position, encoding, callback)
03:37:05  <isaacs>that's stupid.
03:37:08  <isaacs>:)
03:37:14  <trevnorris>heh
03:37:35  <isaacs>i mean, everywhere else, we have either (buf,off,len) or (str,enc)
03:37:54  <isaacs>those two should go together because they're related.
03:38:04  <trevnorris>i totally agree.
03:38:27  <isaacs>i think we should use fs.write(fd,str,enc,pos,cb) as the new API
03:38:39  <isaacs>keep the old weirdo api supported.
03:38:57  <isaacs>but basically, just have a block of code at the top to test the types and lengths of arguments
03:39:13  <isaacs>it's klunky but at least it's only klunky internally, not in user programs
03:39:35  <isaacs>otoh, just reviving the legacy api is a bit mre elegant...
03:39:36  <isaacs>ugh
03:39:39  <isaacs>stupid legacy
03:40:55  <trevnorris>well i could do what I did in Buffer#write()
03:41:12  <trevnorris>just officially deprecate the argument order
03:41:40  <trevnorris>oh wait. that was something I wanted to ask you.
03:42:04  <trevnorris>isaacs: the Buffer#write argument order is also messed up that way.
03:42:14  <trevnorris>for some reason encoding is at the end.
03:42:33  <trevnorris>but what's dumb is that encoding started next to the string argument.
03:42:40  <trevnorris>then that got deprecated.
03:43:21  * chiltspart
03:52:38  <trevnorris>isaacs: just let me know what API changes you think are best. as it is now, it follows Buffer#write(), but i'm not personally a fan of either argument order.
03:53:13  <trevnorris>having the encoding fall through other arguments seems strange to me.
03:55:20  <trevnorris>tjfontaine: hah! this is awesome: 15116 trevnorr 1 1 0 39M 21M cpu/15 264:58 4.19% mdb
03:55:25  <trevnorris>still running string.
03:55:29  <trevnorris>s/string/strong
03:55:44  <trevnorris>mdb is really freaking out with that core file.
03:57:50  * paulfryzelquit (Remote host closed the connection)
04:17:44  * bradleymeckquit (Quit: bradleymeck)
04:21:36  <trevnorris>isaacs: re node.c, i'm still flushing out the network api. that example was geared towards how the event listener would work.
04:23:33  * bradleymeckjoined
04:51:00  <trevnorris>hello world
04:52:30  * kazuponjoined
04:54:12  * c4milojoined
04:58:15  * bradleymeckquit (Quit: bradleymeck)
05:02:13  * kazupon_joined
05:05:10  * kazuponquit (Ping timeout: 276 seconds)
05:12:53  * defunctzombiechanged nick to defunctzombie_zz
05:14:36  * mikealjoined
05:15:24  * mikealquit (Client Quit)
05:21:00  * kenperkinsquit (Quit: Computer has gone to sleep.)
05:22:10  * c4miloquit (Remote host closed the connection)
05:40:37  <trevnorris>TooTallNate: you around?
05:41:07  <TooTallNate>trevnorris: ya kinda
05:41:31  <TooTallNate>peeking through the blurry vision of Lagunitas brewery
05:41:40  <trevnorris>hah
05:41:41  <TooTallNate>my favorite <3
05:41:46  <trevnorris>TooTallNate: npm question. I see people doing craziness to keep their code compiling with master. with ifdef's
05:42:01  <TooTallNate>trevnorris: example?
05:42:39  <trevnorris>TooTallNate: http://git.io/yOcoVA
05:43:20  <trevnorris>what i'm wondering is if you can have multiple branches each with max/min version of supported npm, and if npm will automatically grab the latest for your version of node
05:43:51  <trevnorris>e.g. in one branch you have >= v0.11 and in another you have v0.11 < >= v0.10
05:44:45  <trevnorris>imo with how much the api has changed it'd be easier to maintain two branches of the code then have to require all the ifdefs
05:45:00  <TooTallNate>trevnorris: hmm, well i think in the past people have supported that with like different (minor) versions of the module
05:45:21  <TooTallNate>like "if you're using node v0.4.x, use libxmls v0.6 branch
05:45:34  <TooTallNate>"if you're using node v0.6.x, use libxmls v0.8 branch
05:45:36  <TooTallNate>etc.
05:45:50  <TooTallNate>but ya, i've personally also done what you linked to
05:46:32  * kazupon_quit (Read error: Connection reset by peer)
05:47:05  <TooTallNate>trevnorris: like, look at this crazy mess, haha https://gist.github.com/TooTallNate/1368935#file-node_async_shim-h-L24-L42
05:47:13  <TooTallNate>i don't use that think anymore...
05:47:23  <trevnorris>aaaah. wtf
05:47:44  <TooTallNate>trevnorris: so back to the subject... no i don't think npm has support for that kind of thing :\
05:48:13  <trevnorris>TooTallNate: ok. so you can't say engines node >= v0.10.x node < v0.11
05:48:17  <TooTallNate>different versions published to npm supporting different versions would be my best bet
05:48:29  * kazuponjoined
05:48:29  * paddybyersjoined
05:48:38  <TooTallNate>trevnorris: well you can, but not for multiple branches like you're saying
05:49:06  <TooTallNate>npm will just print a warning if the version of the module youre installing isnt in the range the module specifies
05:49:31  <trevnorris>oh. so npm just grabs the latest, period. doesn't check any of the fields.
05:50:25  <TooTallNate>ya, the version is determined up-front, with keywords for like "latest" and "stable" i think
05:50:43  <TooTallNate>which both 99.9% of the time are the latest publish
05:52:12  <trevnorris>hm. and possibility of that kind of support? it'd be freakin sweet to have npm auto grab the latest based on node engine
05:52:23  * kenperkinsjoined
05:52:57  <TooTallNate>not totally sure, but i think you know who you need to talk to about that ;)
05:53:09  <trevnorris>heh, yeah.
05:53:33  <trevnorris>well, off with you. go drink some more!
05:53:35  <trevnorris>and thanks
05:54:00  <TooTallNate>trevnorris: cool, thanks, got a pizza in the oven that needs tending to ;)
05:54:03  <TooTallNate>g'night
05:54:06  * TooTallNatequit (Quit: ["Textual IRC Client: www.textualapp.com"])
05:54:09  <trevnorris>night
05:54:19  <trevnorris>hmmm. pizza.
06:12:20  * mikealjoined
06:15:21  * mikealquit (Read error: Operation timed out)
06:16:10  * mikealjoined
06:20:02  * EhevuTovjoined
06:26:41  * rendarjoined
06:36:32  * bajtosjoined
06:41:54  * hzjoined
06:42:36  * EhevuTovquit (Quit: This computer has gone to sleep)
06:47:49  * inolenquit (Quit: Leaving.)
06:48:52  * csaohjoined
06:53:13  * csaohquit (Client Quit)
06:54:26  * csaohjoined
06:55:53  * inolenjoined
06:56:01  * csaohquit (Client Quit)
07:02:05  * groundwaterquit (Quit: groundwater)
07:11:17  * defunctzombie_zzchanged nick to defunctzombie
07:28:34  * csaohjoined
07:44:14  * defunctzombiechanged nick to defunctzombie_zz
08:14:02  * Benvie_joined
08:15:45  * Benviequit (Ping timeout: 264 seconds)
08:25:17  * loladiroquit (Quit: loladiro)
08:30:18  * loladirojoined
08:38:33  * loladiroquit (Quit: loladiro)
09:12:42  * mikealquit (Quit: Leaving.)
10:01:33  * stagasjoined
10:05:04  * pfox__quit (Read error: Operation timed out)
10:08:55  * pfox__joined
10:21:12  * julianduquequit (Quit: leaving)
10:25:57  * kazuponquit (Remote host closed the connection)
10:27:09  * csaohquit (Quit: csaoh)
10:39:12  * bnoordhuisjoined
10:44:02  * abraxasquit (Remote host closed the connection)
10:44:18  * mralephjoined
10:44:43  * mraleph1quit (Read error: Connection reset by peer)
10:48:12  * csaohjoined
10:52:43  * bajtosquit (Quit: bajtos)
10:58:23  * stagasquit (Ping timeout: 252 seconds)
11:06:57  * bnoordhuisquit (Ping timeout: 246 seconds)
11:09:40  * mikealjoined
11:12:29  * Benviejoined
11:13:50  * Benvie_quit (Ping timeout: 240 seconds)
11:18:25  * mikealquit (Ping timeout: 248 seconds)
11:24:24  * bajtosjoined
11:32:49  * kazuponjoined
11:32:52  <indutny>heya
11:32:59  <indutny>how are we doing?
11:33:08  * bnoordhuisjoined
11:34:28  <indutny>bnoordhuis: hey man :)
11:34:30  <indutny>howdy?
11:55:11  <bnoordhuis>indutny: sup fedor?
11:55:58  * DrPizzaquit (Ping timeout: 276 seconds)
11:56:04  * DrPizzajoined
11:56:49  <indutny>good, how are you?
11:59:28  <bnoordhuis>recovering
11:59:32  <bnoordhuis>and afk again :)
11:59:38  <bnoordhuis>ttyl fedor
12:04:00  * bnoordhuisquit (Ping timeout: 246 seconds)
12:10:17  * kazuponquit (Remote host closed the connection)
12:25:39  * leonvvjoined
12:30:36  * mikealjoined
12:35:35  * mikealquit (Ping timeout: 264 seconds)
12:38:41  * jmar777joined
12:49:33  * bradleymeckjoined
12:52:31  * bajtosquit (Quit: bajtos)
12:53:14  * bradleymeckquit (Client Quit)
12:56:21  * werlejoined
13:01:01  * mikealjoined
13:06:56  * werlequit (Quit: Leaving.)
13:07:53  * mikealquit (Ping timeout: 240 seconds)
13:10:04  * bnoordhuisjoined
13:15:11  * bnoordhuisquit (Ping timeout: 264 seconds)
13:19:39  * indexzerojoined
13:20:50  * kazuponjoined
13:21:54  * piscisaureus_joined
13:25:23  * kazuponquit (Ping timeout: 240 seconds)
13:31:48  * csaohquit (Quit: csaoh)
13:35:22  * indexzeroquit (Quit: indexzero)
13:40:27  * mikealjoined
13:44:46  * mikealquit (Ping timeout: 240 seconds)
13:51:36  * c4milojoined
13:59:34  * c4miloquit (Remote host closed the connection)
14:00:50  * leonvvquit (Remote host closed the connection)
14:01:47  * csaohjoined
14:02:33  * werlejoined
14:11:14  * mikealjoined
14:15:34  * mikealquit (Ping timeout: 249 seconds)
14:21:11  * jmar777quit (Read error: Connection reset by peer)
14:21:32  * jmar777joined
14:32:14  * c4milojoined
14:34:40  * c4miloquit (Remote host closed the connection)
14:34:41  * pachetjoined
14:38:10  * c4milojoined
14:41:55  * mikealjoined
14:44:35  * indexzerojoined
14:45:01  * M28quit (Read error: Connection reset by peer)
14:46:19  * M28joined
14:46:23  * mikealquit (Ping timeout: 264 seconds)
14:53:47  * paulfryzeljoined
14:59:33  * bajtosjoined
15:00:24  * kazuponjoined
15:01:49  <isaacs>trevnorris: I guess any order is fine. i didn't finish reviewing the rest, though, ran out of time. will do more today
15:02:08  * M28quit (Remote host closed the connection)
15:02:19  * M28joined
15:04:40  * jmar777quit (Read error: Connection reset by peer)
15:05:04  * jmar777joined
15:05:09  * c4miloquit (Remote host closed the connection)
15:06:13  * piscisaureus_quit (Ping timeout: 256 seconds)
15:09:09  * mikealjoined
15:09:26  * c4milojoined
15:13:57  * mikealquit (Client Quit)
15:19:49  * mcavagejoined
15:22:58  * julianduquejoined
15:22:59  * julianduquequit (Remote host closed the connection)
15:23:50  * julianduquejoined
15:26:57  * indexzeroquit (Quit: indexzero)
15:27:26  * loladirojoined
15:39:57  * groundwaterjoined
15:44:06  * mikealjoined
15:50:30  <indutny>hoya
15:50:36  <indutny>call today?
15:50:51  * mikealquit (Ping timeout: 260 seconds)
15:51:11  <trevnorris>good morning
15:51:33  <indutny>morning
15:52:05  <trevnorris>isaacs: well, we could deprecate the old argument order in both cases. and support the new syntax.
15:52:19  <trevnorris>isaacs: consistency always the best choice imo :)
15:52:30  <trevnorris>indutny: do anything fun with rust lately?
15:52:41  <indutny>well
15:52:43  <indutny>not particularly
15:52:51  <indutny>I was devoting all my free time to voxer
15:53:55  <trevnorris>that's cool.
15:53:59  <indutny>in other words
15:54:04  * sblomjoined
15:54:05  <indutny>I had no free time :)
15:57:19  <indutny>so
15:57:25  <indutny>status call in 3 minutes?
15:57:35  <tjfontaine>I would imagine, isaacs not yet in the office
16:01:06  * paddybyersquit (Ping timeout: 256 seconds)
16:01:32  <tjfontaine>isaacs is in the office now
16:02:25  * bnoordhuisjoined
16:03:52  <indutny>haha
16:03:56  <isaacs>call starting soon
16:04:04  <isaacs>once skype loads
16:04:22  <trevnorris>skype? wtf
16:04:26  <isaacs>i mean, hangout
16:04:49  <isaacs> // legacy string interface (fd, data, position, encoding, callback)
16:04:52  <indutny>hehe
16:05:00  <isaacs>indutny: https://plus.google.com/hangouts/_/5b6b53fce8c09512b15a7e7d5c2fbb51d9557288
16:05:03  <isaacs>trevnorris: https://plus.google.com/hangouts/_/5b6b53fce8c09512b15a7e7d5c2fbb51d9557288
16:05:09  <indutny>I wonder if it'll work from my ipad
16:05:47  <indutny>s/from/on/
16:13:59  * indexzerojoined
16:14:19  * stagasjoined
16:15:12  * indexzeroquit (Client Quit)
16:20:53  * AvianFlujoined
16:22:32  * defunctzombie_zzchanged nick to defunctzombie
16:23:15  * bajtosquit (Quit: bajtos)
16:31:23  * bnoordhuisquit (Ping timeout: 240 seconds)
16:33:09  * loladiroquit (Quit: loladiro)
16:33:47  * qardjoined
16:35:54  * TooTallNatejoined
16:40:56  * piscisaureus_joined
16:41:58  <indutny>ok, ttyl
16:42:05  <trevnorris>bye
16:42:48  * rje`sickchanged nick to rje
16:47:33  * stagasquit (Read error: Connection reset by peer)
16:48:23  * loladirojoined
16:48:58  * stagasjoined
16:55:32  * bajtosjoined
16:56:46  * loladiroquit (Quit: loladiro)
16:57:50  * paulfryzelquit (Remote host closed the connection)
16:59:54  * csaohquit (Quit: csaoh)
17:00:00  * qardpart
17:00:13  * qardjoined
17:05:48  * stagas_joined
17:06:47  * icarotjoined
17:07:27  * dsantiagoquit (*.net *.split)
17:07:28  * wolfeidauquit (*.net *.split)
17:07:28  * creationixquit (*.net *.split)
17:07:29  * qmxquit (*.net *.split)
17:07:29  * dlmanningquit (*.net *.split)
17:07:29  * felixgequit (*.net *.split)
17:07:29  * stagasquit (Ping timeout: 256 seconds)
17:07:42  * stagas_changed nick to stagas
17:08:57  * mikealjoined
17:09:43  * mikealquit (Client Quit)
17:10:04  * dsantiagojoined
17:10:04  * wolfeidaujoined
17:10:04  * creationixjoined
17:10:04  * qmxjoined
17:10:04  * dlmanningjoined
17:10:04  * felixgejoined
17:10:51  * paulfryzeljoined
17:11:22  * mikealjoined
17:19:01  * piscisaureus_quit (Ping timeout: 248 seconds)
17:20:17  * loladirojoined
17:27:58  * roxlu_joined
17:28:20  * isaacs_joined
17:28:25  * icarotquit (Remote host closed the connection)
17:28:42  * icarotjoined
17:28:44  * isaacs_changed nick to Guest89212
17:29:08  * Guest89212changed nick to isaacs__
17:29:19  * isaacsquit (Disconnected by services)
17:29:23  * isaacs__changed nick to isaacs
17:32:59  * rnowak_joined
17:34:57  * DrPizzaquit (*.net *.split)
17:34:57  * roxluquit (*.net *.split)
17:34:58  * Chip_Zeroquit (*.net *.split)
17:34:58  * rnowakquit (*.net *.split)
17:36:44  * bnoordhuisjoined
17:41:53  * DrPizzajoined
17:47:00  <trevnorris>is node_http_parser just for parsing headers?
17:50:23  <MI6>joyent/node: isaacs v0.10 * 04e0324 : doc: style the 'type' fields in API docs (+1 more commits) - http://git.io/lrzuZw
17:51:25  <isaacs>trevnorris: i think it also parses the body chunks
17:51:34  <isaacs>trevnorris: for chunked encoding
17:59:50  * icarotquit (Ping timeout: 240 seconds)
18:03:41  * icarotjoined
18:05:00  <MI6>nodejs-v0.10: #286 UNSTABLE osx-x64 (1/594) smartos-ia32 (3/594) linux-ia32 (1/594) smartos-x64 (3/594) http://jenkins.nodejs.org/job/nodejs-v0.10/286/
18:06:51  <trevnorris>wow. http is a behemoth.
18:09:11  * saghulquit (Ping timeout: 240 seconds)
18:10:20  * paulfryzelquit (Remote host closed the connection)
18:10:57  * saghuljoined
18:13:19  * kazuponquit (Remote host closed the connection)
18:15:19  <bajtos>bnoordhuis: you know what makes me wonder? Why tls-connect is slower in cluster than in a single process.
18:16:12  <bajtos>bnoordhuis: even with TLS, where session tickets are used, thus all session should be reused (resumed)
18:18:28  <bnoordhuis>bajtos: i can think of a couple reasons
18:18:50  <bnoordhuis>the master-worker roundtrip, for example
18:19:18  <trevnorris>wtf is going on with this: ((Parser *) ((char *) (p_) - offset_of(Parser, parser_)));
18:20:09  <bajtos>bnoordhuis: if master-worker roundtrip was the reason, then a similar benchmark for plain tcp should be also slower in the cluster, right? (I might create and run one to verify.)
18:20:14  <bnoordhuis>trevnorris: looks like an expanded container_of macro
18:20:54  <trevnorris>bnoordhuis: yeah. I expanded it to visualize what's going on in node_http_parser. what I don't understand is why the class cast from an offset.
18:20:59  <bnoordhuis>bajtos: no, because with tcp you don't have that roundtrip
18:21:14  <bnoordhuis>bajtos: the roundtrip i mean is where the worker has to query the master for the session data
18:21:48  <bajtos>bnoordhuis: that's not need with session tickets, because session data is enclosed inside the ticket (not server side)
18:21:49  <bnoordhuis>trevnorris: it's basically encapsulating_ptr = field_ptr - some_offset
18:21:55  <MI6>nodejs-v0.10-windows: #114 UNSTABLE windows-x64 (8/594) windows-ia32 (9/594) http://jenkins.nodejs.org/job/nodejs-v0.10-windows/114/
18:21:58  <bajtos>bnoordhuis: *not needed
18:22:18  <bnoordhuis>bajtos: ah. you didn't mention that :)
18:22:19  <bajtos>bnoordhuis: so with TLS, there is no roundtrip worker-master to get session data
18:22:46  <bajtos>bnoordhuis: I though you have read the discussion on GH issue. Sorry.
18:23:09  * inolen1joined
18:23:48  * inolenquit (Read error: Connection reset by peer)
18:23:57  * mikeal1joined
18:24:03  <bnoordhuis>bajtos: try to control for obvious things first, like the cipher suite that's used
18:24:19  <bnoordhuis>e.g. benchmark both with MD5-NULL
18:24:38  * mikealquit (Ping timeout: 240 seconds)
18:24:38  * sblomquit (Ping timeout: 240 seconds)
18:24:43  <bnoordhuis>oh, and make sure you enforce the server's cipher suite
18:25:07  <bajtos>bnoordhuis: ok, I will try that. Although I don't see how that can affect single-process vs. cluster performance
18:26:53  <trevnorris>bnoordhuis: thanks .this is a lot more complicated than I thought it would be. figured I'd be able to scan the incoming data for the end of the headers and pass that to some parser.
18:27:02  <trevnorris>this has way more steps than I imagined.
18:28:01  <bnoordhuis>bajtos: it will make it easier to narrow down the issue
18:29:03  <bajtos>bnoordhuis: ok. I'll leave it for tomorrow, thanks for your help for now.
18:29:07  <bnoordhuis>np
18:29:40  * paulfryzeljoined
18:31:53  * rnowak_changed nick to rnowak
18:36:36  * stagas_joined
18:37:08  * bajtosquit (Quit: bajtos)
18:38:43  * stagasquit (Ping timeout: 256 seconds)
18:38:47  * stagas_changed nick to stagas
18:47:03  * EhevuTovjoined
18:53:29  * c4miloquit (Remote host closed the connection)
18:54:16  * c4milojoined
18:58:47  * piscisaureus_joined
19:01:41  * sblomjoined
19:02:11  * EhevuTovquit (Quit: Leaving)
19:22:11  * Chip_Zerojoined
19:44:16  * paddybyersjoined
19:45:47  * bnoordhuisquit (Ping timeout: 264 seconds)
19:48:33  * icarotquit (Ping timeout: 245 seconds)
19:51:26  * c4miloquit (Remote host closed the connection)
19:55:09  * defunctzombiechanged nick to defunctzombie_zz
19:55:40  * icarotjoined
19:56:34  * icarotquit (Max SendQ exceeded)
19:56:59  * icarotjoined
19:57:03  * defunctzombie_zzchanged nick to defunctzombie
19:57:27  <isaacs>tjfontaine: https://github.com/joyent/node/pull/5859 <-- small doc review, plz
19:58:27  <tjfontaine>+efficient. It runs before any additional I/O events (including
19:58:28  <tjfontaine>+timers) fire in subsequent ticks of the event loop.
19:58:47  <tjfontaine>I can't think of a way to clarify that timers might be queued in buckets
19:59:12  <tjfontaine>isaacs: otherwise it's strictly better than what we have right now
20:00:33  * icarotquit (Read error: Connection reset by peer)
20:00:45  <isaacs>tjfontaine: i don't htink we really need to clarify that timers happen in buckets
20:00:50  <trevnorris>imho "pass through the" is unnecessary.
20:00:51  <isaacs>tjfontaine: at least, not in this spot. maybe in the timers api doc
20:01:01  * icarotjoined
20:01:36  * paulfryzelquit (Remote host closed the connection)
20:02:35  * paulfryzeljoined
20:03:01  <MI6>joyent/node: isaacs master * bd5ab9c : doc: Explain process.nextTick timing - http://git.io/y08Q7A
20:03:12  * paulfryzelquit (Remote host closed the connection)
20:04:40  * c4milojoined
20:05:16  * piscisaureus_quit (Ping timeout: 246 seconds)
20:10:41  * mikeal1quit (Quit: Leaving.)
20:11:39  * paddybyersquit (Ping timeout: 256 seconds)
20:12:11  * bnoordhuisjoined
20:12:26  * mikealjoined
20:13:50  * kazuponjoined
20:16:02  <MI6>nodejs-master: #308 UNSTABLE smartos-ia32 (4/612) linux-x64 (1/612) smartos-x64 (9/612) http://jenkins.nodejs.org/job/nodejs-master/308/
20:20:43  * bnoordhuisquit (Ping timeout: 256 seconds)
20:21:30  * groundwaterquit (Quit: groundwater)
20:22:32  * mikealquit (Quit: Leaving.)
20:22:58  * kazuponquit (Ping timeout: 276 seconds)
20:23:07  <isaacs>trevnorris: ok, reviewed.
20:23:33  <trevnorris>coolio. thanks.
20:23:34  <isaacs>trevnorris: i think it'd be worthwhile to have a binding.writeString(string, position, encoding, [callback]) and binding.writeBuffer(buffer, length, offset, position, [callback])
20:23:39  <isaacs>trevnorris: rather than sniff in C++
20:23:51  <trevnorris>ok. that's doable.
20:23:55  * groundwaterjoined
20:24:51  <isaacs>trevnorris: then both can call an underlying write(char *data, size_t offset, size_t length, int position, Handle<Value> callback) or something
20:27:36  <MI6>nodejs-master-windows: #114 UNSTABLE windows-ia32 (12/612) windows-x64 (14/612) http://jenkins.nodejs.org/job/nodejs-master-windows/114/
20:28:22  * jmar777quit (Remote host closed the connection)
20:29:01  * jmar777joined
20:34:01  * jmar777quit (Ping timeout: 276 seconds)
20:36:54  <trevnorris>isaacs: so you want me to use the proper names for each argument being passed to writeBuffer and writeString?
20:38:45  <isaacs>trevnorris: sure.
20:38:56  <isaacs>trevnorris: you could even create a fs.writeBuffer and fs.writeString if you feel like it
20:39:03  <isaacs>trevnorris: and have fs.write call teh appropraite one
20:39:08  <isaacs>but that's bonus points :)
20:39:20  <trevnorris>heh, ok.
20:39:23  <isaacs>since it'd just be a passthrough to the binding anyway
20:39:26  <isaacs>actually, skip that :)
20:39:29  <isaacs>bad idea :)
20:39:52  <trevnorris>it's a bugger that v8 doesn't allow to write substrings, but whatever.
20:41:47  <trevnorris>isaacs: ok, once I get this done going to implement the same on net.Socket#write()
20:42:37  <trevnorris>my brain can only handle so much http in one day :P
20:48:48  * bnoordhuisjoined
20:49:36  * paddybyersjoined
20:52:47  * mikealjoined
20:56:33  <tjfontaine>isaacs: https://github.com/tjfontaine/node/compare/v0.10 anything else missing from that header?
20:58:14  <trevnorris>tjfontaine: i'm confused, does anyone have access to those statistics?
20:58:34  <tjfontaine>trevnorris: they will be soon
20:58:39  <tjfontaine>trevnorris: well
20:58:39  <trevnorris>ah, ok.
20:58:45  <tjfontaine>trevnorris: aggregated information, not the access logs themselves
20:58:56  <trevnorris>oh totally.
20:59:28  <trevnorris>tjfontaine: want me to do something like this for downloads? http://people.mozilla.org/~tnorris/senate/
20:59:46  <tjfontaine>http://us-east.manta.joyent.com/NodeCore/public/blog/2013-07-15/charts.html would automatically pick up the new data as we update the data source
21:00:11  <trevnorris>ooh, curvy.
21:00:42  <tjfontaine>basically I'll make some jobs that run after the logfile is uploaded which update the data sources
21:00:48  <tjfontaine>and then let the d3 shit do its job
21:02:16  * mikealquit (Ping timeout: 240 seconds)
21:04:14  * defunctzombiechanged nick to defunctzombie_zz
21:12:50  <trevnorris>bnoordhuis: there's a macro i'd like to use in node_file, but there's a single line that's making it difficult.
21:13:26  <trevnorris>bnoordhuis: i'm wondering if there's a way to check if a variable's been declared at compile time and remove a statement if it hasn't?
21:15:39  * werlequit (Quit: Leaving.)
21:18:52  * kazuponjoined
21:19:48  * icarotquit (Ping timeout: 245 seconds)
21:22:07  <bnoordhuis>trevnorris: not possible
21:22:16  <trevnorris>ok thanks
21:24:10  * kazuponquit (Ping timeout: 268 seconds)
21:24:26  * werlejoined
21:24:54  <trevnorris>bnoordhuis: so, v8 mailing list said using reinterpret cast is safe if the object isn't weak. so think it would be worth putting an IsWeak in ->object() and only returning Local<T>::New if it is?
21:27:06  <bnoordhuis>trevnorris: git log!
21:28:50  * rendarquit
21:29:14  * mikealjoined
21:30:50  <trevnorris>bnoordhuis: heh, thanks. was focused on the commit before that to see what I did incorrectly. :)
21:30:59  * sblomquit (Ping timeout: 256 seconds)
21:31:41  <tjfontaine>version overload http://us-east.manta.joyent.com/NodeCore/public/reports/version-downloads-by-date.html
21:32:31  <trevnorris>wtf. legend, where's my legend?!
21:32:34  <tjfontaine>heh
21:32:52  <trevnorris>tjfontaine: are those downloads completed or download initiated?
21:33:54  <tjfontaine>entries in the access log, so they may be incomplete, would need to actually get byte lengths for each file to verify matching content lengths
21:33:58  * piscisaureus_joined
21:34:02  * mikealquit (Ping timeout: 268 seconds)
21:34:28  <trevnorris>yeah. that's always a pain.
21:34:40  <trevnorris>had to deal with that crap when creating visualizations for fx downloads.
21:34:43  <tjfontaine>going to update with just v0.10 data
21:35:41  <tjfontaine>still we're doing pretty good at convincing people to grab the latest
21:36:09  <trevnorris>latest stable?
21:37:20  <tjfontaine>aye
21:37:24  <trevnorris>coolio
21:37:39  <tjfontaine>also we are pretty regular with new releases :)
21:37:53  <tjfontaine>a bit long on v0.10.12
21:39:40  * bnoordhuisquit (Ping timeout: 276 seconds)
21:42:17  * werlequit (Quit: Leaving.)
21:43:04  * stagasquit (Remote host closed the connection)
21:46:05  * paulfryzeljoined
21:48:42  <trevnorris>isaacs: added commit with changes: https://github.com/joyent/node/pull/5747
21:49:15  <trevnorris>isaacs: didn't change the variable names in .write(). they were just being a pain.
21:49:31  <trevnorris>but the writeString and writeBuffer did clean up the cc considerably.
21:49:33  * trevnorrispart ("Leaving")
21:49:44  * trevnorrisjoined
22:01:24  * mikealjoined
22:01:28  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
22:02:45  * julianduquequit (Ping timeout: 248 seconds)
22:12:27  * julianduquejoined
22:13:37  * julianduquequit (Client Quit)
22:13:51  * julianduquejoined
22:14:11  * defunctzombie_zzchanged nick to defunctzombie
22:19:13  * inolenjoined
22:19:30  * inolen1quit (Read error: No route to host)
22:19:39  * kazuponjoined
22:23:55  * defunctzombiechanged nick to defunctzombie_zz
22:24:01  * mikealquit (Quit: Leaving.)
22:24:14  * kazuponquit (Ping timeout: 240 seconds)
22:26:43  * mikealjoined
22:27:43  <mmalecki>hmm, any reason bind() wouldn't be called when starting to listen on a uv tcp server?
22:31:30  * stagasjoined
22:33:59  <trevnorris>like uv_tcp_bind()?
22:36:59  * ik_joined
22:38:32  * werlejoined
22:42:14  * ikquit (*.net *.split)
22:42:14  * niskaquit (*.net *.split)
22:42:15  * mmaleckiquit (*.net *.split)
22:42:16  * brucemquit (*.net *.split)
22:42:16  * tellnesquit (*.net *.split)
22:42:16  * dsantiagoquit (*.net *.split)
22:42:16  * wolfeidauquit (*.net *.split)
22:42:17  * creationixquit (*.net *.split)
22:42:17  * qmxquit (*.net *.split)
22:42:17  * dlmanningquit (*.net *.split)
22:42:18  * felixgequit (*.net *.split)
22:42:18  * mikealquit (*.net *.split)
22:42:18  * inolenquit (*.net *.split)
22:42:19  * M28quit (*.net *.split)
22:42:19  * einarosquit (*.net *.split)
22:42:20  * c4miloquit (*.net *.split)
22:42:20  * DrPizzaquit (*.net *.split)
22:42:20  * loladiroquit (*.net *.split)
22:42:20  * pachetquit (*.net *.split)
22:42:20  * ircretaryquit (*.net *.split)
22:42:21  * txdvquit (*.net *.split)
22:42:21  * paddybyersquit (*.net *.split)
22:42:22  * defunctzombie_zzquit (*.net *.split)
22:42:22  * toothrotquit (*.net *.split)
22:42:22  * mburnsquit (*.net *.split)
22:42:22  * ralquit (*.net *.split)
22:42:22  * joshthecoder_quit (*.net *.split)
22:42:23  * pquernaquit (*.net *.split)
22:42:23  * philipsquit (*.net *.split)
22:43:43  <trevnorris>tjfontaine: so the compiler will automatically remove conditionals that don't have a body?
22:44:43  * mikealjoined
22:44:43  * inolenjoined
22:44:43  * paddybyersjoined
22:44:43  * c4milojoined
22:44:43  * DrPizzajoined
22:44:43  * loladirojoined
22:44:43  * felixgejoined
22:44:43  * dlmanningjoined
22:44:43  * qmxjoined
22:44:43  * creationixjoined
22:44:43  * wolfeidaujoined
22:44:43  * dsantiagojoined
22:44:43  * M28joined
22:44:43  * pachetjoined
22:44:43  * defunctzombiejoined
22:44:43  * ircretaryjoined
22:44:43  * einarosjoined
22:44:43  * txdvjoined
22:44:43  * toothrotjoined
22:44:43  * mmaleckijoined
22:44:43  * mburnsjoined
22:44:43  * raljoined
22:44:43  * joshthecoder_joined
22:44:43  * pquernajoined
22:44:43  * philipsjoined
22:44:43  * brucemjoined
22:44:43  * tellnesjoined
22:45:26  * niskajoined
22:46:24  <tjfontaine>trevnorris: which conditionals? and probably, depending on the optimization level
22:46:49  <trevnorris>tjfontaine: StreamWrap::DoWrite if statement wrapping NODE_COUNT_NET_BYTES_SENT()
22:47:36  <tjfontaine>ya, since that is a preprocessor statement that will essentially evaluate to false, it's dead code, and will probably be caught by DCE
22:47:52  <trevnorris>thanks.
22:48:20  <tjfontaine>your compiler is a strange and magical beast
22:48:36  * pachet_joined
22:48:44  * pachetquit (Remote host closed the connection)
22:49:04  * werlequit (Quit: Leaving.)
22:49:21  <trevnorris>heh, seriously.
22:49:22  <tjfontaine>this is your compiler, there are many like, but this one is yours.
22:49:26  <tjfontaine>*like it
22:49:32  <trevnorris>ok. writeQueueSize is internal. i'm going to optimize that shit.
22:49:56  <tjfontaine>http://en.wikipedia.org/wiki/Rifleman's_Creed replace with compiler, it mostly works
22:50:10  <trevnorris>heh
22:50:11  <trevnorris>nice
22:50:19  <mmalecki>hmm, it's like it doesn't even call bind(), but bind() shows up in truss
22:51:20  <tjfontaine>an implicit bind?
22:52:14  * paulfryzelquit (Remote host closed the connection)
22:52:51  <mmalecki>hmm, would it show up in bind tho? also, it needs to do a bind to listen on a port, right?
22:54:13  <tjfontaine>the syscall should probably show up
22:54:46  <tjfontaine>I mean, if you pass 0 to listen, ephemeral ports and all
22:55:18  <mmalecki>well, right, but the port is strictly set, not 0
22:55:38  <mmalecki>this is really weird. the same LD_PRELOAD'd library works with python and not with node
22:56:10  <tjfontaine>so what are you really doing? :)
22:58:51  * paddybyersquit (Ping timeout: 246 seconds)
22:59:13  * loladiroquit (Quit: loladiro)
22:59:42  <mmalecki>well, it is a LD_PRELOAD library which overrides bind() calls and sends the port over IPC
23:00:19  <mmalecki>\
23:01:11  <tjfontaine>oh
23:01:59  <mmalecki>so, yeah, with Python I get the call in the library and with node I don't
23:02:13  <mmalecki>even tho when I run the node process, it shows bind() call in truss
23:04:21  * kenperkinsquit (Quit: Computer has gone to sleep.)
23:11:44  <mmalecki>tjfontaine: any ideas, per chance?
23:12:09  <mmalecki>I should mention, it's only smartos. and smartos linker is weeeeird.
23:13:19  * c4miloquit (Remote host closed the connection)
23:16:46  * julianduquequit (Ping timeout: 240 seconds)
23:20:25  * kazuponjoined
23:20:46  * julianduquejoined
23:24:46  * kazuponquit (Ping timeout: 246 seconds)
23:25:24  * julianduquequit (Ping timeout: 245 seconds)
23:25:39  * defunctzombiechanged nick to defunctzombie_zz
23:31:11  <tjfontaine>mmalecki: hm no not off the top of my head, I'll try and reproduce it
23:31:32  <trevnorris>isaacs: would you consider a patch like this: https://github.com/trevnorris/node/compare/ext-write-queue-size
23:31:58  * mcavagequit
23:32:04  <tjfontaine>I think ben did this once, and didn't find much improvement
23:32:14  <tjfontaine>I'm nearly positive in fact
23:32:19  * mikealquit (Quit: Leaving.)
23:32:22  <trevnorris>coolio.
23:32:22  * julianduquejoined
23:32:38  <tjfontaine>I would follow up with him on it
23:32:43  <isaacs>trevnorris: yeah, if it makes things faster.
23:32:57  <isaacs>trevnorris: but it would have to be an actual benchmark improvement
23:33:28  <trevnorris>ok. it's faster, when I don't create the extra persistent to handle the data. without it there's a race condition that seg faults :P
23:33:35  <trevnorris>oh well, put that on the back burner.
23:33:42  * loladirojoined
23:35:31  * mikealjoined
23:37:32  <trevnorris>isaacs: so just realized that stream_wrap writes out string data directly. so only place I think that converted them to buffer first was fs.
23:37:32  * loladiroquit (Read error: Connection reset by peer)
23:37:46  <tjfontaine>trevnorris: I am going to put a new v8.so on smartos.nodejs.org that works with the core file
23:37:55  <trevnorris>awesomeness!
23:37:56  <tjfontaine>trevnorris: I'll put it in your home directory
23:38:02  <trevnorris>sweet!
23:38:28  * loladirojoined
23:38:35  <tjfontaine>trevnorris: it's there
23:38:44  <trevnorris>tjfontaine: thanks. going to run it now.
23:39:10  <tjfontaine>it's not instant, but it does complete :)
23:39:26  * sblomjoined
23:39:31  * mikealquit (Client Quit)
23:40:14  * kazuponjoined
23:40:15  * mikealjoined
23:43:38  <trevnorris>hey, that's good enough for me
23:43:48  <tjfontaine>did it work?
23:44:59  * kazuponquit (Ping timeout: 245 seconds)
23:45:19  <trevnorris>yup :)
23:48:27  <trevnorris>tjfontaine: ok, that's a crap load of objects for running the http server for under 5 minutes.
23:51:46  <tjfontaine>trevnorris: keep in mind, those are found objects in the heap, not necessarily objects that are live, which is why you need to check who/what holds the reference, though generally they are live objects
23:51:51  <trevnorris>tjfontaine: have that url on hand about using mdb? forgot to bookmark it
23:53:27  <tjfontaine>dtrace.org/blogs/bmc/2012/05/05/debugging-node-js-memory-leaks/
23:54:22  <trevnorris>tjfontaine: ok. cool information. now to figure out how to use it for debugging :P
23:55:59  <tjfontaine>:)
23:56:33  <trevnorris>it's like a rabbit hole.
23:57:22  <trevnorris>tjfontaine: you know what it means when "not referred to by a known object"?
23:57:30  <trevnorris>like, does that mean it's actually dead?
23:57:49  <trevnorris>isaacs: complete output: https://gist.github.com/trevnorris/6016301
23:58:27  * stagasquit (Quit: Bye)
23:59:39  * mikealquit (Quit: Leaving.)