00:01:45  * `3rdEdenquit (Quit: ZZzzzz)
00:21:13  * sh1mmerquit (Ping timeout: 255 seconds)
00:24:57  * sh1mmerjoined
00:25:35  * mikealquit (Quit: Leaving.)
00:36:58  * mikealjoined
00:52:04  * brsonjoined
01:21:36  * brsonquit (Quit: leaving)
01:41:58  * sh1mmerquit (Quit: sh1mmer)
02:46:58  * igorziquit (Ping timeout: 258 seconds)
02:48:55  * isaacsquit (Quit: isaacs)
02:49:34  * sh1mmerjoined
02:52:32  * sh1mmerquit (Client Quit)
03:52:48  * pquernaquit (Changing host)
03:52:48  * pquernajoined
04:19:43  * sh1mmerjoined
05:00:25  * TooTallNatequit (Quit: Linkinus - http://linkinus.com)
05:18:01  * sh1mmerquit (Quit: sh1mmer)
06:04:05  * mralephjoined
06:28:56  * mralephquit (Quit: Leaving.)
07:05:42  * paddybyersjoined
07:33:18  <indutny>benvie: yay!
07:33:21  <indutny>oops
07:33:22  <indutny>sorry
07:33:30  <indutny>bnoordhuis: ^
08:06:14  * mikealquit (Quit: Leaving.)
08:59:53  * mikealjoined
09:02:48  * mikealquit (Client Quit)
09:49:08  <benvie>yay me too =(
10:07:31  <indutny>benvie: yay
11:53:02  * txdvquit (Read error: Connection reset by peer)
11:53:40  * txdvjoined
12:32:08  * bnoordhuisjoined
12:43:26  * AvianFluquit (Ping timeout: 244 seconds)
12:48:54  <indutny>bnoordhuis: heya!
12:49:13  <indutny>bnoordhuis: https://github.com/indutny/node/commit/3169fb5c8090a6169abc8623cab53b4dea692993
12:57:17  * AvianFlujoined
12:57:32  <indutny>bnoordhuis: I think uv_async_send(handle, msg) can be easily implemented with ngx_queue and uv_mutex_t
13:21:15  <indutny>ryah: yt?
13:33:55  <bnoordhuis>indutny: the common case for uv_async_send() is to wake up an event loop, nothing more
13:34:30  <bnoordhuis>if you need to pass messages back and forth, you can easily build something on top of uv_async_send()
13:34:40  <indutny>bnoordhuis: ok ok, I already built one :D
13:34:53  <indutny>bnoordhuis: and it still segfaults randomly, have you seen my gist?
13:35:08  <bnoordhuis>indutny: looking at it now
13:35:12  <indutny>bnoordhuis: https://gist.github.com/ed5b063b93745de089a6
13:35:14  <indutny>bnoordhuis: k
13:35:35  <bnoordhuis>indutny: test it with a debug build
13:35:54  <indutny>bnoordhuis: fd > 0 assertion
13:36:16  <indutny>at StreamWrap::ReadStart
13:36:45  <indutny>bnoordhuis: oh, I've an idea
13:36:57  <bnoordhuis>indutny: that's probably the real cause
13:37:08  <bnoordhuis>release builds have assertions turned off
13:37:27  <indutny>bnoordhuis: probably I'm misusing child_process.fork
13:37:36  <indutny>bnoordhuis: I extended it, but it doesn't work fully
13:37:59  <indutny>so far
13:38:21  <bnoordhuis>that's right
13:38:34  <indutny>bnoordhuis: probably it tries to open fd=-1 stream
13:38:40  <indutny>bnoordhuis: and read data from it
13:39:30  <bnoordhuis>indutny: https://github.com/joyent/libuv/commit/5cc6090 <- still needs to be implemented in node
13:41:16  <indutny>bnoordhuis: yeah, I'll wait for that ;)
13:41:21  <indutny>bnoordhuis: to port _debugger to that API
13:42:54  <indutny>bnoordhuis: do you think ryan will be online today?
13:43:14  <indutny>I think some commits from my branch can already be ported to master
13:43:54  <bnoordhuis>indutny: not sure but i suppose so
15:02:03  * AndreasMadsenjoined
15:03:35  * piscisaureus_joined
15:12:44  <piscisaureus_>anyone seen mraleph around
15:12:46  <piscisaureus_>?
16:06:50  <AndreasMadsen>Why is it we don't support message namespaces in the IPC (child_process.fork). I'm have multiply modules there are using the same IPC channel, and are conflicting.
16:07:39  <AndreasMadsen>^ I'm talking about userland modules
16:17:18  <bnoordhuis>AndreasMadsen: eh?
16:17:27  <AndreasMadsen>bnoordhuis: hi
16:18:18  <AndreasMadsen>Suppose you would make a dnode like module, there don't use TCP but the IPC channel given by child_process.fork.
16:19:10  <AndreasMadsen>Then all other modules using just the process.on('message') would receive a lot of callback noise.
16:20:13  <AndreasMadsen>I think we should support namespaces in process.send so you can do process.send(message, 'dnodeIPC', /*handler*/).
16:21:11  <AndreasMadsen>and then receive on some sort of process.on('message', function (message, namespace, /* handle *))
16:21:47  <bnoordhuis>AndreasMadsen: i don't know dnode, when would you have more than one process.on('message') listener?
16:22:02  <bnoordhuis>and wouldn't it be the responsibility of dnode to route the messages?
16:22:59  <AndreasMadsen>bnoordhuis: We are already seeing this in the core cluster module, where the online cmd is send to the master.
16:23:18  <AndreasMadsen>If i wan't to do IPC between master and worker it going to be a mess.
16:24:05  <bnoordhuis>i suppose that's true
16:24:15  <AndreasMadsen>This has been solve in the upcoming cluster2, but the issue won't change in userland
16:26:43  <AndreasMadsen>dnode is a protocol there allow you to run a function on the server from a client browser, it takes care of all the HTTP request stuff. In the case it just between master and worker.
16:35:59  <AndreasMadsen>note: the cluster2 solution is just internal usage, using some prefix. I suggest that we make a public API there allow a userland to use unique namespace/prefix (properly there npm module name). The uniqueName would then be a function argument in the message listener, makeing it easy to filter out messages.
17:18:35  * mralephjoined
17:20:08  <indutny>mraleph: oya /cc piscisaureus_
17:23:28  <mraleph>piscisaureus_: what's up?
17:24:32  * dapjoined
17:25:17  <piscisaureus_>mraleph: I am still struggling with the serializer
17:25:38  <piscisaureus_>mraleph: I can't really detect the type of a HashTable from
17:25:49  <piscisaureus_>er, during the serialization process
17:26:23  <piscisaureus_>mraleph: so could I give all HashTable implementations their own map type?
17:26:49  <piscisaureus_>or does that have crazy consequences?
17:29:16  * bradleymeckjoined
17:44:57  * sh1mmerjoined
18:12:01  * TooTallNatejoined
18:23:26  <ryah>yo
18:24:29  <creationix>yoyo
18:24:35  <TooTallNate>yoyoyo
18:24:38  <indutny>ryah: yoyoyoyo
18:24:46  <indutny>morning
18:25:14  <TooTallNate>indutny: isn't it like late for you?
18:25:38  <ryah>indutny: hey i saw your patch
18:25:46  <ryah>indutny: going to review it right now
18:25:47  <indutny>TooTallNate: 1am
18:25:50  <ryah>been away this weekend
18:25:53  <indutny>ryah: great! I'll be only for now
18:25:58  <indutny>oops
18:26:01  <indutny>s/only/online
18:26:03  <TooTallNate>indutny: haha, good evening :D
18:26:09  <indutny>TooTallNate: :)
18:26:44  <indutny>ryah: some commits to js side are not ready for pulling
18:26:57  <indutny>ryah: but I added them to PR just to show how cool it works
18:26:57  <indutny>:D
18:27:20  <ryah>indutny: one problem is that im in the middle of adding child_process.fork({ thread: true }) wrapper right now
18:27:24  <ryah>with a pipe for ipc
18:27:45  <indutny>ryah: np, just don't pull lib/_debugger and lib/child_process
18:27:52  <indutny>ryah: I'll port _debugger after your changes
18:28:03  <indutny>ryah: my main goal was C++ side
18:28:52  <ryah>indutny: is it okay if i land my shit first?
18:28:57  <ryah>i can do that today
18:29:15  <ryah>it's going to require a somewhat hairy rebase from you
18:29:35  <ryah>but i think the DebuggerIsolate stuff will be the same
18:29:36  * dshaw_joined
18:29:54  <indutny>ryah: heh, ok - np. I'll go sleeping now then
18:30:05  <indutny>ryah: can you comment on my PR when it'll be ready?
18:30:11  <ryah>indutny: yes
18:30:13  <indutny>just to notify me
18:30:16  <indutny>ryah: thanks!
18:31:03  <ryah>bnoordhuis, piscisaureus_ - back on the regular meeting schedule today. 30 minutes on skype
18:51:27  * `3rdEdenjoined
18:52:01  * AndreasM_joined
18:52:13  * AndreasM_quit (Client Quit)
18:52:26  * AndreasM_joined
18:56:21  * igorzijoined
18:57:54  <igorzi>ryah bnoordhuis piscisaureus_: call in 3 min?
18:58:03  <bnoordhuis>igorzi: yep
18:59:42  <bnoordhuis>piscisaureus_: call
19:01:32  <piscisaureus_>bnoordhuis: ryah: I am here
19:02:33  * isaacsjoined
19:03:20  <bnoordhuis>piscisaureus_: you're on HN! http://news.ycombinator.com/item?id=3420544
19:05:03  * Raynosquit (Read error: Connection reset by peer)
19:06:06  * Raynosjoined
19:06:35  <indutny>any openstreetmap fans here?
19:06:47  <indutny>moved http://mapchat.me/ to it
19:14:15  * CoverSlidequit (Quit: leaving)
19:16:54  * mikealjoined
19:23:45  * mikealquit (Quit: Leaving.)
19:29:21  * mikealjoined
19:41:21  * AvianFluquit (Ping timeout: 248 seconds)
19:43:52  <ryah>i love the new build system
19:44:09  <ryah>every time i have to use v0.6 i get really annoyed
19:46:41  * AndreasM_quit (Remote host closed the connection)
19:50:23  * CoverSlidejoined
19:51:01  <CoverSlide>+
19:56:00  * AvianFlujoined
19:56:18  <TooTallNate>ryah: speaking of gyp, do you have any thoughts on this? http://groups.google.com/group/gyp-developer/browse_thread/thread/f1c0b2e542cc9521
19:57:21  <bnoordhuis>hah, i know what you mean, ryah
19:58:23  <bnoordhuis>TooTallNate: you'd have to determine the cpu arch you're running on, then it's a simple matter of adding condition clauses
19:58:36  <bnoordhuis>s/running on/compiling for/
19:59:35  <TooTallNate>bnoordhuis: have you done anything with .S files and gyp?
19:59:35  <ryah>what ben said
20:00:00  <ryah>i think gyp might automaticallly take care of asm files
20:00:14  <TooTallNate>just include them in the list of source files then?
20:01:55  <ryah>TooTallNate: yeah
20:02:48  <AndreasMadsen>ryah: what was that cluster.master.send thing?
20:03:06  <TooTallNate>ok i'll mess around with that
20:03:54  * mikealquit (Quit: Leaving.)
20:04:33  <ryah>TooTallNate: have you seen https://github.com/joyent/node/blob/master/tools/addon.gypi ?
20:04:44  <ryah>TooTallNate: also https://github.com/joyent/node/blob/master/tools/gyp_addon
20:07:05  <CIA-111>node: Ryan Dahl master * r557fc39 / (18 files in 6 dirs): Upgrade V8 to 3.8.4 - http://git.io/W9ssiA
20:10:40  <indutny>woot, another day - another v8 update
20:10:40  <indutny>:D
20:11:01  * CoverSlidequit (Quit: leaving)
20:12:50  * CoverSlidejoined
20:29:49  * dannycoatesjoined
20:38:50  * travis-cijoined
20:38:50  <travis-ci>[travis-ci] joyent/node#173 (master - 557fc39 : Ryan Dahl): The build is still failing.
20:38:50  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/c123ac0...557fc39
20:38:50  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/474272
20:38:50  * travis-cipart
20:40:18  * isaacsquit (Quit: isaacs)
20:51:55  <AndreasMadsen>bnoordhuis: I have made a patch for the namespace in .fork IPC : https://github.com/joyent/node/pull/2458
20:52:56  <AndreasMadsen>ryah: Is is also intended to replace the internalMessage patch introduced in cluster2: https://github.com/joyent/node/pull/2388
20:53:35  <AndreasMadsen>It much easier to userland this way not to worry abut a NODE_ prefix
20:53:43  <AndreasMadsen>s/abut/about
20:55:10  * benviequit
20:57:47  * AvianFluquit (Ping timeout: 240 seconds)
21:00:35  * sh1mmerquit (Quit: sh1mmer)
21:03:43  * AndreasMadsenquit (Remote host closed the connection)
21:05:21  * AvianFlujoined
21:10:23  <bradleymeck>is it possible to have fork spawn up an older version of node (or any command besides the same version of node in general)
21:11:04  <TooTallNate>bradleymeck: there's a pull request open to do that
21:11:13  <TooTallNate>by mmalecki i think ^
21:11:25  <TooTallNate>but no way currently
21:11:33  <bradleymeck>node-fork it is then.
21:23:43  * isaacsjoined
21:24:56  <ryah>DrPizza: what's your email address?
21:25:07  <DrPizza>[email protected]
21:25:33  <ryah>TooTallNate: what's your email address?
21:25:44  <ryah>nm - got it
21:25:49  <TooTallNate>ok
21:26:10  <ryah>DrPizza, TooTallNate, bnoordhuis: are there any GYP issues we want to have chrome people look at?
21:26:21  <ryah>i have a friend there that is offering to lend us some time
21:26:23  <TooTallNate>the 32-bit OSX build for 1
21:26:27  <DrPizza>yes, almost certainly
21:26:29  <piscisaureus_>mingw support :-)
21:26:30  <ryah>64bit
21:26:40  <DrPizza>ryah: I will do my utmost to check the current state of play tonight
21:26:41  <TooTallNate>ryah: ya, that's what I meant
21:26:52  <bnoordhuis>nothing from me
21:26:58  <DrPizza>ryah: to build current gyp + current node
21:27:01  <DrPizza>and see what gripes there are
21:27:33  <piscisaureus_>I also remember there was some issue with relative/absolute paths
21:27:49  <ryah>mingw support is a good one
21:27:54  <ryah>then we could get rid of the makefiles in libuv
21:27:56  <DrPizza>piscisaureus_: yes, that is one thing that I suspect is still an issue
21:28:14  <piscisaureus_>ryah: DrPizza: also check the state of https://github.com/joyent/node/issues/2119#issuecomment-2793433
21:28:21  <DrPizza>there are some quirks in the .vcproj files it produces that might still be outsatnding
21:28:25  * mralephquit (Quit: Leaving.)
21:28:30  <DrPizza>I just haven't had a chance to look for several months
21:29:04  <DrPizza>piscisaureus_: looks eminently plausible
21:29:30  <ryah>i think the 64 bit build on OSX is on our side
21:29:41  <ryah>someone just needs to undo all those hardcoded ia32
21:30:01  <ryah>(there are several)
21:31:37  <bradleymeck>is there still a binding to close() exposed somewhere in 0.6 i know you used to be able to get it from the net bindings
21:32:07  <ryah>bradleymeck: not directly
21:32:23  <ryah>it all goes through libuv now
21:32:29  <bradleymeck>mmm guess ill just go through c++ then
21:33:04  <ryah>what are you doing?
21:33:23  <bradleymeck>shimming .fork stuff cause we need 0.6 to talk to 0.4
21:33:39  <ryah>hm ok
21:33:48  <ryah>anything we can help with?
21:34:19  <bradleymeck>mmalecki has a couple of open pull requests, other than that im just resolving the differences of stolsma's node-fork and core right now
21:34:53  <bradleymeck>the commands one is brutal since we are basically using the .fork as an IPC protocol, but doable with a shim
21:36:27  <ryah>is node-fork a fork binding?
21:36:38  <ryah>fork(2)
21:37:14  <ryah>you guys are going to die a horrible fire if you bind fork
21:37:21  <ryah>just warning you
21:37:36  <ryah>it is not what you want
21:37:58  <bradleymeck>ryah we are not binding unix fork
21:38:04  <ryah>oh okay
21:38:11  <bradleymeck>we are shimming the child_process.fork
21:38:16  <ryah>i see
21:38:18  <ryah>cool
21:42:20  <TooTallNate>ryah: just plopping .S files into the source_files list doesn't work
21:42:32  <TooTallNate>the resulting makefile becomes invalid
21:42:45  <TooTallNate>make: *** No rule to make target `out/Debug/obj.target/libffi/src/darwin64.o', needed by `out/Debug/libffi.a'. Stop.
21:42:57  <TooTallNate>where 'darwin64.S' was the input file :(
21:48:47  * dshaw_quit (Ping timeout: 240 seconds)
21:49:40  <TooTallNate>so maybe you could have your friend look into that :p
21:51:21  * dshaw_joined
21:54:26  <bnoordhuis>TooTallNate: you probably have to add a rule + action that tells gyp how to assemble .S files
21:56:01  <bnoordhuis>TooTallNate: https://github.com/joyent/node/blob/c123ac0/tools/gyp/test/rules/src/subdir4/build-asm.gyp
21:56:59  <TooTallNate>bnoordhuis: so it's already supported then?
21:57:06  <TooTallNate>i wonder why it's not working :\
21:57:28  <TooTallNate>or do I need to add that example rule to my script?
21:57:43  <bnoordhuis>TooTallNate: yes. or rather, something like it
21:58:08  <TooTallNate>bnoordhuis: ok thanks, i'll give it a try
22:05:14  * dshaw_1joined
22:05:38  * dshaw_quit (Read error: No route to host)
22:05:50  <TooTallNate>bnoordhuis: nice, that seemed to get it compiling at least, Bus Error: 10 on the test executable though
22:07:04  <bnoordhuis>TooTallNate: that sounds more like something on your end
22:07:17  <TooTallNate>ya that's what I figured, thanks for the help
22:07:31  <bnoordhuis>my pleasure
22:13:10  * piscisaureus__joined
22:14:40  <piscisaureus_>ryah: do we have any special security features to avoid "prototype override" attacks?
22:14:57  <piscisaureus_>ryah: like requesting http://mysite.com/?__proto__=42
22:15:25  <TooTallNate>piscisaureus_: probably not
22:15:55  <TooTallNate>but in that case above, why would that be a problem?
22:16:18  * piscisaureus_part
22:16:30  * piscisaureus_joined
22:17:08  <piscisaureus_>TooTallNate: well if the user calls headers.hasOwnProperty then the server will crash
22:17:15  <piscisaureus_>if __proto__ or hashOwnProperty has been overridden
22:17:24  <bradleymeck>TooTallNate, say you override something to have toString be a non-callable it can blow things up
22:17:25  <TooTallNate>piscisaureus_: we *do* have a guard for that particular case
22:17:35  <TooTallNate>the hasOwnProperty() case
22:17:44  <piscisaureus_>TooTallNate: only inside node itself right?
22:17:52  <TooTallNate>well, ya
22:17:58  <TooTallNate>you were thinking on some global level?
22:18:05  <TooTallNate>would that even be possible?
22:18:41  <bradleymeck>TooTallNate, its possible if you make it so __proto__ never works :-/
22:18:42  <piscisaureus_>paddybyers: no
22:18:59  <TooTallNate>bradleymeck: that would be very bad for me :p
22:19:12  <piscisaureus_>paddybyers: but Eric Corry is like "why do you want to fix the hash collision issue while you don't even fix that"
22:19:45  <paddybyers>piscisaureus_: eh?
22:20:39  <bradleymeck>piscisaureus_, the problem is that JSON.parse should not use the magic __proto__ property while parsing
22:21:08  <bradleymeck>v8 fixed setters / getters from prototypes on literals for a similar reason
22:21:19  <bradleymeck>but the left JSON.parse kinda sucky
22:21:42  <bradleymeck>so unless we use a non-standard JSON.parse, we are boned
22:23:35  <bradleymeck>which at this rate it might be a good idea to just shim JSON.parse anyway from the way v8 guys are dealing with us :-/
22:25:16  <piscisaureus_>not so aggrassive
22:25:20  <piscisaureus_>they are actually working with us
22:28:20  * ErikCorryV8joined
22:32:15  <bradleymeck>piscisaureus_, I just haven't heard many good things, getting tense, sorry
22:35:50  * paddybyersquit (Quit: paddybyers)
22:51:15  <piscisaureus_>einaros: yt?
23:07:39  <ryah>TooTallNate: i'll leave you to reply to evmar
23:07:51  <TooTallNate>ok, i'm on it
23:08:52  <ryah>god. this parser bug is going to kill me
23:11:59  <piscisaureus_>ryah: did you already extract a full http requests from any of the cores?
23:13:43  * dshaw_1changed nick to dshaw_
23:16:59  <ryah>piscisaureus_: no
23:17:50  <ryah>it has to do with how we're managing memory across packets
23:17:54  <ryah>im almost certain
23:24:03  <ryah>man always_inline really pisses me off
23:25:55  <piscisaureus_>ryah: in that case maybe you should attempt to recreate the issue by shooting random http packets to a http server
23:26:07  <piscisaureus_>slowly and interleaved
23:31:09  <bnoordhuis>ryah: you can remove always_inline, gcc 4.5 doesn't inline it anyway :/
23:40:03  <piscisaureus_>bnoordhuis: i think it should though
23:40:16  <piscisaureus_>compile with -Winline to find out why it doesn't
23:45:29  * piscisaureus__quit (Quit: ~ Trillian Astra - www.trillian.im ~)
23:46:34  <ryah>okay
23:48:52  <ryah>is this inlining even measurable?
23:49:02  <ryah>it makesdebugging it imposible
23:49:11  <ryah>s/impossible/difficult
23:50:05  <ryah>i find it hard to imagine that call overhead is at all measurable in our region of the latency spectrum
23:56:20  <bnoordhuis>no, it was a convenience thing - so i wouldn't have to prefix every member variable with self-> :)
23:57:14  <bnoordhuis>(i kid, i kid - remove it if you want)