00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:02  * brsonquit (Ping timeout: 252 seconds)
00:00:08  * ircretaryjoined
00:02:41  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
00:06:19  * isaacsaway
00:24:53  * MI6quit (Remote host closed the connection)
00:25:07  * MI6joined
00:29:23  * brson_quit (Quit: leaving)
00:29:39  * brsonjoined
00:59:15  * piscisaureus_joined
01:21:32  * niska`changed nick to niska
01:32:49  * abraxasjoined
01:36:18  * mmalecki[out]changed nick to mmalecki
02:04:30  * sblomquit (Ping timeout: 250 seconds)
02:15:44  * wolfeidaujoined
02:24:29  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
02:27:54  * dapquit (Quit: Leaving.)
02:43:51  <isaacs>ircretary: tell tjfontaine Kudos on TAP output for the test runner. Is this for your jenkins CI experiments?
02:43:51  <ircretary>isaacs: I'll be sure to tell tjfontaine
02:44:07  <tjfontaine>isaacs: indeed
02:44:15  * TooTallNatequit (Quit: ["Textual IRC Client: www.textualapp.com"])
02:44:19  <isaacs>tjfontaine: oh, you're here :)
02:44:25  <isaacs>that's good.
02:44:34  <isaacs>TAP is the test output format god intended.
02:44:47  <tjfontaine>this was a particularly bad run recently, but http://jenkins.atxconsulting.com:8080/job/nodejs-master/lastCompletedBuild/testReport/
02:44:58  * isaacsaway again, until call tomorrow at 1600
02:47:29  <tjfontaine>dear jenkins why have you decided to just spin a cpu
03:42:38  * bentkusquit (Quit: Lost terminal)
03:47:19  * kazuponjoined
03:51:23  * brsonquit (Quit: leaving)
03:56:26  * mmaleckichanged nick to mmalecki[zzz]
04:06:08  * mikealquit (Quit: Leaving.)
04:06:28  * mikealjoined
04:30:10  * bradleymeckjoined
04:47:10  * pooyajoined
04:50:21  * lohkeyjoined
04:50:36  * lohkeypart
04:56:29  * stagasjoined
04:58:53  * mikealquit (Quit: Leaving.)
04:59:12  * mikealjoined
05:00:35  * brsonjoined
05:10:23  * mikealquit (Quit: Leaving.)
05:19:27  * mikealjoined
05:37:27  * mikealquit (Quit: Leaving.)
05:58:24  * wolfeidauquit (Ping timeout: 264 seconds)
06:02:46  * wolfeidaujoined
06:11:31  * wolfeidauquit (Remote host closed the connection)
06:13:33  * felixgejoined
06:13:33  * felixgequit (Changing host)
06:13:34  * felixgejoined
06:48:01  * mikealjoined
06:49:39  * mikealquit (Client Quit)
06:56:29  * indexzeroquit (Quit: indexzero)
07:04:02  * mikealjoined
07:04:36  * joshthecoderjoined
07:15:30  * `3rdEdenjoined
07:21:11  * AvianFluquit (Remote host closed the connection)
07:46:40  * rendarjoined
07:53:13  * joshthecoderquit (Quit: Leaving...)
08:16:23  * brsonquit (Ping timeout: 252 seconds)
08:18:32  * brsonjoined
08:52:51  * pooyaquit (Quit: pooya)
09:02:53  * kazuponquit (Remote host closed the connection)
09:24:56  * bradleymeckquit (Quit: bradleymeck)
09:25:28  * loladiroquit (Quit: loladiro)
09:26:02  * bnoordhuisjoined
09:39:13  <bnoordhuis>last night i dreamt i was eating pork chops with linus torvals and his daughters
09:39:19  <bnoordhuis>they were pretty good pork chops too
09:39:29  <bnoordhuis>but linus kept spoiling by wanting to talk about this kernel thing
09:39:56  <bnoordhuis>dream teller, what does it mean?
09:40:11  <deoxxa>bnoordhuis: leave the house more often
09:40:14  <deoxxa>bnoordhuis: also get some iron
09:40:47  * slacko5880joined
09:41:29  <slacko5880>how does one vacation away from government?
09:42:05  <deoxxa>go chill in north korea or pakistan maybe
09:42:18  <deoxxa>assuming you mean just one specific government
09:42:26  <deoxxa>if it's just government in general... maybe go to the moon?
09:42:33  <slacko5880>i mean government in general
09:42:39  <slacko5880>the moon is looking good
09:43:24  <slacko5880>government is just theft, so ya, i aspire to distance myself from criminals
09:44:11  <deoxxa>i take it you've read this? http://www.outpost-of-freedom.com/jimbellap.htm
09:44:40  <slacko5880>i will now
09:44:52  <deoxxa>excellent read
09:45:03  <deoxxa>kind of carries on the notion that governments exist for that reason only
09:45:18  <brucem>oh the fun times when Jim Bell originally published that.
09:45:36  <deoxxa>come onnn bitcoin, make it come true!
09:45:51  <bnoordhuis>guys, can you take it to #node.js
09:46:07  <slacko5880>wow that is a lot to read...and bitcoin..it's just a matter of time
09:46:23  <slacko5880>deoxxa...you sound like an ancap
09:46:26  <slacko5880>cool
09:47:09  <deoxxa>bnoordhuis: my bad, i'll be quiet now
09:47:10  <slacko5880>i figured this would be marx central, with a name like liberal utopian vacation...shame on me
09:47:27  <slacko5880>what is node.js?
09:47:58  <slacko5880>oh it is marx.central? lol and we can't talk about it here?
09:48:39  <slacko5880>tnoordhuis will kick me? it's ok, im new to irc
09:48:59  <bnoordhuis>slacko5880: node.js (and libuv) are programmer things
09:49:24  <bnoordhuis>the only marxist thing about it is that it's open source
09:49:36  <brucem>bnoordhuis: he's referring to the channel /topic.
09:49:36  <slacko5880>interesting
09:49:47  <bnoordhuis>brucem: i gathered as much :)
09:49:58  <slacko5880>well howdy
09:50:11  <slacko5880><---simmered
09:50:16  <brucem>bnoordhuis: I hadn't noticed that vacation thing in there until he joined and started this :)
09:50:56  <bnoordhuis>i think we'll have to go back to the velociraptors topic
09:53:12  <slacko5880>what was this stimulating topic?
09:53:34  * bnoordhuisdigs through the logs
09:53:41  <slacko5880>ha
09:55:10  <bnoordhuis>can't find it but i recall it was pretty violent. maybe we should do something with violets instead
09:55:37  <brucem>lovely urban violets.
09:56:07  <slacko5880>bnoordhuis, I agree and will offer a high five..not to mention violets in general...there are ground cover violets that you can eat, and they taste pretty good
09:59:49  <slacko5880>yall like hugelkultur's? aka as the future of non irrigation
10:00:03  * slacko5880quit (Quit: Leaving)
10:03:41  * kazuponjoined
10:08:09  * kazuponquit (Ping timeout: 256 seconds)
10:21:37  * rendar_joined
10:21:38  * rendar_quit (Excess Flood)
10:22:22  * rendar_joined
10:25:11  * tjfontai1ejoined
10:26:26  * rje_joined
10:27:07  * philips-joined
10:29:04  * Raynosquit (Ping timeout: 245 seconds)
10:29:04  * rjequit (Ping timeout: 245 seconds)
10:29:06  * philips-changed nick to 21WAAGHU0
10:29:06  * creationix_joined
10:29:45  * philips_quit (Ping timeout: 260 seconds)
10:29:45  * hij1nxquit (Ping timeout: 260 seconds)
10:29:45  * creationixquit (Ping timeout: 260 seconds)
10:29:45  * tjfontainequit (Ping timeout: 260 seconds)
10:29:47  * rendarquit (Ping timeout: 260 seconds)
10:29:48  * creationix_changed nick to creationix
10:29:59  * hij1nxjoined
10:31:41  <indutny>bnoordhuis: hey ben
10:31:46  <indutny>bnoordhuis: how is linus?
10:31:48  <bnoordhuis>indutny: sup fedor
10:31:52  <bnoordhuis>a noisy eater
10:32:03  <indutny>yeah, the same guy I knew
10:41:08  <MI6>joyent/node: Farid Neshat master * dcaebec : fs: add autoClose=true option to fs.createReadStream - http://git.io/W9Mcfw
11:04:14  * kazuponjoined
11:04:46  * abraxasquit (Remote host closed the connection)
11:05:34  * abraxasjoined
11:06:19  * abraxasquit (Remote host closed the connection)
11:08:15  <bnoordhuis>indutny: https://github.com/joyent/node/pull/4444 <- review?
11:08:44  * kazuponquit (Ping timeout: 252 seconds)
11:10:26  <indutny>bnoordhuis: nice number
11:10:32  <bnoordhuis>i know right?
11:10:45  <bnoordhuis>the numbers _in_ the PR are nice too
11:11:36  * rendar_quit
11:12:10  * rendar_joined
11:16:36  * brsonquit (Ping timeout: 248 seconds)
11:19:02  <bnoordhuis>indutny: reviewed?
11:19:39  <indutny>yes
11:19:41  <indutny>looking
11:22:48  <bnoordhuis>grr, i hate that isaacs reverted that mmap patch. it's a pain to sync mmap-reloaded with master now
11:26:23  <bnoordhuis>http_simple with -c 100 -n 25000 buffer/1024... today's master is 41.5% slower than v0.8
11:26:47  <bnoordhuis>i want to like streams2 but...
11:27:43  <bnoordhuis>indutny: "Does it improve/impact performance on small writes?" <- have you read the description? :)
11:27:57  <indutny>ah
11:28:01  <indutny>it's about small bodies
11:28:04  <indutny>hehe
11:28:29  * kazuponjoined
11:29:45  * kazuponquit (Remote host closed the connection)
11:34:37  <bnoordhuis> rectification: streams2 with buffer/1024 is 34.5%, not 41.5% slower than the current v0.8
11:35:06  <bnoordhuis>but my http-pack-buffer patch speeds up v0.8 by 13.5% so the performance gap grows :)
11:35:36  <bnoordhuis>merging it in master will probably give a speed-up too
11:35:40  <indutny>:)
11:35:59  <bnoordhuis>indutny: so, PR lgty?
11:36:03  <indutny>yes
11:36:08  <bnoordhuis>okay, in it goes
11:36:42  <MI6>joyent/node: Ben Noordhuis v0.8 * 5a19c07 : http: pack response body buffer in first tcp packet Apply the same optim (+1 more commits) - http://git.io/GkIJcQ
11:41:13  <MI6>joyent/node: Ben Noordhuis master * 79ae8b7 : Merge remote-tracking branch 'origin/v0.8' (+6 more commits) - http://git.io/N0Lhog
11:41:26  <bnoordhuis>^ it helps but master is still ~35% slower
12:20:19  * Raynosjoined
12:22:05  <indutny>bnoordhuis: btw
12:22:56  <indutny>bnoordhuis: does http client's Connection:keep-alive affects time in FINWAIT?
12:23:12  <bnoordhuis>indutny: not in itself
12:23:28  <indutny>too concise
12:23:42  <indutny>:)
12:23:42  <bnoordhuis>with keep-alive you'll have less TIME_WAIT sockets because you create less sockets
12:23:50  <indutny>well
12:24:20  * Chip_Zeroquit (Ping timeout: 244 seconds)
12:28:01  * sgallaghjoined
12:28:42  * Chip_Zerojoined
12:29:16  <indutny>yes
12:40:26  * kazuponjoined
12:45:14  * kazuponquit (Ping timeout: 255 seconds)
12:56:36  * kazuponjoined
13:01:41  * felixgequit (Quit: felixge)
13:07:06  * felixgejoined
13:07:06  * felixgequit (Changing host)
13:07:07  * felixgejoined
13:32:15  * felixgequit (Quit: felixge)
13:38:41  * felixgejoined
13:41:34  <bnoordhuis>my mmap-reloaded branch speeds up the master branch a fair bit
13:41:49  <bnoordhuis>but the v0.8 backport slows down v0.8 a fair bit
13:41:51  <bnoordhuis>spooky
13:49:29  <MI6>joyent/node: Ben Noordhuis master * d1556fb : bench: report stats in benchmark/net-pipe - http://git.io/SUQQOA
13:54:13  <bnoordhuis>and now it's slower on master too
13:54:16  <bnoordhuis>i give up :/
13:56:38  <indutny>:)
14:01:12  * piscisaureus_joined
14:02:12  <indutny>piscisaureus_: openssl-asm2 lgtm
14:02:16  <indutny>piscisaureus_: tested on osx and ubuntu
14:02:27  <piscisaureus_>indutny: i tested smartos and windows
14:02:32  <piscisaureus_>indutny: ok, landing :-)
14:03:24  <MI6>joyent/node: Bert Belder master * 7475982 : openssl: enable optimized asm code on x86 and x64 (+6 more commits) - http://git.io/VG1qTw
14:03:31  <piscisaureus_>indutny: does it help tlsnappy perf in any way btw?
14:08:03  * Chip_Zeroquit (Ping timeout: 245 seconds)
14:11:40  <indutny>piscisaureus_: a bit
14:12:51  <indutny>though, it's far from 0.8...
14:12:57  <indutny>for unknown reason :)
14:13:11  <indutny>probably openssl has become slower itself
14:13:41  * Chip_Zerojoined
14:13:44  <indutny>because profile tops are exactly the same
14:13:46  <indutny>for 0.8 and 0.10
14:14:00  <indutny>I mean function names
14:14:07  <indutny>and they're in relatively the same order
14:14:32  <indutny>I'll figure it out soon
14:40:07  <tjfontai1e>bnoordhuis "broke the build"
14:40:38  <tjfontai1e>http://jenkins.atxconsulting.com:8080/job/nodejs-v0.8/Default=master/13/console
14:48:10  <tjfontai1e>and piscisaureus_ broke the build for the master branch
14:49:07  <tjfontai1e>make[1]: Entering directory `/var/lib/jenkins/jobs/nodejs-master/workspace/Default/master/out'
14:49:10  <tjfontai1e> ./tools/gyp_node -fmake --ignore-environment "--toplevel-dir=." -I/var/lib/jenkins/jobs/nodejs-master/workspace/Default/master/common.gypi -I/var/lib/jenkins/jobs/nodejs-master/workspace/Default/master/config.gypi "--depth=." "-Goutput_dir=/var/lib/jenkins/jobs/nodejs-master/workspace/Default/master/out" "--generator-output=/var/lib/jenkins/jobs/nodejs-master/workspace/Default/master/out" "-Dcomponent=static_library" ...
14:49:16  <tjfontai1e>... "-Dlibrary=static_library" node.gyp
14:49:19  <tjfontai1e>/bin/sh: 1: ./tools/gyp_node: not found
14:57:52  * c4milojoined
14:59:33  * felixgequit (Quit: felixge)
15:00:48  <indutny>bnoordhuis: interesting thing
15:01:01  <indutny>bnoordhuis: if I'll 100 us delay to socket constructor in tlsnappy
15:01:07  <indutny>bnoordhuis: performance degrade by 10%
15:02:40  * tjfontai1echanged nick to tjfontaine
15:02:50  * tjfontainequit (Changing host)
15:02:50  * tjfontainejoined
15:07:32  * toothrotquit (Ping timeout: 250 seconds)
15:09:48  <indutny>bnoordhuis: so if v8 has degraded performance... tlsnappy will degrade too
15:11:12  * toothrjoined
15:11:14  <indutny>but performance degraded even for an default https implementation...
15:11:15  <indutny>hm...
15:11:20  <indutny>981 on 0.8
15:11:26  <indutny>836 on 0.10
15:11:39  <indutny>almost 15%
15:11:54  <indutny>I suppose it might be caused by streams2...
15:12:00  <indutny>at least I have nothing else to blame
15:26:28  * piscisaureus_quit (Ping timeout: 246 seconds)
15:42:40  * felixgejoined
15:52:45  * warzjoined
15:52:45  * warzquit (Changing host)
15:52:46  * warzjoined
15:59:45  * piscisaureus_joined
15:59:54  <piscisaureus_>hello
16:01:01  * `3rdEdenquit (Quit: fooding)
16:02:18  <yawnt>yo
16:02:45  <piscisaureus_>isaacs: doing the call ?
16:03:44  <isaacs>yes
16:04:12  <isaacs>bnoordhuis, indutny: skype?
16:04:30  <indutny>isaacs: sorry, I will skip meetings today and next week...
16:04:37  <indutny>isaacs: due to doomsday
16:04:43  <isaacs>hahah
16:04:43  <isaacs>ok
16:05:09  <isaacs>bnoordhuis: ?
16:05:15  <piscisaureus_>bnoordhuis, ?
16:07:48  * warzquit (Read error: Connection reset by peer)
16:08:26  * warzjoined
16:08:27  * warzquit (Changing host)
16:08:27  * warzjoined
16:15:44  <bnoordhuis>sorry, got stuck in traffic
16:19:00  <indutny>haha
16:19:02  <indutny>tell me about that
16:20:59  * AvianFlujoined
16:23:38  <isaacs>bnoordhuis: that's how the apocalypse starts!
16:23:44  <isaacs>bnoordhuis: just like the mayans said!
16:24:07  <bnoordhuis>anything newsworthy?
16:24:09  * isaacsis more worried about 2036 and the 32b date overflow
16:25:52  <isaacs>bnoordhuis: newsworthy: sblom is working on webkit now. piscisaureus_ is selling node features to the highest bidder. and i'm releasing performance regressions.
16:26:13  <isaacs>bnoordhuis: but we figure you'll be ok fixing all the bugs.
16:26:29  * dapjoined
16:26:55  <piscisaureus_>fedor is helping authoritarian regimes spy on their minions
16:27:07  <isaacs>piscisaureus_: (shh!! tha'ts secret!)
16:28:02  <piscisaureus_>Nate is building an arm-based robot zombie army for the DoD
16:28:29  <isaacs>piscisaureus_: (srsly! with the national security secrets! jeez, man!!)
16:28:51  <piscisaureus_>Hah, and DrPizza is writing articles about the work sblom has been doing :-)
16:29:00  <tjfontaine>bnoordhuis: also you broke make test, it doesn't lint now :)
16:29:11  <DrPizza>piscisaureus_: yep
16:29:26  * mikealquit (Quit: Leaving.)
16:29:29  <indutny>piscisaureus_: you die first
16:29:36  <bnoordhuis>tjfontaine: i did? i didn't land any test changes, did i?
16:29:45  <indutny>isaacs: you - second
16:29:49  <indutny>bnoordhuis: I like you, you'll support regime with me
16:29:52  <tjfontaine>bnoordhuis: well make test also does a lint pass?
16:30:26  <isaacs>we should make lint be a pre-commit hook
16:30:29  <bnoordhuis>indutny: we'll rule with an iron fist
16:30:51  <piscisaureus_>bnoordhuis: we have another call at 7pm
16:30:58  <piscisaureus_>bnoordhuis: in case you didn't know
16:31:14  <bnoordhuis>tjfontaine: you mean it's complaining about lib/http.js? with all due respect, the linter can fsck itself
16:31:22  <tjfontaine>bnoordhuis: heh
16:31:39  <isaacs>bnoordhuis: you know you can just run `make jslintfix` and it'll fix itself up, right?
16:31:47  <isaacs>it's very trivial to keep everything linting.
16:32:08  <tjfontaine>I've changed my configuration to not be make test, and just execute the test runner for now
16:32:12  <bnoordhuis>sure. but in this case -> lib/http.js:817:(0120) Binary operator should go on previous line "+"
16:32:38  <isaacs>bnoordhuis: so, put the + on the previous line.
16:32:41  <isaacs>that's the style node uses.
16:33:57  <bnoordhuis>i'm all for consistent style, i just don't like nitpick-y linters
16:34:16  <isaacs>bnoordhuis: find me a better linter, with an auto-fix feature, and we'll use that instead.
16:34:17  * sgallagh1joined
16:34:58  <tjfontaine>with linting everyone will hate different nits that are picked I suspect
16:35:20  <bnoordhuis>yes
16:35:25  <bnoordhuis>code should be readable by humans
16:35:26  <isaacs>linting is the only wya to ensure that we're all annoyed equally
16:35:28  <bnoordhuis>i don't care about the linter
16:35:38  <isaacs>bnoordhuis: then run `make jslintfix` and go on with your life.
16:36:03  <bnoordhuis>make it a commit hook and i'll run that from now on :)
16:37:18  <isaacs>bnoordhuis: i have this in my .vimrc:
16:37:19  <isaacs>noremap <Leader>f :!PYTHONPATH=$HOME/dev/js/node-master/tools/closure_linter/ python $HOME/dev/js/node-master/tools/closure_linter/closure_linter/fixjsstyle.py --strict --nojsdoc %<CR>
16:37:37  <bnoordhuis>tjfontaine: btw, that's a good change - `make test` has the annoying tendency to sometimes run configure again
16:37:54  <tjfontaine>bnoordhuis: indeed
16:37:55  <isaacs>what test change is this that we're talking about?
16:37:59  * sgallaghquit (Ping timeout: 252 seconds)
16:38:40  <tjfontaine>isaacs: I'm not executing the test runner directly on the v0.8 branch instead of relying on `make test`
16:39:02  <tjfontaine>*now
16:39:22  <isaacs>tjfontaine: oh, you mean, in your jenkins stuff?
16:39:29  <tjfontaine>isaacs: indeed
16:39:33  <isaacs>kewl
16:44:57  * sgallagh1changed nick to sgallagh
16:45:39  <indutny>ttyl
16:45:41  <indutny>going to sleep
16:46:47  <piscisaureus_>indutny: sleep well
16:46:49  <bnoordhuis>sleep tight fedor
16:53:59  <isaacs>indutny: hopefully when you wake up the world will still be here.
16:57:32  * bradleymeckjoined
16:57:33  <piscisaureus_>isaacs: I can reproduce your pipe issue
16:58:05  <piscisaureus_>It would be so funny if the world came to an end saturday
16:58:09  <piscisaureus_>instead of tomorrow
16:59:26  <isaacs>yeah. it'd also be funny if every car in the world turned into a hyena and all the cars that had drivers in them turned into hyena-centaurs, and then the carhyenas declared war on the trees and set them all on fire.
16:59:38  * piscisaureus_quit (Read error: Connection reset by peer)
16:59:45  <isaacs>i can't believe poeple believe any of that kind of shit.
17:00:03  <isaacs>it's actually insane.
17:00:47  <isaacs>anyway, it's time to commute. i ride a bike, so the likelihood of me turning into a hyena-centaur is pretty low, i reckon
17:02:41  <isaacs>bnoordhuis: review? https://github.com/joyent/node/pull/4446
17:04:31  * piscisaureus_joined
17:05:02  <piscisaureus_>isaacs: of course the world will come to an end ... how can you not believe that
17:05:43  <isaacs>piscisaureus_: i believe that the world will come to an end, of course. http://en.wikipedia.org/wiki/Timeline_of_the_far_future
17:05:54  <isaacs>piscisaureus_: eventually the entire universe will be nothing but heat soup
17:06:07  <piscisaureus_>isaacs: heat? I would think, cold soup
17:06:49  <piscisaureus_>haha, I like this one best
17:06:49  <piscisaureus_>At 15:30:08 UTC on 4 December 292,277,026,596 AD, the Unix time stamp will exceed the largest value that can be held in a signed 64-bit integer.[94]
17:06:51  <isaacs>piscisaureus_: well, there will be no matter, just heat.
17:07:16  <isaacs>piscisaureus_: oh, we'll be long dead by themn.
17:07:36  <isaacs>the earth won't be able to support life in 3B years or so
17:07:36  <piscisaureus_>bnoordhuis won't be, beacause he's a transhumanist
17:07:46  * isaacsis also a transhumanis
17:07:48  <isaacs>t
17:08:13  <piscisaureus_>well, atleast node will be maintained
17:08:22  <piscisaureus_>by the last 2 people on earth
17:08:28  <isaacs>but i'm also a realist, and i have a dim view of technology, having been involved with it for a while now.
17:08:37  <isaacs>immortality is coming, but not in time for me, i think.
17:08:39  <isaacs>i'm doomed.
17:08:47  <piscisaureus_>unfortunately I will just die within 80 years from now
17:08:54  <piscisaureus_>much less, likely
17:09:21  <isaacs>but yeah, assuming we get off of earth, eventually we'll have to switch to a 128b value for dates
17:09:53  <isaacs>ok, srsly, commute time.
17:09:57  <piscisaureus_>ya
17:09:58  * isaacsup up and away!
17:10:11  <piscisaureus_>going-home time, this bar is about to close :-(
17:14:22  * piscisaureus_quit (Read error: Connection reset by peer)
17:15:31  * joshthecoderjoined
17:20:26  * joshthecoderquit (Ping timeout: 245 seconds)
17:33:17  * piscisaureus_joined
17:39:09  * joshthecoderjoined
17:46:08  * felixgequit (Quit: felixge)
17:46:16  * kazuponquit (Remote host closed the connection)
17:50:07  * felixgejoined
17:50:07  * felixgequit (Changing host)
17:50:08  * felixgejoined
17:52:37  * felixge_joined
17:52:37  * felixge_quit (Changing host)
17:52:37  * felixge_joined
17:53:01  * felixgequit (Read error: Connection reset by peer)
17:53:03  * felixge_changed nick to felixge
17:54:14  * rje_quit (Quit: Outa here!)
17:55:01  * rjejoined
17:55:25  <piscisaureus_>bnoordhuis: hey, call in 5 ?
17:55:49  <isaacs>piscisaureus_: thoughts on https://github.com/joyent/node/pull/4446?
17:56:16  * isaacswill be updating the blog post to talk about perf regressions and what's left prior to 0.10.
17:56:59  <piscisaureus_>isaacs: I can't really judge the smartos / flamegraph commits. I will review the http / streams stuff
17:57:05  <isaacs>kewl
17:57:09  <isaacs>yeah, that's the more relevant bits.
17:57:18  <isaacs>the other stuff is just what i'm using to find problems.
17:57:23  <isaacs>tooling
17:57:27  <piscisaureus_>isaacs: also, I'll have another meeting in 3 minutes (as you may have guessed :-))
17:57:33  <isaacs>yes, i saw this :)
17:57:38  <isaacs>i have a meeting today to.
17:57:52  <isaacs>with some joyent bigwigs
17:58:20  <isaacs>synergy strategizing. thinking outside of boxes. that kind of stuff.
18:03:15  * `3rdEdenjoined
18:03:33  * bradleymeckquit (Quit: bradleymeck)
18:09:35  * mmalecki[zzz]changed nick to mmalecki
18:17:57  * felixgequit (Quit: felixge)
18:19:53  * TooTallNatejoined
18:29:20  * sblomjoined
18:30:40  <ircretary>IT'S THE BNOORDHUIS!
18:30:40  <LOUDBOT>I AM SEXUALLY ORIENTED TOWARDS MECCA DAILY
18:46:11  * loladirojoined
18:50:57  * brsonjoined
18:56:37  * kazuponjoined
18:59:55  * brsonquit (Quit: leaving)
19:00:15  * joshthecoderquit (Ping timeout: 252 seconds)
19:01:23  * kazuponquit (Ping timeout: 256 seconds)
19:01:31  * bradleymeckjoined
19:01:58  * bradleymeckquit (Client Quit)
19:03:06  * sgallaghquit (Remote host closed the connection)
19:20:49  * 21WAAGHU0quit (Quit: http://ifup.org)
19:28:25  * brsonjoined
19:30:34  * peterrsquit
19:36:16  * txdvquit (Read error: Connection reset by peer)
19:36:40  * txdvjoined
19:41:08  * brsonquit (Ping timeout: 248 seconds)
19:41:08  * brson_joined
19:47:37  * hij1nxquit (Quit: WeeChat 0.3.2)
19:49:06  * hij1nxjoined
19:49:14  <tjfontaine>isaacs: https://github.com/joyent/node/blob/master/test/simple/test-http-localaddress.js#L49 is failing on linux because that res doesn't have a data handler, does it need a handler or should it work without?
19:53:16  <isaacs>tjfontaine: oh, i thought i fixed that already..
19:53:26  <isaacs>tjfontaine: res.resume() should fix it anyway
19:54:30  * philips_joined
19:55:26  <isaacs>hm. i guess that didn't get merged.
19:55:29  <isaacs>wonder where it went
19:56:26  <tjfontaine>lost in the ether
20:11:23  * felixgejoined
20:11:24  * felixgequit (Changing host)
20:11:24  * felixgejoined
20:13:49  <piscisaureus_>k, I'm off for paperwork purposes :-(
20:14:48  * bradleymeckjoined
20:35:58  * `3rdEdenquit (Remote host closed the connection)
20:41:25  * TooTallNatequit (Quit: Computer has gone to sleep.)
20:51:56  * pooyajoined
20:53:26  * TooTallNatejoined
21:02:05  * TooTallNatequit (Read error: Operation timed out)
21:03:35  * Chip_Zeroquit (Ping timeout: 244 seconds)
21:04:44  * Chip_Zerojoined
21:04:53  * TooTallNatejoined
21:06:32  * `3rdEdenjoined
21:06:42  * `3rdEdenquit (Remote host closed the connection)
21:06:54  * `3rdEdenjoined
21:13:27  * txdvquit (Read error: Connection reset by peer)
21:13:42  * txdvjoined
21:29:25  * `3rdEdenquit (Remote host closed the connection)
21:31:54  <piscisaureus_>isaacs: bnoordhuis: sendfile is not a priority for me
21:32:42  <bnoordhuis>piscisaureus_: noted. is there reason for us to assume otherwise?
21:33:53  * felixgequit (Quit: felixge)
21:36:11  <piscisaureus_>bnoordhuis: movement in GH-3854
21:37:28  <bnoordhuis>piscisaureus_: right. it's friendly of him to post the msdn link
21:37:39  <bnoordhuis>you know, in case google is down
21:37:53  <piscisaureus_>hahaha
21:38:30  <tjfontaine>how would we survive in such a world
21:43:40  * pooyaquit (Quit: pooya)
21:49:17  * bnoordhuisquit (Ping timeout: 252 seconds)
21:53:44  * isaacsback
21:53:50  <isaacs>piscisaureus_: me neither
21:54:56  <isaacs>piscisaureus_: let's remove the fs.sendfile function, then
21:55:02  <isaacs>piscisaureus_: there's no way to use it anyway
21:55:08  <piscisaureus_>isaacs: +1
22:00:41  <chilts>with the new streams2, does this mean util.pump() is not needed or useful anymore?
22:00:44  * chiltsis curious
22:03:18  <isaacs>chilts: util.pump() is already long-deprecated
22:03:22  * EhevuTovjoined
22:03:33  <isaacs>chilts: use readableStream.pipe(writableStream)
22:03:59  <chilts>and that's still used for streams2 too?
22:04:03  <chilts>thanks
22:04:40  * indexzerojoined
22:14:41  * CoverSlidequit (Remote host closed the connection)
22:15:08  * wolfeidaujoined
22:17:25  * EhevuTovquit (Quit: Leaving)
22:18:45  * indexzeroquit (Quit: indexzero)
22:18:55  * rendar_quit
22:20:24  <isaacs>chilts: yep
22:21:49  * bradleymeckquit (Quit: bradleymeck)
22:23:10  * pooyajoined
22:23:50  * indexzerojoined
22:29:51  <creationix>isaacs, so how are you liking streams2?
22:30:00  <creationix>have you used it much in actual programs?
22:31:16  <creationix>I've found many use cases where pull read streams were quite cumbersome
22:31:24  <creationix>but many others where they were perfect
22:34:13  * warzquit
22:37:36  * mikealjoined
22:37:48  <TooTallNate>creationix: can you define "cumbersome"?
22:43:53  <creationix>TooTallNate, sure
22:44:34  <creationix>so suppose I just want to passively listen to a stream and collect the data. (like buffer a http request body into a single string or buffer)
22:45:00  <creationix>with push style, I just listen to "data" and "end" and don't need to write a loop
22:45:14  <creationix>but with pull style, I need this small loop nested in a larger recursive loop
22:46:20  <creationix>The problem with the old style was that data events sometimes got lost, but that could have easily been fixed by starting the stream out paused and requiring a .resume()
22:46:51  <creationix>now the cases where I'm being more of a proxy, the pull-style is nice because it has implicit flow-control
22:47:01  <creationix>I read data when I'm ready to handle data
22:47:12  <creationix>and when I stop reading, it can pause it's upstream automatically
22:47:36  * bradleymeckjoined
22:48:16  <creationix>but push style could do that too. We could use the return value of the ondata event handler to mean something, for example
22:49:02  <creationix>(though with node style events, that's probably a terrible idea)
22:51:31  <TooTallNate>creationix: isaacs would say to use the old style in cases where it makes more sense
22:51:45  <TooTallNate>creationix: but personally, i think a .read(fn) (async) would be a lot more useful than the one we have right now
22:51:57  <creationix>yeah .forEach style
22:52:02  <TooTallNate>err, read([n], fn)
22:52:19  <creationix>except obviously non-blocking
22:52:31  <TooTallNate>indeed
22:52:48  <TooTallNate>and a return value or callback function to do flow control
22:53:21  <TooTallNate>i think the point here is that streams are an opinionated thing in the end so it's hard to please everybody‚Ķ
22:53:46  <creationix>right, but that's why I'm worried about making such a large change
22:53:50  <creationix>we'll have to support it forever
22:54:00  <creationix>and if it's not even ideal, that's a high cost
22:54:24  <TooTallNate>creationix: well old-style streams are supposed to work *as expected* now
22:54:27  <creationix>I forsee many bugs arising from accidentally triggering legacy mode
22:54:32  <TooTallNate>i.e. when you .pause(), no more "data" events come out
22:54:44  <TooTallNate>creationix: i foresee that too :(
22:55:38  <isaacs>creationix: triggering legacy mode is actually not so bad.
22:55:47  <isaacs>creationix: but of course, you don't want to do that by accident.
22:56:21  <creationix>it's a hard problem. I haven't found an API that even I like
22:56:27  <creationix>let alone everyone
22:57:08  <isaacs>creationix: if you are passively listening to data, ie, if on('data') is actually the api you *want*, then use that.
22:57:13  * Chip_Zeroquit (Ping timeout: 245 seconds)
22:57:19  <isaacs>creationix: the nice thing is that you won't miss chunks, and pause() works
22:57:29  <creationix>true, it's not bad
22:57:46  <isaacs>creationix: so, there are some things about it that i really really like.
22:58:50  <isaacs>TooTallNate: the problem with read(n,cb) is that it's slower if the data is already there.
22:58:59  <isaacs>TooTallNate: or if you're reading data in very small bits.
22:59:14  <creationix>does the sphinx agree it's slower?
22:59:21  <isaacs>creationix: sphinx?
22:59:29  <creationix>from mraleph's blog
22:59:31  <isaacs>creationix: calling nextTick is slower than not calling nextTick
22:59:42  <isaacs>creationix: oh, i see :)
23:01:18  <creationix>anyway, isn't streams2 pretty much set in stone at this point?
23:01:19  * Chip_Zerojoined
23:01:19  <creationix>or should I keep on trying to find something better if possible?
23:04:59  <TooTallNate>isaacs: perhaps a bytesReady or bytesAvailable prop would be nice
23:05:12  <TooTallNate>though i guess that's the same as just requesting the buffer and getting null
23:05:38  <TooTallNate>isaacs: what I don't like about the sync style is that you need to be ready for "null" EVERY TIME, so you need fallback logic like‚Ķ every time
23:05:50  <TooTallNate>isaacs: also, i still think .peek(n) would solve some of these problems
23:06:50  * stagas_joined
23:07:02  <creationix>I still like .read(function (err, data){})
23:07:20  <creationix>and pass null or undefined to data for EOS
23:07:59  <creationix>if nextTick is too expensive, then allow calling the callback sync
23:08:10  <creationix>it's no more work than having to expect a null return value
23:08:31  <creationix>the caller just needs to be aware that it may call sync if the data is in the queue already
23:09:35  * stagasquit (Ping timeout: 252 seconds)
23:09:45  * stagas_changed nick to stagas
23:11:20  <creationix>ohh, I got it!
23:11:26  <creationix>.read(callback) to get one data event
23:11:36  <creationix>.read(callback, true) to call callback repeatedly for all events
23:12:08  <creationix>so if I'm going to just buffer the data and don't care about flow-control, I don't need a loop or another API
23:14:22  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
23:15:47  <creationix>or instead of a boolean, the second arg can be the number of bytes I want
23:15:55  <creationix>passing in Infinity means to give me the entire stream
23:17:52  * piscisaureus_joined
23:21:52  * indexzeroquit (Quit: indexzero)
23:25:21  * brson_quit (Quit: leaving)
23:27:36  * pooyaquit (Quit: pooya)
23:34:39  <isaacs>creationix: no, we cannot call a user-facing API callback synchronously sometimes and async other times.
23:34:42  <isaacs>creationix: that's terribl.
23:35:03  <isaacs>creationix: the utter crazy hacky bullshit that goes into making that not break is incredible. (qv: _stream_writable.js)
23:38:01  <creationix>well, nextTIck is fast now right?
23:38:04  <creationix>so it's not a big deal
23:38:06  <isaacs>creationix: not THAT fast.
23:38:14  <isaacs>creationix: it's still a function call.
23:38:23  <isaacs>creationix: several function calls, in fact.
23:38:56  <isaacs>creationix: if you just want to buffer it all up, then use a data event
23:38:56  <creationix>function calls are cheap in moderation
23:39:04  <isaacs>creationix: like, all these things, are easy to do by just using the legacy api
23:39:20  <isaacs>creationix: or easy to wrap around the streams2 api with a userland module
23:39:46  <creationix>if nextTick is too expensive, using a userland module is too
23:39:51  <isaacs>TooTallNate: yeah, bytesAvailable would be easy. it's actually already there. stream._readableState.length
23:40:05  <isaacs>creationix: well, i mean, then it's up to you if you wanna use it.
23:40:55  <isaacs>creationix: it's too slow to put on every http serverrequest or clientresponse
23:41:09  <creationix>if you say so
23:41:54  <creationix>in my experiments, the style of readable stream had very little effect, but changing the http response API had a massive effect
23:42:05  <creationix>(in performance)
23:42:37  <isaacs>creationix: i'm trying to whittle down a ~20% regression in requests per secodn on http_simple with /bytes/1
23:42:50  <creationix>ouch
23:42:53  <isaacs>creationix: started out as 40%
23:43:05  <creationix>what made it so slow?
23:43:15  <isaacs>creationix: about half of that was just removing asserts and changing hasOwnProperty to x.y = x.y || default
23:44:14  <creationix>or x.y === undefined ? x.y : default ;)
23:47:50  * stagasquit (Ping timeout: 252 seconds)
23:49:45  * pooyajoined
23:54:01  * brsonjoined
23:55:45  <isaacs>creationix: meh.
23:57:22  <isaacs>oh, actually piscisaureus_ lgtm'ed that. i should land it