00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:06:22  <MI6>joyent/node: Sam Roberts master * 4c02282 : test: EventEmitter#setMaxListeners() returns this - http://git.io/2oAPjw
00:09:54  * trevnorris&
00:09:55  <LOUDBOT>"CHOCOLATE COVERED PANTS FROM GUATEMALA: YOUR FUTURE IN ECO-TERRORISM"
00:11:26  * amartensquit (Quit: Leaving.)
00:13:17  <MI6>nodejs-master: #191 UNSTABLE smartos-x64 (2/587) windows-ia32 (146/587) windows-x64 (146/587) linux-x64 (1/587) http://jenkins.nodejs.org/job/nodejs-master/191/
00:14:08  * amartensjoined
00:17:20  * amartensquit (Client Quit)
00:18:53  * indexzerojoined
00:20:56  * qardquit (Quit: Leaving.)
00:25:09  * EhevuTovquit (Quit: This computer has gone to sleep)
00:26:02  * EhevuTovjoined
00:28:45  <tjfontaine>oh cute, you didn't see that build result, because it was GREEN
00:29:13  <tjfontaine>I cheated, and pulled windows out into its own job(s)
00:32:08  * EhevuTovquit (Ping timeout: 268 seconds)
00:37:25  * indexzeroquit (Quit: indexzero)
00:52:50  * qardjoined
00:57:13  * octetcloudquit (Ping timeout: 240 seconds)
00:58:55  <MI6>nodejs-v0.10-windows: #1 UNSTABLE windows-x64 (8/582) windows-ia32 (8/582) http://jenkins.nodejs.org/job/nodejs-v0.10-windows/1/
00:59:41  * TooTallNatequit (Quit: Computer has gone to sleep.)
01:07:54  * bnoordhuisquit (Ping timeout: 268 seconds)
01:14:19  * timoxleyjoined
01:20:53  * defunctzombie_zzchanged nick to defunctzombie
01:35:04  * c4miloquit (Remote host closed the connection)
01:35:30  * c4milojoined
01:39:43  * c4miloquit (Ping timeout: 245 seconds)
01:40:26  <MI6>nodejs-master-windows: #1 UNSTABLE windows-ia32 (146/587) windows-x64 (146/587) http://jenkins.nodejs.org/job/nodejs-master-windows/1/
01:47:02  <isaacs>tjfontaine: ! \o/
01:47:27  <isaacs>tjfontaine: i think we should set up a bot so that every time there's a green build, it make LOUDBOT say something.
02:02:17  * TooTallNatejoined
02:04:09  * TooTallNatequit (Client Quit)
02:04:37  * perezdjoined
02:14:40  * bnoordhuisjoined
02:15:43  * indexzerojoined
02:18:53  * bnoordhuisquit (Ping timeout: 240 seconds)
02:40:14  * EhevuTovjoined
02:42:30  * brsonquit (Ping timeout: 256 seconds)
03:54:25  * porcojoined
03:57:13  * kenperkinsquit (Quit: Computer has gone to sleep.)
04:02:05  * EhevuTovquit (Quit: This computer has gone to sleep)
04:13:23  * c4milojoined
04:18:19  * c4miloquit (Remote host closed the connection)
04:18:46  * c4milojoined
04:23:22  * c4miloquit (Ping timeout: 256 seconds)
04:29:17  * abraxasjoined
04:33:46  * abraxasquit (Ping timeout: 245 seconds)
04:35:04  * normanmjoined
04:37:28  * timoxleyquit (Quit: Computer has gone to sleep.)
04:43:34  * defunctzombiechanged nick to defunctzombie_zz
04:50:40  * mikealjoined
04:51:00  * EhevuTovjoined
04:57:30  * EhevuTovquit (Quit: This computer has gone to sleep)
05:10:47  * mikealquit (Quit: Leaving.)
05:14:38  * amartensjoined
05:23:21  * mikealjoined
05:38:45  * amartensquit (Quit: Leaving.)
05:50:26  * kenperkinsjoined
06:21:59  * qardquit (Quit: Leaving.)
06:23:32  * bajtosjoined
06:24:30  * benoitcquit (Excess Flood)
06:28:01  * benoitcjoined
06:36:38  * amartensjoined
06:53:53  * rendarjoined
07:22:21  * qardjoined
07:22:24  * amartensquit (Quit: Leaving.)
07:24:54  * bnoordhuisjoined
07:29:37  * qardquit (Ping timeout: 268 seconds)
07:40:12  * hzjoined
07:41:42  * inolenquit (Quit: Leaving.)
07:42:00  * inolenjoined
08:01:37  * rendar_joined
08:03:42  * indexzero_joined
08:03:59  * indexzeroquit (Ping timeout: 246 seconds)
08:03:59  * indexzero_changed nick to indexzero
08:04:06  * rendarquit (Ping timeout: 256 seconds)
08:10:00  * AvianFluquit (Read error: Connection reset by peer)
08:10:39  * AvianFlujoined
08:20:56  <bajtos>bnoordhuis: ping
08:30:12  <bnoordhuis>bajtos: pong
08:36:21  * stagasjoined
08:43:46  * bnoordhuisquit (Ping timeout: 245 seconds)
08:54:02  * rendar_quit
08:54:19  * rendarjoined
08:54:50  * octetcloudjoined
08:59:09  * octetcloudquit (Ping timeout: 252 seconds)
09:01:37  * porco_joined
09:02:26  * porcoquit (Read error: Connection reset by peer)
09:03:53  * dominictarrjoined
09:09:56  * bnoordhuisjoined
09:10:36  * jez0990_quit (*.net *.split)
09:10:36  * mmaleckiquit (*.net *.split)
09:10:36  * einarosquit (*.net *.split)
09:10:48  * mmalecki_joined
09:10:50  * einarosjoined
09:18:21  * bnoordhuisquit (Ping timeout: 245 seconds)
09:27:26  * rendarquit (Read error: Connection reset by peer)
09:28:44  * rendarjoined
09:28:58  * rendarquit (Client Quit)
09:33:05  <MI6>joyent/node: Miroslav Bajtoš v0.10 * 418c9bc : build: vcbuild.bat fix for Visual Studio 2012 - http://git.io/crpzTg
09:34:07  <MI6>joyent/node: Bert Belder master * fb9d66b : Merge branch 'v0.10' (+1 more commits) - http://git.io/2rv9kQ
09:39:56  * rendarjoined
09:51:55  * bajtos2joined
09:54:18  * bajtosquit (Ping timeout: 256 seconds)
10:07:21  * bajtos2quit (Ping timeout: 252 seconds)
10:18:57  <MI6>nodejs-v0.10-windows: #2 UNSTABLE windows-x64 (8/582) windows-ia32 (8/582) http://jenkins.nodejs.org/job/nodejs-v0.10-windows/2/
10:28:11  * qardjoined
10:32:55  * qardquit (Ping timeout: 264 seconds)
10:33:09  * perezdquit (Quit: perezd)
10:34:16  <MI6>nodejs-master-windows: #2 UNSTABLE windows-ia32 (146/587) windows-x64 (146/587) http://jenkins.nodejs.org/job/nodejs-master-windows/2/
10:34:41  * jez0990joined
10:36:02  * porco_quit (Quit: Linkinus - http://linkinus.com)
10:36:48  * rjequit (Ping timeout: 264 seconds)
10:39:02  * bajtosjoined
10:43:15  * bajtosquit (Client Quit)
10:52:28  * rjejoined
11:14:30  * bnoordhuisjoined
11:18:51  * bnoordhuisquit (Ping timeout: 252 seconds)
11:28:50  * qardjoined
11:33:31  * qardquit (Ping timeout: 260 seconds)
11:34:22  * dominictarrquit (Quit: dominictarr)
11:51:39  * stagasquit (Read error: Connection reset by peer)
11:55:52  * kenperkinsquit (Quit: Computer has gone to sleep.)
11:56:07  * stolsmajoined
12:07:11  * kenperkinsjoined
12:13:16  * dominictarrjoined
12:29:21  * kenperkinsquit (Quit: Computer has gone to sleep.)
12:30:28  * abraxasjoined
12:34:33  * abraxasquit (Read error: Operation timed out)
12:38:14  * indexzeroquit (Quit: indexzero)
12:40:02  * bnoordhuisjoined
12:44:21  * bnoordhuisquit (Ping timeout: 248 seconds)
12:46:12  * c4milojoined
12:54:01  * indexzerojoined
12:57:45  * kevinswiberjoined
13:04:46  * defunctzombie_zzchanged nick to defunctzombie
13:17:19  * bnoordhuisjoined
13:19:47  * kevinswiberquit (Remote host closed the connection)
13:19:50  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
13:25:18  * kevinswiberjoined
13:29:32  * qardjoined
13:33:32  * mikealquit (Quit: Leaving.)
13:33:40  * qardquit (Ping timeout: 246 seconds)
13:40:33  * AvianFluquit (Read error: Connection reset by peer)
13:41:10  * AvianFlujoined
13:52:10  * indexzeroquit (Quit: indexzero)
13:53:07  * piscisaureus_joined
13:54:42  * bnoordhuisquit (Ping timeout: 264 seconds)
13:55:51  * c4miloquit (Remote host closed the connection)
13:56:18  * c4milojoined
14:00:48  * c4miloquit (Ping timeout: 256 seconds)
14:01:26  * bnoordhuisjoined
14:02:22  <MI6>joyent/node: Kevin Locke v0.10 * 1c2b03d : doc: update options for exec and execFile - http://git.io/9gENpw
14:07:32  * timoxleyjoined
14:09:55  <isaacs>bnoordhuis, piscisaureus_: https://github.com/isaacs/node/compare/joyent:v0.10...crypto-fix-perf
14:10:27  * bajtosjoined
14:10:28  <isaacs>fixes `3rdEden's crypto performance woes (as long as he continues to use strings. creating buffers is the slow part)
14:11:21  <bnoordhuis>sorry, i can't review it right now. working on something
14:14:50  <isaacs>k
14:15:26  <isaacs>i'd like to use a similar trick for TLS, as well, so that we're not converting to buffers in CryptoStream
14:16:36  <isaacs>bnoordhuis: also, i've been thinking about the idea you mentioned to move tls more into C++. this is a good idea. tls.Socket should look mostly just like net.Socket, but with a tls_wrap handle instead of a tcp_wrap handle. i dont' think anyone uses CryptoStreams directly.
14:21:27  <bnoordhuis>isaacs: maybe one or two people but they can still use the old interface
14:21:35  <isaacs>sure
14:21:42  <isaacs>we can leave it there, deprecated and crusty in the corner.
14:22:13  <isaacs>but it's not like many folks are super excited that they get to roll their own interactions with openss.
14:22:16  <isaacs>*openssl
14:34:43  * kevinswiberquit (Remote host closed the connection)
14:51:20  * kevinswiberjoined
15:00:20  * c4milojoined
15:01:47  * benoitcquit (Excess Flood)
15:02:28  * benoitcjoined
15:18:07  * c4miloquit (Remote host closed the connection)
15:18:34  * c4milojoined
15:22:30  * c4miloquit (Read error: No route to host)
15:22:52  * c4milojoined
15:26:57  * saghul_joined
15:27:35  * saghul_quit (Client Quit)
15:27:56  * saghul_joined
15:38:55  * c4miloquit (Remote host closed the connection)
15:39:21  * c4milojoined
15:40:30  * octetcloudjoined
15:41:07  * mmalecki_changed nick to mmalecki
15:43:56  * c4miloquit (Ping timeout: 256 seconds)
15:45:41  * bnoordhuisquit (Ping timeout: 248 seconds)
15:50:47  <isaacs>tjfontaine: Seems like there's some oddness with joyent's jabber. the rooms all seem empty or something. anyway, heading in to the office.
15:50:54  <isaacs>oh, nevermind, there they are
15:53:39  * mikealjoined
15:54:18  * piscisaureus_quit (Ping timeout: 245 seconds)
15:55:26  * piscisaureus_joined
15:59:37  * perezdjoined
16:00:31  * perezdquit (Client Quit)
16:04:03  * octetcloudquit (Read error: Connection reset by peer)
16:06:09  * TooTallNatejoined
16:07:58  * mraleph1quit (Read error: Connection reset by peer)
16:08:09  * mralephjoined
16:12:37  <tjfontaine>today may be the day that the osx buildslave has died
16:17:58  <piscisaureus_>tjfontaine: ooh nooo
16:18:10  <piscisaureus_>was it that old / fragile?
16:18:32  * qardjoined
16:20:10  <tjfontaine>ya, it wasn't a particularly happy laptop to begin with
16:20:24  * saghul_quit (Quit: Textual IRC Client: www.textualapp.com)
16:21:04  * saghul_joined
16:23:36  * piscisaureus_quit (Ping timeout: 264 seconds)
16:24:39  * c4milojoined
16:24:43  * piscisaureus_joined
16:27:52  <MI6>nodejs-v0.10: #172 FAILURE linux-x64 (4/582) smartos-x64 (1/582) linux-ia32 (3/582) http://jenkins.nodejs.org/job/nodejs-v0.10/172/
16:27:55  <MI6>nodejs-master: #193 FAILURE smartos-x64 (1/587) http://jenkins.nodejs.org/job/nodejs-master/193/
16:28:29  * inolenquit (Quit: Leaving.)
16:28:31  <tjfontaine>ignore those for now
16:28:32  * pachetjoined
16:35:59  * AvianFluquit (Remote host closed the connection)
16:36:38  * c4miloquit (Remote host closed the connection)
16:37:02  * AvianFlujoined
16:37:04  * c4milojoined
16:37:06  * mikealquit (Quit: Leaving.)
16:39:46  <MI6>nodejs-v0.10: #173 UNSTABLE smartos-ia32 (1/582) smartos-x64 (2/582) http://jenkins.nodejs.org/job/nodejs-v0.10/173/
16:41:48  * piscisaureus_quit (Ping timeout: 245 seconds)
16:42:06  * c4miloquit (Ping timeout: 264 seconds)
16:47:45  * perezdjoined
16:48:51  * bnoordhuisjoined
16:48:56  * kenperkinsjoined
16:51:24  * TooTallNatequit (Quit: Computer has gone to sleep.)
16:56:16  <MI6>libuv-master-gyp: #25 UNSTABLE windows-x64 (4/189) linux-x64 (1/188) smartos-ia32 (5/188) windows-ia32 (4/189) smartos-x64 (3/188) osx-x64 (1/189) http://jenkins.nodejs.org/job/libuv-master-gyp/25/
16:59:18  <MI6>nodejs-v0.10-windows: #3 UNSTABLE windows-x64 (8/582) windows-ia32 (8/582) http://jenkins.nodejs.org/job/nodejs-v0.10-windows/3/
17:07:03  * TooTallNatejoined
17:08:23  * defunctzombiechanged nick to defunctzombie_zz
17:09:50  * stagasjoined
17:10:21  * amartensjoined
17:10:53  * c4milojoined
17:12:33  * defunctzombie_zzchanged nick to defunctzombie
17:17:51  * mikealjoined
17:21:21  <isaacs>indutny: Also, this fixes #5015, but only if you specify an encoding for the output. If you get the hash as a Buffer, it's still slow.
17:21:26  <isaacs>er, wrong paste, sorry
17:21:32  <isaacs>indutny: meant this: https://github.com/joyent/node/pull/5403
17:21:43  <indutny>yeah
17:21:44  <indutny>I seen it
17:21:49  <isaacs>kewl
17:21:53  <indutny>will look into it once I'll finish my rust thing
17:21:55  * c4miloquit (Remote host closed the connection)
17:21:59  <isaacs>kk
17:22:02  <isaacs>what're you doing with rust?
17:22:14  <isaacs>voxer stuff, or mad science?
17:22:21  * c4milojoined
17:22:29  <indutny>mad science
17:22:31  <indutny>erlang jit vm
17:22:32  <indutny>:D
17:23:22  <MI6>nodejs-master: #194 UNSTABLE smartos-x64 (3/587) linux-ia32 (1/587) linux-x64 (2/587) smartos-ia32 (3/587) http://jenkins.nodejs.org/job/nodejs-master/194/
17:23:23  <indutny>that's actually an excuse to learn rust
17:23:30  <indutny>and so far I'm very pleased of doing this
17:23:45  * c4miloquit (Read error: Operation timed out)
17:23:57  <isaacs>neat :)
17:24:06  <isaacs>yeah, it looks like a pretty cool language. dart, also.
17:27:21  <indutny>no
17:27:25  <indutny>I don't like dart :)
17:27:31  <indutny>I like borrowed pointers
17:27:35  <indutny>and all static checks that rust has
17:27:52  <indutny>it has quite bad managed (GC-able) memory atm
17:27:54  <normanm>hi there.. does libuv support edge-triggered epoll or does it use level-triggered ?
17:27:58  <indutny>but that's something they're going to address
17:28:07  <indutny>normanm: I believe level-triggered
17:28:12  <normanm>I think there was some thread to support edge-triggered but I not found it
17:28:15  <indutny>but bnoordhuis might now better
17:29:31  <tjfontaine>bnoordhuis did some tests with edge, it didn't end up being faster because the level-triggered is more optimized
17:29:37  <MI6>nodejs-v0.10-windows: #4 UNSTABLE windows-x64 (8/582) windows-ia32 (9/582) http://jenkins.nodejs.org/job/nodejs-v0.10-windows/4/
17:29:38  <tjfontaine>fewer syscalls, but slower
17:29:49  <normanm>tjfontaine, that's interesting
17:31:06  <isaacs>indutny: i haven't looked at either language in any great detail. never built anythign with either.
17:31:23  <isaacs>indutny: i do node all day, node all night, then close my laptop and don't want to look at computers for a while.
17:31:27  <tjfontaine>normanm: http://logs.libuv.org/libuv/2012-08-27#20:58:00.741
17:31:30  <indutny>haha :)
17:31:37  <indutny>there was no such time in my life yet
17:31:38  <indutny>I mean
17:31:42  <indutny>I'm not closing laptop
17:31:49  <indutny>that's probably unfortunate for me
17:31:52  <indutny>but I kinda like it
17:33:24  <bnoordhuis>normanm: i might revisit edge-triggered i/o in v0.12
17:33:50  <bnoordhuis>in my benchmarks, it was slower in really tight loops like when you're e.g. only calling accept()
17:34:10  <bnoordhuis>but i have some hope that in everyday use it will be slightly faster
17:35:22  <normanm>bnoordhuis, we (#netty) was thinking about writing a JNI based transport to use edge-triggered
17:35:27  * kenperkinsquit (Quit: Computer has gone to sleep.)
17:35:35  <normanm>and I had the crazy idea to maybe use libuv with JNI
17:36:03  * inolenjoined
17:36:22  <isaacs>normanm: that sounds really interesting!
17:37:26  <normanm>I really hate jni but what should I say ;)
17:44:32  <isaacs>indutny: i think what we relaly need is not more languages. i think what we need is node.c
17:44:44  <indutny>haha
17:44:52  <indutny>isaacs: you should give a try to rust
17:44:57  <indutny>you won't really want to write C after it
17:44:58  <normanm>you need java bindings ;)
17:45:06  * normanmhides
17:45:15  <isaacs>indutny: like, unified streaming interfaces, some kind of sane modular code-reuse story, but when you compile your program, it's just a binary, and that's it.
17:45:20  <tjfontaine>I think there is a node-jni bridge out there
17:45:33  <tjfontaine>https://npmjs.org/package/jni
17:45:37  <isaacs>nodecc my-program.c -o my-program
17:45:49  <isaacs>or not even nodecc, just gcc cuz it's just c
17:46:00  <isaacs>and node is just #include <node-c.h> or something
17:46:14  <tjfontaine>cute also https://npmjs.org/package/java all you suckers with only jdbc access now have a way forward
17:46:17  <indutny>:)
17:47:24  <isaacs>but node.c would be similar enough to node.js that someone who knows node.js could read a node.c program and grok what it's doing, if they know the c language somewhat
17:47:25  <normanm>@tjfontaine, I don't want node jni… I want libuv jni ;)
17:47:49  <qard>Node.native is fun.
17:48:24  * TooTallNatequit (Quit: ["Textual IRC Client: www.textualapp.com"])
17:48:54  * TooTallNatejoined
17:51:46  <bnoordhuis>normanm: you want to use libuv for edge-triggered i/o or just jni bindings that speak edge-triggered epoll?
17:52:44  <normanm>bnoordhuis, I guess I would have tried libuv + jni if it had supported edge-triggered as it would have allowed me to also easy support windows.. but so I will just use jni and use epoll() directly
17:52:55  <normanm>edge-triggered fits better in the model of netty
17:53:41  * saghul__joined
17:54:37  <bnoordhuis>normanm: right. well, maybe in a few weeks. i've written most of the code, just need to polish and rebase it
17:54:42  * saghul_quit (Ping timeout: 264 seconds)
18:01:38  * pachetquit (Ping timeout: 256 seconds)
18:04:01  <txdv>nodejs didn't participate in gsoc?
18:04:12  * EhevuTovjoined
18:05:12  * c4milojoined
18:09:47  * brsonjoined
18:17:50  * saghul__quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
18:20:20  * perezdquit (Ping timeout: 256 seconds)
18:22:01  <normanm>bnoordhuis, cool
18:28:12  * pachetjoined
18:31:23  * abraxasjoined
18:33:47  * abraxasquit (Read error: Operation timed out)
18:35:31  * groundwaterjoined
18:37:10  * EhevuTov_joined
18:37:12  * pachetquit (Ping timeout: 276 seconds)
18:38:43  <isaacs>So, I'm re-thinking the "build a new socket pooling lib" idea.
18:38:52  <isaacs>i think i might just try to fix the bugs in our existing one.
18:39:12  <isaacs>all the stuff where we'd like to use a socket pool are super app-specific, it seems like.
18:39:56  * EhevuTovquit (Ping timeout: 252 seconds)
18:39:59  <isaacs>some things want to use a single socket that stays up forever and uses tx ids, and other things want to have a pool that will auto-expand and shrink, etc.
18:42:24  * pachetjoined
18:43:43  * kevinswiberquit (Remote host closed the connection)
18:53:36  * timoxleyquit (Ping timeout: 264 seconds)
18:56:18  * normanmquit (Quit: Computer has gone to sleep.)
18:57:06  * bnoordhuisquit (Ping timeout: 245 seconds)
18:57:57  * bajtosquit (Quit: Nettalk6 - www.ntalk.de)
19:00:29  * saghul_joined
19:03:39  * saghul_quit (Client Quit)
19:04:53  * saghul_joined
19:06:52  * inolenquit (Quit: Leaving.)
19:06:57  * kevinswiberjoined
19:22:03  * dominictarrquit (Quit: dominictarr)
19:23:26  * bnoordhuisjoined
19:25:45  * kevinswiberquit (Remote host closed the connection)
19:27:45  * inolenjoined
19:31:43  * bnoordhuisquit (Ping timeout: 246 seconds)
19:43:31  * stephankquit (Quit: *Poof!*)
19:48:08  * stephankjoined
19:52:08  * stolsmaquit (Ping timeout: 256 seconds)
20:01:24  * saghul_quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
20:02:55  * defunctzombiechanged nick to defunctzombie_zz
20:05:30  * saghul_joined
20:15:56  * inolenquit (Read error: Connection reset by peer)
20:16:03  * inolenjoined
20:16:08  * EhevuTov__joined
20:18:55  * st_lukejoined
20:19:13  * EhevuTov_quit (Ping timeout: 268 seconds)
20:29:35  * EhevuTov__quit (Quit: This computer has gone to sleep)
20:35:25  * hzquit
20:36:16  <trevnorris>hello hello
20:36:26  <tjfontaine>hewwo
20:36:52  <TooTallNate>hi
20:40:01  * rendarquit (Read error: Connection reset by peer)
20:40:36  <trevnorris>need opinion. in my thin buffer implementation, since the user decides when to free the external mem, is it necessary to AdjustAmountOfExternalAllocatedMemory?
20:41:11  <tjfontaine>I would say yes
20:41:48  <trevnorris>why's that? imo it's used to tell gc how often to clean up, but since it won't have any effect don't know why it's useful.
20:42:03  <tjfontaine>it's still important for the gc to know how much memory pressure there is
20:42:05  * hij1nxquit (Ping timeout: 246 seconds)
20:42:07  * hzjoined
20:42:39  <tjfontaine>trevnorris: why wouldn't you set it?
20:43:28  * nsmquit (Ping timeout: 245 seconds)
20:43:44  * hij1nxjoined
20:43:44  <trevnorris>tjfontaine: v8 uses that as a gage of how often to clean up. e.g. mark-sweep. with the intent of free'ing up some memory.
20:44:01  <trevnorris>but since the user decides when the memory is cleaned, gc can't do anything about it.
20:44:21  <tjfontaine>trevnorris: it can't do anything about *that* memory, but it can work on other things
20:44:53  <tjfontaine>the allocation amount is still relevant to the gc for it to make decisions
20:45:05  <trevnorris>fair enough.
20:45:57  <trevnorris>i'm just realizing my benches are bias because i'm creating then deleting the memory immediately.
20:46:05  <trevnorris>so they have almost zero impact on gc
20:46:15  <trevnorris>but I guess that's the use case for them anyways
20:48:06  <trevnorris>tjfontaine: see, because of the immediate creation/cleanup in my benchmark, a 1 byte allocation and 1 MB allocation take the same time.
20:49:08  <tjfontaine>trevnorris: sure, but so is a 1GB allocation, but what if there's 1gb left over that the gc can reap, and as a result of not notifying it your process now starts swapping
20:49:58  * nsmjoined
20:50:21  <trevnorris>tjfontaine: either, the 1 GB is attached to a thin buffer, so gc can't do anything about it, or it's attached to a persistent that can be mark-sweep'd and it would've been cleaned up already.
20:50:36  <trevnorris>indutny: your expertise here would help, if you're around.
20:50:52  <tjfontaine>trevnorris: again, it's not about what the gc can do to the thin buffer, what it can do to reduce the rest of the pressure
20:51:18  <indutny>huh?
20:51:24  <indutny>introduce me to the problem, please
20:51:47  <trevnorris>indutny: have a new "thin buffer" where the user controls when to free the memory.
20:51:52  <trevnorris>gc doesn't handle anything.
20:51:57  <indutny>ok
20:52:18  <tjfontaine>is there some egregious penalty for telling the gc about the memory attached to it?
20:52:31  <indutny>you better tell it
20:52:32  <trevnorris>indutny: so i'm wondering if I need to AdjustAmountOfExternalAllocatedMemory on those, since v8 can't do anything to clean them up
20:52:34  <trevnorris>ok
20:52:40  <indutny>because it'll adjust rate of gc
20:52:55  * rendarjoined
20:55:07  <trevnorris>indutny: understood. my thought was v8 tries to keep mem usage down anyways. so alerting it to mem allocations it can't do anything about would be an unnecessary performance penalty.
20:55:21  <indutny>well...
20:55:25  <indutny>hm...
20:55:26  <tjfontaine>it's not about what it can do on that object, it's abotu what it can do on the rest
20:55:31  <indutny>probably you're right
20:55:36  <indutny>let me think about it
20:55:49  <indutny>so there're two sides of the coin
20:55:56  <indutny>if you've allocated a lot of external memor
20:55:59  <indutny>s/memor/memory/
20:56:09  <indutny>heap allocation might fail if gc won't be executed faster
20:56:27  <indutny>but at the same time that external data isn't affecting it
20:56:33  * c4miloquit (Remote host closed the connection)
20:56:35  <indutny>I think you should still report it to v8
20:56:40  <trevnorris>ok
20:56:48  <indutny>its one-liner, basically
20:56:55  <indutny>if it'll be bad - we can remove it
20:57:00  * c4milojoined
20:57:02  <indutny>but seems to be correct this way
20:57:17  <trevnorris>was just noticing on my benchmarks that a 1 byte allocation and 1 MB allocation is the same.
20:57:29  <trevnorris>then I realized it's because I'm creating then destroying it immediately afterwards.
20:59:12  <trevnorris>tjfontaine: my thought about "the rest" was that v8 does a good job keeping that down to a minimum anyways, so it wouldn't do too much for this case.
21:00:15  <trevnorris>now, I tried this w/ persistent objects. so I realized what a bad idea that was.
21:00:26  <trevnorris>s/so/soon
21:00:35  <tjfontaine>the more information the gc has the better decisions it can make
21:01:50  * c4miloquit (Ping timeout: 256 seconds)
21:02:17  <trevnorris>oh yeah. I don't disagree. and wouldn't have thought about it much myself, except the performance payouts can be massive.
21:03:04  <tjfontaine>it's not resulting in a second js/c boundary cross, right?
21:03:58  <trevnorris>do you mean by adjusting external mem?
21:04:22  <tjfontaine>yes, you're just doing it beside the attach?
21:04:48  <trevnorris>yeah. only one call.
21:04:54  * EhevuTovjoined
21:07:26  <trevnorris>oop. tested the changes against converting them to a buffer. for some reason that killed performance.
21:07:38  <trevnorris>and, that's one of the main use cases, so that idea's out.
21:07:56  <trevnorris>thanks for chatting that w/ me. :)
21:08:15  <tjfontaine>which change?
21:08:27  * dominictarrjoined
21:10:00  <trevnorris>so I have a UCAllocToPersistent that converts it to a persistent object, if you don't want to deal w/ manually disposing that later.
21:10:08  <tjfontaine>right
21:10:20  <trevnorris>and if I don't adjust external memory in initial creation, then it has to be done there.
21:10:30  <trevnorris>for some reason that dropped perf by ~20%
21:10:49  * piscisaureus_joined
21:10:54  <tjfontaine>making things persistent probably implicitly trigger a gc operation or something like that
21:11:00  * dominictarrquit (Client Quit)
21:11:13  <trevnorris>yeah.
21:11:32  <trevnorris>man I'm looking forward to the changes down the line to persistent's.
21:11:49  <trevnorris>though they're also dropping Local<>, and everything will just be Handle<>
21:12:48  * defunctzombie_zzchanged nick to defunctzombie
21:13:28  * rendarquit
21:15:46  <wolfeidau>tjfontaine: BTW that node-profiler worked perfectly, just had to patch it a little, targeted profiling is also a bonus
21:16:32  <tjfontaine>wolfeidau: make sure to contribute the info back to ben if the patch is useful
21:16:41  <wolfeidau>https://github.com/bnoordhuis/node-profiler/pull/12
21:16:46  <tjfontaine>excellent :)
21:17:03  <trevnorris>isaacs: doing some preliminary review on crypto-fix. looking good.
21:17:06  <wolfeidau>tjfontaine: Always happy to help
21:17:15  <isaacs>trevnorris: thanks :)
21:22:25  * defunctzombiechanged nick to defunctzombie_zz
21:26:40  * st_lukequit (Remote host closed the connection)
21:27:29  * saghul_quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
21:33:58  * mikealquit (Quit: Leaving.)
21:36:11  <trevnorris>just curious, is there much difference or a preferred method to malloc over new char?
21:36:51  <trevnorris>to quote bnoordhuis "for portability's sake, assume that malloc/free and new/delete use different heaps"
21:37:23  * defunctzombie_zzchanged nick to defunctzombie
21:37:47  <tjfontaine>are you looking for clarification on that?
21:38:32  <trevnorris>tjfontaine: think what i'm looking for is, is it inconsistent to use both malloc and new char in the same code base?
21:38:46  <isaacs>trevnorris: not that much
21:38:50  <tjfontaine>in practice no
21:38:58  <tjfontaine>however
21:39:11  <isaacs>trevnorris: however, malloc goes with free, and new goes with delete
21:39:19  <tjfontaine>if you remember that placement operator stuff I talked about before, using new you get that, if you just malloc you don't get that
21:39:33  <trevnorris>isaacs: yeah. valgrind let me know that :)
21:39:56  <trevnorris>tjfontaine: ah, ok.
21:40:06  <isaacs>yeah, and the new(ptr)(class) stuff
21:41:05  * dominictarrjoined
21:41:27  * piscisaureus_quit (Read error: Operation timed out)
21:44:44  * kevinswiberjoined
21:44:44  * saghul_joined
21:48:17  <trevnorris>isaacs: ha ha. I found it. I was a bit off though.
21:48:21  <trevnorris>23:15:39 <isaacs> trevnorris: A DRAG AS IN BEING DRAGGED BEHIND WILD HOGS WITH SIGNIFICANT GASTROINTESTINAL ISSUES.
21:50:00  * benoitcquit (Excess Flood)
21:53:37  <isaacs>hahahah
21:53:41  <isaacs>oh man
21:53:46  <isaacs>i'm a comedy genius sometimes
21:53:55  <isaacs>A DRAG AS IN BEING DRAGGED BEHIND WILD HOGS WITH SIGNIFICANT GASTROINTESTINAL ISSUES.
21:53:55  <LOUDBOT>WHAT A TATTERED TAIL YOU WEAVE
21:54:00  <isaacs>LOUDBOT: search dragged
21:54:01  <LOUDBOT>isaacs: <bp:#mefi> SOMEONE DRAGGED KARA OUT OF THE OS X DOCK
21:54:04  <isaacs>LOUDBOT: search next
21:54:05  <LOUDBOT>isaacs: <simcop2387-lap:##turtles> YAY I'VE GOT MOST OF THE NEXT TWO SEASONS OF SLAYERS
21:54:08  <isaacs>LOUDBOT: search dragged
21:54:08  <LOUDBOT>isaacs: <bp:#mefi> SORRY GOOBER, YOU DRAGGED IT ONTO THE GRID, IT STAYS THERE FOREVER TILL YOU LEARN THE SECRET HANDSHAKE
21:54:10  <isaacs>LOUDBOT: next
21:54:10  <LOUDBOT>isaacs: <isaacs:#libuv> A DRAG AS IN BEING DRAGGED BEHIND WILD HOGS WITH SIGNIFICANT GASTROINTESTINAL ISSUES.
21:54:14  <isaacs>LOUDBOT: twitlast
21:54:14  <LOUDBOT>http://twitter.com/LOUDBOT/status/330440186473349122 (isaacs/#libuv)
21:54:17  <isaacs>LOUDBOT: thanks
21:54:17  <LOUDBOT>isaacs: AND GET RY COODER TO SING MY EULOGY
21:55:05  <isaacs>indutny: so... i noticed something about cork/uncork
21:55:17  <isaacs>indutny: if you cork() two times, then it seems like you should have to uncork() two times
21:55:26  <indutny>huhh?
21:56:12  * benoitcjoined
21:56:25  <isaacs>indutny: otherwise you can have a situation like this: MyStream.prototype._send=function(chunk){ this.cork(); this.write(prefix);this.write(chunk);this.write(postfix);this.uncork() }
21:56:30  <isaacs>indutny: and then in another function:
21:56:55  <isaacs>MyStream.prototype._sendTwo = function(a,b) { this.cork(); this._send(a); this._send(b); this.uncork() }
21:57:29  <isaacs>i'm trying to figure out how to change http so that it will properly cork rather than having the "hot" copy thing
21:57:40  * hzquit
21:57:58  <isaacs>indutny: but, afaict, the only way to know if i should cork or not in _send is to check if we're already corked, and if so, not do it, but that's dinking around with the _writableState thing which sucks.
21:58:17  <indutny>aah
21:58:31  <indutny>hm...
21:58:33  <indutny>well
21:58:37  <indutny>double cork/uncork looks good to me
22:00:15  * defunctzombiechanged nick to defunctzombie_zz
22:00:47  <isaacs>k, i think so, too. i'll pull req soon
22:01:35  * hzjoined
22:06:49  * hzquit (Disconnected by services)
22:06:53  * hzjoined
22:11:32  <wolfeidau>indutny: Did you see the presentation on http the other day http://www.mnot.net/talks/http2-wtf/#/ by one of the guys working with EITF?
22:12:20  <indutny>not yet
22:12:24  <indutny>but thank you for a link
22:12:39  <wolfeidau>indutny: May need to rename your spdy module soon :)
22:12:48  <indutny>hahaha
22:22:36  * hzquit
22:23:21  * hzjoined
22:36:02  * kevinswiberquit (Remote host closed the connection)
22:39:34  <trevnorris>isaacs: just finished up. definitely like the new api.
22:52:06  * kevinswiberjoined
22:52:38  * pachetquit (Ping timeout: 256 seconds)
22:53:27  * bnoordhuisjoined
22:54:06  * st_lukejoined
23:00:07  * c4milojoined
23:02:16  * bnoordhuisquit (Ping timeout: 256 seconds)
23:11:51  * st_lukequit (Remote host closed the connection)
23:21:00  <isaacs>trevnorris: kewl, thanks
23:21:12  <isaacs>indutny: Hey, i think there's another slight problem with writev
23:21:45  <isaacs>indutny: if you do this: s.cork();s.write(c,e,cb);s.write(c,e,cb);s.uncork();s.end()
23:22:00  <isaacs>indutny: then i think the write cb's should get called *before* the s.on('finish') event
23:22:22  <isaacs>indutny: but, it doesn't do this now, because it's sharing the code path with _write using onwrite.
23:22:39  <isaacs>indutny: i think it can be fixed, though, pretty easily, but just splitting them up a bit. so i'm gonna do that.
23:22:52  <isaacs>indutny: unless you know of some compelling reason why that's not a good idea :)
23:29:19  * saghul_quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
23:39:05  <indutny>:)
23:39:10  <indutny>not right now
23:39:12  <indutny>its too late here
23:48:25  <indutny>ttyl
23:48:26  * indutny&
23:48:26  <LOUDBOT>I THOUGH PIONEERS MADE SPEAKERS AND OTHER ELECTRONICS
23:50:41  * stagasquit (Quit: ChatZilla 0.9.90-rdmsoft [XULRunner 1.9.0.17/2009122204])
23:58:29  * brsonquit (Quit: leaving)