00:00:12  <ryah>piscisaureus_: im going to back out of uv_pipe_pair on libuv
00:00:18  <piscisaureus_>bnoordhuis: my house in the Jordaan is too small to allow that :-/
00:00:37  <bnoordhuis>i heard de jordaan is the new hip
00:00:49  <piscisaureus_>bnoordhuis: no it's kind of the established hip
00:01:00  <piscisaureus_>bnoordhuis: the new new hip would be de Pijp
00:01:20  <bnoordhuis>but that still holds the risk of getting stabbed to death in broad daylight?
00:01:30  <piscisaureus_>bnoordhuis: nah I think it's alright
00:01:41  <piscisaureus_>bnoordhuis: Zuidoost is more like that
00:02:14  <bnoordhuis>piscisaureus_: you at c9 tomorrow? i'll be in town
00:02:24  <piscisaureus_>bnoordhuis: ah nice, yeah
00:02:32  <piscisaureus_>bnoordhuis: will be there, but I am not going to stay late
00:02:46  <bnoordhuis>piscisaureus_: no, i'll be there around 1300
00:02:51  <piscisaureus_>ah, kk
00:03:10  <piscisaureus_>I also arrive at 1300 often :-)
00:03:26  <piscisaureus_>maybe from now I will start a little earlier
00:04:45  * travis-cijoined
00:04:45  <travis-ci>[travis-ci] joyent/node#186 (master - 4228112 : Ben Noordhuis): The build is still failing.
00:04:45  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/aa67b1f...4228112
00:04:45  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/483557
00:04:45  * travis-cipart
00:06:08  * igorziquit (Ping timeout: 258 seconds)
00:10:21  <piscisaureus_>ryah, bnoordhuis: what do you prefer me to do tomorrow? Continue domains work or continue v8 work?
00:10:53  <mmalecki>03:04 -!- travis-ci [[email protected]] has joined #libuv
00:11:02  <mmalecki>damn, not this line.
00:11:21  <mmalecki>< travis-ci> [travis-ci] joyent/node#186 (master - 4228112 : Ben Noordhuis): The build is still failing. <- anything we can do about it?
00:11:55  * mmaleckiwould love node to be alllll green
00:12:01  <bnoordhuis>mmalecki: how does it determine a failing build? `make test || echo "Build failed"`?
00:12:12  <mmalecki>bnoordhuis: return code
00:12:17  <mmalecki>oh wait no don't do that
00:13:25  <bnoordhuis>piscisaureus_: that v8 patch, though there apparently were some issues with it
00:13:41  <piscisaureus_>bnoordhuis: I think not with the patch per se
00:13:53  <piscisaureus_>bnoordhuis: rather the backport to 3.6
00:14:00  <piscisaureus_>bnoordhuis: I can look at that
00:16:05  <ryah>piscisaureus_: we need that v8 patch backported to 3.6
00:16:37  <piscisaureus_>ryah: ok I will work on that
00:16:45  <ryah>piscisaureus_: https://gist.github.com/1567443 here is the backport
00:16:47  <ryah>but it crashes
00:16:50  <ryah>in many places
00:16:53  <bnoordhuis>mmalecki: https://github.com/joyent/node/pull/2454#issuecomment-3353822 <- you mean that comment?
00:18:09  <ryah>piscisaureus_: there were several non-trivial changes i had to make in code-stubs-ia32.cc and profile-generator.cc
00:18:18  <ryah>piscisaureus_: not sure if i did it right
00:18:29  <piscisaureus_>ryah: in profile-generator???
00:18:31  <ryah>mraleph seemed to think so
00:18:57  <ryah>in StringsStorage::GetName()
00:19:16  <piscisaureus_>ah yeah
00:19:37  <ryah>piscisaureus_: mralpeh said he'd talk with erik tomorrow
00:19:45  <ryah>so it might be worked out by the time you wake up
00:19:49  <piscisaureus_>:-)
00:20:07  <ryah>otherwise it'd be *good* to land some of this linked list handle stuff :)
00:20:09  <piscisaureus_>the v8 guys are so disciplined
00:21:09  * indexzeroquit (Quit: indexzero)
00:25:41  <piscisaureus_>the coffeescriptify-node pull request is pretty funny
00:26:34  <piscisaureus_>but omg I never realized coffeescript is that unreadable
00:27:01  <ryah>i like this one https://github.com/joyent/node/pull/2472#issuecomment-3378615
00:28:03  <piscisaureus_>:-D
00:29:26  * `3rdEdenquit (Read error: Connection reset by peer)
00:30:19  <TkTech>I thought that was a joke pull request until I noticed the +6501/-15896
00:31:20  <pquerna>i had hoped it was a joke pull request, then i clicked on the files tab, and chrome preceded to pause for 30 seconds
00:31:46  <pquerna>when chrome does this i turn into hulk and had no other choice by to close it
00:31:49  * igorzijoined
00:32:07  <mjr_>That is hilarious.
00:32:54  <TooTallNate>it was definitely a joke
00:36:44  <piscisaureus_>pquerna: use firefox for a while, it will teach you patience
00:37:06  <mjr_>The best part about that pull request thread was Michael Jackson posting the GIF of Michael Jackson.
00:39:04  <bnoordhuis>piscisaureus_: ff 9 opens the diff view quite fast, really
00:39:40  <piscisaureus_>bnoordhuis: yeah but it hangs every hour for me for no apparent reason
00:39:45  <piscisaureus_>of freezes for a minute or so
00:40:13  <igorzi>bnoordhuis: the I"P"C between isolates will be done through shared memory?
00:40:33  <bnoordhuis>igorzi: yes
00:40:52  <bnoordhuis>i like how you consistently write I"P"C :)
00:41:37  <igorzi>bnoordhuis: that was ryah who started it first (i believe) :)
00:41:48  * dapquit (Quit: Leaving.)
00:42:11  * dapjoined
00:42:15  <igorzi>bnoordhuis: so, no need for uv_pipe_pair then?
00:42:27  <bnoordhuis>igorzi: nope, it's all handled in node now
00:42:37  <igorzi>bnoordhuis: nice
00:43:48  <piscisaureus_>hmm
00:46:13  <piscisaureus_>igorzi: I like that it's all handled in node but I don't like that sending a message to another thread now involves 3 locking operations instead of 1
00:47:55  <ryah>igorzi: yeah, im going to rip out uv_pipe_pair
00:48:02  <igorzi>piscisaureus_: you think it'd be faster with OS pipes?
00:48:03  <ryah>bnoordhuis's way seems better
00:48:18  <piscisaureus_>igorzi: no I think pipes are worse
00:48:30  <piscisaureus_>igorzi: but I think PostQueuedCompletionStatus is better :-)
00:48:47  <bnoordhuis>piscisaureus_: 3 locks?
00:49:03  <ryah>piscisaureus_: it uses a uv_async_send - so that's basically it
00:49:06  <piscisaureus_>bnoordhuis: well PostQueuedCompletionStatus itself causes a locking operation
00:49:21  <piscisaureus_>bnoordhuis: but libuv does locking to emulate ev_async behaviour
00:49:27  <piscisaureus_>bnoordhuis: and node does lock too
00:49:56  <piscisaureus_>bnoordhuis: while all we need on windows is to just call PostQueueCompletionStatus (it's basically a threadsafe queue)
00:50:33  <bnoordhuis>piscisaureus_: let's worry about performance when pthread_mutex_lock pops up in profile logs
00:50:40  <piscisaureus_>k
00:50:46  <ryah>bnoordhuis++
00:50:47  <kohai>bnoordhuis has 2 beers
00:50:51  <piscisaureus_>shit
00:50:57  <igorzi>bnoordhuis++
00:50:57  <kohai>bnoordhuis has 3 beers
00:51:10  <piscisaureus_>bnoordhuis--
00:51:10  <kohai>bnoordhuis has 2 beers
00:51:15  <bnoordhuis>aww :/
00:51:20  <ryah>bnoordhuis += 1
00:51:25  <ryah>hm
00:51:36  <piscisaureus_>piscisaureus++--
00:51:37  <kohai>piscisaureus has 1 beer
00:51:42  <piscisaureus_>huh
00:51:47  <piscisaureus_>yesterday ryah gave me -1
00:53:09  <mjr_>plus equals? Are you Douglas Crockford?
00:53:58  <ryah>i come from ruby-land where there is a philosophical complaint about ++
00:59:13  <mjr_>Crockford, and thus JSLint, also feels that ++ is too cryptic.
01:03:54  <piscisaureus_>I think that crockford has other concerns with ++
01:05:18  <piscisaureus_>something related to line splitting where `a++ NEWLINE a` could be interpreted as `a++;a;` and `a+ +a;`
01:05:42  * sh1mmerquit (Read error: Connection reset by peer)
01:06:05  <mjr_>Oh, interesting. I guess that's not an issue if you use semicolons.
01:06:39  <piscisaureus_>yeah I think I never had any issues with it.
01:08:12  <piscisaureus_>hmm maybe I was wrong, the explanation just reads
01:08:15  <piscisaureus_>++ and --
01:08:16  <piscisaureus_> The ++ (increment) and -- (decrement) operators have been known to contribute to bad code by encouraging excessive trickiness. They are second only to faulty architecture in enabling to viruses and other security menaces. There is a plusplus option that prohibits the use of these operators.
01:08:47  <piscisaureus_>ok I'm off
01:08:55  <piscisaureus_>v8 waits in the morning
01:08:59  <piscisaureus_>bye all
01:09:07  <ryah>mjr_: can i have a few of those core dumps from the new segfault
01:09:08  <ryah>?
01:09:10  <ryah>piscisaureus_: night
01:09:19  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
01:09:21  <mjr_>sure, just a minute.
01:12:23  * dshaw_quit (Quit: Leaving.)
01:15:23  * dshaw_joined
01:15:41  <mjr_>Wrestling through some awesome debugging with Brendan and dtrace and stuff in another window. Hard to look away on account of how awesome it is.
01:17:59  * indexzerojoined
01:19:38  <ryah>mission kids: http://kellykate.tumblr.com/post/15117919864/happy-fucking-new-years-assholes-i-just-peed-out
01:26:26  <mjr_>copied
01:26:52  <ryah>thanks
01:34:30  * dapquit (Quit: Leaving.)
02:22:02  * pieternquit (Quit: pietern)
02:30:29  * isaacsquit (Quit: isaacs)
02:40:06  * TooTallNatequit (Quit: Linkinus - http://linkinus.com)
02:47:51  * AvianFluquit (Quit: Leaving)
02:49:51  * brsonquit (Quit: leaving)
03:28:52  * bnoordhuisquit (Ping timeout: 240 seconds)
04:31:09  * perezdquit (Quit: perezd)
05:14:03  * sh1mmerjoined
05:53:05  * dshaw_quit (Ping timeout: 244 seconds)
05:58:42  * isaacsjoined
06:05:04  * mralephjoined
06:19:03  * voodootikigod__joined
06:22:59  * voodootikigod_quit (Ping timeout: 240 seconds)
06:36:04  * isaacsquit (Quit: isaacs)
06:44:27  * dshaw_joined
06:46:19  * AvianFlujoined
06:47:13  * mralephquit (Quit: Leaving.)
06:47:33  <ryah>if this problem is what i think it is - it's bad
06:48:17  <ryah>i'm thinking this is basically a flaw in node::ObjectWrap's API...
06:48:48  <CIA-111>node: koichik v0.6 * rdd9593c / (3 files in 3 dirs):
06:48:49  <CIA-111>node: http: fix ServerResponse does not emit 'close'
06:48:49  <CIA-111>node: Refs #2453. - http://git.io/jhwTDw
06:56:19  * travis-cijoined
06:56:19  <travis-ci>[travis-ci] joyent/node#187 (v0.6 - dd9593c : koichik): The build passed.
06:56:19  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/78dbb4b...dd9593c
06:56:19  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/484481
06:56:19  * travis-cipart
06:57:09  * dshaw_quit (Quit: Leaving.)
07:01:51  * indexzeroquit (Quit: indexzero)
07:04:18  * sh1mmerquit (Quit: sh1mmer)
07:04:55  * isaacsjoined
07:10:41  * sh1mmerjoined
07:55:03  <indutny>https://github.com/joyent/node/commit/42281124d4b83b0e99baf5d56b696ef242399f51 woot!
08:47:38  * paddybyersjoined
08:52:17  * isaacsquit (Quit: isaacs)
09:25:22  * sh1mmerquit (Quit: sh1mmer)
09:42:27  * paddybyersquit (Quit: paddybyers)
11:29:34  * kuebkjoined
13:23:26  * piscisaureus_joined
13:49:18  * paddybyersjoined
14:50:14  * dshaw_joined
15:38:58  * kuebkquit (Ping timeout: 268 seconds)
15:48:30  * AndreasMadsenjoined
15:48:56  * isaacsjoined
15:55:08  * isaacsquit (Quit: isaacs)
16:05:59  * Raynosquit (Remote host closed the connection)
16:10:57  * pieternjoined
16:12:09  * Raynosjoined
16:23:38  * AndreasMadsenquit (Remote host closed the connection)
16:24:28  * Raynosquit (Read error: Connection reset by peer)
16:28:37  <indutny>ryah: rebase completed https://github.com/joyent/node/pull/2450
16:32:41  * isaacsjoined
16:34:47  <piscisaureus_>Oh well, according to MDN: The ordering of the non-enumerable properties in the array, and among the enumerable properties, is not defined.
16:34:55  <piscisaureus_>crap wrong channel
16:36:17  <indutny>piscisaureus_: :)
16:36:20  <indutny>brb
16:37:01  <CIA-111>node: Bert Belder hash-rand-0.6 * r4a899c9 / (23 files in 7 dirs): (log message trimmed)
16:37:01  <CIA-111>node: Land hash collision fix for V8 3.6 by Erik Corry.
16:37:01  <CIA-111>node: - If V8 snapshots are enabled then the hash is only randomized at build time.
16:37:01  <CIA-111>node: - Breaks MIPS
16:37:01  <CIA-111>node: ---
16:37:02  <CIA-111>node: Backport hash collision workaround to 3.6.
16:37:02  <CIA-111>node: This is made up of 9956, 10351, 10338 and 10330.
16:37:14  <piscisaureus_>^-- ryah, that is Erik's backport
16:37:34  <piscisaureus_>It makes test-sys fail in one occasion, apparently the order of Object.getOwnPropertyNames changed
16:37:57  <piscisaureus_>but MDN says the order of non-enumerable keys is undefined and the order that we rely on is not insertion order
16:38:03  <piscisaureus_>so I guess we should just fix the test
16:40:00  <indutny>oh no, no mips support for node
16:40:16  * indutnythrowing away his mips server
16:40:39  <piscisaureus_>It will be back
16:40:45  <piscisaureus_>in 0.8 :-)
16:42:31  <indutny>piscisaureus_: ohhh!!! yes
16:44:24  * Raynosjoined
16:45:03  * travis-cijoined
16:45:03  <travis-ci>[travis-ci] joyent/node#188 (hash-rand-0.6 - 4a899c9 : Bert Belder): The build failed.
16:45:03  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/commit/4a899c9
16:45:03  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/486222
16:45:03  * travis-cipart
16:50:11  <indutny>oohhh no ^
16:50:13  <indutny>:D
16:51:12  <mmalecki>test-child-process-fork2.js seems race-y
16:55:05  * dapjoined
17:08:15  * perezdjoined
17:43:26  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
17:50:47  <ryah>pietern: ok
17:50:50  <ryah>er
18:00:38  * dapquit (Quit: Leaving.)
18:02:51  <ryah>indutny: okay - ill get to it in a little bit
18:08:14  * dapjoined
18:09:26  * kuebkjoined
18:10:56  * brsonjoined
18:14:21  * TooTallNatejoined
18:23:52  * AndreasMadsenjoined
18:26:00  * Raynosquit (Read error: Connection reset by peer)
18:29:14  * dshaw_quit (Quit: Leaving.)
18:29:16  <indutny>ryah: cool!
18:29:25  <indutny>ryah: rerebased it, split in parts
18:29:37  <indutny>should be much simplier to review now
18:29:40  * dapquit (Quit: Leaving.)
18:30:01  * dapjoined
18:36:29  <ryah>indutny: debugger tests in v0.6 are killing me slowly
18:36:49  <ryah>it's leaking a process
18:36:52  <ryah>and often fails
18:37:07  <ryah>test-debugger-repl-utf8.js and test-debugger-repl.js
18:38:55  <indutny>ryah: ohhhhh
18:38:58  <indutny>ryah: lets see
18:39:17  * Raynosjoined
18:39:29  <ryah>indutny: try it with the debug build
18:39:43  <indutny>ryah: okay!
18:39:53  <indutny>ryah: doing a fresh build
18:40:24  <CIA-111>node: Ryan Dahl v0.6 * r8bd80f4 / test/simple/test-sys.js :
18:40:24  <CIA-111>node: fix test-sys for hash randomization
18:40:24  <CIA-111>node: broken in 4a899c92742583ca9e0bb7d16e09a66b08c9d033 - http://git.io/zI35Gw
18:40:25  <CIA-111>node: Bert Belder v0.6 * r4a899c9 / (23 files in 7 dirs): (log message trimmed)
18:40:26  <CIA-111>node: Land hash collision fix for V8 3.6 by Erik Corry.
18:40:26  <CIA-111>node: - If V8 snapshots are enabled then the hash is only randomized at build time.
18:40:26  <CIA-111>node: - Breaks MIPS
18:40:26  <CIA-111>node: ---
18:40:27  <CIA-111>node: Backport hash collision workaround to 3.6.
18:40:27  <CIA-111>node: This is made up of 9956, 10351, 10338 and 10330.
18:42:58  * CoverSlidequit (Quit: leaving)
18:43:02  * AndreasMadsenquit (Remote host closed the connection)
18:43:06  * dshaw_joined
18:48:01  * travis-cijoined
18:48:01  <travis-ci>[travis-ci] joyent/node#189 (v0.6 - 8bd80f4 : Ryan Dahl): The build passed.
18:48:01  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/dd9593c...8bd80f4
18:48:01  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/486755
18:48:02  * travis-cipart
19:09:12  <indutny>ryah: I think I got it
19:09:58  * skabbesjoined
19:10:12  <indutny>ryah: it's kinda racey, break event occurs before debugger connects to debuggee
19:10:59  * skabbespart
19:11:57  <ryah>indutny: yeah, it's working sometimes
19:14:09  <indutny>ryah: well, I may propose to add usleep(500) before EnableDebug :D
19:14:13  <indutny>ryah: what do you think?
19:14:57  <indutny>ryah: usleep(500000)
19:15:31  <rmustacc>Adding sleeps is always the wrong thing.
19:15:39  <rmustacc>Because now you're just trying to adjust for some race.
19:16:06  <ryah>indutny: as rmustacc says - why can't we jsut fix the race?
19:16:32  * isaacsquit (Quit: isaacs)
19:18:28  * AndreasMadsenjoined
19:18:36  <indutny>ryah: w/o touching v8? I don't think so /cc mraleph
19:18:39  <indutny>oh, he's offline
19:22:12  <indutny>or, we can just ignore first break message
19:22:15  <indutny>or simulate it
19:22:48  <indutny>let me think
19:24:08  <AndreasMadsen>ryah: yo, why this topic?
19:25:09  <AndreasMadsen>ryah: Anyway I would like you opinion on https://github.com/joyent/node/pull/2458
19:26:19  * kuebkquit (Ping timeout: 240 seconds)
19:28:02  <AndreasMadsen>ryah: I think this solve the IPC isolation much better, by moving the old cluster wrapper to child_process.
19:28:31  <AndreasMadsen>ryah: But it also allow IPC filtering in userland.
19:33:21  * `3rdEdenjoined
19:34:24  * skabbesjoined
19:34:50  <skabbes>paddybyers: you around?
19:35:04  <paddybyers>skabbes: hi
19:46:34  <ryah>sigh - linux build problem
19:46:34  <ryah>[39/70] cxx: src/node_crypto.cc -> out/Release/src/node_crypto_9.o
19:46:34  <ryah>/usr/bin/g++ -pthread -m32 -g -O3 -DHAVE_OPENSSL=1 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_FDATASYNC=1 -DARCH="ia32" -DPLATFORM="linux" -D__POSIX__=1 -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -IRelease/src -I../src -IRelease/deps/http_parser -I../deps/http_parser -IRelease/deps/uv/include -I../deps/uv/include -IRelease/deps/uv/src/ares -I../deps/uv/src/ares -IRelease/deps/v8/include -I../deps/v8/include -Ideps/v8/include ../src/node_crypto.cc -c -o Releas
19:46:41  <ryah>../src/node_crypto.cc: In static member function 'static v8::Handle<v8::Value> node::crypto::SecureContext::ClearOptions(const v8::Arguments&)':
19:46:44  <ryah>../src/node_crypto.cc:558: error: 'SSL_CTX_clear_options' was not declared in this scope
19:46:47  <ryah>Waf: Leaving directory `/home/ryan/node-v0.6.7/out'
19:47:05  <ryah>i guess my version of openssl doesn thave that
19:48:15  <ryah>0.9.8 ?
19:52:45  <indutny>ryah: probably
19:52:52  <indutny>ryah: 0.9.8 is really old I guess
19:53:05  <indutny>ryah: ubuntu?
19:54:14  <ryah>no, gentoo
19:54:37  <ryah>i've got 0.9.8k
19:54:39  <ryah>released Mar 25 13:21:40 200
19:54:45  <ryah>Mar 25 13:21:40 2009
19:54:48  <ryah>not that old
19:55:48  <indutny>ryah: just 2 years, lol :D
19:55:55  <indutny>let me checkout source
19:56:53  <ryah>[email protected]:~/src/openssl-0.9.8k% grep -R SSL_CTX_clear_options .
19:56:53  <ryah>-1- [email protected]:~/src/openssl-0.9.8k%
19:57:30  <ryah>we'll need to ifdef that out
19:59:19  <indutny>ryah: trying to find minimum version for it, doing cvs co
20:00:50  <ryah>im just going to revert it
20:00:55  <ryah>it's an api addition anyway
20:01:50  <indutny>ryah: heh
20:02:14  * brsonquit (Ping timeout: 252 seconds)
20:03:56  <CIA-111>node: Ryan Dahl v0.6 * rbe67fa7 / (src/node_crypto.cc src/node_crypto.h):
20:03:57  <CIA-111>node: Revert "crypto: add SecureContext.clearOptions() method"
20:03:57  <CIA-111>node: API addition needs to go in master. Also openssl-0.9.8k doesn't have
20:03:57  <CIA-111>node: SSL_CTX_clear_options().
20:03:57  <CIA-111>node: This reverts commit 6f8839d2ac362ced42235a34a023af5e2c656501. - http://git.io/ABIRrw
20:11:48  * travis-cijoined
20:11:49  <travis-ci>[travis-ci] joyent/node#190 (v0.6 - be67fa7 : Ryan Dahl): The build was broken.
20:11:49  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/8bd80f4...be67fa7
20:11:49  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/487064
20:11:49  * travis-cipart
20:12:21  <mmalecki>ryah: ^
20:13:45  <ryah>mmalecki: yes?
20:14:15  <mmalecki>ryah: the build was broken on v0.6 branch. it used to pass
20:14:19  <ryah>mmalecki: if you're referring to that failed test - it's racey
20:14:30  <ryah>which i suppose i should just fix..
20:15:05  <mmalecki>ryah: I know it's racey, it's the main cause of master failing, it's just the first time I'm seeing it fail on 0.6
20:17:00  <AndreasMadsen>ryah: I have updated cluster2 patch, but would also like you opinion on https://github.com/joyent/node/pull/2458
20:17:00  <mmalecki>ryah: so, have you looked at my fork changes?
20:17:32  <ryah>mmalecki: no - link?
20:18:01  <mmalecki>!gh joyent/node#2455
20:18:01  <kohai>mmalecki, https://github.com/joyent/node/issues/2455
20:18:03  <mmalecki>!gh joyent/node#2454
20:18:03  <kohai>mmalecki, https://github.com/joyent/node/issues/2454
20:18:04  <ryah>AndreasMadsen: i dont like expanding API
20:18:07  <mmalecki>ryah: ^
20:18:35  <ryah>mmalecki: which one?
20:18:41  <mmalecki>ryah: both
20:19:30  <AndreasMadsen>ryah: Okay, how would you suggest isolating messages from different modules using the same fork channel then?
20:19:35  <ryah>i dont think we can do #2454 - it will require stdio pipes for isolates
20:19:49  <ryah>AndreasMadsen: manually?
20:20:22  <ryah>AndreasMadsen: i dont think node needs to solve that problem
20:20:45  <mmalecki>ryah: and can we do anything to give forks stdout and stderr?
20:21:06  <AndreasMadsen>ryah: not good, I do not have control over that module, and I do not like to end up with module1.isInternal(msg) && module2.isInternal(msg)
20:22:11  <indutny>mmalecki: you can give them stdout and stderr manually
20:22:30  <indutny>mmalecki: by extending `process` object
20:22:57  <AndreasMadsen>ryah: What is you concern I would like to understand it
20:23:10  <mmalecki>indutny: no, I want them to have stdout and stderr just like child processes do
20:23:18  <mmalecki>fork(...).stdout
20:24:01  <indutny>mmalecki: ah, I think you can still emulate that
20:24:07  <indutny>mmalecki: by using sockets
20:24:38  <mmalecki>indutny: I don't want to emulate it, I want to have it in the core
20:24:50  <mmalecki>indutny: and indexzero already found a way to emulate it
20:25:49  * Raynosquit (Write error: Connection reset by peer)
20:26:07  <indutny>mmalecki: I understand you, but how is that related to .fork() ?
20:26:26  <mmalecki>indutny: hm, .fork() result has no .stdout?
20:26:27  <indutny>mmalecki: as I understand it .fork() is just a way to start separate javascript process/thread
20:26:46  <indutny>mmalecki: not usually :)
20:26:56  <indutny>mmalecki: have you seen isolates branch?
20:27:06  <indutny>mmalecki: fork is going to start thread in 0.7.0
20:27:12  <mmalecki>indutny: I just want https://github.com/joyent/node/pull/2442/files to pass
20:27:19  <ryah>mmalecki: why do you want that?
20:27:21  <indutny>mmalecki: sorry, isolates was merged to master
20:27:41  <ryah>mmalecki: the stdout, stderr
20:28:02  <mmalecki>ryah: because spawn has that. it's a convention. plus, it's really easy to achieve.
20:28:16  <indutny>mmalecki: that's how spawn is diffirent from fork
20:28:22  <mmalecki>http://nodejs.org/docs/v0.6.6/api/child_processes.html
20:28:24  <indutny>mmalecki: how would you achive that for threads?
20:28:28  <mmalecki>"Child processes always have three streams associated with them. child.stdin, child.stdout, and child.stderr."
20:28:35  <mmalecki>indutny: pipes?
20:28:41  <ryah>mmalecki: we can change that text if you want :)
20:29:05  <indutny>mmalecki: I think that is sligthly out of concept
20:29:08  <mmalecki>ryah: ok, so why don't you want fork to have these properties?
20:29:15  <ryah>i think isolates should write to the real stdout
20:29:18  <AndreasMadsen>all: could we make the channelSetup public API?
20:29:18  <indutny>mmalecki: it's like having DOM for WebWorkers
20:29:24  <ryah>and therefore child_process.fork process should also
20:29:44  <ryah>AndreasMadsen: no
20:29:56  <indutny>ryah: :)
20:30:20  <mmalecki>ryah: logging output from different forks is important
20:30:29  <ryah>mmalecki: you've got a pipe already
20:31:06  <ryah>i dont see how logging plays into this
20:31:19  <ryah>prefix your messages with the pid/tid
20:31:44  <mmalecki>ryah: fork(...).stdout.pipe(fs.createWriteStream('fork-worker-1.log'))
20:32:00  * Raynosjoined
20:32:02  <ryah>sorry - not going to support that
20:32:04  <indutny>hm... abscence of logging may make development with isolates hard
20:32:06  <mmalecki>it sounds way more sane to me
20:32:38  <indutny>ryah: imagine thread development in C++ without stderr logging
20:32:59  <indutny>ryah: you'll spend much more time on that
20:33:10  <indutny>ryah: I fully agreed with mmalecki about logging
20:33:23  <indutny>ryah: not sure about stdout, but stderr seems to be fine
20:33:23  <ryah>isolates can print to stderr
20:33:28  <indutny>ah
20:33:31  <indutny>cool
20:33:41  <ryah>i dont want a million pipes everywhere
20:33:46  <indutny>agreed
20:34:02  <indutny>but stderr is a necessary one
20:34:55  <ryah>i disagree
20:35:05  * isaacsjoined
20:35:07  <ryah>well - say what you mean more clearly
20:35:16  <ryah>stderr is necessary to what?
20:35:33  <indutny>ryah: to make development/debugging easy
20:35:45  <indutny>ryah: can't they share it?
20:35:47  <ryah>and how is what we have right now not okay?
20:36:00  <indutny>ryah: I don't know what we have right now :D
20:36:08  <ryah>right now: all isolates share stderr
20:36:10  <ryah>which is fine
20:36:18  <indutny>ryah: ah, well that's fine
20:36:31  <ryah>mmalecki wants each isolate to have stderr be a pipe pointing to its parent
20:36:36  <ryah>try debugging that
20:36:44  <indutny>pain in the ass
20:36:46  <indutny>:D
20:36:55  <indutny>for both us and users
20:37:00  <mmalecki>ryah: ok, how about making stdout and stderr optional?
20:37:02  <ryah>mmalecki: look - we want child_process.fork to be similiar to threads
20:37:14  <mmalecki>ryah: what's the performance gain of threads?
20:37:50  <ryah>unknown yet - nothing probably
20:38:00  <indutny>mmalecki: at least - no stray processes
20:38:05  <mmalecki>ryah: then why'd you want it to be like threads?
20:38:26  <ryah>mmalecki: i mean that i want people to think of child_process.fork that way
20:38:32  <ryah>as if it was part of the same program
20:38:44  <ryah>in that sense stdout/stderr should be shared
20:39:04  <mmalecki>ryah: I find multiprocessing model way more appealing
20:39:23  <mmalecki>ryah: so, can't we make it optional? it'd output to fd by default.
20:39:28  <mmalecki>ryah: just like it is now
20:40:19  <ryah>mmalecki: there is an option currently stderrStream
20:40:29  <ryah>it's quite hacky though
20:40:34  <ryah>maybe it's stderrHandle ?
20:40:46  <ryah>i wouldn't mind you making it more usable
20:41:13  <mmalecki>ryah: and is there stdoutStream?
20:41:34  * mralephjoined
20:41:47  <ryah>mmalecki: yep
20:41:59  <mmalecki>indutny: mraleph is in da house
20:42:12  <mmalecki>ryah: ok. can you point me to some code, just to get me started?
20:42:17  <ryah>mraleph: thanks for getting that hash seed stuff in
20:42:57  * AndreasMadsenquit (Remote host closed the connection)
20:43:13  <indutny>mmalecki: thanks but I'm going to sleep now
20:43:15  <mraleph>ryah: you should thank Erik, I did not do much if anything. I also did not manage to review his backport yet.
20:43:16  <indutny>ttyl everyone!
20:43:20  <ryah>mmalecki: https://github.com/joyent/node/blob/42281124d4b83b0e99baf5d56b696ef242399f51/lib/child_process.js#L438-460
20:43:25  <ryah>indutny: night
20:43:55  <mmalecki>indutny: night
20:45:13  <mmalecki>ryah: hm, I see. so this way we'd be able to have .std{out,err} on forks?
20:45:58  <ryah>mmalecki: yes
20:46:10  <ryah>mmalecki: it's not very user friendly though - so expect a little pain
20:46:11  <mmalecki>also, it'd be cool to have https://github.com/joyent/node/blob/42281124d4b83b0e99baf5d56b696ef242399f51/lib/child_process.js#L56-67 moved out of this module, to util maybe?
20:46:29  <mmalecki>ryah: ok, I'll try making it less painful, thanks
20:46:30  <ryah>mmalecki: i dont want that public
20:46:50  <mmalecki>ryah: maybe util._mergeOptions?
20:47:00  <mmalecki>I'm pretty sure I've seen that somewhere
20:47:13  <mmalecki>I mean, in different module
20:47:26  <ryah>mmalecki: also try https://github.com/joyent/node/blob/42281124d4b83b0e99baf5d56b696ef242399f51/test/simple/test-process-wrap.js
20:47:47  <ryah>mmalecki: underscored would be fine - it should have a comment that makes it clear that it isn't public
20:48:26  <mmalecki>ryah: ok, I'll do that and DRY other modules to use that
20:49:03  <mmalecki>ryah: something about dying in fire should make it, right?
20:54:23  * mrb_bkjoined
20:59:06  * dapquit (Ping timeout: 240 seconds)
21:05:09  * dapjoined
22:03:22  * AndreasMadsenjoined
22:03:39  * AndreasMadsenquit (Remote host closed the connection)
22:03:48  * bnoordhuisjoined
22:34:28  <ryah>win7 without snapshot
22:34:28  <ryah>Started node 100 times in 10812 ms. 108.12 ms / start.
22:34:28  <ryah>Started node 100 times in 10438 ms. 104.38 ms / start.
22:34:28  <ryah>Started node 100 times in 10500 ms. 105 ms / start.
22:34:28  <ryah>win7 snapshot
22:34:31  <ryah>Started node 100 times in 7344 ms. 73.44 ms / start.
22:34:33  <ryah>Started node 100 times in 7344 ms. 73.44 ms / start.
22:34:35  <ryah>Started node 100 times in 7531 ms. 75.31 ms / start.
22:39:05  <mjr_>Where's your benchmark for win7 "with DoS fix that everyone is freaked out about" vs. without?
22:39:19  * paddybyerspart
22:39:38  * paddybyersjoined
22:42:47  <TooTallNate>ryah: ping
22:45:32  <TooTallNate>i'm hoping one of the windows people would know what this means:
22:45:32  <TooTallNate>https://gist.github.com/8ed74c48b77823826908
22:45:56  <TooTallNate>i'm trying to build a simple module (i've built it before in the past)
22:54:03  <TooTallNate>I guess this is the first time i'm trying to build using "gyp_addon"
23:16:43  <TooTallNate>ok i figured it out :\
23:24:11  <TooTallNate>does anyone know how to get the gyp build configuration?
23:24:15  <TooTallNate>as a variable in the gyp file?
23:24:21  <TooTallNate>i.e. "Release" or "Build"?
23:25:41  <TooTallNate>ryah: ^ ?
23:27:43  * `3rdEdenquit (Quit: ZZZZzzz)
23:53:54  <bnoordhuis>TooTallNate: why would you need that?
23:54:31  <bnoordhuis>btw, the errors you're getting probably means the v8 symbols aren't exported properly
23:54:31  * mikealjoined
23:56:32  <TooTallNate>bnoordhuis: https://github.com/TooTallNate/node/commit/43212f4de33bc995be1c13fa768b3ef1e0e3fac1
23:57:13  <TooTallNate>bnoordhuis: but if you can think of a better way to do that then I'm open
23:57:26  <bnoordhuis>TooTallNate: <(SHARED_INTERMEDIATE_DIR) ?
23:58:00  <bnoordhuis>oh wait, that's a pre-built static library you're linking to?
23:58:24  <TooTallNate>right, the node.lib file
23:58:29  <TooTallNate>that contains the V8 symbols :)
23:59:38  <bnoordhuis>don't you want to generate that at compile/link time?