00:02:23  <bnoordhuis>piscisaureus_: https://github.com/joyent/libuv/blob/master/src/win/winapi.c#L29 <- can those globals conflict when the main program has globals with the same name?
00:02:36  <bnoordhuis>iow, shouldn't they have a uv__ prefix?
00:03:09  <bnoordhuis>that's https://github.com/joyent/libuv/blob/4ae40b6/src/win/winapi.c#L29 for posterity's sake
00:04:43  <ryah>alright im away at office hours and/or writing my paper
00:04:48  <ryah>see you tomorrow
00:07:26  <bnoordhuis>have fun, ryah
00:10:18  <piscisaureus_>bnoordhuis: re conflict
00:10:31  <piscisaureus_>bnoordhuis: the likelihood of a conflict is pretty small eh?
00:10:44  <piscisaureus_>but they could, in theory
00:11:58  <piscisaureus_>bnoordhuis: when did we start caring about posterity?
00:12:40  <bnoordhuis>piscisaureus_: ryah always complains when i post links to blob/master :)
00:12:45  <piscisaureus_>oh
00:12:48  <piscisaureus_>he never does that to me
00:13:01  <piscisaureus_>but
00:13:03  <bnoordhuis>yeah well, you're not his wage slave
00:13:08  <piscisaureus_>:-)
00:13:32  <piscisaureus_>bnoordhuis: how do you get the posterous url
00:13:41  <piscisaureus_>is there a nice way to do that?
00:15:16  <bnoordhuis>piscisaureus_: press 'y' and snip out the last 33 chars of the hash
00:15:31  <bnoordhuis>i have a firefox javascript thingy that does it for me
00:25:54  <piscisaureus_>installing Microsoft(r) Visual Node.JS (tm) Ultimate Pro For Windows PCs SP1.msi
00:47:01  * indexzeroquit (Quit: indexzero)
00:47:59  <igorzi>piscisaureus_: yep, lgtm
00:51:27  <benvie>working on fixing up node ffi for 0.6 and windows
00:52:26  <benvie>I compiled libffi using the mingw->msvc route without issue
00:58:55  <CIA-95>node: Bert Belder v0.6 * r3e696d1 / (src/node_buffer.h src/node_object_wrap.h):
00:58:55  <CIA-95>node: Windows: make Buffer and ObjectWrap available to compiled extensions
00:58:55  <CIA-95>node: Closes GH-2036 - http://git.io/9LO2AQ
00:59:23  <benvie>aw yeaah
01:00:22  <benvie>you casually invent a whole new FFI interface like it ain't no thang
01:01:04  <piscisaureus_>benvie: what's node+ffi for?
01:01:57  <benvie>bindings (more heavy duty bindings) from libffi to node
01:02:37  <benvie>libffi is what all the other high level languages use for mapping native access to dynamic script access
01:03:22  <piscisaureus_>benvie: so you're working on something similar to js-ctypes but for v8?
01:03:26  <benvie>node-ffi is out of date, never worked on windows, and did a poor job of mapping the data
01:03:34  <benvie>well I'm just updating it
01:03:49  <benvie>the stuff you've done already does a lot of it already
01:04:10  <benvie>and especially on windows, where you get pretty predictable results
01:04:34  <benvie>libffi's value shows up in places with all sorts of crazy different calling methods
01:04:39  <benvie>but it works on everything including iOS
01:05:12  <benvie>at this point, with that push just going live, libffi is almost a moot point for windows
01:05:30  <benvie>although not quite, it brings the dynamic access all the way into js
01:07:37  <piscisaureus_>It's nice to have I guess
01:07:49  <piscisaureus_>although people can easily defeat node's purpose by making blocking calls
01:08:07  <piscisaureus_>but it makes a good playground for experimenting with native apis
01:08:14  <benvie>yeah libffi does that now and I'm not porting that
01:08:20  <benvie>it's not necessary
01:09:23  <benvie>although er
01:09:33  <benvie>I mean yeah people can then just all up the OS call to do it hah
01:09:42  <benvie>but I'm not building it into the extension itself like node-ffi does
01:09:57  <piscisaureus_>ah ok
01:10:02  <benvie>it stops the event loop while receiving data
01:10:10  <benvie>which is probably half the reason it's 5x as slow as native access
01:10:36  <benvie>the other half being the suboptimal data translation
01:11:54  <benvie>tooTallNate made a whole interface for all the cocao stuff so windows needs to represent
01:12:18  <piscisaureus_>the problem on windows is integrating with the gui message pump
01:12:41  <piscisaureus_>unless you want to poll every 1 ms for new gui events there's not much you can do
01:13:38  <piscisaureus_>well the other option would be hacking into undocumented windows internals (even more than we do now) or do other crazy stuff
01:13:52  <piscisaureus_>deferring all gui management to some thread
01:14:26  <benvie>yeah that's a whole second project on top of this one. Although I have a bit of experience it now at the C++ level doing varioud experiments with trying to get Chrome and Node as close to running together as possible. At this point it'll be easier for me to figure to get it completely in the same process now than my attempts at trying to figure out all the spots in chromium where V8 or something
01:14:26  <benvie>else saw through my tricks
01:15:12  <benvie>running two separate V8's doesn't work and compiling chromium against node proved past my annoyance factor
01:16:26  <piscisaureus_>benvie: I'm sorry but you completely lost me in the last 3 messages.
01:17:50  <benvie>hah sorry, I mean I was trying to get the chromium browser (thew web rendering part of uit) to compile against node/v8 in node instead of its own v8, so that I could run the Chromium UI process on the primary Node process
01:18:07  <benvie>combining the event loops as you mentioned above
01:18:32  <piscisaureus_>aaah ok
01:19:01  <benvie>both implementations have v8 at the center of the show
01:19:09  <piscisaureus_>I think the valid approach is to wait for node isolates to land
01:19:18  <benvie>yeah absolutely
01:20:23  <piscisaureus_>then you'd need to hack libuv so you can run thread with a GetMessage based reactor instead of GetQueuedCompletionStatus
01:20:27  <benvie>my biggest success has been in efficiently and transparency mirroring separate JS contexts (along with host objects like the DOM) over sockets, which will be useful in for that
01:20:41  <benvie>well actually
01:21:19  <benvie>then trimmed down version of Chrome I use is already set up so you can control the event loop
01:21:33  <benvie>you simply have to run the message loop into a timely fashion
01:21:48  <benvie>the callback for it
01:22:44  <benvie>so going from a Node pushing to the UI, is possible. Though of course node isn't set up to assume it has to always be turning a loop regardless of activity
01:23:22  <piscisaureus_>so, you're polling
01:23:27  <piscisaureus_>that's probably fine for gui
01:23:38  <benvie>most of the processing heavy stuff is actually runnnig in other threads these days anyway
01:23:47  <benvie>only the final painting and dispating is on the UI thread
01:24:00  <benvie>since you have 3d engines and this and that doing stuff
01:24:07  <piscisaureus_>the only thing is
01:24:45  <piscisaureus_>what's the point of ripping out the js component from a browser and then bolting on the ui of the same browser
01:24:51  <benvie>so the main thing is to be responsive to user actions, and probably some sort of secondary idle painting loop
01:25:02  <piscisaureus_>to me chrome - v8 + v8 = chrome
01:25:11  <benvie>well it was more from the angle of
01:26:05  <benvie>first off it's the browser freed out of the browser. It's Chromeless Chrome, and it makes an absolutely amazing tool for building UIs and programs
01:26:52  <piscisaureus_>ah ok
01:27:04  <piscisaureus_>now I have to reboot - bbl
01:27:06  <benvie>the structure that node uses is way more suited toward being the "brains" of a desktop program
01:27:26  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
01:31:59  * piscisaureus_joined
01:41:37  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
01:46:27  * mikealquit (Quit: Leaving.)
01:48:32  <bnoordhuis>piscisaureus___: https://github.com/bnoordhuis/libuv/compare/mutexes <- srwlock fallback
01:50:17  * AvianFluquit (Ping timeout: 244 seconds)
01:51:17  * AvianFlujoined
01:52:58  * piscisaureus_joined
01:53:46  <igorzi>piscisaureus_: if someone creates a node process without stdout, do you think stdout.write should fail or no-op?
01:54:10  <piscisaureus_>no-op i think
01:54:25  <piscisaureus_>but how can a process have no stdout at all?
01:54:58  <piscisaureus_>igorzi: it also should mirror what happens on unix
01:55:48  <igorzi>piscisaureus_: set all stdio handles to INVALID_HANDLE_VALUE and set STARTF_USESTDHANDLES
01:57:58  <piscisaureus_>igorzi: we shouldn't allow libuv users to do this normally
01:58:26  <igorzi>piscisaureus_: right, but node could also be started by some other process
01:58:33  <piscisaureus_>true
01:58:43  <piscisaureus_>I think currently we fail
01:58:48  <piscisaureus_>that's fine for now I think
01:59:15  <igorzi>piscisaureus_: if that's the case.. should we no-op stdio operations or fail?
01:59:37  <piscisaureus_>I think fail
01:59:58  <piscisaureus_>igorzi: is someone having issues with it atm?
02:00:37  <igorzi>iisnode
02:00:47  <piscisaureus_>aha
02:01:06  <igorzi>i don't have all the details yet.. but i'm trying to figure out if it's a bug in node or iisnode
02:01:36  <piscisaureus_>I think on unix it is not possible to have no stdio
02:01:47  <piscisaureus_>unless the parent also has no stdio
02:02:16  <piscisaureus_>let me see what forever does
02:02:24  <piscisaureus_>it deamonizes processes
02:02:46  <piscisaureus_>igorzi: but the bottom line is, it is really dumb to have no stdio
02:02:53  <piscisaureus_>no stdin is fine of course
02:02:57  <rmustacc>piscisaureus_: When most folks daemonize they dup /dev/null over the stdio fds.
02:03:05  <piscisaureus_>yeah
02:03:14  <piscisaureus_>that's what iisnode should do I think
02:03:26  <piscisaureus_>CreateFile('nul');
02:03:29  <igorzi>ok, so it sounds like iisnode bug
02:03:31  <piscisaureus_>^-- pass that
02:04:21  <piscisaureus_>we should just treat it as if the parent passed unusable handles
02:04:29  <piscisaureus_>or just random numbers
02:04:33  <piscisaureus_>which is, fail
02:05:04  <piscisaureus_>igorzi: but really for iisnode you probably want to attach some log file to stdout
02:05:19  <piscisaureus_>having no way of reporting errors sounds pretty painful
02:05:28  <rmustacc>That's what SMF does. It sets stdout/stderr to a service log file.
02:05:45  <igorzi>piscisaureus_:yeah, it's already there.. but people have the option to turn the logging off
02:06:08  <piscisaureus_>igorzi: in that case you should pass CreateFile('nul') i think
02:06:14  <piscisaureus_>same for stdin
02:06:48  <igorzi>ok, thanks
02:23:50  * bnoordhuisquit (Ping timeout: 260 seconds)
02:31:10  * dapquit (Quit: Leaving.)
02:56:14  * brsonquit (Quit: leaving)
03:00:04  * indexzerojoined
03:00:11  * indexzeroquit (Client Quit)
03:01:36  * indexzerojoined
03:17:53  * mikealjoined
03:35:28  * luxigoquit (Ping timeout: 240 seconds)
03:46:19  * isaacsquit (Quit: isaacs)
04:25:21  * AvianFluquit (Remote host closed the connection)
05:31:47  <indutny>heya
05:31:54  <indutny>good morning europe
05:31:59  <indutny>good evening USA
06:40:28  * paddybyersjoined
07:23:20  * indexzeroquit (Quit: indexzero)
08:12:54  * kuebkjoined
08:28:46  * benviequit
09:02:39  * AvianFlujoined
09:07:53  * benviejoined
09:11:17  * piscisaureus___quit (Read error: Connection reset by peer)
09:12:12  * piscisaureus___joined
09:48:13  * benviequit
10:22:45  * CoverSlidequit (Read error: Connection reset by peer)
10:22:51  * CoverSlidejoined
12:17:51  <CIA-95>node: Artur Adib v0.6 * r960ccdc / doc/api/addons.markdown : docs: clarify addon docs - http://git.io/tI7lAw
12:21:58  * bnoordhuisjoined
12:37:32  <CIA-95>node: Ben Noordhuis master * r8f15582 / test/simple/test-http-parser.js : test: add 'no response headers' http parser test - http://git.io/nMaN0Q
12:43:47  <indutny>bnoordhuis: hi!
12:43:52  <bnoordhuis>indutny: hey
12:44:02  <indutny>bnoordhuis: have you seen my libuv pull?
12:44:19  <bnoordhuis>indutny: the uv_unref thing?
12:45:51  <indutny>bnoordhuis: yep
12:46:03  * piscisaureus_quit (Read error: Operation timed out)
12:47:24  <bnoordhuis>indutny: does it pass all libuv and node tests?
12:54:36  <indutny>bnoordhuis: lets see
12:54:37  <indutny>:)
12:54:46  <indutny>it does for node
12:54:49  <indutny>not sure for libuv
12:55:52  <indutny>4 tests failing
12:56:09  <indutny>hm... tty is timing out
12:56:56  <indutny>ok, this was too straightforward patch
12:56:57  <indutny>sorry
13:01:35  * piscisaureus_joined
13:12:22  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
13:14:12  * piscisaureus_joined
13:24:17  <bnoordhuis>indutny: no worries
13:24:39  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
13:24:39  <bnoordhuis>i tried something like your PR and it made a couple of tests fail too, that's why i asked
13:26:26  * piscisaureus_joined
13:33:00  * piscisaureus__joined
13:36:42  * piscisaureus_quit (Ping timeout: 245 seconds)
14:37:06  * piscisaureus__quit (Quit: ~ Trillian Astra - www.trillian.im ~)
14:57:47  * indexzerojoined
15:14:08  * benviejoined
15:33:42  <CIA-95>node: Ben Noordhuis master * r4f38c5e / test/simple/test-http-response-no-headers.js :
15:33:42  <CIA-95>node: test: add 'response body with no headers' http test
15:33:42  <CIA-95>node: HTTP/0.9 - fails with a parse error
15:33:42  <CIA-95>node: HTTP/1.0 - works
15:33:42  <CIA-95>node: HTTP/1.1 - fails with an empty response body
15:33:42  <CIA-95>node: See #1711. - http://git.io/IpBFMg
16:00:59  * kuebkpart
16:02:26  * isaacsjoined
16:37:55  * mikealquit (Quit: Leaving.)
16:42:18  * mikealjoined
16:44:52  * mikealquit (Client Quit)
16:50:00  * mikealjoined
17:04:11  <CIA-95>libuv: Ben Noordhuis master * r28e209f / (src/unix/core.c src/unix/internal.h src/unix/process.c):
17:04:11  <CIA-95>libuv: linux: improve kernel feature detection
17:04:11  <CIA-95>libuv: Do not check for minimum kernel and glibc versions, just check that the kernel
17:04:11  <CIA-95>libuv: headers export the syscall number and invoke the syscall directly. Effectively
17:04:11  <CIA-95>libuv: bypasses glibc. - http://git.io/cjczNA
17:06:11  <CIA-95>libuv: Ben Noordhuis master * rd5b2615 / (src/unix/core.c src/unix/internal.h src/unix/process.c):
17:06:12  <CIA-95>libuv: linux: improve kernel feature detection
17:06:12  <CIA-95>libuv: Do not check for minimum kernel and glibc versions, just check that the kernel
17:06:12  <CIA-95>libuv: headers export the syscall number and invoke the syscall directly. Effectively
17:06:12  <CIA-95>libuv: bypasses glibc. - http://git.io/0VpnQg
17:06:19  <bnoordhuis>^ cleanup++
17:16:34  * dapjoined
17:20:30  <paddybyers>bnoordhuis: hi
17:21:13  <bnoordhuis>paddybyers: ho
17:21:34  <paddybyers>I'm running into the issue about needing to close handles forcibly when an isolate eits
17:21:36  <paddybyers>exits
17:21:45  <paddybyers>what are you're thoughts?
17:22:21  <bnoordhuis>paddybyers: have you looked at the domains branch?
17:22:25  <paddybyers>I imagined a list of open handles linked from uv_loop_t
17:22:28  <paddybyers>no
17:22:49  <bnoordhuis>domains is what ryah and piscisaureus___ came up with to clean up all handles
17:22:59  <bnoordhuis>it's still experimental but i think it mostly works
17:23:45  <paddybyers>ok, I'll have a look, thanks
17:27:54  <paddybyers>bnoordhuis: so everything is programmatically closed from the js end, not from native
17:28:53  <bnoordhuis>paddybyers: yes - you want a libuv solution?
17:29:36  <paddybyers>not necessarily; but that's what I was thinking; everything is closed even if the application screws with the state in js
17:29:56  <paddybyers>but the domains thing will work for me
17:34:28  * AvianFluquit (Quit: Leaving)
17:39:10  * indexzeroquit (Quit: indexzero)
17:40:44  * kuebk^joined
17:46:04  * brsonjoined
17:46:22  * mikealquit (Quit: Leaving.)
18:02:36  <ryah>bnoordhuis, paddybyers: our link list of handles will be in the node C++ binding code
18:02:40  <ryah>at least that's what we were planning
18:03:32  * mikealjoined
18:16:07  <paddybyers>ryah: ok - on a per-isolate basis or a per-domain basis?
18:16:26  <ryah>igorzi, bnoordhuis, piscisaureus___, isaacs: im going to skip the call today - trying to focus on finishing my paper
18:16:33  <isaacs>k
18:16:43  <isaacs>i'm gonna skip as well, focus on finishing node-tar in npm
18:16:53  <ryah>paddybyers: per domain - but there will be a linked list of domains
18:18:14  <paddybyers>ryah: I see
18:18:22  * piscisaureujoined
18:18:31  * piscisaureuchanged nick to piscisaureus
18:19:37  <paddybyers>ryah: so I was thinking of just having a list of everything needing to be closed when the isolate exits, but it will interfere with your domain changes so I'd better wait
18:20:07  * dapquit (Quit: Leaving.)
18:23:49  <paddybyers>ryah: when do you think you will be doing that? I guess it's behind all of the other changes to get isolates implemented?
18:24:16  <piscisaureus___>for isolates, get rid of shared state first
18:28:36  * piscisaureuschanged nick to piscisaureu
18:28:59  * piscisaureuchanged nick to piscisaureus
18:39:17  * piscisaureusquit (Quit: Leaving.)
18:39:31  * piscisaureujoined
18:40:01  <CIA-95>node: Ben Noordhuis v0.6 * r2c52cce / deps/v8/tools/gyp/v8-node.gyp :
18:40:02  <CIA-95>node: v8: compile with __C99FEATURES__=1 on sunos
18:40:02  <CIA-95>node: Exposes INFINITY, isinf(), isfinite(), etc.
18:40:02  <CIA-95>node: Re-applies d104e5b91cfa3ef3ef846d5a0ab07c0336263a92, lost in a V8 upgrade. - http://git.io/-S0MpQ
18:40:02  <CIA-95>node: Ben Noordhuis v0.6 * r4f8a0cd / deps/v8/tools/gyp/v8.gyp :
18:40:03  <CIA-95>node: v8: add platform-solaris.cc to gyp build
18:40:03  <CIA-95>node: Re-applies 77e4abbc3e66505af89c57cd7bff555890a33f3f, lost in a V8 upgrade. - http://git.io/R_gf7A
18:40:54  * piscisaureuchanged nick to piscisaureus
18:42:25  <paddybyers>bnoordhuis: re v8-node.gyp; did you see my pull req from yesterday?
18:42:33  <bnoordhuis>paddybyers: no?
18:43:03  <paddybyers>https://github.com/joyent/node/pull/2125
18:43:24  <paddybyers>v8-node.gyp is one of the issues with Xcode/gyp
18:44:02  <paddybyers>I don't really understand why it's needed; it seems to build ok where v8.gyp is the dependency, omitting v8-node.gyp completely
18:44:27  <paddybyers>otherwise, v8.gyp should really be v8.gypi I think
18:45:01  <bnoordhuis>paddybyers: the idea is that we can have v8 specific overrides without having to patch v8.gyp
18:45:33  <paddybyers>bnoordhuis: yes, but the specific override that's there - the common.gypi - is redundant
18:46:04  <paddybyers>and including v8.gyp as an include file but with the .gyp extension is causing Xcode.py to go wrong
18:46:16  <bnoordhuis>don't quote me on this but v8-node.gyp probably exists to work around a gyp bug
18:46:55  <bnoordhuis>if you can fix it without (preferably) touching gyp itself, go for it
18:47:09  <bnoordhuis>if you need to patch gyp, please upstream the patch
18:47:14  <paddybyers>maybe; I did this which worked on debian and darwin
18:47:15  <paddybyers>https://github.com/paddybyers/node/tree/gyp-xcode2
18:47:22  <paddybyers>without v8-node.gyp
18:47:34  <paddybyers>but it would be good to get someone who knows the history to look at it
18:47:44  * AvianFlujoined
18:49:40  * creationixjoined
18:49:42  <paddybyers>so I think the way to address that issue is either to rename v8.gyp - which isn't great - or remove v8-node.gyp
18:50:16  <paddybyers>but I don't know the history, as I said
18:52:25  <bnoordhuis>paddybyers: like i said, if you can make it work without touching gyp itself, sure
18:52:36  * dapjoined
18:52:39  <bnoordhuis>i don't want to maintain too many out-of-tree patches for gyp
18:52:52  <bnoordhuis>we have a couple for v8 and see how often it breaks :/
18:54:22  <paddybyers>bnoordhuis: quite; the second issue I think is a gyp bug; I filed a bug for that, but no reply yet
18:55:33  <bnoordhuis>paddybyers: oh, that's one thing about gyp - the authors don't really check their issue tracker
18:55:44  <bnoordhuis>upload it to rietveld and send a message to the gyp-developers ML
18:56:11  <bnoordhuis>(actually, i never managed to upload anything to rietveld - it refuses my google apps credentials)
18:56:58  <bnoordhuis>but send your patch to the ML and keep nagging until they cave in <- worked for me
18:57:08  <paddybyers>ok, I'll try. At least maintaining a gyp patch is better than maintaining 3 build systems :)
19:01:15  <paddybyers>bnoordhuis: so that solaris change you just did - is that applicable to other projects or it has to be v8 only?
19:01:37  <bnoordhuis>paddybyers: what do you mean by 'other projects'?
19:01:48  <paddybyers>node, uv, etc
19:02:17  <paddybyers>i.e. it's wrong to put it in the top-level target_defaults ?
19:02:40  <piscisaureus>creationix: link?
19:02:58  <creationix>I haven't posted all of it
19:03:08  <creationix>but most of it is in cradbude's try catch module
19:03:24  <creationix>I was a little sad he didn't give me credit when announcing it
19:03:47  <bnoordhuis>paddybyers: oh, like that - those patches were specific to v8
19:04:15  <piscisaureus>creationix: I am working on domains now, I'd like to see it
19:04:30  <creationix>piscisaureus: trying to figure out the API?
19:04:33  <piscisaureus>creationix: put it in Water Cooler :-)
19:06:12  <creationix>here is part: https://github.com/CrabDude/trycatch/blob/master/lib/hook.js
19:06:20  <creationix>that's my monkey patched event source hook
19:07:49  <creationix>and here is the v8 stack trace api abuse https://github.com/CrabDude/trycatch/blob/master/lib/trycatch.js
19:08:00  <creationix>I wrote most the core logic, but crabtree polished it a bit
19:19:21  * raggipart
19:20:18  * raggijoined
19:20:23  * raggipart
19:21:01  * raggijoined
19:22:47  <CIA-95>node: E. Azer Koçulu master * re258169 / lib/util.js : util: remove the line requiring events - http://git.io/U2SLWg
19:23:30  <creationix>piscisaureus: actually, that entire library is what I wrote, just packed up and polished a bit
19:29:25  <paddybyers>bnoordhuis: ok, I think then that we should keep v8-node.gyp and I've made a comment on the pull request - but someone your end needs to decide now if it's ok to rename v8.gyp or better to patch gyp instead.
19:29:36  <paddybyers>I'm happy to try to upstream the other gyp change
19:32:24  <bnoordhuis>paddybyers: v8.gyp comes from upstream so it can't be renamed
19:33:23  <paddybyers>yes :( - in effect you'd be adding yet another file to the tree, just like v8-node.gyp, except it's a verbatim copy of an existing file
19:34:20  <bnoordhuis>i suppose i could live with a symlink
19:34:28  <bnoordhuis>but i don't know how that would work on windows
19:34:39  <ryah>piscisaureus: are we going to see a commit for unifying HandleWrap and ReqWrap soon?
19:34:44  <paddybyers>it depends what you think is the lesser of two evils
19:34:54  <ryah>piscisaureus: we're going to need these linked lists rather soon for isolates
19:35:53  <bnoordhuis>piscisaureus: git + symlinks + windows = ?
19:37:15  <ryah>no symlinks in the tree
19:37:18  <ryah>please
19:37:29  <paddybyers>bnoordhuis: the alternative is I can "fix" Xcode.py - to break their spec but at least behave the same as the other generators
19:38:20  <bnoordhuis>paddybyers: sure, but only if the gyp people will accept that patch
19:38:30  <bnoordhuis>i'm not making it easy, am i?
19:38:45  <paddybyers>which they won't because it's not their bug
19:41:37  <bnoordhuis>isaacs: why does assert.equal(1, true) pass?
19:41:56  <isaacs>bnoordhuis: because it's using ==, not ===
19:42:10  <bnoordhuis>ah right, i'll use .strictEqual
19:42:27  <CIA-95>node: Ryan Dahl v0.6 * rb0030af / (src/node.h src/node_object_wrap.h): Fixes #2140. Fix illumos build. - http://git.io/PgXwXA
19:42:28  <isaacs>bnoordhuis: in a teleological sense, it passes so that people will write their own test frameworks ;)
19:42:41  <bnoordhuis>heh :)
19:43:20  * indexzerojoined
19:47:45  <bnoordhuis>ryah: i didn't need that commit to make node compile again
19:48:54  <ryah>bnoordhuis: one sec.. let me check
19:49:03  <ryah>bnoordhuis: i have a newer version of the os
19:49:24  <bnoordhuis>oh right, mine's a 121 machine
19:49:53  <ryah>bnoordhuis, rmustacc: we need to get Ben a zone on bh too
19:50:32  <ryah>ill talk to bryan about it
19:50:52  <bnoordhuis>cool
19:54:14  <rmustacc>ryah: Easier to get him one on the public cloud.
19:54:55  <rmustacc>The new JPC is all 147, or a larger no.de zone probably.
19:56:48  <ryah>bnoordhuis: yeah that commit is necessary to build on the latest
19:57:06  <ryah>it's probably gcc though
19:57:06  <ryah># gcc --version
19:57:07  <ryah>gcc (GCC) 4.5.2
19:58:41  * indexzeroquit (Quit: indexzero)
19:58:56  <bnoordhuis>rmustacc: i have a no.de instance but i can't build x64 builds for some reason
19:59:10  <bnoordhuis>they always error out with virtual memory errors (on a 2gb instance)
19:59:45  <rmustacc>bnoordhuis: Then we should figure out what's going on there.
19:59:59  <rmustacc>The other stuff isn't really different at all.
20:00:31  * indexzerojoined
20:01:00  <bnoordhuis>let me try it again, haven't logged on in a while
20:08:03  <CIA-95>node: Ryan Dahl master * rb0030af / (src/node.h src/node_object_wrap.h): Fixes #2140. Fix illumos build. - http://git.io/PgXwXA
20:08:03  <CIA-95>node: Ben Noordhuis master * rbed405c / (9 files in 6 dirs): Merge remote branch 'origin/v0.6' - http://git.io/0Qd_yw
20:17:46  <CIA-95>node: Ben Noordhuis master * r534e41b / (src/node_crypto.cc test/simple/test-crypto.js):
20:17:46  <CIA-95>node: crypto: make verify() return true or false, not 1 or 0
20:17:46  <CIA-95>node: It's what the documentation says it should return. - http://git.io/ZNrGWQ
20:21:03  <mikeal>ryah: i talked with one of the Chrome guys a few weeks ago
20:21:15  <mikeal>at at W3C working group on game development
20:21:25  <mikeal>they are doing a ton of stuff with WebWorkers
20:21:44  <mikeal>one passes messages by reference and blocks mutation
20:22:19  <mikeal>another, which is incomplete, actually allows you to pass "ownership" of objects to a worker, so they are no longer mutable in the other isolate until released
20:22:40  <piscisaureus>bnoordhuis: git + symlinks + windows = failure
20:22:42  <mikeal>not ready for us to use yet, but it's something to think about for future optimizations
20:22:48  <piscisaureus>bnoordhuis: dont
20:22:50  <mikeal>git + symlinks = failure
20:22:56  <bnoordhuis>piscisaureus: i won't
20:22:59  <mikeal>forget windows
20:23:14  <piscisaureus>ryah: re linked list - tomorrow
20:23:31  <creationix>mikeal: git + symlinks + submodules = madness
20:23:45  <mikeal>i stopped using submodules even
20:23:51  <piscisaureus>ryah: merging HandleWrap + ReqWrap i can't get right
20:23:58  <mikeal>i install npm packages and check the files in to git
20:23:59  <piscisaureus>ryah: but I can give them a common base class
20:24:10  <mikeal>then i have a diff in the project for dep changes
20:29:15  <piscisaureus>mikeal: *sigh* I though we got over the forget windows part
20:36:34  <mikeal>i didn't mean it like that
20:36:42  <mikeal>i meant it joined with the prevoius comment
20:36:54  <mikeal>"forget windows, just git and symlinks are already FAIL"
20:37:08  <mikeal>but it didn't come together that way
20:37:21  <mikeal>i'm all for good windows support, even though I'll likely never use it
20:37:42  <piscisaureus>mikeal: ah, I just misunderstood
20:38:34  <piscisaureus>damn, I was in for a good fighting
20:43:55  * piscisaureusquit (Quit: Leaving.)
20:44:18  * piscisaureujoined
20:44:20  * piscisaureuquit (Client Quit)
20:52:35  <bnoordhuis>rmustacc: `make -C out` -> "ld: fatal: mmap anon failed: Resource temporarily unavailable" while compiling v8, with and without --without-snapshot
20:52:55  * mralephjoined
20:52:56  <bnoordhuis>this is on bender.no.de btw
20:53:22  * indexzeroquit (Quit: indexzero)
20:56:02  <rmustacc>How much space do you ahve on that VM?
20:56:07  <rmustacc>*have
20:56:09  <rmustacc>Err zone
20:56:18  * indexzerojoined
20:56:18  <rmustacc>Sounds like dram was bumped, but not swap.
20:56:51  <bnoordhuis>rmustacc: prtconf says 2 GB
20:57:19  <bnoordhuis>`swap -s` -> total: 57396k bytes allocated + 0k reserved = 57396k used, 204748k available
20:58:17  <rmustacc>Well there's your problem.
20:58:22  <rmustacc>Someone bumped your DRAM but not your swap.
20:58:37  <bnoordhuis>so how do i fix it?
20:59:06  <rmustacc>Support needs to fix it.
20:59:24  <rmustacc>Whoever did the resize messed up.
20:59:39  <bnoordhuis>ryah :)
21:00:07  <bnoordhuis>do you have an email address for me?
21:00:11  * indexzeroquit (Client Quit)
21:00:24  <rmustacc>Whenever you get anonymous memory we force a reservation against swap.
21:00:34  <rmustacc>We do that instead of the OOM killer.
21:02:38  <bnoordhuis>i think i found the support form
21:02:58  <bnoordhuis>filing support tickets with your own company...
21:04:22  <rmustacc>Well, I'd just have ryah do it.
21:04:29  <rmustacc>I just don't have access (purposefully) to our production systems.
21:04:38  <rmustacc>isaacs may even be able to do it for you.
21:05:30  <isaacs>rmustacc: where's this? on no.de?
21:05:42  <isaacs>bender.no.de
21:05:47  <rmustacc>isaacs: Yeah. ryah resized a zone for bnoordhuis but didn't increase the swap.
21:05:47  <isaacs>yeah, i can tinker with that, just a sec
21:06:10  <rmustacc>So the swap setting is still the old no.de value of 256 MB, not 4 GB to correspond to a 2 GB zone.
21:06:34  <isaacs>ok, should be good now.
21:06:51  <isaacs>adminui should probably not even let you set the swap as < 2x the ram
21:07:06  <isaacs>that seems like a common mistake. anyway, not a #libuv issue :)
21:07:35  <bnoordhuis>isaacs: thanks!
21:07:49  <isaacs>np
21:08:17  <bnoordhuis>LINK(target) /home/node/src/node/out/Debug/node: Finished <- happy joy joy
21:14:57  * piscisaureujoined
21:18:10  <isaacs>is this on purpose?
21:18:11  <isaacs>> x = function () { return "hello" }
21:18:11  <isaacs>[Function]
21:18:12  <isaacs>> x )(
21:18:12  <isaacs>'hello'
21:18:19  <isaacs>you can put the parens in the wrong order in th erepl
21:18:30  <isaacs>it's not a v8 thing
21:18:48  <isaacs>x)(
21:18:49  <isaacs> ^
21:18:49  <isaacs>SyntaxError: Unexpected token )
21:19:14  <piscisaureu>lol
21:19:34  <bnoordhuis>that's awesome
21:19:57  <bnoordhuis>> x)(
21:19:58  <bnoordhuis>'hello'
21:20:01  <bnoordhuis>^ wfm as well
21:26:13  * piscisaureuquit (Ping timeout: 244 seconds)
21:31:03  * paddybyers_joined
21:31:39  <ryah>why deos that happen?
21:34:13  <ryah>bnoordhuis: hey -
21:34:20  <ryah>bnoordhuis: why not put https://github.com/joyent/node/commit/e2581696669003fdd691c167ff1500ef16dddb32 on v0.6 ?
21:34:23  * piscisaureujoined
21:34:32  <ryah>almost all commits should be landing in v0.6 right now
21:34:37  <bnoordhuis>oh, okay
21:34:40  * paddybyersquit (Ping timeout: 240 seconds)
21:34:41  * paddybyers_changed nick to paddybyers
21:34:53  <bnoordhuis>trivial change - could wait for 0.8
21:35:15  <ryah>sure - i just want to make sure we're landing bug fixes in v0.6 not in master
21:35:50  * piscisaureuquit (Read error: Connection reset by peer)
21:35:53  * piscisaureu1joined
21:36:10  <bnoordhuis>ryah: what about e.g. https://github.com/joyent/node/commit/534e41b ?
21:36:25  <bnoordhuis>it's a bug fix but one could also view it as an api change
21:36:25  * piscisaureu1quit (Client Quit)
21:36:34  <bnoordhuis>(i landed it in master btw)
21:36:47  <ryah>it should also go in v0.6
21:36:59  <bnoordhuis>okay, i'll merge them
21:37:05  <ryah>but it doesn't mater much..
21:37:59  * piscisaureus_joined
21:40:45  <piscisaureus_>ryah: process.cwd and process.env
21:40:53  <piscisaureus_>ryah: you are making that read only for isolates
21:40:57  <piscisaureus_>or a perisolate value?
21:42:45  <ryah>piscisaureus_: *shrug*
21:42:50  <ryah>why?
21:43:23  <ryah>env should be writable
21:43:26  <ryah>we'll need a lock
21:43:58  <bnoordhuis>what does it need to be writable for nowadays?
21:44:10  <piscisaureus_>ryah: nah not a lock
21:44:20  <bnoordhuis>it was originally for setting the TZ but that turned out to not work anyway
21:44:24  <piscisaureus_>ryah: now you can have your cwd changed right under your feet
21:44:57  <piscisaureus_>it's a great way for interthread communication
21:45:17  <piscisaureus_>process.env.message={ foo: 'bar' } // visible to all isolates
21:48:03  <ryah>piscisaureus_: yes, cwd can be cahnged right under your feet
21:48:13  <ryah>cwd is a stupid concept, imo
21:48:37  <ryah>i get the intent - but - i dont know
21:48:53  <piscisaureus_>just get rid of chdir :-)
21:49:03  <piscisaureus_>or make it internal to node
21:49:08  <piscisaureus_>prefix it to every path
21:49:17  <piscisaureus_>but don't make the chdir syscall
21:49:53  <ryah>yeah..
21:49:54  <rmustacc>It wouldn't be too bad. Just use all the *at syscalls instead of the normal ones.
21:50:12  <ryah>rmustacc: what's that?
21:50:17  <piscisaureus_>hack libeio
21:50:44  <piscisaureus_>ryah: it means you specify a fd that's the current directory to an fs call
21:56:11  <rmustacc>ryah: look at the openat syscall.
21:57:58  <ryah>% grep -R openat /usr/include | wc -l
21:58:01  <ryah> 0
21:59:34  <rmustacc>ryah: What machine?
21:59:45  <ryah>darwin
22:00:12  <rmustacc>Oh, they didn't add support for posix 2008?
22:00:15  <rmustacc>That's crappy.
22:00:49  <piscisaureus_>my suggestion is to not make the chdir syscall
22:00:56  <piscisaureus_>just change proces._cwd
22:01:10  <piscisaureus_>and prefix that to every filename in fs
22:01:17  <ryah>piscisaureus_: seems somewhat reasonable
22:01:22  <ryah>as long as we document it
22:01:31  <piscisaureus_>yep well
22:01:52  <piscisaureus_>there's no real reason for users to want to change the actual cwd
22:02:03  <piscisaureus_>the only risk is people renaming directories
22:02:04  <ryah>*shrug*
22:02:27  <CIA-95>node: E. Azer Koçulu v0.6 * r1cb6fe4 / lib/util.js : util: remove the line requiring events - http://git.io/K2Yshw
22:02:27  <piscisaureus_>that's what I thought
22:02:27  <CIA-95>node: Ben Noordhuis v0.6 * r3ac5f11 / (src/node_crypto.cc test/simple/test-crypto.js):
22:02:28  <CIA-95>node: crypto: make verify() return true or false, not 1 or 0
22:02:28  <CIA-95>node: It's what the documentation says it should return. - http://git.io/JX6SIg
22:02:28  <CIA-95>node: Ben Noordhuis v0.6 * r9d3faf4 / (4 files in 3 dirs): crypto: add support for RSA public key signing/verification - http://git.io/-YSxNA
22:05:32  <paddybyers>so is the idea that all isolates share the env? and each can change the env for all others in the same process?
22:05:49  <piscisaureus_>that is also pretty pointless
22:06:04  <piscisaureus_>we could just always pass env to child processes
22:06:16  <bnoordhuis>that could be an awesome approach to inter-isolate IPC
22:06:18  <paddybyers>so I ran into a problem with options.env.NODE_CHANNEL_FD = 42
22:06:33  <piscisaureus_>hehe
22:06:34  <paddybyers>i.e. it needs to be set up in the firmed child's env, but not the parent
22:06:44  <paddybyers>(forked)
22:07:03  <piscisaureus_>we need a mutex around spawn
22:07:12  <paddybyers>I had a set of local env overrides for each isolate; lookups look in the overrides first, then in the real env
22:08:09  <piscisaureus_>that's a nice idea
22:10:46  <rmustacc>piscisaureus_: That works as long as the first character in the path isn't a /.
22:11:04  <bnoordhuis>piscisaureus_: btw, https://github.com/bnoordhuis/libuv/compare/mutexes <- review?
22:11:56  <bnoordhuis>12 changed files with 596 additions and 82 deletions <- and 80% of that is to implement mutexes and rwlocks on windows...
22:15:48  <pquerna>are xplatofm atomics coming too?
22:16:31  <piscisaureus_>rmustacc: I know, it also doesn't work on windows. We should use path.resolve.
22:17:41  <piscisaureus_>bnoordhuis: ok, looks good, but I will need some time for thorough review
22:18:31  <piscisaureus_>bnoordhuis: but I have to tell you, uv__rwlock_trywrlock_fallback will fail on windows vista
22:19:16  <piscisaureus_>bnoordhuis: but +1 for doing it right :-)
22:19:52  <piscisaureus_>(although you would get +2 for using critical sections instead of mutexes) :-)
22:21:01  <piscisaureus_>pquerna: atomics?
22:21:15  <piscisaureus_>pquerna: like cmpxchl etc?
22:21:52  <bnoordhuis>piscisaureus_: why would uv__rwlock_trywrlock_fallback fail?
22:22:25  <bnoordhuis>it's only used in windows xp btw
22:22:43  <bnoordhuis>and it uses critical sections actually :)
22:22:57  <piscisaureus_>bnoordhuis: because the try functions are not supported on windows cista
22:23:13  <piscisaureus_>bnoordhuis: so uv_rwlock_try* will go to the fallback
22:23:16  <piscisaureus_>and will then fail
22:23:26  <piscisaureus_>bnoordhuis: that was what I was working on the other day
22:23:58  <bnoordhuis>you mean it doesn't have TryEnterCriticalSection? or TryAcquireSRWLockShared?
22:24:39  <pquerna>piscisaureus_: yes, http://apr.apache.org/docs/apr/1.4/group__apr__atomic.html
22:24:45  <bnoordhuis>ah... windows 7
22:24:47  <bnoordhuis>ffs
22:26:41  <bnoordhuis>piscisaureus_: so i assume i should use the fallback on both xp and vista? and only use srwlocks on win7?
22:27:45  <piscisaureus_>bnoordhuis: I have a different plant.. I will talk to you later
22:27:48  <piscisaureus_>*plam
22:28:05  <bnoordhuis>haha
22:33:46  <bnoordhuis>http://lwn.net/Articles/467852 <- "If AT&T had not brought suit (or better yet, bought BSDI), Linux would never have become popular at all and BSD would dominate the world."
22:33:53  <bnoordhuis>that tanenbaum guy
22:34:13  <bnoordhuis>'overly optimistic' doesn't do it justice
22:49:12  <CIA-95>node: Ben Noordhuis master * r29d8ff5 / (3 files in 3 dirs): build: remove v8-node.gyp - http://git.io/BXTp8A
22:51:31  <CIA-95>node: Paddy Byers master * r4f8d6d0 / tools/gyp/pylib/gyp/generator/xcode.py :
22:51:31  <CIA-95>node: build: fix gyp xcode project generator
22:51:31  <CIA-95>node: Only attempt to generate FrameworkPhase output for code targets. - http://git.io/yIdXCw
22:53:25  <bnoordhuis>paddybyers: ^
22:54:06  <ryah>http://dtrace.org/resources/bmc/QCon.pdf <--
22:55:11  <ryah>igorzi, piscisaureus_: https://github.com/joyent/node/issues/2119
22:56:09  <ryah>paddybyers: do you suggest we use the xcode build by default?
22:58:17  <paddybyers>ryah: Once it's stable, then I guess so
22:58:55  <piscisaureus_>spaces. again
22:59:12  <ryah>https://github.com/joyent/node/issues?state=open&milestone=9
22:59:20  * isaacsquit (Quit: isaacs)
22:59:20  <ryah>^-- other bugs for v0.6.2
22:59:35  * ryahtopic: v0.6.2 tomorrow. release manager: bnoordhuis
23:00:00  <igorzi>probably need to put quotes somewhere in v8.gyp
23:01:10  <CIA-95>node: Trevor Burnham v0.6 * r06d71ad / doc/api/fs.markdown : docs: document the `persistent` option for `fs.watch` and `fs.watchFile` - http://git.io/wJ9CYQ
23:01:47  <paddybyers>ryah: so it does something like gyp -f xcode; xcodebuild
23:09:55  * bnoordhuislocks #2105
23:10:04  <bnoordhuis>(it was mine anyway)
23:11:54  * indexzerojoined
23:16:00  <piscisaureus_>bnoordhuis: I will give you an answer tomorrow
23:16:05  <piscisaureus_>bnoordhuis: going to sleep now
23:16:14  <bnoordhuis>piscisaureus_: sleep tight, bertje
23:16:24  <piscisaureus_>bnoordhuis: get up early tomorrow, because I will too
23:16:28  * mralephquit (Quit: Leaving.)
23:16:29  <piscisaureus_>:-)
23:16:43  * mralephjoined
23:16:46  <bnoordhuis>heh, i'll probably be up earlier than you :)
23:19:39  <igorzi>piscisaureus_: https://gist.github.com/1374904
23:19:47  <paddybyers>ryah: so what works now is: ./configure; xcodebuild -project node.xcodeproj
23:20:04  <igorzi>piscisaureus_: remember that conversation yesterday about CreateFile("nul")?
23:20:29  <paddybyers>so I'm not sure if anything needs changing - if someone types "make" won't they expect it to build with make instead of xcodebuild?
23:20:59  <igorzi>we ran into this bug in uv_guess_handle when setting node's stdio handles to CreateFile("nul")
23:22:07  <paddybyers>ryah: that's how v8 is set up; maybe it is just an issue with the build instructions
23:22:46  <piscisaureus_>igorzi: is there no other way to detect that the thing is NUL?
23:22:50  <piscisaureus_>igorzi: but for now lgtm
23:23:15  <piscisaureus_>igorzi: it will just fail in unexpected ways if the handle is invalid and not NUL :-)
23:23:48  <piscisaureus_>igorzi: actually, land it. Let's not waste time on this.
23:25:27  <igorzi>piscisaureus_: i think it'll also work with other 'special' files: LPT1, COM1, etc
23:25:44  <piscisaureus_>igorzi: You can distinguish between a "valid" return of FILE_TYPE_UNKNOWN and its return due to a calling error (for example, passing an invalid handle to GetFileType) by calling GetLastError.
23:25:47  <piscisaureus_>(from msdn)
23:25:49  <piscisaureus_>maybe do that
23:26:31  <igorzi>GetFileType succeeds.. it's GetConsoleMode that fails
23:26:49  <piscisaureus_>aah ok
23:27:54  <CIA-95>libuv: Igor Zinkovsky master * rb0b54bf / src/win/handle.c : windows: return UV_FILE for non-console FILE_TYPE_CHAR - http://git.io/kCL9tQ
23:29:03  <piscisaureus_>igorzi: actually, I think a (blocking) pipe is a better abstraction for that :-)
23:29:23  <piscisaureus_>but this probably works too
23:29:47  <piscisaureus_>Ok. Now I am really gone
23:31:09  <ryah>igorzi: do you want to land that on libuv:v0.6 ?
23:34:37  <igorzi>ryah: sorry.. yes, i'll do that
23:35:16  <igorzi>ryah: v0.6 bug fixes go into v0.6 branch, and you'll be merging those into master, correct?
23:36:32  * kuebk^quit
23:37:04  <CIA-95>libuv: Igor Zinkovsky v0.6 * r08a5546 / src/win/handle.c : windows: return UV_FILE for non-console FILE_TYPE_CHAR - http://git.io/SDkeCA
23:38:29  * mikealquit (Quit: Leaving.)
23:42:00  * indexzeroquit (Quit: indexzero)
23:47:32  <ryah>igorzi: yes
23:51:57  * paddybyersquit (Quit: paddybyers)
23:58:37  * creationixquit (Quit: creationix)