00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:07  <bnoordhuis>trevnorris: i have a style spider sense
00:00:09  * ircretaryjoined
00:00:12  <trevnorris>lol
00:00:49  <trevnorris>ok. got that and added isolate to a couple others (e.g. False(), True(), etc).
00:01:08  <trevnorris>then just used an awk command to print all lines over 80. should be clean.
00:06:30  <rvagg>backslash ocd
00:08:53  * dominictarrquit (Quit: dominictarr)
00:09:24  <trevnorris>alright. going to run the benchmarks tonight and see how it stacks up.
00:09:46  <MI6>nodejs-v0.10: #39 UNSTABLE smartos-ia32 (4/562) osx-ia32 (2/562) smartos-x64 (1/562) windows-x64 (5/562) windows-ia32 (4/562) http://jenkins.nodejs.org/job/nodejs-v0.10/39/
00:10:11  <trevnorris>isaacs: /var/projects/node-trevnorris/benchmark/compare.js:155
00:10:12  <trevnorris>if (list.length >= 3) {
00:10:19  <trevnorris>TypeError: Cannot read property 'length' of undefined
00:10:25  <bnoordhuis>tjfontaine: have you sent that mmap patch upstream yet?
00:11:19  <bnoordhuis>trevnorris: WHITESPACE ERRORS!
00:11:29  <trevnorris>what...
00:11:29  <bnoordhuis>where is LOUDBOT when you need it?
00:11:45  <bnoordhuis>no worries, that's what --whitespace=fix is for
00:12:37  <bnoordhuis>the calypso rendition of "it's so loud in here" is really great
00:13:09  <trevnorris>bnoordhuis: did you run a command to find whitespace errors?
00:13:26  <bnoordhuis>trevnorris: no, that's my spidey sense again
00:13:41  <bnoordhuis>(i kid. git am complains about it)
00:14:02  <trevnorris>heh
00:16:37  <bnoordhuis>the calypso version of "come on, eileen" ain't bad either
00:21:29  * trevnorrisquit (Quit: Leaving)
00:27:49  * dominictarrjoined
00:29:49  <tjfontaine>bnoordhuis: no but I will
00:30:05  <bnoordhuis>okay, good
00:30:15  <tjfontaine>if not tonight, first thing in the morning
00:33:42  <MI6>joyent/node: piscisaureus created branch temp - http://git.io/ltP0dg
00:38:18  <MI6>joyent/node: Raymond Feng v0.10 * 25eaaca : fs: make write/appendFileSync correctly set file mode - http://git.io/-LpNXA
00:48:15  * perezdjoined
00:49:55  <bnoordhuis>[22:58|% 100|+ 1210|- 14]: Done <- `make test-all` takes an awful long time
00:50:16  <tjfontaine>yes
00:50:27  <tjfontaine>I need to put some cycles in to clean up some of the tests as well
00:54:48  * dominictarrquit (Ping timeout: 264 seconds)
00:55:41  <MI6>nodejs-v0.10: #40 UNSTABLE smartos-ia32 (3/563) osx-x64 (1/563) osx-ia32 (3/563) smartos-x64 (3/563) windows-x64 (4/563) windows-ia32 (4/563) http://jenkins.nodejs.org/job/nodejs-v0.10/40/
00:57:34  <MI6>joyent/node: Ben Noordhuis master * ad819bc : src: bump NODE_MODULE_VERSION after abi change (+13 more commits) - http://git.io/DuT5HQ
00:57:46  <tjfontaine>13 commits
00:58:07  <tjfontaine>weird how github impersonates
00:59:25  <tjfontaine>fwiw last time I checked that v8 upgrade against sunos dtrace was still failing
01:01:31  <tjfontaine>damnit windows http://jenkins.nodejs.org/job/nodejs-master/DESTCPU=ia32,label=windows/lastCompletedBuild/console
01:02:28  * dominictarrjoined
01:09:57  * hzquit
01:12:24  <MI6>nodejs-master: #102 FAILURE windows-x64 (5/563) windows-ia32 (5/563) osx-ia32 (2/563) http://jenkins.nodejs.org/job/nodejs-master/102/
01:12:42  * piscisaureus_quit (Ping timeout: 264 seconds)
01:19:35  * dapquit (Quit: Leaving.)
01:21:37  <bnoordhuis>tjfontaine: i'll fix it tomorrow if indutny doesn't beat me to it
01:31:48  * luxigoquit (Remote host closed the connection)
01:32:10  * luxigojoined
01:48:45  * benoitcquit (Excess Flood)
01:53:08  * nsmquit (Quit: nsm)
01:59:19  * benoitcjoined
02:04:14  * dominictarrquit (Quit: dominictarr)
02:18:45  * kazuponjoined
02:20:51  * bradleymeckjoined
02:21:59  * dominictarrjoined
02:32:15  * c4miloquit (Remote host closed the connection)
02:33:57  * c4milojoined
02:34:36  * kazuponquit (Remote host closed the connection)
02:34:50  * dominictarrquit (Quit: dominictarr)
02:41:51  * arlolrajoined
03:03:16  * bnoordhuisquit (Remote host closed the connection)
03:03:38  * benoitcquit (Excess Flood)
03:05:00  * kazuponjoined
03:11:49  * benoitcjoined
03:13:13  * kazuponquit (Ping timeout: 256 seconds)
03:30:41  * loladirojoined
03:36:18  * benoitcquit (Excess Flood)
03:40:49  * benoitcjoined
03:45:30  <tjfontaine>bnmk
03:48:31  <tjfontaine>heh bn<tab> fail :)
04:00:36  * qmxchanged nick to qmx|away
04:04:56  * bradleymeckquit (Quit: bradleymeck)
04:09:22  * benoitcquit (Excess Flood)
04:10:10  * kazuponjoined
04:12:19  * benoitcjoined
04:14:35  * kazuponquit (Ping timeout: 255 seconds)
04:14:49  * dostoyevskyquit (Ping timeout: 240 seconds)
04:15:53  * dostoyevskyjoined
04:17:13  * arlolraquit (Quit: Leaving...)
04:31:26  * c4miloquit (Remote host closed the connection)
04:53:01  * bradleymeckjoined
05:10:40  * kazuponjoined
05:13:24  * kevireillyquit (Ping timeout: 248 seconds)
05:15:15  * kazuponquit (Ping timeout: 260 seconds)
05:33:06  * benoitcquit (Excess Flood)
05:43:49  * benoitcjoined
05:46:30  * wolfeidauquit (Remote host closed the connection)
05:51:24  <isaacs>indutny: for the lazy transform class thing, why dont' we just make the Transform class work that way normally?
05:51:36  <isaacs>indutny: same for Readable/Writable
05:52:24  <isaacs>indutny: oh, i guess it'll be bad for hte cases where they usually ARE a stream
05:52:36  <isaacs>sockets and such
05:55:54  * benoitcquit (Excess Flood)
05:59:49  * benoitcjoined
06:05:08  * wolfeidaujoined
06:07:25  * defunctzombiechanged nick to defunctzombie_zz
06:11:47  * kazuponjoined
06:15:24  * perezdquit (Quit: perezd)
06:16:25  * perezdjoined
06:16:32  * kazuponquit (Ping timeout: 255 seconds)
06:18:02  * perezdquit (Client Quit)
06:42:39  * indexzeroquit (Quit: indexzero)
06:47:18  * indexzerojoined
06:58:39  * benoitcquit (Excess Flood)
06:59:10  * kazuponjoined
06:59:13  * mikealjoined
06:59:13  * mikealquit (Client Quit)
07:01:50  * benoitcjoined
07:11:41  * indexzeroquit (Quit: indexzero)
07:14:42  * kazuponquit (Remote host closed the connection)
07:18:47  * mikealjoined
07:18:57  * dominictarrjoined
07:21:18  * kazuponjoined
07:26:31  * rendarjoined
07:31:46  * benoitcquit (Excess Flood)
07:34:19  * kazuponquit (Remote host closed the connection)
07:36:25  * dominictarrquit (Quit: dominictarr)
07:37:50  * benoitcjoined
07:48:17  * bradleymeckquit (Quit: bradleymeck)
07:49:14  * trevnorrisjoined
07:50:31  * bradleymeckjoined
07:50:49  * bradleymeckquit (Client Quit)
08:08:36  * Ralt_joined
08:15:36  <trevnorris>indutny: the patch landed on master.
08:15:43  <indutny>trevnorris: what patch?
08:15:45  <indutny>update v8?
08:15:47  <trevnorris>yup
08:15:54  <indutny>ah
08:16:02  <indutny>well, can you close the issue then?
08:16:30  <trevnorris>honestly i'm surprised. thought we'd need another day to fix the dtrace build issue on sunos and double check any perf regressions.
08:16:54  <indutny>trevnorris: is there any build issues on sunos?
08:17:45  <trevnorris>indutny: http://jenkins.nodejs.org/job/node-pullrequest/74/DESTCPU=x64,label=smartos/console
08:18:12  <trevnorris>"line 228: failed to resolve V8DBG_SMISHIFTSIZE: Unknown variable nam"
08:18:15  <indutny>oh
08:19:13  <indutny>hm... odd
08:20:30  <indutny>its pretty simple to fix
08:20:34  <indutny>let me rebuild it just in case
08:20:37  <indutny>and verify that it works
08:24:48  <indutny>trevnorris: https://github.com/v8/v8/blob/master/tools/gen-postmortem-metadata.py#L79
08:24:55  <indutny>why isn't this line present?
08:25:00  <indutny>in our fork
08:25:24  <indutny>ah
08:25:24  <indutny>831af97df211f046803970f8d281b2001e6ed20a
08:25:26  <indutny>gosh
08:25:36  <indutny>you fixed one thing and broke another :)
08:25:48  <trevnorris>lol
08:26:13  <MI6>joyent/node: Fedor Indutny master * ab0cde0 : v8: unbreak build on smartos after 31af97df211f046 - http://git.io/fcN50w
08:26:21  <indutny>err
08:26:42  <indutny>force push! :)
08:26:45  <MI6>joyent/node: Fedor Indutny master * 40b1c9a : v8: unbreak build on smartos after 831af97df211f04 - http://git.io/GQsUaQ
08:26:48  <indutny>good
08:27:57  <MI6>nodejs-master: #103 FAILURE windows-x64 (5/563) windows-ia32 (5/563) http://jenkins.nodejs.org/job/nodejs-master/103/
08:32:54  * csaohjoined
08:34:42  * kazuponjoined
08:36:21  <trevnorris>indutny: want some input. 3.17 can write utf strings faster than it was able to write ascii strings in 3.14.
08:37:14  <trevnorris>so would it be fine to write ascii strings using WriteUtf8?
08:39:03  * loladiroquit (Quit: loladiro)
08:39:07  <MI6>nodejs-master: #104 FAILURE windows-x64 (5/563) windows-ia32 (5/563) osx-ia32 (2/563) linux-x64 (1/563) http://jenkins.nodejs.org/job/nodejs-master/104/
08:39:29  <indutny>erm
08:39:42  <indutny>that's not really the same :)
08:44:29  * benoitcquit (Excess Flood)
08:45:23  <trevnorris>ugh. hate character encoding. isn't ascii just a subset of utf8?
08:50:20  * benoitcjoined
08:50:46  <cjd>trevnorris: yeah
08:51:05  <trevnorris>so why are writing ascii strings so much slower than writing utf8 strings?
08:51:21  <cjd>mmm
08:51:30  <cjd>it probably converts them to utf8 :)
08:51:47  <cjd>basicly it checks that they're valid (nothing over codepoint 128)
08:51:52  <cjd>*127
08:52:03  <cjd>and then converts each letter to each utf8 letter
08:52:12  <cjd>meaning converts it to the same thing
08:52:15  <cjd>:)
08:52:34  <cjd>be thankful it's not java, otherwise it would convert it to utf-16 and back
08:59:02  * kazuponquit (Ping timeout: 252 seconds)
09:00:22  <indutny>I believe that v8 was using two-char encodings for some strings
09:00:27  <indutny>some time ago
09:00:38  <indutny>and its using one-char encoding for ascii strings
09:01:01  <indutny>so, I guess, when you try to write utf8 string as an ascii string - it needs to be converted first
09:03:27  <trevnorris>bugger
09:03:51  <indutny>not really
09:03:55  <indutny>:)
09:04:09  <indutny>its just simplier for javascript to hold strings in this way
09:04:17  <indutny>regexps and everything
09:04:25  <indutny>like string length
09:04:28  <indutny>ok, brb
09:09:14  * kazuponjoined
09:12:41  <trevnorris>indutny: mind popping this on? https://github.com/joyent/node/pull/5093
09:33:18  * Ralt_quit (Quit: Leaving)
09:38:21  * dominictarrjoined
09:44:55  * benoitcquit (Excess Flood)
09:52:50  * benoitcjoined
09:59:46  * kazuponquit (Remote host closed the connection)
10:20:16  * `3rdEdenjoined
10:30:09  * kazuponjoined
10:38:19  * kazuponquit (Ping timeout: 245 seconds)
10:46:18  * benoitcquit (Excess Flood)
10:51:43  * Kakerajoined
10:52:50  <Kakera>is void* data in a handle meant to store user-provided data?
10:53:07  <indutny>yes
10:53:15  <Kakera>okay thanks
10:54:52  * benoitcjoined
10:55:14  * kazuponjoined
11:03:58  * hzjoined
11:06:55  * trevnorrisquit (Quit: Leaving)
11:08:07  * `3rdEdenchanged nick to `3E|AFK
11:20:33  * c4milojoined
11:38:17  * c4miloquit (Remote host closed the connection)
11:45:56  * kazuponquit (Remote host closed the connection)
11:46:43  * benoitcquit (Excess Flood)
11:46:57  * `3E|AFKchanged nick to `3rdEden
11:49:29  * kazuponjoined
11:53:21  * benoitcjoined
11:53:29  * csaohquit (Quit: csaoh)
11:55:10  * Kakeraquit (Ping timeout: 256 seconds)
11:57:41  * csaohjoined
12:18:03  * bnoordhuisjoined
12:21:45  * c4milojoined
12:23:45  * Kakerajoined
12:32:32  * piscisaureus_joined
12:39:55  <indutny>bnoordhuis: hoya ben
12:40:13  * DaniloD3892joined
12:53:15  <bnoordhuis>indutny: hey
12:59:32  <indutny>oh, you there
12:59:33  <indutny>ok
12:59:45  <indutny>so that ZERO_RETURN thing
13:02:44  <indutny>I think I know where it is happening
13:02:44  <bnoordhuis>what about it?
13:02:59  <indutny>I bet it happens when calling shutdown
13:03:55  <indutny>I'm doing incorrect check there
13:04:10  <indutny>-- a/lib/tls.js
13:04:10  <indutny>+++ b/lib/tls.js
13:04:10  <indutny>@@ -269,7 +269,7 @@ function onCryptoStreamFinish() {
13:04:10  <indutny> // Generate close notify
13:04:10  <indutny> // NOTE: first call checks if client has sent us shutdown,
13:04:10  <indutny> // second call enqueues shutdown into the BIO.
13:04:11  <indutny>- if (this.pair.ssl.shutdown() !== 1) {
13:04:11  <indutny>+ if (this.pair.ssl.shutdown() === 0) {
13:04:20  <bnoordhuis>SPAM
13:04:20  <indutny> this.pair.ssl.shutdown();
13:04:21  <indutny> }
13:04:22  <indutny> }
13:04:23  <indutny>bnoordhuis: should be this ^
13:04:40  <bnoordhuis>ah
13:04:49  <bnoordhuis>what does it return besides 0 and 1?
13:04:53  <indutny>-1
13:04:56  <indutny>in case of error
13:05:10  <bnoordhuis>right
13:05:18  <indutny>well, it might not be source of zero return
13:05:23  <indutny>but it looks like so
13:05:56  * kazuponquit (Remote host closed the connection)
13:09:28  <indutny>bnoordhuis: also I would like to handle zero_return in clearIn/encIn/clearOut/encOut
13:09:34  <indutny>I'll show you patch in a couple of minutes
13:10:25  <piscisaureus_>bnoordhuis: hey, did you already respond to the next all-hands planning email thread?
13:10:44  <piscisaureus_>I didn't see an email - maybe you replied to issac only?
13:10:50  * luxigoquit (Ping timeout: 245 seconds)
13:11:53  * stagasquit (Read error: Connection reset by peer)
13:12:44  * luxigojoined
13:14:45  * stagasjoined
13:14:49  * kazuponjoined
13:21:53  <bnoordhuis>piscisaureus_: issac seemed to have replied for me :/
13:25:24  * dominictarrquit (Quit: dominictarr)
13:29:50  <bnoordhuis>https://github.com/jashkenas/coffee-script/issues/2864#issuecomment-15159370 <- this!
13:36:25  <indutny>bnoordhuis: peer review, please -> https://gist.github.com/indutny/c9b000994f11a9ff626e ?
13:37:08  <piscisaureus_>bnoordhuis: fair enough. But now that a date has been set it'd be nice to confirm if/that you can make it.
13:43:01  <indutny>piscisaureus_: may be you -> https://gist.github.com/indutny/c9b000994f11a9ff626e ?
13:45:42  <piscisaureus_>indutny: lgtm
13:45:57  <piscisaureus_>the code also got nicer
13:48:31  <indutny>yeah
13:48:32  <indutny>thanks
13:48:35  <MI6>joyent/node: Fedor Indutny v0.10 * c6c6a87 : tls: always reset this.ssl.error after handling Otherwise assertion may - http://git.io/NbqU1g
13:50:39  <bnoordhuis>indutny: the commit log could be a little more descriptive
13:50:51  <indutny>erm
13:50:53  <indutny>for example?
13:50:59  <bnoordhuis>at the very least include the actual assertion
13:51:08  <bnoordhuis>and add a regression test :)
13:51:59  <indutny>oh, you think its that simple? :)
13:52:08  <indutny>I don't know how to reproduce it
13:52:14  <indutny>but I seen one user complaining about this
13:53:35  <indutny>bnoordhuis: may be this will make you more happy? https://github.com/joyent/node/pull/5097/files :)
13:54:24  <bnoordhuis>if you can't reproduce it, how do you know it fixes things?
13:54:24  * benoitcquit (Excess Flood)
13:54:38  <indutny>bnoordhuis: I know they code is incorrect
13:54:46  <indutny>because I forgot to reset error
13:55:20  * qmx|awaychanged nick to qmx
13:55:23  * kazuponquit (Remote host closed the connection)
13:55:39  <bnoordhuis>indutny: btw, reference the bug # in the commit log
13:55:55  * bnoordhuisgoes back to benchmarking
13:56:02  <indutny>bnoordhuis: oh, right
13:58:23  <MI6>joyent/node: Fedor Indutny v0.10 * 34e22b8 : tls: always reset this.ssl.error after handling Otherwise assertion may - http://git.io/2WYCyw
13:58:32  <indutny>bnoordhuis: this should be better ^
13:58:35  <indutny>sorry, force push
14:00:55  * bradleymeckjoined
14:01:26  <MI6>nodejs-v0.10: #41 FAILURE smartos-ia32 (1/563) osx-ia32 (2/563) windows-x64 (4/563) windows-ia32 (4/563) http://jenkins.nodejs.org/job/nodejs-v0.10/41/
14:01:37  * bradleymeckquit (Client Quit)
14:02:22  * benoitcjoined
14:03:00  <bnoordhuis>indutny: yep, nice
14:03:11  <indutny>ok
14:03:15  <indutny>what about second PR?
14:03:28  <indutny>https://github.com/joyent/node/pull/5097/files
14:07:14  * kazuponjoined
14:08:21  * c4miloquit (Remote host closed the connection)
14:09:18  <bnoordhuis>indutny: i'm on reviewer strike today
14:14:12  <MI6>nodejs-v0.10: #42 FAILURE smartos-ia32 (1/563) linux-x64 (1/563) osx-ia32 (3/563) windows-x64 (4/563) windows-ia32 (4/563) http://jenkins.nodejs.org/job/nodejs-v0.10/42/
14:19:27  * kazuponquit (Remote host closed the connection)
14:22:00  * piscisaureus_quit (Ping timeout: 260 seconds)
14:42:55  * mikealquit (Quit: Leaving.)
14:46:27  * piscisaureus_joined
14:47:11  * nsmjoined
14:47:31  * defunctzombie_zzchanged nick to defunctzombie
14:47:45  * c4milojoined
14:49:49  * kazuponjoined
14:53:06  * bradleymeckjoined
14:58:20  * kazuponquit (Ping timeout: 272 seconds)
15:20:34  * defunctzombiechanged nick to defunctzombie_zz
15:24:05  <tjfontaine>bnoordhuis: what do you do to people who cross picket lines?
15:27:41  * kazuponjoined
15:28:45  * dapjoined
15:34:37  * mikealjoined
15:36:49  * defunctzombie_zzchanged nick to defunctzombie
15:43:41  <bradleymeck>is uv_pipe_open stuck to stream fds on windows?
15:43:54  <bradleymeck>stream file paths i guess is better way to say it
15:44:19  * stagasquit (Ping timeout: 260 seconds)
15:48:40  * sblomjoined
15:56:08  * arlolrajoined
15:57:39  * mikealquit (Quit: Leaving.)
15:59:36  <bnoordhuis>tjfontaine: picket lines?
16:00:38  <tjfontaine>you said you were on strike, http://en.wikipedia.org/wiki/Picketing_(protest)
16:00:56  <bnoordhuis>oh, ah :)
16:01:11  <tjfontaine>or I guess more accurately http://en.wikipedia.org/wiki/Strikebreaker
16:01:37  <bnoordhuis>you know how we deal with scabs around these parts, don't you?
16:01:52  <bnoordhuis>(we give them a temp contract)
16:02:02  <tjfontaine>heh
16:03:23  <indutny>ok, back
16:03:32  <indutny>bnoordhuis: is it like national dutch event?
16:05:04  <bnoordhuis>indutny: talking about national events, you know it's holland/russia year?
16:05:12  <bnoordhuis>i feel so connected!
16:05:14  <indutny>holland/russia ?
16:05:21  <indutny>no, I don't
16:05:26  <bnoordhuis>aw
16:05:58  <indutny>what does this mean?
16:06:01  <indutny>no visas, or what? :)
16:06:28  * AvianFlujoined
16:06:33  <bnoordhuis>it's to celebrate 300 years of trade between holland and russia
16:06:55  <bnoordhuis>and because of czar peter the great
16:07:16  <indutny>ah
16:07:18  <indutny>he loved holland
16:07:31  <bnoordhuis>of man of taste, indeed
16:07:48  <bnoordhuis>err, a man
16:07:53  <bnoordhuis>bloody mac keyboard
16:07:57  <indutny>definitely
16:08:05  <indutny>both
16:08:06  <indutny>:)
16:08:19  <indutny>so I was basically talking about this https://github.com/joyent/node/pull/5097/files
16:08:22  <indutny>and your reviewal strike
16:08:42  <bradleymeck>anyone see any glaring CLI problems with https://gist.github.com/bmeck/21c3a2b8e81eadb6644a , and does anyone know of a uv boilerplate project
16:11:41  <indutny>does it support pipes?
16:11:48  <indutny>I mean unix pipes
16:13:32  * arlolraquit (Remote host closed the connection)
16:13:34  <MI6>nodejs-master: #105 UNSTABLE windows-x64 (4/563) windows-ia32 (5/563) osx-ia32 (3/563) linux-x64 (1/563) http://jenkins.nodejs.org/job/nodejs-master/105/
16:17:26  <MI6>joyent/node: Ben Noordhuis v0.10 * 3dac421 : bench: add dgram send/recv benchmark - http://git.io/aNLoTA
16:20:50  <bradleymeck>indutny: thats what PIPE means as the source, not adding to the dest until i get that working
16:21:09  <bradleymeck>hate boilerplate
16:21:16  * loladirojoined
16:25:43  <indutny>ah, ok
16:26:22  <tjfontaine>sblom: btw I magically fixed the msi stuff on the buildslave, the trick is to simply not launch from 64bit java
16:26:51  <tjfontaine>or at least that's how it appears right now
16:27:56  * loladiroquit (Ping timeout: 252 seconds)
16:34:13  * perezdjoined
16:41:29  <MI6>nodejs-v0.10: #43 UNSTABLE smartos-ia32 (1/563) linux-x64 (1/563) osx-ia32 (2/563) windows-x64 (4/563) windows-ia32 (5/563) http://jenkins.nodejs.org/job/nodejs-v0.10/43/
16:57:09  * bradleymeckquit (Ping timeout: 256 seconds)
17:00:44  * bradleymeckjoined
17:05:20  * bnoordhuisquit (Ping timeout: 260 seconds)
17:09:11  * bradleymeckquit (Quit: bradleymeck)
17:09:36  * mikealjoined
17:10:32  <tjfontaine>isaacs: did you get a chance to run that script to enable pullrequest notifications?
17:11:01  <isaacs>tjfontaine: oh, um... no, i don't think so
17:11:05  <isaacs>what do i have to do again?
17:11:11  <isaacs>piscisaureus_: what are you using bufferSize for?
17:11:20  <piscisaureus_>isaacs: nothing :)
17:11:37  <piscisaureus_>isaacs: I was trying to stress some parser by feeding it 10-byte chunks but it didn't work
17:11:46  <piscisaureus_>isaacs: that said - either the doc needs to be fixed or the feature
17:11:50  <tjfontaine>https://gist.github.com/tjfontaine/623f36cebd6e3bdeec52 either give it your username/password, or an existing oauth token
17:12:10  <isaacs>piscisaureus_: i'd rather fix the docs. bufferSize can basically only reduce performance.
17:12:19  <tjfontaine>will go over joyent/libuv and joyent/node and tell github to push us more payloads instead of just push
17:12:31  <isaacs>piscisaureus_: but yeah, that does look like an oversight. i don't recall changing that...
17:12:44  <isaacs>piscisaureus_: probably because all Readable's used to have a bufferSize arg, and we removed that.
17:12:58  <isaacs>piscisaureus_: without realizing that it was a preexisting thing for fs.ReadableStreamss
17:13:15  <piscisaureus_>isaacs: I don't blame you. I just reported a bug :)
17:13:29  <piscisaureus_>I thought it'd be easiest for you to triage though because you wrote most of the streaming code
17:13:33  <isaacs>yeah, of course.
17:13:38  <isaacs>just wondering if this is actually breaking something.
17:13:39  <indutny>isaacs: hoya
17:13:45  <indutny>don't forget about lazy-transform
17:13:47  <piscisaureus_>e.g. I don't really know how it would interact with the lowWaterMark stuff we have now
17:13:50  <isaacs>indutny: it's on my list today
17:13:56  <isaacs>indutny: first this npm bug.
17:14:16  <isaacs>piscisaureus_: yeah, because we just always call _read() with the highWaterMark number of bytes.
17:14:37  <isaacs>piscisaureus_: but, removing that feature is essentially why our readable throughput is through the roof :)
17:15:08  <isaacs>piscisaureus_: in the short term, you can do your stress test by setting { highWaterMark: 10 }
17:15:21  <piscisaureus_>isaacs: I don't have an opinion, I never found bufferSize really useful. I just ran into a bug :)
17:15:22  <isaacs>piscisaureus_: probably we should back-compat it by usign the chunkSize arg as hwm
17:15:27  <piscisaureus_>and yeah that's what I did
17:15:29  <isaacs>piscisaureus_: kewl.
17:15:46  <piscisaureus_>but you know I'm old-fashioned. Still on streams1 most of the time
17:15:51  <isaacs>it should probably just remove from the docs, and also set hwm=chunkSize
17:15:55  <isaacs>or bufferSize or whatever.
17:16:05  <isaacs>also, for extra fun, "bufferSize" on sockets is a completely different thing entirely
17:16:15  <isaacs>because we win at consistency :)
17:16:26  <isaacs>piscisaureus_: the goal of streams2 is to make streams1 work better.
17:16:31  <piscisaureus_>hahaha
17:16:40  <isaacs>piscisaureus_: ie, pause() works, data doesn't come before you expect, etc.
17:16:42  <piscisaureus_>that makes me feel grat
17:16:46  <piscisaureus_>*great
17:16:50  <isaacs>so you can keep being old school with it
17:17:02  <isaacs>the trick is that they start out paused, though, untill they're touched
17:17:20  <piscisaureus_>I know.
17:17:33  <piscisaureus_>Transform streams are also great.
17:17:59  * qmxchanged nick to qmx|lunch
17:19:10  * csaohquit (Quit: csaoh)
17:24:45  <isaacs>tjfontaine: i just added you as a "contributor" on both libuv and node. you don't have your "official" commit-bit etc, but this way you can do whatever admin stuff you need to with hooks etc.
17:24:51  <isaacs>tjfontaine: try not to break anything ;)
17:25:10  <tjfontaine>ah yes, I don't want the commit bit yet anyway :)
17:25:11  <isaacs>tjfontaine: but it seems silly for you to be blocked on me, when i'm going to just do whatever you tell me to anyway
17:25:18  <tjfontaine>nod
17:25:31  <isaacs>tjfontaine: technically.. you have it now.
17:25:34  <isaacs>but, meh.
17:25:40  <indutny>we've forks
17:25:46  <indutny>:)
17:25:46  <isaacs>you know how it works :)
17:25:48  <isaacs>yeah
17:25:54  * isaacshas broken node a few times...
17:26:18  <tjfontaine>actually I don't have the settings tab, I'm not sure if I can tweak the hooks from there
17:26:23  <tjfontaine>but lets find out
17:28:53  * piscisaureus_quit (Ping timeout: 256 seconds)
17:39:15  * bradleymeckjoined
17:46:49  * bnoordhuisjoined
17:46:52  <tjfontaine>isaacs: ya I can't seem to fiddle with hooks at my permission level, and it doesn't seem like there's a finer grained acl mechanism to let me
17:55:42  * defunctzombiechanged nick to defunctzombie_zz
17:56:21  <isaacs>tjfontaine: hmm.
17:56:26  <isaacs>tjfontaine: i mgiht have to make you a joyent admin
17:57:25  <isaacs>tjfontaine: ahh, i see. ok, you should be good now
17:57:33  <isaacs>had to grant the node group admin access to node
17:58:00  <isaacs>it'd be nice if there was an option for administrative ONLY
17:58:16  <isaacs>though, of course, if you can administrate the repo, you can just give yourself push/pull access
17:58:30  <tjfontaine>right, which is why a finer-grained acl would be nice
17:58:41  <isaacs>indutny: i think i found a case where CryptoStream doesn't process the pending data.
17:58:56  <isaacs>indutny: throwing a bunch of read(0)'s everywhere fixes this "cb never called" issue
17:59:15  <tjfontaine>anyway things worked
17:59:52  <isaacs>\o/
18:00:32  <tjfontaine>now I can watch for events and start reacting on them
18:00:40  <tjfontaine>at least in theory
18:08:01  * stagasjoined
18:14:00  <isaacs>hm. yeah. think i found the bug in CryptoStream
18:14:04  <isaacs>not sure how to test for it, though
18:16:25  * piscisaureus_joined
18:21:27  * sblomquit
18:22:09  <isaacs>hm. and it breaks one test.
18:23:17  <bnoordhuis>my 3.8 kernel is too new for systemtap master :(
18:23:52  <bnoordhuis>the slightly bleeding edge is a harsh place
18:24:05  <tjfontaine>bnoordhuis: stop trying to be so hipister with your kernel
18:28:48  * trevnorrisjoined
18:36:03  * c4miloquit (Remote host closed the connection)
18:37:27  <trevnorris>why are so many values set to null when they're not used? why not undefined?
18:39:17  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
18:39:36  <bnoordhuis>trevnorris: try this: undefined=42
18:41:18  <trevnorris>yeah. i understand that stupid bug, but we won't be doing it in core. and if a developer is dumb ass enough to do that then they deserve an ass kick.
18:41:31  * qmx|lunchchanged nick to qmx
18:41:55  <trevnorris>just doing like using null because you can't use typeof checks reliably on it.
18:42:09  <trevnorris>and you can't guarantee it will always be null, and not undefined.
18:42:22  <bnoordhuis>trevnorris: don't underestimate people's ability to do stupid stuff
18:42:35  <bnoordhuis>and then complain about it on the bug tracker because "it's allowed by the standard"
18:43:12  <trevnorris>not in latest v8
18:43:15  <trevnorris>undefined is immutable
18:48:25  <trevnorris>so it can be used reliably, and it's the fastest way type check w/o the possibility of deopt: https://gist.github.com/trevnorris/4670377
18:48:35  * `3rdEdenquit (Quit: no u)
18:49:18  <trevnorris>(i mean the fact that we don't have to worry about typeof null == undefined)
18:51:26  <bnoordhuis>hmm, apparently it's immutable in 3.14 too
18:51:36  <bradleymeck>trevnorris: i why not check against == null to see if it was set
18:52:12  <trevnorris>bradleymeck: domains are a perfect example. i tried for over an hour to make sure process.domain was always === null, but it would continually crop up as undefiend.
18:52:23  <bradleymeck>2 equals
18:52:33  <bradleymeck>triple equals makes sadness vs null
18:52:56  <trevnorris>== leads to type coersion and deopts on hot code.
18:53:33  <trevnorris>i'm fine for stuff like that for most things. but there are a couple hot paths in node that can't afford it
18:56:47  <trevnorris>typeof never deopts, and the only check faster is smi vs smi check
18:58:51  <bradleymeck>trevnorris: can == on null ever deopt?
18:59:03  <bradleymeck>i only use it on null really XD
18:59:36  <trevnorris>bradleymeck: v8 will make assumptions about what variable types come in. if type smi is passed, then it will optimize for smi vs null checks.
19:00:02  <trevnorris>but then if say an array or double, etc. is passed then you have a deopt
19:00:32  <trevnorris>then the danger is after N deopts, it won't try to optimize your function again.
19:00:43  <trevnorris>so it can become a perf issue in long running processes.
19:01:34  <trevnorris>bnoordhuis: heh, haven't checked it in a while. good to know it was even fixed in 3.14.
19:02:10  * piscisaureus_joined
19:03:45  * bradleymeck_joined
19:05:13  * bradleymeckquit (Ping timeout: 256 seconds)
19:05:13  * bradleymeck_changed nick to bradleymeck
19:06:00  * luxigoquit (Remote host closed the connection)
19:26:07  <MI6>joyent/node: Trevor Norris v0.10 * 31314b6 : bench: compare binaries equal times The benchmark compare would drop the - http://git.io/6M-FKQ
19:27:14  <trevnorris>bradleymeck: well. let me retract my statement. since 3.14 they've optimized for the == null type check. so don't get a deopt now in 3.17
19:28:06  <trevnorris>yeah. awesome. now 3x's faster and no deopts. awesome.
19:33:54  <trevnorris>bnoordhuis: been trying to get to know libuv. in fs-poll why do you "ctx = calloc()" instead of using malloc?
19:39:49  * c4milojoined
19:45:03  * DaniloD3892quit (Ping timeout: 245 seconds)
19:48:58  <bnoordhuis>trevnorris: calloc() zeroes the memory
19:49:12  <bnoordhuis>apart from that it's identical to malloc()
19:49:23  <trevnorris>bnoordhuis: understand that. was wondering if it's for a security concern or something why you used it?
19:49:56  <bnoordhuis>trevnorris: because else i'd have to zero the fields in the struct by hand
19:50:10  <bnoordhuis>which is error prone
19:50:21  <trevnorris>hm. interesting.
19:50:58  <MI6>nodejs-v0.10: #44 UNSTABLE smartos-ia32 (1/563) osx-x64 (1/563) osx-ia32 (2/563) windows-x64 (4/563) windows-ia32 (4/563) http://jenkins.nodejs.org/job/nodejs-v0.10/44/
19:51:19  <trevnorris>c is an interesting beast.
19:51:26  <trevnorris>for shits and giggles i swapped it to malloc and all tests still pass. fwiw.
19:51:54  <bnoordhuis>oh, no doubt
19:52:01  <bnoordhuis>it's a bit of forward thinking
19:52:20  <bnoordhuis>if someone adds fields to the struct later on but forgets to zero them when it's malloced, bam!
19:52:47  <bnoordhuis>or worse, not "bam!" but some sneaky segfault that only shows up once every 10 million runs
19:52:59  <trevnorris>ahhhh.
19:54:06  <indutny>sneaky segfault
19:54:30  <trevnorris>bnoordhuis: ok. to make sure I understand. i remember you explaining it wasn't necessary for my tick_infobox struct because it would be automatically zeroed.
19:54:41  * AvianFluquit (Remote host closed the connection)
19:54:52  <bnoordhuis>trevnorris: yes. variables with static storage are zeroed on program startup
19:54:52  * kazuponquit (Remote host closed the connection)
19:54:56  <trevnorris>ah, ok
19:54:59  <bnoordhuis>it's in the spec so it must be true
19:55:06  <trevnorris>lol
19:55:15  <bnoordhuis>things that you alloc on the heap are uninitialized, as are stack variables
19:57:38  <trevnorris>kk.
19:57:43  <trevnorris>learning js was nice because so much was hidden. getting to understand c/c++ has been an interesting trip.
19:58:48  * indexzerojoined
20:00:41  <trevnorris>any tips on why pipe_pump1_server is 2x's faster than tcp_pump1_server?
20:01:09  <trevnorris>(those benchmarks are freakin awesome btw. awesome way to set theoretical upper limits on what node could do)
20:06:13  <bnoordhuis>trevnorris: pipe == unix socket and unix sockets have way less kernel overhead than tcp sockets
20:06:44  <bnoordhuis>interestingly enough, even loopback traffic moves throug much of the tcp stack on linux
20:07:11  <bnoordhuis>that's something 3.9 will probably address to some extent, which is both good and bad
20:07:18  <bnoordhuis>good because it makes things faster
20:07:40  <bnoordhuis>bad because it means our benchmarks are even less representing of a real-world scenarion :-/
20:07:43  <bnoordhuis>*scenario
20:07:53  * defunctzombie_zzchanged nick to defunctzombie
20:08:05  <trevnorris>ah, interesting.
20:09:03  <indutny>bnoordhuis: that's the big problem
20:10:11  <trevnorris>so, by the names, i'd assume that pipe_wrap is a node wrapper for pipe.c, etc.?
20:10:23  <bnoordhuis>for the uv_pipe_* functions, yes
20:11:15  <indutny>bnoordhuis: I loved times where everything was pretty simple and straightforward
20:11:21  <indutny>bnoordhuis: instruction cycle times
20:11:24  <indutny>bnoordhuis: tcp
20:11:55  <indutny>it was pretty simple to optimize assembly, without keeping branch prediction, pipeline and everything in mind
20:12:04  <indutny>especially multiprocessor architectures
20:12:34  <bradleymeck>indutny: do you know of a C function def parser?
20:13:16  <indutny>not sure I follow
20:13:35  <trevnorris>it's funny. still don't understand a lot of libuv. but if code was art, it'd be a da vinci
20:14:01  <indutny>meh, its pretty shitty in parts
20:14:03  <bradleymeck>indutny: something that transforms "void main(…)" into an ast
20:14:14  <indutny>bradleymeck: ah, use gcc
20:14:17  <bradleymeck>indutny: everything is :(
20:14:18  <indutny>:)
20:14:25  <bradleymeck>it has an ast output?
20:14:27  <indutny>or clang
20:14:28  * bradleymeckdigs
20:14:37  <bnoordhuis>bradleymeck: clang has good parser bindings
20:14:44  <tjfontaine>libclang++
20:14:45  <bnoordhuis>gcc not so much
20:15:10  <indutny>ok ok, you beat me at it
20:16:57  <bradleymeck>thanks
20:17:44  * nsmquit (Quit: nsm)
20:19:20  <indutny>bnoordhuis: time for this https://github.com/joyent/node/pull/5097/files
20:20:13  * dominictarrjoined
20:21:08  <bnoordhuis>Assertion failed: (args.Holder()->InternalFieldCount() > 0), function Unref, file ../../src/handle_wrap.cc, line 72.
20:21:10  <bnoordhuis>7fff9047b8d0+1a _sigtramp /usr/lib/system/libsystem_c.dylib(0x7fff90479000)
20:21:13  <bnoordhuis>560
20:21:16  <bnoordhuis>7fff904d2d3f+8f abort /usr/lib/system/libsystem_c.dylib(0x7fff90479000)
20:21:18  <bnoordhuis>7fff904d3d98+92 __assert_rtn /usr/lib/system/libsystem_c.dylib(0x7fff90479000)
20:21:21  <bnoordhuis>10000cee6+f0 node::HandleWrap::Unref(v8::Arguments const&) /Users/bnoordhuis/src/v0.10/out/Debug/node(0x100000000)
20:21:24  <bnoordhuis>100142810+57c v8::internal::MaybeObject* v8::internal::HandleApiCallHelper<false>(v8::internal::(anonymous namespace)::BuiltinArguments<(v8::internal::BuiltinExtraArguments)1>, v8::internal::Isolate*) /Users/bnoordhuis/src/v0.10/out/Debug/node(0x100000000)
20:21:27  <bnoordhuis>100142ec0+2b v8::internal::Builtin_Impl_HandleApiCall(v8::internal::(anonymous namespace)::BuiltinArguments<(v8::internal::BuiltinExtraArguments)1>, v8::internal::Isolate*) /Users/bnoordhuis/src/v0.10/out/Debug/node(0x100000000)
20:21:31  <bnoordhuis>100140730+88 v8::internal::Builtin_HandleApiCall(v8::internal:
20:21:34  <bnoordhuis>^ how nice is that?
20:21:36  <bnoordhuis>oh, the bits where you see js frames got cut off
20:21:44  <bnoordhuis>1135e6a06140+4e _tickCallback node.js:415:13
20:21:45  <bnoordhuis>1135e6a66960+349 LazyCompile:_tickCallback node.js:395
20:21:45  <bnoordhuis>1135e6a24700+67 Builtin:A builtin from the snapshot
20:21:45  <bnoordhuis>1135e6a11840+d7 Stub:JSEntryStub
20:22:16  <tjfontaine>quite pretty
20:22:38  <indutny>pretty common error
20:22:52  <bnoordhuis>indutny: you're missing the point :)
20:23:09  <tjfontaine>this is his stackunwind stuff
20:23:32  <tjfontaine>bnoordhuis: is that happening from a core btw?
20:23:58  <indutny>bnoordhuis: yep, what's it about?
20:24:08  <bnoordhuis>tjfontaine: no. i wrote a module that installs a SIGABRT handler that prints the backtrace
20:24:13  <indutny>aaaaaaah
20:24:14  <tjfontaine>nod
20:24:17  <indutny>oooooooooooooh
20:24:23  <indutny>heh
20:24:25  <bnoordhuis>i.e. like this: $ out/Debug/node -e 'require("./tmp/backtrace"); var o = setInterval(function(){}, 1); process.nextTick(o.unref)'
20:24:26  <indutny>finally!
20:24:55  <indutny>are you overriding `abort`?
20:25:08  <bnoordhuis>no, just catching the SIGABRT
20:25:15  <indutny>oh, right
20:25:22  <indutny>interesting
20:25:33  <indutny>I think it might be not that bad to add this to core
20:25:44  <trevnorris>isaacs: i'm going to see if I can fix the 30% perf hit writing ascii in 3.17, then going to rip out the maxTickDepth stuff.
20:25:45  <indutny>considering that we're usually asking users to give us backtrace of error
20:27:40  <bnoordhuis>yep, that's what i'll do once it's matured a little
20:27:49  <indutny>cool
20:28:28  <trevnorris>so why would writing an ascii string using writeUtf8String fail?
20:36:56  * roxluquit (Quit: leaving)
20:37:38  * `3rdEdenjoined
20:42:28  <trevnorris>... nm
20:43:57  <tjfontaine>http://jenkins.nodejs.org/nightlies -- thank god my job doesn't involve me doing frontend work for a living
20:44:51  <trevnorris>tjfontaine: can I throw you a css snippet to pop in there?
20:45:00  <tjfontaine>absolutely
20:45:01  * bradleymeckquit (Quit: bradleymeck)
20:45:10  <tjfontaine>or rewrite the html for all I care :)
20:45:27  <tjfontaine>I'm very much a utilitarian
20:47:06  <indutny>ahaha
20:47:09  <indutny>UX guru
20:47:23  <indutny>I like it, actually
20:50:30  * AvianFlujoined
21:05:03  * stagasquit (Read error: Connection timed out)
21:05:20  * kazuponjoined
21:10:05  * kazuponquit (Ping timeout: 252 seconds)
21:12:52  * isaacsfg
21:15:22  <trevnorris>tjfontaine: hope you don't mind. having some fun w/ this.
21:15:42  <tjfontaine>heh I don't mind at all
21:15:49  <trevnorris>=)
21:16:33  <bnoordhuis>indutny: https://github.com/bnoordhuis/node-backtrace <- in case you have a need for it
21:17:27  <bnoordhuis>i guess i should make ia32 work as well
21:17:40  <isaacs>bnoordhuis: we should have this be what `console.trace` outputs
21:17:51  <isaacs>bnoordhuis: and a flag to dump it to stdout on any uncaught error that crashes the program
21:18:18  <isaacs>of course, doing that from console.trace would probably be hecka slow
21:18:42  <isaacs>maybe console.superTrace
21:18:52  <trevnorris>isaacs: could we throw a hook in to OnFatalError for that as well?
21:18:55  <tjfontaine>superDuperUberTrace
21:18:56  <trevnorris>sort of what I did in https://github.com/trevnorris/node-ofe
21:19:21  <trevnorris>(well, bnoordhuis really. i just replaced SetOnFatalError)
21:19:25  <isaacs>trevnorris: yeah, that's what i'm saying
21:19:35  <trevnorris>=)
21:20:56  <indutny>bnoordhuis: oh god
21:21:32  <indutny>why braces are on next line?
21:21:35  <indutny>is it new trend?
21:21:45  <indutny>sorry, I can't really read your code
21:21:52  <indutny>that's too awful
21:23:36  <trevnorris>indutny: as torvalds says about that "right-thinking people know that (a) K&R are _right_ and (b) K&R are right"
21:23:41  <trevnorris>=P
21:24:09  <indutny>yeah, I agree
21:24:42  <indutny>its comma-first style in C
21:24:44  <indutny>even worse
21:25:01  <isaacs>braces on the next line = unconscionable accident of history.
21:25:08  <trevnorris>is there a case in C where something can go "int fn() <right_here> {}"?
21:25:16  <isaacs>K&R weren't bad, but they didn't know.
21:25:27  <indutny>trevnorris: const?
21:25:29  <isaacs>you know, i mean, George Washington had slaves. Doesn't mean he was a bad person, but also doesn't mean that slavery is good.
21:25:39  <indutny>but not C, though
21:25:42  <indutny>AFAIK
21:25:44  <isaacs>heroes of history made mistakes. { on the next line is one of them.
21:25:49  <trevnorris>oh, so wouldn't matter there. ok
21:26:06  <isaacs>making that mistake today is completely unjustifiable.
21:26:10  <indutny>isaacs: slavery is generally good
21:26:12  <trevnorris>isaacs: well, while I don't like the style, makes jumping around in vim hella easy.
21:26:24  <isaacs>trevnorris: jumping around in vim is alreayd hella easy
21:26:33  <indutny>trevnorris: how?
21:26:34  <trevnorris>i know, but even more so. ;-)
21:26:44  <isaacs>$% and }{ movement keys already do exactly what you need most of the time
21:26:53  <isaacs>in fact, you can configure % to be $% anyway
21:27:23  <isaacs>because why would the brace ever NOT be at the end of the line? unless you're a crazy person dancing around in old timey fancy pants wigs and stuff.
21:27:25  <indutny>t{%
21:27:26  <isaacs>owning slaves
21:27:32  * AvianFluquit (Remote host closed the connection)
21:28:02  <isaacs>wooden teeth
21:28:08  <isaacs>treating the flu with leeches
21:28:18  <indutny>leech is pretty effective sometimes
21:28:34  <bnoordhuis>indutny, trevnorris: function braces on new line is a linux kernel style thing actually :)
21:28:40  <indutny>bnoordhuis: fuck it
21:28:41  <txdv>When will come the era where style is irrelevant and just a view projection of the syntax
21:28:41  <indutny>seriously
21:28:45  <isaacs>bnoordhuis: yes, i know.
21:28:46  <indutny>I've only curse words about it
21:28:51  <indutny>mixed tabs and spaces
21:28:56  <isaacs>bnoordhuis: it is one of several things wrong withthe linux kernel
21:29:23  <indutny>txdv: someone will still pollute code with dirty comments
21:29:26  <bnoordhuis>oh, i kinda like it. it grows on you
21:29:32  <isaacs>bnoordhuis: all styles grow on you
21:29:35  <isaacs>bnoordhuis: so does herpes
21:29:37  <trevnorris>indutny: define "dirty comments"
21:29:39  <isaacs>bnoordhuis: doesn't make it good
21:29:40  <bnoordhuis>so does fungus of course
21:29:40  <indutny>bnoordhuis: like mold
21:29:43  <bnoordhuis>hah
21:29:58  <isaacs>i do support using lots of different crazy styles. just not in node-core
21:30:06  <indutny>heh
21:30:16  <indutny>just don't publish it
21:30:18  <indutny>:D
21:30:23  <txdv>light table 0.2 is out, time to teszt
21:30:30  <isaacs>and mostly, i'm just joking about being offended by it. i don't prefer it, but i recognize code style preference as an irrational behavior.
21:30:37  * qmxchanged nick to qmx|afk
21:30:50  <trevnorris>no comments in js is my all time fucking hatred
21:30:50  <isaacs>don't land it in node, though
21:30:56  <trevnorris>*comments*semicolons
21:31:06  <txdv>I have my preferences for code style but when I code for other stuf, I just adjust to the surounding code style
21:31:06  <bnoordhuis>well, i wasn't going to - it's a module :)
21:31:11  <isaacs>kewl
21:32:43  <trevnorris>indutny: "Another set of keys which are useful are the [[ and ]] keys. These keys allow you to jump to the previous { or next { in the first column"
21:33:14  <indutny>meh
21:33:50  <trevnorris>also it's nice not to have the function deceleration in a fold.
21:34:03  <indutny>god
21:34:07  <indutny>please stop
21:34:25  <indutny>I only care about visual appearance
21:34:31  <indutny>appearence*
21:43:53  * AvianFlujoined
21:47:24  <isaacs>indutny: i've got a patch that i'd like you to review, but this cafe seems incapable of reaching github's git:// urls
21:47:32  <isaacs>indutny: to fix the tls hanging stuff
21:48:24  <isaacs>indutny: but this is the patch: https://gist.github.com/isaacs/5208810
21:49:10  <isaacs>this is the source of the "cb() never called!" npm errors that i'm getting 6 emails an hour about.
21:49:25  <indutny>oh
21:49:46  <indutny>do you have regression test?
21:49:49  <indutny>otherwise LGTM
21:50:29  * nsmjoined
21:50:35  <isaacs>indutny: nope
21:50:40  <isaacs>indutny: i can't get it to fail in controlled scenarios
21:50:46  <indutny>hm...
21:50:57  <isaacs>indutny: but certain packages cannot be installedon linux especially
21:51:52  <isaacs>indutny: i have it piping to a file, in free-flow mode, and so the pause() resume() calls have to be timed just right.
21:51:59  * qmx|afkchanged nick to qmx
21:52:27  <isaacs>indutny: but `npm install zeparser` triggers it very reliably on my ubuntu machien
21:52:34  <isaacs>indutny: and works flawlessly with this patch
21:52:40  <indutny>well
21:52:46  <indutny>its not about reproducing it
21:52:51  <indutny>you know
21:52:54  <isaacs>right
21:53:03  * bradleymeckjoined
21:53:07  <indutny>let me think about it for a bit
21:53:12  <isaacs>indutny: the core problem is that we are already "reading", so it doesn't call read(0) again
21:53:19  <isaacs>indutny: but, there's no data
21:53:24  <isaacs>indutny: so it will never get any more.
21:53:32  <isaacs>indutny: and process exits
21:53:38  <indutny>yeah, I understand
21:53:51  <indutny>well, its pretty harmless
21:53:55  <isaacs>if you have a better idea for a patch, i'm game to do something different
21:54:10  <isaacs>anyway, rain seems to be increasing, and internet here sucks. gonna head home. bbaib
21:54:17  * isaacs&
21:54:18  <LOUDBOT>SLEEP IS FOR THE SLEEPY PEOPLE!
21:55:01  * wolfeidauquit (Remote host closed the connection)
22:07:17  * qmxchanged nick to qmx|away
22:08:25  * isaacsfg
22:08:42  <indutny>so, generally it LGTM
22:08:57  <indutny>and seems to be correct
22:09:43  <indutny>just wanted to be sure that it won't be called too often
22:09:44  <indutny>isaacs: ^
22:10:28  <isaacs>indutny: i'm trying to write a regression test now
22:11:05  <indutny>ok
22:11:09  <indutny>I'm going to sleep now
22:11:19  <indutny>I don't mind if you pull it without my reviewal :)
22:11:26  <indutny>because code change looks good
22:11:29  <indutny>and solid
22:11:30  * indutny&
22:11:30  <LOUDBOT>DOWN WITH AUGMENTED SANDWICH ARTISTS
22:12:22  * wolfeidaujoined
22:12:40  * rendarquit
22:12:56  <trevnorris>tjfontaine: are these all nightlys that will show up?
22:13:33  <tjfontaine>trevnorris: can you be more specific?
22:14:46  <trevnorris>erm.. nm.
22:14:58  <trevnorris>page title "Nightlies"
22:16:06  <trevnorris>tjfontaine: now i'm getting Status Code: 500
22:16:42  <tjfontaine>from which url?
22:16:54  <trevnorris>http://jenkins.nodejs.org/static/nightlies.html
22:17:04  * wolfeidauquit (Ping timeout: 252 seconds)
22:17:29  <tjfontaine>oh, because i didn't realize static was the prefix jenkins used for its own content, it's now under html
22:17:40  <trevnorris>ah, ok
22:18:24  <trevnorris>tjfontaine: here's an alternate: https://gist.github.com/trevnorris/5209053
22:18:36  * wolfeidaujoined
22:18:53  * c4miloquit (Remote host closed the connection)
22:20:39  * indexzeroquit (Quit: indexzero)
22:22:28  <tjfontaine>trevnorris: deployed
22:22:42  <trevnorris>=)
22:22:43  <tjfontaine>thanks
22:23:03  <trevnorris>anytime.
22:23:21  <trevnorris>tjfontaine: looks like some entries don't have any downloads. want those to be filtered out?
22:23:54  <trevnorris>indutny: how often do you bother to update v8? same day 3.17.13 was merged 3.17.14 was published.
22:24:38  <tjfontaine>trevnorris: hm I'm of two minds, as I'd like to make sure people know that a build wasn't clean
22:24:53  <trevnorris>tjfontaine: good point. ok
22:25:14  <tjfontaine>trevnorris: going forward though everything should have a build since the windows build slave isn't being a PIA
22:25:20  <tjfontaine>+t
22:25:44  <trevnorris>so finally dominated the windows builds, eh? good for you ;-)
22:26:34  <tjfontaine>I wish I could say I dominated them, I happened to look last night and see that it succeeded, and kinda o0'd
22:26:47  <tjfontaine>then realized that the only thing different was how I launched the build slave that time
22:26:47  <trevnorris>lol
22:27:22  <tjfontaine>launching via a batch results in WiX hating me, launching on its own *magic*
22:27:37  <tjfontaine>(as in which JRE it picks)
22:27:58  <tjfontaine>lets not talk about how scary it is to have a windows machine on the internet running java ...
22:29:19  <trevnorris>wtf... yeah. that's an awesome security and stability combination.
22:30:00  * dominictarrquit (Quit: dominictarr)
22:35:18  * loladirojoined
22:38:48  * benoitcquit (Excess Flood)
22:41:24  * benoitcjoined
22:42:23  * benoitcquit (Excess Flood)
22:43:21  <bnoordhuis>trevnorris: re v8 upgrades, it depends. is there anything interesting in there?
22:45:24  * benoitcjoined
22:53:46  <isaacs>[email protected] #$#@[email protected]@!!!
22:53:50  <isaacs>i can't seem to make this error happen
22:53:52  <isaacs>grr.
22:54:38  <trevnorris>bnoordhuis: "Isolatified" heap/cpu apis, couple gc things, switched to using internal memcpy... so don't think so.
22:56:47  * Kakeraquit (Ping timeout: 252 seconds)
22:58:07  * `3rdEdenquit (Remote host closed the connection)
23:03:48  * defunctzombiechanged nick to defunctzombie_zz
23:09:14  * AvianFluquit (Remote host closed the connection)
23:09:34  * dominictarrjoined
23:15:58  <MI6>joyent/node: isaacs v0.10 * 008ab12 : tls: Prevent hang in readStart This is not a great fix, and it's a bug t - http://git.io/VkfMBw
23:18:37  <trevnorris>is it considered bad for to have an overloaded function return different types?
23:20:47  * qmx|awaychanged nick to qmx
23:22:17  <trevnorris> /for/form/
23:23:21  <tjfontaine>you mean different argument types/counts result in different return types?
23:23:30  <trevnorris>yeah
23:23:50  <tjfontaine>what's the scenario?
23:24:36  <trevnorris>Allocating data. If you pass Object Handle and length, then it returns the Object with the bound data. if you just pass length then it returns char*
23:25:55  <tjfontaine>I don't think that's bad form, because you're getting back what you put in, though I suppose it's something you see more from a templated function
23:26:33  * loladiroquit (Quit: loladiro)
23:28:46  * `3rdEdenjoined
23:31:19  <MI6>nodejs-v0.10: #45 FAILURE smartos-ia32 (1/563) linux-x64 (1/563) osx-ia32 (2/563) windows-x64 (5/563) windows-ia32 (4/563) http://jenkins.nodejs.org/job/nodejs-v0.10/45/
23:31:25  <isaacs>tjfontaine: in js or c++?
23:31:44  <isaacs>oh, i guess it must be in C++
23:31:49  <isaacs>yes, i'd call that bad form.
23:31:53  <isaacs>trevnorris: ^
23:32:02  <isaacs>better to just have different function names.
23:32:05  <trevnorris>kk
23:32:10  <isaacs>the return value should be consistent, even if the args differ
23:33:55  * loladirojoined
23:33:59  <tjfontaine>isaacs: what js version are you using that has templates?
23:34:10  <tjfontaine>:)
23:34:20  <isaacs>tjfontaine: haha
23:34:32  <isaacs>shh don't mention that. someone from es-discuss might hear you
23:34:42  <tjfontaine>I don't have an example off hand, but it's a pattern I've seen before, especially if what you're passing in indicates the reeturn
23:34:45  * loladiroquit (Client Quit)
23:34:55  <isaacs>though, there's been talk of operator overloading and macros, which are about as bad
23:35:17  <isaacs>tjfontaine: yeah, if you have something like slice(), and it's overloaded to work on char* or buffer, i mean, sure
23:35:24  <isaacs>get out what you put in
23:35:25  <tjfontaine>new v8 hinting mechanism, function nextTick<3arg>() {..}
23:35:32  <isaacs>whoa, nice
23:35:42  <tjfontaine>see, now I'm trolling you :P
23:35:46  * tjfontainedemerit
23:37:13  * `3rdEdenquit (Ping timeout: 258 seconds)
23:37:18  * defunctzombie_zzchanged nick to defunctzombie
23:37:40  <trevnorris>lets see if this makes sense. can you "char* d = new char[n]" then hand off chunks. and have those chunks freed by "delete [] chunk"?
23:37:59  <piscisaureus_>trevnorris: no
23:38:20  <trevnorris>=(
23:38:32  <piscisaureus_>trevnorris: if that would work all our problems would be over.
23:38:42  <piscisaureus_>Well, probably not. But it'd be interesting.
23:38:48  * loladirojoined
23:38:48  * loladiroquit (Client Quit)
23:38:52  * defunctzombiechanged nick to defunctzombie_zz
23:38:53  <trevnorris>so no way to allocate a large chunk then make the system think it looks like smaller chunks?
23:38:59  <piscisaureus_>Nope.
23:41:09  <trevnorris>so does the system keep an internal pointer to the block of memory?
23:42:19  * loladirojoined
23:42:44  * loladiroquit (Client Quit)
23:43:10  <cjd>you're trying to allocate a whole bunch of chunks of memory which are managed by the v8 garbage collector?
23:45:33  <trevnorris>cjd: want to "char* d = new char[large_n]" then hand them off as chunks so each chunk can be independently cleaned up with "delete [] chunk"
23:45:58  <cjd>by the v8 GC?
23:46:25  <cjd>or by your own code?
23:46:31  <trevnorris>my own code.
23:46:56  <cjd>what's the application?
23:47:01  <cjd>chunks == packets?
23:47:04  <cjd>or something
23:47:17  <trevnorris>well, a malloc isn't very expensive. is it?
23:47:33  <cjd>well... it depends
23:47:39  <cjd>sometimes it is, sometimes it isn't
23:47:57  <trevnorris>and yeah. something like that.
23:48:09  <cjd>ok
23:48:16  <cjd>here's how I plan to have cjdns do it
23:48:22  <cjd>allocate pages
23:48:29  <cjd>so 4096 byte chunks
23:48:37  <cjd>one for each packet
23:48:48  <cjd>and when they are finished being used, they are returned to a page pool
23:49:01  <cjd>where they are again pulled out to fill with the content of another packet
23:49:23  <MI6>joyent/node: Fedor Indutny v0.10 * 855caa8 : crypto: initialize transform lazily - http://git.io/SIAu4A
23:50:40  <cjd>make your your allocations fall on page boundries and you save some space out so they don't spill over the top of the page
23:50:45  <cjd>and that should be pretty fast
23:50:57  * dominictarrquit (Quit: dominictarr)
23:51:33  <cjd>ofc the technique is the same for smaller or larger chunks
23:51:34  <trevnorris>let me know when you have an example =)
23:51:37  <cjd>recycling
23:51:47  <cjd>how big are your chunks?
23:51:59  <trevnorris>n
23:52:09  <trevnorris>this is completely theoretical.
23:52:17  <cjd>not fixed size?
23:52:22  <trevnorris>just seeing what I can/can't do in c++
23:52:32  <cjd>bah
23:52:33  <cjd>use C
23:52:35  <cjd>:P
23:52:41  <trevnorris>heh
23:53:10  <cjd>also check out tcmalloc
23:53:19  <cjd>which does basicly what I described
23:53:52  <tjfontaine>trevnorris: so refresh me, this is to replace how we handle slab allocation for buffers? or just buffers in general?
23:53:58  <tjfontaine>just *slow/flast buffer
23:54:33  <trevnorris>tjfontaine: first here's the PR for what I"m working on. half way down is the example that i'm trying to solve: https://github.com/joyent/node/pull/4964
23:54:47  <trevnorris>so there are two main goals here.
23:55:05  * mikealquit (Quit: Leaving.)
23:55:18  <trevnorris>1) create a lower level memory allocator that handles all the allocation/handle persisting, etc.
23:56:01  <trevnorris>2) using that it'll be trivial to make Buffer live entirely in cc.
23:57:04  <trevnorris>also it'll centralize the way memory is allocated.
23:57:12  <trevnorris>right now there are 3 ways spread through node
23:57:25  <trevnorris>Buffer pools, SlabAllocator and SlabBuffers.
23:58:35  <tjfontaine>ok, and you're trying to determine how to do the underlying buffer alloc/free for the chunking?
23:58:41  <tjfontaine>s/determine/decide/
23:58:46  <trevnorris>yeah basically.
23:58:58  <trevnorris>the main problem right now is finding a quick way to track handles.
23:59:08  <trevnorris>(Persistent handles hate everyone)
23:59:22  <cjd>http://goog-perftools.sourceforge.net/doc/tcmalloc.html
23:59:31  <tjfontaine>have you looked at things like block-heaps/arena allocators?