00:00:06  <isaacs>mmalecki: no need for nconf, winston, etc.
00:00:22  <mmalecki>isaacs: np, I just added winston for some debugging goodness
00:00:33  <mmalecki>isaacs: nconf may go away as well
00:00:46  <isaacs>just gonna have a follower script that generates the files, and maybe have a server that'll run and generate on-demand if you request one it hasn't gotten to yet.
00:00:49  <isaacs>this is good stuff, though, thanks!
00:01:00  <mmalecki>isaacs: I can finish it
00:01:26  <isaacs>we're probably gonna get our designer to work up a visual design.
00:01:44  <mmalecki>isaacs: I'm just short on time now :(. I can get to it in 2 days
00:01:49  <mmalecki>isaacs: ok, fair enough
00:01:50  <isaacs>the guy who's done the node site, logo, etc. planning a whole npm/node/module/etc revamp this year.
00:01:55  <isaacs>(er, next year)
00:02:27  <mmalecki>isaacs: ok. do you want me to strip these things?
00:02:47  <isaacs>mmalecki: nah, i can do it. i wanna kind of comb through and see how it works anyhow
00:03:30  <mmalecki>sure. make sure to ping me in case of any problems
00:03:36  <mmalecki>and pull now, I fixed a typo
00:09:39  <mmalecki>actually, I have a question about libuv. when I uv_unref, what exactly happens? my understanding was that libuv stops "waiting" for callbacks, but I don't think that that's the case.
00:11:29  * mmalecki_joined
00:11:54  * mmaleckiquit (Quit: leaving)
00:12:01  * mmalecki_quit (Client Quit)
00:12:12  * mmaleckijoined
00:20:05  <CIA-111>node: Ben Noordhuis isolates * rd496d52 / src/node_internals.h : internals: add BUILD_BUG_ON and DISALLOW_* macros - http://git.io/KWZIsQ
00:20:06  <CIA-111>node: Ben Noordhuis isolates * r0a0322a / src/node_atomic.h : atomic: add atomic operations utility classes - http://git.io/Hp8cUQ
00:20:06  <CIA-111>node: Ben Noordhuis isolates * r6228172 / src/node.cc : isolates: make main thread reap subordinate threads - http://git.io/dyu8yQ
00:20:20  * dshaw_1quit (Quit: Leaving.)
00:21:13  <bnoordhuis>mmalecki: uv_unref unrefs a loop global counter. if it drops to zero, libuv stops calling epoll_wait / kevent / port_getn / etc.
00:22:09  <mmalecki>bnoordhuis: so, when it's zero, my app will basically exit when it has such opportunity?
00:22:10  * Marakjoined
00:22:20  <mmalecki>like, setInterval won't keep it up?
00:22:53  <mmalecki>or (sneaky smile), events used by child_process.fork?
00:23:18  <bnoordhuis>mmalecki: yes-ish. normally, timers, sockets, etc. will keep the event loop alive
00:23:43  * Marakpart
00:23:53  <bnoordhuis>but you can create, say, a timer, unref it and it won't keep the event loop running if everything else has quit
00:25:13  <mmalecki>ok, that's *pretty much* what I'm up to
00:25:43  <mmalecki>I basically want a way for a fork not to keep the event loop up.
00:26:03  <mmalecki>so, I guess this is the way!
00:26:07  <mmalecki>thanks bnoordhuis :)
00:27:02  <bnoordhuis>mmalecki: btw, we're going to rework uv_unref to work with handles instead of loops
00:27:14  <bnoordhuis>but the above will work for now and the new approach won't be too different
00:27:41  <mmalecki>bnoordhuis: are you telling me that I'll have to come back to this code when 0.8 comes out?
00:28:13  <bnoordhuis>mmalecki: probably - don't you know by now we're always breaking api? :)
00:28:21  <mmalecki>well, a fair price, actually
00:28:44  <bnoordhuis>i half-kid, node's api is pretty stable, libuv not so much yet
00:29:24  <mmalecki>bnoordhuis: whatever, I like changing APIs. it means that project is alive.
00:29:48  <mmalecki>well, could you even imagine changing some important Java API?
00:30:58  <bnoordhuis>a jre api? never!
00:31:34  <bnoordhuis>by the time node has as many users as java, i'd probably think twice too before changing an api :)
00:31:47  <mmalecki>bnoordhuis: please don't :)
00:33:30  <mmalecki>bnoordhuis: hm, that may seem stupid, but when I uv_unref(uv_default_loop()) in a native addon and then fork a child process, event loop is still alive
00:34:48  * mraleph1joined
00:34:49  * mralephquit (Read error: Connection reset by peer)
00:35:51  <bnoordhuis>mmalecki: you'd normally call uv_unref *after* you've spawned the new process
00:36:42  <mmalecki>uhm, sorry, yeah, that's what I do
00:36:47  * travis-cijoined
00:36:47  <travis-ci>[travis-ci] joyent/node#42 (isolates - 6228172 : Ben Noordhuis): The build is still failing.
00:36:47  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/6192ca2...6228172
00:36:47  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/400625
00:36:47  * travis-cipart
00:37:49  <mmalecki>bnoordhuis: process.uvCounters().process_init is still 1 after I unref
00:39:05  <bnoordhuis>mmalecki: the counters never decrease
00:39:27  <mmalecki>hm, ok
00:39:44  <bnoordhuis>mmalecki: refcount debugging is kind of awkward right now
00:39:55  <bnoordhuis>but i'm landing a branch that should make that easier
00:40:02  <bnoordhuis>it's the walk-handles branch in my repo
00:40:32  <bnoordhuis>mmalecki: also, print-handles in my node repo is the node counterpart
00:40:45  * mraleph1quit (Read error: Connection reset by peer)
00:40:48  <bnoordhuis>if you send SIGUSR2 to the node process, it prints out a list of handles and their flags
00:40:49  * mralephjoined
00:41:17  * mralephquit (Client Quit)
00:42:59  <mmalecki>bnoordhuis: hm, ok.
00:43:07  <mmalecki>bnoordhuis: I will try it later.
00:43:53  <mmalecki>bnoordhuis: looking at the source code, I see that node spawns child processes using default loop. In unref the default loop. so it should work, right?
00:44:32  <bnoordhuis>mmalecki: yes, however... node also sets up a couple of pipes to communicate with the child, those bump the refcount too
00:45:10  <mmalecki>bnoordhuis: so I should unref if a couple times?
00:46:02  <bnoordhuis>mmalecki: yes - the annoying thing is that the refcount is different on windows and unix
00:46:16  <bnoordhuis>one more reason to unref handles (smartly) instead of event loops
00:46:22  <mmalecki>fucking awesome >.<
00:47:01  <mmalecki>bnoordhuis: ok. I will try walking it around.
00:47:39  <bnoordhuis>and i, i'll be off to bed
00:47:50  <mmalecki>sleep tight!
00:48:09  <bnoordhuis>thanks, you too :)
00:48:16  * mmaleckihas to save the world before going to bed
00:49:14  <bnoordhuis>i leave that to batman nowadays, he doesn't have to get up early in the morning
00:49:48  <mmalecki>well, I don't like outsourcing things
00:50:13  <mmalecki>wut, it's 2 am?
01:07:09  * dshaw_joined
01:21:22  * mikealquit (Quit: Leaving.)
01:29:52  * sh1mmerquit (Quit: sh1mmer)
01:44:09  * TooTallNatequit (Ping timeout: 252 seconds)
01:50:57  * ericktquit (Quit: erickt)
01:59:11  * bnoordhuisquit (Ping timeout: 252 seconds)
02:09:56  * dshaw_quit (Ping timeout: 276 seconds)
02:10:19  * ericktjoined
02:11:37  * dshaw_joined
02:24:44  * ericktquit (Ping timeout: 268 seconds)
02:27:31  * ericktjoined
02:39:51  * ericktquit (Ping timeout: 252 seconds)
02:46:37  * brsonquit (Quit: leaving)
02:48:34  * dapquit (Quit: Leaving.)
02:56:48  * brsonjoined
02:57:37  * brsonquit (Client Quit)
02:58:25  * isaacsquit (Quit: isaacs)
03:08:52  * dshaw_quit (Quit: Leaving.)
03:10:59  <CIA-111>libuv: Igor Zinkovsky v0.6 * ra4c8ffa / src/win/pipe.c : windows: correctly check the result of malloc - http://git.io/ydAAsw
03:26:55  * ericktjoined
04:11:49  * sh1mmerjoined
05:44:18  * mikealjoined
05:50:23  * ericktquit (Quit: erickt)
06:08:23  * mikealquit (Quit: Leaving.)
06:28:45  * mikealjoined
06:29:03  * mikealquit (Client Quit)
06:52:40  * AvianFluquit (Ping timeout: 240 seconds)
06:57:17  * AvianFlujoined
06:57:23  * mikealjoined
07:57:41  * mikealquit (Quit: Leaving.)
08:00:46  * mikealjoined
08:02:25  * mikealquit (Client Quit)
08:14:19  * mikealjoined
08:14:27  * mikealquit (Client Quit)
08:17:47  * kuebkjoined
08:20:20  * paddybyers_joined
08:21:30  * paddybyersquit (Ping timeout: 240 seconds)
08:21:31  * paddybyers_changed nick to paddybyers
08:49:10  * kuebkquit (Ping timeout: 255 seconds)
10:35:58  * AvianFluquit (Quit: Leaving)
13:46:05  * bnoordhuisjoined
15:09:01  * ericktjoined
15:27:40  * ericktquit (Quit: erickt)
15:32:22  <CIA-111>node: Ben Noordhuis v0.6 * re90db17 / src/node_file.cc : fs: fix typo in error message - http://git.io/yDofjA
15:32:23  <CIA-111>node: Ben Noordhuis v0.6 * rb1b3dc6 / (lib/fs.js test/simple/test-fs-read-stream.js):
15:32:23  <CIA-111>node: fs: handle fractional or NaN ReadStream buffer size
15:32:23  <CIA-111>node: Fixes #2320. - http://git.io/uE8AFQ
15:40:04  * travis-cijoined
15:40:05  <travis-ci>[travis-ci] joyent/node#43 (v0.6 - b1b3dc6 : Ben Noordhuis): The build was broken.
15:40:05  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/6e76fc2...b1b3dc6
15:40:05  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/402483
15:40:05  * travis-cipart
15:40:34  * ericktjoined
16:10:04  * ericktquit (Quit: erickt)
16:26:03  * dapjoined
16:37:27  * isaacsjoined
16:45:19  * creationixquit (Quit: ZNC - http://znc.sourceforge.net)
16:48:27  <DrPizza>ryah: oh btw http://arstechnica.com/microsoft/news/2011/12/azure-price-cuts-bigger-databases-now-with-nodejs-and-mongodb-support-hadoop-on-its-way.ars
16:48:33  <DrPizza>I did a post
17:02:45  <bnoordhuis>ryah, isaacs, igorzi: i can't make the call at 1100 pst but 1200 or 1300 pst would work
17:08:18  * AndreasMadsenjoined
17:09:22  <CIA-111>node: Ben Noordhuis v0.6 * rd70ef19 / (src/node_crypto.cc test/simple/test-crypto.js): crypto: fix memory leaks in PBKDF2 error path - http://git.io/twWRwQ
17:15:48  * paddybyersquit (Quit: paddybyers)
17:17:10  * travis-cijoined
17:17:10  <travis-ci>[travis-ci] joyent/node#44 (v0.6 - d70ef19 : Ben Noordhuis): The build was fixed.
17:17:10  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/b1b3dc6...d70ef19
17:17:10  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/402733
17:17:10  * travis-cipart
17:18:47  * creationixjoined
17:23:47  * ericktjoined
17:27:15  * AndreasMadsenquit (Remote host closed the connection)
17:30:33  * TooTallNatejoined
17:52:57  * ericktquit (Read error: Connection reset by peer)
17:53:08  * ericktjoined
18:03:42  * dshaw_joined
18:05:00  <ryah>bnoordhuis: ok - let's delay it
18:05:04  <ryah>DrPizza: i saw! thanks :)
18:13:43  * brsonjoined
18:15:02  <igorzi>ryah, bnoordhuis, isaacs: call moved to 12?
18:16:08  <ryah>igorzi: yes
18:16:41  <igorzi>k, i'll let claudio know
18:18:55  <ryah>er sorry
18:19:00  <ryah>i forgot that claudio was on today
18:19:20  <ryah>igorzi: if claudio can change that would be good - otherwise we can just do 11
18:19:42  <igorzi>ryah: yep, 12 is fine.. i just confirmed with him
18:19:48  <ryah>igorzi: okay - cool
18:20:05  <ryah>sorry about that
18:23:00  <igorzi>np
18:31:01  * ericktquit (Quit: erickt)
18:36:22  * mikealjoined
18:38:08  * ericktjoined
18:38:17  * paddybyersjoined
18:42:27  <ryah>pquerna: sorry i left early yesterday - didn't see your message. Yes we would like to have the ability to register custom handles.
18:42:53  <ryah>pquerna: it might make sense to refactor the core system to use function pointers for each handle type first
18:45:31  * AvianFlujoined
19:12:37  * nrajlichjoined
19:12:39  * TooTallNatequit (Ping timeout: 252 seconds)
19:12:55  * sh1mmerquit (Quit: sh1mmer)
19:13:49  * nrajlichchanged nick to TooTallNate
19:18:04  * TooTallNatequit (Read error: Connection reset by peer)
19:19:45  * TooTallNatejoined
19:32:20  <indutny>ryah: heya!
19:35:03  <indutny>bnoordhuis: hi!
19:36:14  <indutny>bnoordhuis: can you please briefly explain me, why make install isn't working in 0.7? I'm going to fix that, if it's possible to do it right now
19:38:47  <indutny>was that done for some purpose?
19:39:25  <ryah>indutny: there's no install target in the Makefile
19:39:47  <indutny>ryah: yeah I see that, so if I'll open PR it'll be ok, riht?
19:39:51  <indutny>s/riht/right?
19:40:05  <ryah>PR?
19:40:12  <indutny>Pull Request
19:40:17  <ryah>sure - yes
19:40:21  <indutny>ok
19:40:24  <ryah>install: all
19:40:31  <indutny>yep, I understand
19:40:39  <ryah> cp out/Release/node $(PREFIX)/bin/node
19:43:06  <indutny>will do that tomorrow, now going to sleep
19:43:07  <indutny>ttyl
19:43:20  * creationixquit (Ping timeout: 240 seconds)
19:45:39  <ryah>indutny: thanks!
19:48:38  <mmalecki>ryah: hi! have you added libuv to travis?
19:50:12  <CIA-111>node: Ryan Dahl isolates2 * r28a80be / (src/node.cc src/node_isolate.cc src/node_isolate.h): move thread_id to node_isolate.cc - http://git.io/zVUbfA
19:51:49  <ryah>mmalecki: no - what do o i have to do?
19:52:31  <mmalecki>ryah: as described here https://github.com/joyent/node/pull/2261
19:54:45  <ryah>mmalecki: is restarting my computer necessary?
19:55:11  <mmalecki>ryah: hah, no :)
19:55:34  <mmalecki>ryah: it's just this IT support joke.
19:55:37  <bnoordhuis>indutny: sure, it's possible
19:55:49  <bnoordhuis>the reason it doesn't work is because it's simply not implemented yet
19:56:02  <mmalecki>I feel like it's kinda my fault.
19:56:31  <bnoordhuis>indutny: it should be pretty trivial though
19:57:10  <mmalecki>ryah: http://www.youtube.com/watch?v=nn2FB1P_Mn8
19:57:18  <mmalecki>that wasn't funny at all, tho
20:03:37  * travis-cijoined
20:03:37  <travis-ci>[travis-ci] joyent/node#45 (isolates2 - 28a80be : Ryan Dahl): The build failed.
20:03:37  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/commit/28a80be
20:03:37  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/403143
20:03:37  * travis-cipart
20:15:31  <ryah>going to lunch .. bbiab
20:24:27  <CIA-111>node: Ben Noordhuis v0.6 * r77f2178 / src/node_crypto.cc :
20:24:27  <CIA-111>node: crypto: fix memory leak when decrypting empty strings
20:24:27  <CIA-111>node: Also fixes a dangling pointer delete[] in the error path. - http://git.io/TT2oLg
20:39:51  <bnoordhuis>man, there are so many potential memory leaks in node_crypto...
20:41:06  <mmalecki>potential memory leak is potential.
20:41:38  <mmalecki>bnoordhuis: hey, can a test case require native module?
20:41:54  <bnoordhuis>potential in that they trigger in edge cases
20:42:13  <bnoordhuis>mmalecki: come again?
20:42:23  <mmalecki>edge cases are edge :)
20:42:52  <bnoordhuis>not so much... do a partial decrypt, don't call final, leak memory
20:43:19  <mmalecki>bnoordhuis: ok. anyways, say I want to write a test case for node but it requires a native module.
20:43:31  <bnoordhuis>mmalecki: what module?
20:44:08  <mmalecki>bnoordhuis: daemon.node
20:44:23  <mmalecki>or something which would behave like it.
20:44:33  <bnoordhuis>mmalecki: and test case as in something for test/simple/ or - ?
20:44:53  <mmalecki>yeah
20:44:56  <mmalecki>test/simple
20:45:16  <bnoordhuis>no
20:45:26  <bnoordhuis>gah! partial decrypt, reuse cipher, leak memory
20:45:34  * bnoordhuisbangs head against table
20:45:50  <mmalecki>ok.
20:45:56  <mmalecki>bnoordhuis: easy man.
20:46:16  <bnoordhuis>mmalecki: take a look at the code and you know why i feel the way i feel...
20:46:48  <mmalecki>I have no idea about crypto stuff, really, but node_crypto.cc looks pretty terrible
20:47:00  <bnoordhuis>DecipherUpdate() and DecipherFinal() are 200 LOC each with new and delete all over the place
20:47:20  <bnoordhuis>maybe i should just rewrite them
20:48:31  <mmalecki>uhm... https://github.com/joyent/node/blob/master/src/node_crypto.cc#L2519
20:48:41  <mmalecki>I have a weird feeling that this should throw
20:50:13  <mmalecki>https://github.com/joyent/node/blob/master/src/node_crypto.cc#L2480 is not freed before https://github.com/joyent/node/blob/master/src/node_crypto.cc#L2528 I think
20:50:46  <mmalecki>complete_hex isn't freed at all, I think.
20:50:49  <mmalecki>bnoordhuis: ^
20:50:51  * mikealquit (Quit: Leaving.)
20:51:23  <bnoordhuis>mmalecki: yes, same goes for incomplete_utf8 in Decipher
20:51:59  <mmalecki>definitely, rewrite :)
20:54:08  * sh1mmerjoined
21:00:27  <bnoordhuis>indutny: are you going to work on `make install`?
21:00:47  <mmalecki>bnoordhuis: he's asleep, I believe
21:00:52  <mmalecki>bnoordhuis: and he said he will
21:00:59  <bnoordhuis>good
21:01:32  <mmalecki>bnoordhuis: 22:43 < indutny> will do that tomorrow, now going to sleep
21:07:21  * mikealjoined
21:16:47  * rmustacc_joined
21:16:58  * rmustacc_part
21:18:05  * rmustaccjoined
21:24:53  <ryah>mmalecki: okay libuv should be good
21:25:03  <ryah>mmalecki: travis-wise
21:26:25  <mmalecki>ryah: thanks! :)
21:28:22  <ryah>thanks to you
21:28:40  <ryah>bnoordhuis: i forgot to ask during the scrum - any progress on the ref count stuff?
21:29:49  <bnoordhuis>ryah: you mean the 'ref handles, not loops' thing?
21:30:16  <ryah>bnoordhuis: the idea of pulling out the ref handling into platform independent code
21:30:33  <ryah>bnoordhuis: but starting first by pulling out the functions
21:30:47  <bnoordhuis>oh that, haven't worked on that yet - have we decided on the final approach yet?
21:32:53  <ryah>bnoordhuis: yea, make a wrapper for all public functions calling into platform specific ones named uv_plat_read_start()
21:33:00  <ryah>(or whatever naming scheme you want)
21:34:09  <bnoordhuis>ryah: and the common code bumps and decrements the ref counter?
21:34:27  <ryah>bnoordhuis: yeah but let's do it in two steps
21:34:41  <bnoordhuis>sounds good
21:34:48  <ryah>first keep the ref counting as it is, and pull out the common - then we'll fix the ref counts
21:34:52  <ryah>cool
21:45:20  * mikealquit (Ping timeout: 252 seconds)
22:37:16  <ryah>do isolates have thier own debugger threads?
22:44:34  * mmalecki_joined
22:47:37  * mmaleckiquit (Ping timeout: 245 seconds)
22:47:48  * mmalecki_changed nick to mmalecki
22:48:49  <bnoordhuis>ryah: i think so
22:49:23  <CIA-111>node: Ryan Dahl isolates2 * r058892d / (src/node.cc src/node_isolate.cc src/node_isolate.h): Move uv loop initialization into isolate - http://git.io/ifSU2w
23:02:33  * travis-cijoined
23:02:33  <travis-ci>[travis-ci] joyent/node#46 (isolates2 - 058892d : Ryan Dahl): The build is still failing.
23:02:33  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/28a80be...058892d
23:02:33  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/403678
23:02:33  * travis-cipart
23:10:32  * mralephjoined
23:10:33  * mmalecki_joined
23:10:33  * mmalecki_quit (Client Quit)
23:12:17  * mmalecki_joined
23:12:28  * mmaleckiquit (Quit: leaving)
23:12:36  * mmalecki_quit (Client Quit)
23:12:40  * mmaleckijoined
23:15:50  <ryah>maybe we should only allow isoaltes to be spawned and killed from the main thread
23:17:36  * mikealjoined
23:34:06  * paddybyersquit (Quit: paddybyers)