00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:07  * ircretaryjoined
00:02:54  <isaacs>oh, no
00:03:05  <isaacs>it's that the stack getter doens't call the toString getter
00:03:11  <isaacs>er, the toSTring function
00:03:20  * benoitcjoined
00:13:37  <isaacs>trevnorris: https://github.com/isaacs/node/tree/v8-3.16.14
00:13:40  <isaacs>or tjfontaine
00:13:47  <isaacs>whoever asked for that. you guys look the same on irc
00:13:52  <trevnorris>freaka whoot!
00:14:17  <trevnorris>tjfontaine: i know you've been around a lot longer than I have and all, but you need to change your nick. ;-)
00:14:50  <tjfontaine>haha
00:15:14  <tjfontaine>trevnorris: in irc age I'm much older than you even know :P
00:16:00  <trevnorris>lol. yeah, I got kind of a late start.
00:17:06  <bnoordhuis>i think isaacs has the same nick color script i have...
00:17:53  <tjfontaine>people with good clients should have a problem with us 3, since our lengths are all the same :)
00:18:29  * trevnorrischanged nick to TNorris
00:18:33  <TNorris>there, better?
00:18:37  <tjfontaine>haha
00:18:39  <tjfontaine>:P
00:18:44  * TNorrischanged nick to trevnorris
00:19:10  <trevnorris>was using that for a while, until i figured it would confuse everyone not having the same nick as my github.
00:19:19  <tjfontaine>thank god, finally got multiarch builds working
00:20:50  <MI6>joyent/node: bnoordhuis created branch issue4808 - http://git.io/PmtBAw
00:21:08  <bnoordhuis>^ someone LGTM that pretty please?
00:22:08  <tjfontaine>lgtm :)
00:22:15  <bnoordhuis>merci :)
00:22:36  <MI6>joyent/node: Ben Noordhuis v0.8 * 22d3eff : doc: add note about child process line buffering Fixes #4808. - http://git.io/bqfs4w
00:26:05  * hzquit
00:27:13  <isaacs>hmmm... this is odd. apparently there's some issue with V8 3.16 when stdout is a file
00:27:48  <trevnorris>typeof null === 'object' <- wtf? i knew this, but why oh why?
00:33:24  <bnoordhuis>trevnorris: what else?
00:36:10  * c4milojoined
00:36:24  <trevnorris>bnoordhuis: hm?
00:37:00  <isaacs>ok, so, this is weird
00:37:38  <isaacs>on 3.16, i'm seeing a timeout (timeout!) from simple/test-stdout-to-file
00:38:01  <isaacs>it seems like it's spending many seconds on the data = new Buffer(data, encoding) in fs.SyncWriteStream
00:38:04  <isaacs>super strange
00:38:17  <isaacs>when i do those same operations in a test file, it takes zero time
00:41:27  <isaacs>oh, ok, i can reproduce it in a standalone file
00:41:28  <trevnorris>isaacs: just fyi, here's a bug I filed about isolates: http://code.google.com/p/v8/issues/detail?id=2487
00:41:49  <trevnorris>i can't tell if that means the old isolate api is already deprecated in 3.16 or not.
00:42:15  <isaacs>hm
00:44:15  <isaacs>it happens super fast on the repl, but not in a script
00:44:59  <tjfontaine>it presents super fast in repl?
00:45:14  <bnoordhuis>tjfontaine: i can't land that tap pr just yet, i'm 99% it'll break the windows build
00:45:39  <bnoordhuis>trevnorris: it's deprecated in 3.17
00:46:00  <bnoordhuis>i was actually working on upgrading to 3.17
00:46:11  <trevnorris>coolio. i like that idea.
00:46:16  <tjfontaine>bnoordhuis: at the very least we could drop tap_output = 0; at the top of runner-win.c?
00:47:20  <bnoordhuis>tjfontaine: i guess that moving `int tap_output` to runner.c would fix it
00:47:36  <isaacs>yeah, definitely. String::Utf8Length() got way way slower.
00:47:38  <isaacs>that sucks
00:48:09  <bnoordhuis>how much slower is way way slower?
00:50:49  <tjfontaine>bnoordhuis: force-pushed with `int tap_output = 0;` at the top of runner.c
00:51:02  <tjfontaine>should there be a space between vars there?
00:51:36  * EhevuTov_quit (Quit: This computer has gone to sleep)
00:51:37  <isaacs>this looks mostly nice, though: https://gist.github.com/5009914
00:51:53  <bnoordhuis>tjfontaine: ../../test/run-tests.c: In function ‘maybe_run_test’:
00:51:53  <bnoordhuis>../../test/run-tests.c:158: error: too few arguments to function ‘run_test’
00:51:54  <bnoordhuis>../../test/run-tests.c:159: warning: control reaches end of non-void function
00:52:00  <bnoordhuis>same for run-benchmarks.c
00:52:11  <tjfontaine>oh oh
00:52:26  <tjfontaine>lemme fixor this
00:52:41  <bnoordhuis>oh, also long lines in test/runner.c
00:52:44  <bnoordhuis>wrap at 80 columns
00:53:30  <tjfontaine>ah run_test itself is too long, ok
00:56:07  * bradleymeckjoined
00:56:36  * `3rdEdenquit (Remote host closed the connection)
00:58:24  <tjfontaine>bnoordhuis: a single indent in, or line up with first arg?
01:05:35  <isaacs>d'oh. i broke lint.
01:05:41  <isaacs>weird that the tests didn't catch it
01:05:47  <isaacs>i swear sometimes that thing is just fickle
01:06:32  <tjfontaine>I don't get pgrep on smartos
01:09:28  <tjfontaine>ah, pr_psargs is too small to capture what I'm looking for
01:13:34  <bnoordhuis>tjfontaine: line up (as in: arguments should line up)
01:13:52  <tjfontaine>ok
01:24:34  * trevnorrisquit (Quit: Leaving)
01:27:05  * `3rdEdenjoined
01:34:37  * indexzeroquit (Quit: indexzero)
01:35:30  * `3rdEdenquit (Ping timeout: 264 seconds)
01:44:42  * bradleymeck_joined
01:45:17  * bradleymeckquit (Read error: Connection reset by peer)
01:45:17  * bradleymeck_changed nick to bradleymeck
01:45:37  * bradleymeckquit (Client Quit)
01:52:11  <bnoordhuis>hm, v8 3.17.2 has some rather spectacular performance regressions
01:52:25  <bnoordhuis>http/cluster.js type=bytes length=102400 c=50: 5.3300
01:52:55  <bnoordhuis>that's ~630x slower than 3.15
01:53:43  <bnoordhuis>with c=500 it doesn't even finish in any reasonable amount of time
01:55:59  * qmx|awaychanged nick to qmx
01:58:17  <TooTallNate>not good...
02:03:40  <bnoordhuis>mraleph: ^ take heed
02:04:12  * c4miloquit (Remote host closed the connection)
02:14:14  <bnoordhuis>some nice speedups on other benchmarks though
02:14:39  <bnoordhuis>the http thing seems to be a regression in string consing / flattening?
02:15:27  * EhevuTovjoined
02:15:29  <bnoordhuis>something to look into tomorrow
02:15:32  <bnoordhuis>sleep tight people
02:19:11  <isaacs>bnoordhuis: way slower = many thousands of times slower.
02:19:42  <isaacs>bnoordhuis: from ms to minutes, on a string 1024*1024 in length
02:19:55  * bnoordhuisquit (Ping timeout: 246 seconds)
02:28:19  * mikealquit (Quit: Leaving.)
02:31:37  <isaacs>Here's what's crazy freaky, though... Buffer.byteLength *ISNT* slower in teh repl.
02:31:45  <isaacs>only in non-repl contexts.
02:31:48  <isaacs>!
02:31:51  <isaacs>
02:31:55  <isaacs>!?
02:33:56  <Raynos>isaacs: https://github.com/joyent/node/issues/4816#issuecomment-13925530
02:46:47  * qmxchanged nick to qmx|away
02:55:58  * pooyaquit (Quit: pooya)
03:05:29  * dapquit (Quit: Leaving.)
03:10:36  * TooTallNatequit (Quit: Computer has gone to sleep.)
03:14:45  * brsonquit (Quit: leaving)
03:16:43  * kazuponjoined
03:17:40  * kazuponquit (Remote host closed the connection)
03:17:58  * kazuponjoined
03:22:43  * loladiroquit (Quit: loladiro)
03:22:54  * kazupon_joined
03:23:14  * kazuponquit (Read error: Connection reset by peer)
03:24:02  * kazupon_quit (Read error: Connection reset by peer)
03:24:34  * kazuponjoined
03:25:38  <isaacs>Raynos: it's fine: https://gist.github.com/5010496
03:34:08  * pooyajoined
03:47:31  <Raynos>isaacs: let me check for objectMode :p
03:47:42  <Raynos>oh god I have to build master >_<
03:51:37  <Raynos>is there an easier way to run an individual test yet?
03:51:46  <isaacs>Raynos: ./node path/to/test.js
03:52:00  <isaacs>Raynos: or python tools/test.py simple/test-stream*
03:52:26  * EhevuTovquit (Quit: This computer has gone to sleep)
03:52:28  <isaacs>Raynos: keep master and v0.8 checked out in two separate folders.
03:52:32  <isaacs>makes swithcing easier
03:52:34  <isaacs>ok, i'm out
03:52:35  * isaacs&
03:53:25  <Raynos>isaacs: https://gist.github.com/Raynos/b61f1c7d5f0534e33931
03:57:11  * indexzerojoined
04:08:46  * TooTallNatejoined
04:09:01  * TooTallNatequit (Client Quit)
04:19:20  * bradleymeckjoined
04:43:49  * bradleymeckquit (Quit: bradleymeck)
04:52:56  * benoitcquit (Excess Flood)
04:54:00  * trevnorrisjoined
05:00:55  * benoitcjoined
05:03:22  * ericktjoined
05:14:20  * ericktquit (Quit: erickt)
05:48:40  * benoitcquit (Excess Flood)
05:54:55  * benoitcjoined
05:57:23  * kazuponquit (Remote host closed the connection)
06:01:44  * loladirojoined
06:12:37  * bradleymeckjoined
06:16:10  * bradleymeckquit (Client Quit)
06:16:39  * mikealjoined
06:19:09  * bradleymeckjoined
06:20:15  * trevnorrisquit (Quit: Leaving)
06:21:35  * mikealquit (Quit: Leaving.)
06:26:29  * kazuponjoined
06:28:58  * kazuponquit (Read error: Connection reset by peer)
06:29:27  * kazuponjoined
06:33:39  * kazupon_joined
06:33:50  * kazuponquit (Read error: Connection reset by peer)
06:58:20  * mikealjoined
07:07:52  * stagasjoined
08:00:57  * sgallaghjoined
08:02:19  * wolfeidaujoined
08:04:08  * kazuponjoined
08:06:53  * kazupon_quit (Ping timeout: 256 seconds)
08:24:47  * rendarjoined
08:37:53  * rendar_joined
08:41:30  * rendarquit (Ping timeout: 264 seconds)
08:45:51  * pooyaquit (Quit: pooya)
08:47:10  * hzjoined
08:53:34  * csaohjoined
08:56:30  * bradleymeckquit (Quit: bradleymeck)
09:11:40  * bradleymeckjoined
09:16:51  * hzquit (Disconnected by services)
09:16:55  * hzjoined
09:21:18  * loladiroquit (Read error: Connection reset by peer)
09:22:16  * loladirojoined
09:23:27  * `3rdEdenjoined
09:44:50  * loladiroquit (Quit: loladiro)
09:55:43  * loladirojoined
10:12:56  * perezdquit (Quit: perezd)
10:25:39  * benoitcquit (Excess Flood)
10:31:30  * benoitcjoined
10:43:00  * kazuponquit (Remote host closed the connection)
10:46:59  * bradleymeckquit (Quit: bradleymeck)
11:11:44  * AvianFluquit (Remote host closed the connection)
11:23:54  * rendar_quit (Read error: Connection reset by peer)
11:24:22  * rendar_joined
11:30:25  * benoitcquit (Excess Flood)
11:37:00  * benoitcjoined
11:39:02  * benoitcquit (Excess Flood)
11:46:31  * benoitcjoined
11:53:25  * kazuponjoined
11:58:03  * kazuponquit (Ping timeout: 256 seconds)
11:58:33  * indexzeroquit (Quit: indexzero)
12:32:16  * mikealquit (Quit: Leaving.)
12:41:54  * kazuponjoined
12:43:45  * qmx|awaychanged nick to qmx
12:53:34  * loladiroquit (Quit: loladiro)
12:56:42  * csaohquit (Quit: csaoh)
13:00:03  * loladirojoined
13:02:14  * c4milojoined
13:05:44  * loladiroquit (Quit: loladiro)
13:13:50  * bnoordhuisjoined
13:16:43  * mikealjoined
13:19:40  * loladirojoined
13:21:39  * qmxquit (Changing host)
13:21:39  * qmxjoined
13:40:31  * loladiroquit (Quit: loladiro)
13:40:42  <MI6>joyent/libuv: Ben Noordhuis master * da0b84d : unix: auto-unref spawn handle on process exit Consistent, for better or - http://git.io/xUpXGw
13:41:02  <bnoordhuis>saghul: ^
13:43:05  <`3rdEden>bnoordhuis: http://cl.ly/image/3U3q381R0b0z
13:43:22  <bnoordhuis>what will i see when i click on that link?
13:43:30  <`3rdEden>that your site is down
13:43:33  <`3rdEden>or goats
13:43:39  <bnoordhuis>ah
13:43:40  <bnoordhuis>wfm
13:44:16  <`3rdEden>Just thought id let you know :)
13:44:37  <bnoordhuis>yes, thanks. odd though, curl wfm too
13:45:59  <`3rdEden>bnoordhuis: ye seems to be up again
13:46:00  <saghul>bnoordhuis great, thanks a lot!
13:46:07  <indutny>morning
13:46:10  <`3rdEden>might have been a small disruption in cloud flare
13:46:26  <indutny>wfm
13:46:27  <indutny>too
13:49:46  * loladirojoined
14:20:36  <bnoordhuis>v8 is pretty flaky lately
14:20:53  <bnoordhuis>i'm trying to run the linux-tick-processor but d8 crashes during a gc cycle
14:21:01  <bnoordhuis>both with 3.16 and 3.17
14:22:04  <bnoordhuis>and of course it doesn't happen with debug builds...
14:23:05  <bnoordhuis>41670 99.9% 99.9% syscall <- umm...
14:26:57  * `3rdEdenchanged nick to `3E|gone
14:32:14  * kazuponquit (Remote host closed the connection)
14:46:34  * qmxchanged nick to qmx|away
14:51:15  * ericktjoined
15:09:34  * bradleymeckjoined
15:12:27  <bnoordhuis>95.73% perf [unknown] [.] 0x00000000007a219b <- that's not really helping...
15:14:18  * c4miloquit (Remote host closed the connection)
15:19:08  <bnoordhuis>for some reason, the perf regressions from last night has disappeared...
15:19:56  <bnoordhuis>without anything changing
15:22:18  <bnoordhuis>http/cluster.js type=bytes length=102400 c=50: 2438.2 <- that was 5.3 last night
15:25:26  <bnoordhuis>hm, maybe something did change - but in node, not v8. i see a couple of streams2 patches landed
15:29:40  * mikealquit (Read error: Connection reset by peer)
15:33:28  * pooyajoined
15:37:36  * c4milojoined
15:42:41  * kazuponjoined
15:44:23  * perezdjoined
15:48:09  * kazuponquit (Ping timeout: 276 seconds)
15:54:49  * mikealjoined
16:06:49  * sgallaghquit (Ping timeout: 256 seconds)
16:10:12  * mikealquit (Quit: Leaving.)
16:12:24  <MI6>joyent/libuv: Ben Noordhuis master * c98083e : unix: short-circuit on no-op io watcher changes Don't add the io watcher - http://git.io/kiWqBw
16:15:28  <mmalecki>bnoordhuis: hey
16:17:23  <isaacs>Raynos: that's not what i'm seeing on master.
16:17:54  <mmalecki>so Bert is sleeping by a pool, any idea what joke can I pull on him?
16:21:24  <isaacs>Raynos: but, it's not actually calling read(0) unless it needs readable, so that only happens once. hrm.
16:22:52  <indutny>mmalecki: sell him as slave
16:28:00  <isaacs>bnoordhuis: what's your opinion about v8 versions to ship 0.10 with?
16:28:00  <mmalecki>indutny: it's illegal
16:28:04  <isaacs>bnoordhuis: 16 or 17
16:28:35  <indutny>mmalecki: ok, just sell his return ticket and buy one to russia
16:28:38  <indutny>i'll sell him there
16:28:41  <indutny>its illegal too
16:28:45  <indutny>but... you know
16:29:06  <indutny>isaacs: are we currently using 16?
16:29:27  <isaacs>indutny: we're currently using 15
16:29:31  <isaacs>but 16 would be rad
16:29:32  <indutny>ok
16:29:35  <indutny>yep
16:29:45  <indutny>what about tests?
16:29:50  <isaacs>i've got 16 passing
16:29:52  <indutny>are they passing for both 16 and 17?
16:30:00  <isaacs>but there's this weird Buffer.byteLength() taking forever issue.
16:30:08  <indutny>oh
16:30:19  <isaacs>going to try to create a reduced test case for V8 today
16:30:31  <isaacs>it's not slow in the repl, only in a script
16:30:34  <isaacs>weird, right?
16:30:42  <indutny>yes
16:30:57  <indutny>may be it happens because of closure?
16:31:34  <indutny>models are rning in clousre
16:33:22  * loladiroquit (Quit: loladiro)
16:38:15  * bnoordhuisquit (Ping timeout: 260 seconds)
16:38:52  * ericktquit (Quit: erickt)
16:40:42  <isaacs>hm.
16:40:46  <isaacs>maybe, i don't know
16:41:17  <isaacs>indutny: fwiw, it's the same with NODE_MODULE_CONTEXTS=1
16:41:22  <indutny>oh
16:41:24  <indutny>even that
16:43:42  <isaacs>with NMC, it's not run in a closure, it's run in a separate context, like the repl
16:51:27  * stagas_joined
16:53:00  * stagasquit (Ping timeout: 264 seconds)
16:53:07  * stagas_changed nick to stagas
17:00:56  * bradleymeckquit (Quit: bradleymeck)
17:06:10  * dapjoined
17:12:12  <isaacs>hm. ok, the program is spending 92s in ConsStringIteratorOp
17:12:26  <tjfontaine>92 seconds, jeepers
17:12:39  * loladirojoined
17:14:48  <isaacs>yeah, fer realsies
17:14:57  <isaacs>it'd take less time to just walk the string and do it manually in js
17:15:42  * AvianFlujoined
17:17:49  <isaacs>hm. ConsStringIteratorOp::Search does have a while(true) in it, so this is probably got a bug somewhere.
17:23:51  * pooyaquit (Quit: pooya)
17:25:08  * pooyajoined
17:28:59  * stagasquit (Read error: Connection reset by peer)
17:29:03  * benoitcquit (Quit: unexpected thing makes me to quit)
17:29:24  * stagasjoined
17:31:33  * pooyaquit (Quit: pooya)
17:32:18  * benoitcjoined
17:32:18  * benoitcquit (Excess Flood)
17:34:14  * brsonjoined
17:43:59  * bnoordhuisjoined
17:46:10  <isaacs>indutny: http://code.google.com/p/v8/issues/detail?id=2551&thanks=2551&ts=1361555104
17:46:16  <indutny>great
17:46:19  <isaacs>indutny: (if you're curious)
17:46:26  <indutny>starred
17:47:33  * benoitcjoined
17:47:43  <isaacs>we definitely cannot release v0.10 with that bug, so if it's fixed soon, we can upgrade to v8 3.16.14, and if not, i guess just go out with 3.15 like w ehave now, and probably update to 3.17 in 0.12
17:47:48  <isaacs>bnoordhuis: ^
17:48:20  <tjfontaine>we could float a patch if we fix it first though, right?
17:48:42  * bnoordhuisquit (Ping timeout: 264 seconds)
17:49:19  <isaacs>sure
17:49:27  <isaacs>or even if they fix it, and don't backport, or something
17:49:39  <isaacs>but 3.16 is their current stable branch, so it'll probably get landed relatively quickly
17:50:19  <tjfontaine>nod
17:51:39  * pooyajoined
17:53:14  * c4miloquit (Remote host closed the connection)
17:59:26  * c4milojoined
18:03:36  * `3E|gonequit (Remote host closed the connection)
18:13:21  * trevnorrisjoined
18:18:58  <creationix>hmm, can't create an ArrayBuffer in node 0.8.20
18:19:06  <creationix>new ArrayBuffer(1024*1024)
18:19:24  <creationix>using official node binary for OSX
18:19:26  <trevnorris>wtf? how'd that get dropped.
18:19:34  <creationix>smaller values work
18:20:01  <creationix>I can create a node Buffer that size no problem
18:20:47  <trevnorris>hm, just tried in linux. worked.
18:20:51  <creationix>strange
18:20:58  <creationix>I'm away from home, I can't test on my other machines
18:21:25  <creationix>does V8 not have it's own typed array implementation? or is that part of webkit
18:22:35  <creationix>ok, the large values does eventually work in osx node, it's just really slow (~10 seconds)
18:23:14  <creationix>hmm, or maybe that's inspect that's killing me
18:23:19  <creationix>Buffer has a custom inspect
18:24:10  <creationix>yep, write a dummy ArrayBuffer.prototype.inspect and it's fast
18:24:12  <creationix>sorry for the noise
18:24:32  <creationix>I wonder if we could add custom .inspect methods to the the typed array family
18:24:33  * bradleymeckjoined
18:24:50  <isaacs>creationix: sure, ++ for master/unstable, sure
18:24:57  <isaacs>creationix: not high priority, though. patch welcome etc.
18:24:58  <creationix>or at least, make the offsets not enumerable to match the browser
18:25:05  <isaacs>or that
18:25:12  <creationix>isaacs: yeah, who uses typed arrays in node anyway
18:25:14  <trevnorris>isaacs: you gotta get a faster machine man. righty - done in 0.00001067s. ;-)
18:25:26  <isaacs>hahh
18:25:29  <creationix>I do but because I'm writing browser code I want to test using node
18:25:37  <isaacs>trevnorris: you've got one of those new joyent macbooks
18:25:51  <isaacs>trevnorris: when my 3.0ghz comes in, i'll be flyin
18:25:58  <isaacs>oh, wait, you're trevnorris not tjfontaine
18:25:59  <isaacs>hahah
18:26:11  <tjfontaine>:)
18:26:21  * isaacsactual honest mistake ^
18:26:26  <isaacs>not making jokes
18:27:16  <creationix>isaacs: btw, what did you think of asm.js. I couldn't tell how much you were being sarcastic on twitter
18:31:12  <isaacs>creationix: no, i really think it'd be nice to have a very explicit way to say "Write your code like this and you can have things go very fast, and not have toworry about gc pauses, etc."
18:31:32  <creationix>I'm just not sure how this would work for JS code
18:31:35  <trevnorris>isaacs: oh, freak. on master righty - 0.00001067s; 3.16.14 - 0.040659s
18:31:35  <isaacs>creationix: i didn't realize at first that there's no way to deal with strings or arbitrary struct datas
18:31:44  <creationix>all data structures have to be re-implemented in the heap
18:31:45  <creationix>right
18:31:57  <isaacs>creationix: i mean, i'm sure that the browserid folks LOVE this :)
18:32:05  <creationix>which for me is acceptable since I'm writing a new VM anyway
18:32:19  <creationix>but for someone wanting to write faster JS, we need something else I think
18:32:24  <isaacs>yeah
18:32:29  <trevnorris>isaacs: that's 3810x's slower...
18:32:43  <creationix>though maybe parts of node could be implemented in asm.js. I wonder how fast asm.js md5 would be
18:32:46  <isaacs>trevnorris: what about lefty?
18:32:56  <creationix>my pure js version is already faster than node's bindings because of the C++ tax
18:33:13  <isaacs>creationix: right, but it's only faster whne you run it a bazillion times
18:33:21  <isaacs>creationix: if you run it once, then the JS tax kills you
18:33:37  <creationix>true, JITs are faster when hot
18:33:43  <creationix>but asm.js could AOT
18:33:55  <creationix>not that MD5 is a bottleneck for anyone
18:33:56  <isaacs>creationix: we could also rejigger it so that we create a buffer, call the openssl stuff with the buffer, then read the data out of it when it's done, without ever actually taking the result from C++ to JS
18:33:57  <creationix>though RSA may be
18:33:58  <trevnorris>isaacs: still running...
18:34:20  <creationix>isaacs: heh, that's what my fast md5 does actually, just in all js
18:34:28  <creationix>creating the buffer is super slow
18:34:52  <trevnorris>though, what's the likelihood of v8 supporting asm.js?
18:36:30  <trevnorris>and still running.....
18:36:50  <trevnorris>this thing's going to burn through my battery before it finishes.
18:37:42  * TooTallNatejoined
18:37:49  <creationix>trevnorris: well, even if they ignore the pragma and don't write a special AOT compiler, the style is code that can be optimized. I imagine V8 optimizes it some.
18:38:21  <creationix>except we're using our own implementation of typed arrays that V8 doesn't know much about
18:38:26  <creationix>so that could be a problem
18:39:55  <trevnorris>creationix: but there are better optimizations for v8. (e.g. ((n % 8) / 8) is way way faster than ~~(n / 8))
18:40:18  <trevnorris>or (n/8)|0 or whatever their spec uses.
18:40:39  <creationix>I see
18:40:53  <creationix>I know mraleph didn't seem to excited about the asm.js spec
18:41:13  <trevnorris>creationix: the asm.js spec was created w/ emscripten specifically in mind.
18:41:17  <isaacs>creationix: he just wasn't so sure that it'd be super useful for node
18:41:25  <creationix>I do like the idea of implementing my own data structures on top of a "heap"
18:41:33  <creationix>my new language semantics don't match lua or js semantics
18:41:47  <creationix>so I'll essentially skip the native stuff and write my own GC
18:42:06  <creationix>hopefully it won't be too slow
18:42:24  <trevnorris>isaacs: left master - 0.000010956; 3.16.14 - 348.98; that's 31,852,866x's slower.
18:42:59  <isaacs>trevnorris: wow, that's even a bigger diff than i'm seeing
18:43:15  * stagas_joined
18:43:16  <trevnorris>yeah...
18:43:18  <isaacs>so, for the time being, i guess we're staying with 3.15
18:43:45  <trevnorris>until that's fixed, um yeah.
18:44:22  <trevnorris>isaacs: also, it was using ~100MB ram while doing that operation.
18:44:29  <trevnorris>but the string was only 1MB is size.
18:44:46  <isaacs>trevnorris: yeah, something is busted there.
18:44:52  <isaacs>indutny: feel like digging into some c++? ;)
18:44:53  * stagasquit (Ping timeout: 255 seconds)
18:44:55  * stagas_changed nick to stagas
19:05:53  <Raynos>Isaac's: its definitely a bug. Ill pr a broken test. What branch should I pr into?
19:14:24  <isaacs>Raynos: master
19:14:35  <isaacs>Raynos: i have a patch that might be relevant
19:15:11  <isaacs>https://gist.github.com/5015824
19:15:13  <isaacs>Raynos: ^
19:16:54  <tjfontaine>well this test-cluster-disconnect test seems to have been racey on smartos for a while (back into .8 days) but in .9 it seems the ECONNRESET stuff makes it die in a more predictable manner
19:17:24  <isaacs>tjfontaine: interesting
19:18:13  <tjfontaine>isaacs: in .8 world when things go wrong it would hang, assuming it's waiting for the listening event, in .9 the handle just isnt there or we get the reset error (which I presume means destory already removed the handle)
19:19:05  <tjfontaine>there's not a particualrly good reason for this test to be racey as far as I can tell though
19:22:14  <isaacs>Raynos: btw, there is no more lowWaterMark
19:22:20  <isaacs>lowWaterMark no longer exists.
19:27:01  <isaacs>Raynos: https://github.com/joyent/node/pull/4833
19:27:04  <isaacs>TooTallNate: ^
19:28:06  <isaacs>Raynos: push() triggers a read(0) *on nexttick)
19:28:15  <isaacs>Raynos: so, if you push(), push(), push(), that's fine.
19:28:24  <isaacs>Raynos: if you push() nexttick(push()), not so fine
19:35:28  <isaacs>TooTallNate: ok, the leak test still is fine with this chnage.
19:35:33  <isaacs>i'm gonna land on v0.8
19:35:41  <isaacs>since we have to do a new one for the EINPROGRESS bs anyway
19:35:42  <TooTallNate>isaacs: cool, sgtm
19:36:12  <MI6>joyent/node: isaacs v0.8 * f9a0140 : http: Handle hangup writes more gently - http://git.io/j6GDUg
19:38:26  <isaacs>TooTallNate: how do you feel about the "preemptively read up to hwm" change?
19:39:45  <TooTallNate>isaacs: seems fine to me, as long as Raynos is happy
19:41:02  * `3rdEdenjoined
19:46:04  <isaacs>Raynos: ?
19:46:06  <isaacs>^
19:46:12  <isaacs>bbiab
19:46:14  * isaacs&
19:46:36  <Raynos>Good to me
19:46:48  * bradleymeckquit (Quit: bradleymeck)
19:47:06  <Raynos>Preemptive upto hwm is ideal.
19:48:55  <Raynos>Isaacs: maybe also change defualt high water mark when objectMode is true
19:49:13  <indutny>isaacs: sure
19:49:16  <indutny>isaacs: what's up?
19:49:28  <indutny>that v8 stuff?
19:50:46  <tjfontaine>more than likely
19:54:12  * bradleymeckjoined
19:58:49  * pooyaquit (Read error: Connection reset by peer)
19:59:01  * pooyajoined
20:07:00  * stagas_joined
20:09:21  * stagasquit (Ping timeout: 256 seconds)
20:09:25  * stagas_changed nick to stagas
20:16:59  * EhevuTovjoined
20:21:24  * EhevuTovquit (Ping timeout: 252 seconds)
20:25:59  * joyent-jenkinsjoined
20:28:12  * bradleymeckquit (Ping timeout: 252 seconds)
20:29:09  * bradleymeckjoined
20:40:17  <trevnorris>indutny: yeah, the perf regression shown in http://code.google.com/p/v8/issues/detail?id=2551
20:41:08  <trevnorris>ok, in dns.js there's a variable called "resolver" in exports.resolve that gets assigned a function, but there's also an external function called "resolver".
20:41:18  <trevnorris>that doesn't seem right...
20:54:40  <indutny>ok, looks like I'm just too tired
20:54:50  <indutny>with translation of all that papers for tax service
20:54:53  <indutny>ttyl guys
20:54:55  * indutny&
20:55:12  * perezdquit (Quit: perezd)
21:03:49  * trevnorrisquit (Quit: Leaving)
21:06:02  * CoverSlideremembers to never left-concatenate anything ever
21:14:19  * TooTallNatequit (Quit: Computer has gone to sleep.)
21:18:35  * bradleymeckquit (Quit: bradleymeck)
21:27:30  * TooTallNatejoined
21:34:38  * bnoordhuisjoined
21:36:53  <tjfontaine>bnoordhuis: btw I did push those style changes for tap this morning
21:37:25  <tjfontaine>well and the build fix for benchmarks
21:49:26  <bnoordhuis>tjfontaine: i'll look at it in a few
21:49:35  <bnoordhuis>working through the github notifications as we speak
21:49:38  <tjfontaine>k take your time, I just wanted to update you
21:52:55  <tjfontaine>I'm seeing this weird race in test-cluster-disconnect, where getServers gets a tcpSelf with a null ._handle, but if I change the worker count to 1 I can't get it to reproduce, and seems slightly related to the econnreset changes (but it was definitely racey on v0.8 as well)
21:53:38  * loladiroquit (Quit: loladiro)
21:54:37  * loladirojoined
21:54:41  * loladiroquit (Client Quit)
21:55:16  <joyent-jenkins>Project nodejs-v0.8 » x64,godfrey build #7: SUCCESS in 8 min 44 sec: https://jenkins.joyent.us/job/nodejs-v0.8/./DESTCPU=x64,label=godfrey/7/
22:00:32  * joyent-jenkinsquit
22:01:19  * joyent-jenkinsjoined
22:07:08  <joyent-jenkins>Project nodejs-v0.8 » ia32,godfrey build #7:SUCCESS in 20 min: https://jenkins.joyent.us/job/nodejs-v0.8/./DESTCPU=ia32,label=godfrey/7/
22:07:33  <tjfontaine>you're weird jenkins, turning on colors makes you lose spaces
22:08:35  <MI6>joyent/libuv: Timothy J Fontaine master * bfe269b : test: add tap output Given UV_TAP_OUTPUT being set, test result output s - http://git.io/huqqCw
22:10:36  <tjfontaine>bnoordhuis: thanks
22:10:55  <bnoordhuis>np
22:10:57  <tjfontaine>oh you wanted run_tests even more different
22:11:29  * tjfontainemakes note of style intention
22:12:24  <bnoordhuis>tjfontaine: if you look around the files in src/ you'll get a feel of the libuv style
22:12:34  <tjfontaine>I will do that more yes
22:12:35  <bnoordhuis>though admittedly uv-unix and uv-win differ sometimes
22:12:52  <bnoordhuis>but when in doubt, go with the uv-unix style - it's provably superior
22:13:10  <tjfontaine>indeed
22:14:36  * hzquit
22:15:24  <bnoordhuis>the 3.17 perf regression is back...
22:15:32  <bnoordhuis>this is spooky, someone hold me
22:17:05  <tjfontaine>hm a control char must be still leaking through the LOG stuff
22:18:02  <bnoordhuis>99.04% node node [.] v8::internal::ConsStringIteratorOp::Search(unsigned int*, int*, unsigned int*)
22:18:02  <tjfontaine>oh
22:18:07  <bnoordhuis>what. the. hell?
22:18:24  <tjfontaine>ya that's what isaacs was seeing as well
22:18:35  <tjfontaine>he says there's a while(true) in that
22:18:59  <bnoordhuis>not sure if it's actually an infinite loop
22:19:04  <bnoordhuis>but i'll find out
22:19:51  <tjfontaine>I did miss a piece in this that I didn't see in the console but see in the jenkins output, rewind_cursor
22:27:46  * rendar_quit
22:35:44  * bradleymeckjoined
22:38:29  * loladirojoined
22:39:31  <isaacs>tjfontaine: joyent-jenkins!!
22:39:33  <isaacs>tjfontaine: nice!
22:40:17  <isaacs>bnoordhuis: it's definitely not an *infinite* loop
22:40:26  <isaacs>bnoordhuis: but it's a "way way way longer than it should be" loop
22:40:48  <isaacs>bnoordhuis: it finishes, just ~36M times slower than
22:41:24  <bnoordhuis>yes, i can confirm that
22:41:28  <TooTallNate>what's joyent-jenkins
22:41:29  <TooTallNate>?
22:41:37  <bnoordhuis>it's our own skynet
22:41:37  <tjfontaine>isaacs: ya, right now it's tuned for "only when shit breaks" but the tap plugin atm isn't properly failing the build when tests fail
22:41:42  <isaacs>tjfontaine: well, it's a while true, but with return statements in a few places.
22:44:30  <isaacs>bnoordhuis: yes. the proof is that it runs on unix.
22:44:38  <isaacs>oh, was scrolled back :)
22:44:46  <isaacs>(re: uv-unix being provably superior)
22:46:18  <isaacs>TooTallNate: you're +1 on preemptive buffering up to hwm?
22:46:31  <TooTallNate>isaacs: yes
22:47:01  <isaacs>k, landing
22:47:35  <MI6>joyent/node: isaacs master * 27d1bab : streams: Pre-emptively buffer readables up to the highWaterMark Also, th - http://git.io/YEzV1A
22:48:21  <isaacs>Raynos: send a PR for objectMode default hwm setting
22:48:42  <Raynos>is 100 a sensible thing?
22:48:43  * loladiroquit (Quit: loladiro)
22:48:50  <isaacs>Raynos: also, i think that objectMode: false should mean "never ever object mode; just throw on non-stringish data"
22:48:53  <Raynos>blargh it depends how big objects are
22:49:07  <Raynos>isaacs: I think auto conversion into objectMode can be binned
22:49:36  <isaacs>k, i'm cool with that
22:50:19  <Raynos>but you may want to talk to dominictarr, substack about that
22:51:04  <Raynos>i pinged them :P
22:51:10  <Raynos>its upto them to get involved if they care now
22:58:42  * dominictarrjoined
22:58:45  * bradleymeckquit (Quit: bradleymeck)
22:58:59  <isaacs>Raynos: i'm kind of thinking that if you opt into objectMode, then that's an advanced use case, and you should set your highWaterMark intelligently
22:59:13  <isaacs>and it should not happen automatically. tha'ts too clever.
22:59:26  <isaacs>and these debugger tests are already frustrating me, so i'm going to write that up and PR it.
23:00:17  <Raynos>isaacs: this.highWaterMark = (hwm || hwm === 0) ? hwm : (objectMode ? 100 : 16 * 1024);
23:00:41  <isaacs>meh.
23:00:48  <isaacs>what if you really wnat 16K objects?
23:00:57  <isaacs>what if they're {x:1}
23:01:01  <isaacs>that's not very big
23:01:48  <isaacs>or if they're all references to the SAME object, even
23:02:06  <Raynos>isaacs: I dont know what a good default is
23:02:08  <Raynos>But bh
23:02:09  <dominictarr>isaacs: you should never do that
23:02:16  <dominictarr>that is abuse
23:02:19  <Raynos>isaacs: actually one thing that would be useful
23:02:31  <Raynos>is to have a transform have the same hwm as what ever source is piped into it
23:02:47  <dominictarr>streams are about serialization, but it's okay to send something that isn't serialized, if it COULD be
23:02:47  <isaacs>i think node streams should assume buffer/string usage, but not enforce that.
23:03:03  <isaacs>in order to not enforce it, we need to have this objectMode flag, but i think YOU should set that
23:03:06  <isaacs>node shouldn't.
23:03:14  <Raynos>I agree
23:03:16  <isaacs>if i do fsStream.write({not: "a stringish"}) then it should be a bug
23:03:24  <isaacs>and should emit an error
23:03:35  <Raynos>so if I have an objectMode source (like a mongodb cursor stream)
23:03:39  <Raynos>it knows what a sensible hwm is
23:03:42  <isaacs>the hwm, as well, i mean.. if you're setting non-default stuff, then just set it to a different default.
23:03:47  <isaacs>right
23:03:48  <isaacs>be sensible
23:03:51  <isaacs>it might be 5
23:03:51  <Raynos>but what about the transform
23:03:54  <isaacs>it migth be 5M
23:03:56  <isaacs>who knows?
23:03:57  <Raynos>source.pipe(someTransform())
23:04:02  <Raynos>how does the transform know what a good hwm is
23:04:11  <isaacs>it also takes a highWaterMark arg
23:04:15  <isaacs>all duplexes do
23:04:19  <Raynos>true
23:04:27  <isaacs>so, the transform should know what's right for the transform
23:04:33  <Raynos>but then its source.pipe(someTransform({ highWaterMark: source._readableState.highWaterMark })
23:04:38  <isaacs>back to libertarian unix style principles.
23:04:44  <Raynos>if its an arbitrary transform
23:04:50  <isaacs>from each according to his stdout, to each according to his stdin
23:04:54  <Raynos>then it can work on small and big objects
23:05:10  * bradleymeckjoined
23:05:20  <isaacs>Raynos: well, look, you're creating these things. so give it an argument.
23:05:21  <Raynos>also note that with pre-emptive reads a chain of pipe calls effectively pipelines data transformations
23:05:27  <isaacs>if you want it to be different, say so.
23:05:35  <isaacs>if you want the default, then trust that it knows a good default for itslef.
23:05:45  <isaacs>node is going to have sensible defaults for piping buffers and strings around.
23:05:50  <isaacs>but all this is changeable.
23:05:52  <Raynos>isaacs: true.
23:05:58  <Raynos>i think im worrying too much
23:07:04  <dominictarr>isaacs: Raynos I think the problem here is that you are trying to write one baseclass that fits too many cases
23:07:23  <dominictarr>most transforms don't even need water marks
23:07:41  <dominictarr>from what people actually use…
23:08:04  <dominictarr>implementing compression streams is a special case.
23:09:10  <Raynos>dominictarr: anything that needs buffering needs watermark
23:09:19  <Raynos>through is a transform that buffers
23:09:28  <Raynos>its just that through has a hwm of 0
23:10:11  <dominictarr>I disagree.
23:10:22  <dominictarr>make the ends smart
23:10:39  <dominictarr>FS.ReadStream is smart about buffering
23:11:00  <dominictarr>and let the through streams in the middle just propagate their pause state rapidly
23:11:30  <dominictarr>(currently it takes several chunks to get the pause state all the way back up the chain)
23:11:40  <Raynos>thats a different approach
23:12:00  * trevnorrisjoined
23:12:05  <tjfontaine>bnoordhuis: what are your thoughts for what might cause tcpSelf._handle in cluster._getServer (specifically in tcpSelf.once('listening')) to end up being null? what should I be looking for here, a worker that is closing the handle?
23:12:10  <Raynos>if each transform had a hwm you could effectively build a pipeline
23:12:20  <Raynos>but maybe your right
23:12:29  <Raynos>through should just set hwm to 0
23:12:45  <bnoordhuis>tjfontaine: um, is 'no idea' an acceptable answer?
23:12:58  <tjfontaine>certainly, because that's where I am
23:17:29  <tjfontaine>with NODE_DEBUG=net this is what I get https://gist.github.com/tjfontaine/5017342
23:17:49  * bradleymeck_joined
23:19:23  * bradleymeckquit (Ping timeout: 255 seconds)
23:19:23  * bradleymeck_changed nick to bradleymeck
23:24:13  * perezdjoined
23:25:28  <trevnorris>bnoordhuis: mentioned you're checking out the v8 regression is from?
23:27:17  <trevnorris>bnoordhuis: also noticed that while it's 3e6x's slower, it also was using 90+ MB ram while doing it.
23:28:00  * c4miloquit (Remote host closed the connection)
23:28:27  * hzjoined
23:29:06  * perezdquit (Ping timeout: 244 seconds)
23:30:14  * dominictarrquit (Quit: dominictarr)
23:33:30  <bnoordhuis>trevnorris: https://code.google.com/p/v8/issues/detail?id=2551#c2
23:33:56  <bnoordhuis>i'm kind of disappointed with the v8 people that they let something like this slip through
23:33:56  <tjfontaine>that's crazy
23:34:28  <tjfontaine>it has to be hitting them somewhere else
23:34:50  * bradleymeckquit (Quit: bradleymeck)
23:34:52  <bnoordhuis>yeah. i can't imagine where the only ones that use Utf8Length() :)
23:36:31  <bnoordhuis>*we're
23:37:09  <bnoordhuis>tjfontaine: re test/simple/test-cluster-disconnect.js, is that a sporadic thing or ?
23:38:25  <tjfontaine>bnoordhuis: it's non-existent on linux and osx, but I can hit some form of it every 3 or 5 runs, sometimes quite a few in a row fail
23:38:36  <tjfontaine>bnoordhuis: sometimes I'll get a ECONNRESET or an ECONNREFUSED
23:38:46  * `3rdEdenquit (Remote host closed the connection)
23:39:51  <bnoordhuis>oh, only on smartos you mean?
23:39:54  <tjfontaine>yes
23:40:14  <bnoordhuis>i so not want to log onto a smartos machine right now :/
23:40:34  <tjfontaine>I put assert(tcpSelf._handle) in once('listening')
23:40:35  <bnoordhuis>truth be told, i'm not sure what machine i'm supposed to be using nowadays
23:41:34  <tjfontaine>I'm not sure either really, I'm on one in some lab somewhere
23:42:06  <tjfontaine>https://gist.github.com/tjfontaine/5017342/raw/9f876059c6aa04bf7ff29cf2ab59e2ad3bac2c2c/few-runs.txt
23:42:09  <tjfontaine>with the assert
23:43:04  <tjfontaine>if I change workers to 1 in the test I never get a failure, but in other tests increasing the amount of workers doesn't seem to break them
23:43:17  <bnoordhuis>logging onto umcats, one sec
23:43:23  <tjfontaine>k
23:43:54  <isaacs>bnoordhuis: btw, umcats is kind of a wimpy machine
23:44:02  <isaacs>bnoordhuis: you should log into the smartos machine
23:44:23  <tjfontaine>oh correction, I am getting it with `workers = 1` I must just have been lucky the last time I tried it
23:44:24  <isaacs>bnoordhuis: ssh smartos.nodejs.org
23:44:29  <trevnorris>bnoordhuis: looks like you can also do a v8::Utf8Length(String, Isolate), or is that just for internal use?
23:44:59  * loladirojoined
23:46:09  <bnoordhuis>isaacs: what machine / address is that?
23:46:24  <isaacs>bnoordhuis: it's
23:46:29  <isaacs>bnoordhuis: you have root on it
23:47:16  * bnoordhuisupdates .ssh/config
23:47:48  <bnoordhuis>trevnorris: i think that's an internal one (just logged out of the machine i was testing on)
23:48:36  <trevnorris>bnoordhuis: yeah, you're right. not in v8.h
23:48:45  <isaacs>bnoordhuis: does dns not find that machine for you at smartos.nodejs.org?
23:48:54  <trevnorris>nice job btw. that issue is insane
23:48:58  * trevnorrisquit (Quit: Leaving)
23:53:29  <ryah>0.10 is going to be great
23:55:24  <bnoordhuis>isaacs: it does now, it seems