00:00:55  * mikealquit (Quit: Leaving.)
00:05:43  * sh1mmerjoined
00:07:48  * mikealjoined
00:13:42  * CoverSlidequit (Quit: blah)
00:20:45  * sh1mmerquit (Remote host closed the connection)
00:20:59  * sh1mmerjoined
00:22:50  * sh1mmerquit (Client Quit)
00:36:12  * xaqjoined
00:48:38  * dapquit (Excess Flood)
00:48:56  * dapjoined
00:51:45  * paddybyersquit (Quit: paddybyers)
00:54:07  * paddybyersjoined
00:56:38  * xaqquit (Remote host closed the connection)
01:00:34  * mikealquit (Quit: Leaving.)
01:18:27  * mralephquit (Quit: Leaving.)
01:22:26  * mikealjoined
01:25:54  * xaqjoined
01:27:38  * orlandovftwquit (Read error: Operation timed out)
01:33:11  <piscisaureus_>https://github.com/piscisaureus/node/commit/97a78c02f4bb5c566d851caf88638e52aced6f9b <-- still bugs in there, but will get there eventually
01:35:32  <DrPizza>piscisaureus_: question: does chrome have any code you can steal?
01:35:55  <DrPizza>or does chrome just say "lol" to the whole issue?
01:42:48  <piscisaureus_>DrPizza: prolly not... they just convert stuff twice
01:57:37  <piscisaureus_>DrPizza: part of the problem is that chrome can use ExternalString to send data to v8
01:57:59  <piscisaureus_>DrPizza: but that's not good enough for us... we need to get data *out* fast as well
02:00:17  * mikealquit (Quit: Leaving.)
02:00:36  * paddybyersquit (Quit: paddybyers)
02:01:15  <isaacs>piscisaureus_: dont' they need to get data out for stuff like div.innerHTML = 'foo'?
02:01:32  <isaacs>piscisaureus_: or is that just not as much of a hit for them, since you don't do that repeatedly like crazy?
02:01:35  <piscisaureus_>isaacs: yeah, probably using String::Write as UTF2
02:02:35  <DrPizza>ucs2
02:02:36  <DrPizza>utf16
02:03:36  * mikealjoined
02:04:58  * mmaleckichanged nick to mmalecki[zzz]
02:05:03  * mmalecki[zzz]changed nick to sleeping
02:05:19  * sleepingchanged nick to mmalecki[zzz]
02:10:01  <piscisaureus_>yup
02:10:04  <piscisaureus_>it now works
02:10:11  <piscisaureus_>now to see if the performance is reasonable
02:10:53  * dshaw_joined
02:11:13  * brsonquit (Quit: leaving)
02:25:55  * dapquit (Quit: Leaving.)
02:28:33  * isaacsquit (Remote host closed the connection)
02:42:11  * mikealquit (Quit: Leaving.)
02:42:44  * xaqquit (Remote host closed the connection)
02:43:53  * Ariajoined
02:47:40  * pfox___quit (Ping timeout: 248 seconds)
02:48:11  <piscisaureus_>I am pretty confident now that I can make v8's string stuff much faster
02:49:25  <piscisaureus_>writing 100 * 2mb (cons string) to ascii -> v8: 1.8s mine: 0.85s
02:49:40  <piscisaureus_>writing 100 * 2mb (flat string) to ascii -> v8: 0.8s mine: 0.06s
02:50:16  <Aria>I'm quite sure you can.
02:50:18  <Aria>It's SLOW
02:50:57  <piscisaureus_>Will do utf8 tomorrow.
02:51:02  <piscisaureus_>without utf8 it's meaningless anyway
02:53:47  <Aria>Aye.
02:54:00  <Aria>I still think that V8 should probably have a native UTF8 string.
02:54:11  <Aria>And do the !@#!@# codepoint translation when requested.
02:54:36  <Aria>(and perhaps promote to UCS2 when it detects a second characterwise access.)
02:55:27  * mikealjoined
02:57:32  * TooTallNatequit (Quit: Linkinus - http://linkinus.com)
02:58:08  <piscisaureus_>well
02:58:17  <piscisaureus_>that's something else... very invasive patch
02:58:26  <piscisaureus_>plus the js spec kind of mandates how it is
02:58:37  <piscisaureus_>anywway
02:58:42  <piscisaureus_>I gotta go
03:01:05  * dshaw_quit (Quit: Leaving.)
03:04:59  <Aria>Well. Kinda. But yeah, that'd be super invasive.
03:06:47  * txdvjoined
03:08:44  * orlandovftwjoined
03:13:16  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
03:15:09  * piscisaureus_joined
03:18:02  * mikealquit (Quit: Leaving.)
03:20:44  * pieternjoined
03:22:00  * mikealjoined
03:22:50  * piscisaureus_quit (Ping timeout: 276 seconds)
03:35:44  * orlandovftwquit (Ping timeout: 265 seconds)
03:47:50  * isaacsjoined
04:05:18  * mikealquit (Quit: Leaving.)
04:26:37  * mikealjoined
04:28:39  * TooTallNatejoined
04:34:27  * mikealquit (Quit: Leaving.)
04:40:07  * mikealjoined
04:42:23  * orlandovftwjoined
04:58:29  * mikeal1joined
04:59:27  * TooTallNatequit (Quit: Linkinus - http://linkinus.com)
05:00:38  * mikealquit (Ping timeout: 240 seconds)
05:03:39  * mikealjoined
05:05:58  * mikeal1quit (Ping timeout: 259 seconds)
05:07:02  * mikeal1joined
05:07:02  * mikealquit (Read error: Connection reset by peer)
05:10:42  * TooTallNatejoined
05:14:48  * TooTallNatequit (Client Quit)
05:27:57  * Ariaquit (Ping timeout: 240 seconds)
05:59:51  * philipsquit (Excess Flood)
06:00:48  * philipsjoined
06:01:31  * philips_joined
06:01:48  * philipsquit (Read error: Connection reset by peer)
06:02:10  * philips_quit (Client Quit)
06:13:37  * indexzeroquit (Quit: indexzero)
06:20:20  * sh1mmerjoined
06:23:41  * paddybyersjoined
06:33:08  * pieternquit (Quit: pietern)
08:08:29  * mralephjoined
08:44:25  * txdv_joined
08:46:37  * paddybyers_joined
08:48:01  * txdvquit (Ping timeout: 245 seconds)
08:49:19  <mraleph>isaacs: saw new Error().stack hang. no this is not a known issue.
08:49:31  <mraleph>isaacs: did you file a bug?
08:50:26  * paddybyersquit (Ping timeout: 276 seconds)
08:50:27  * paddybyers_changed nick to paddybyers
08:53:04  * mralephquit (Quit: Leaving.)
09:33:37  * AvianFluquit (Ping timeout: 244 seconds)
09:44:25  * mjr_quit (Quit: mjr_)
09:54:32  * AvianFlujoined
10:45:19  * einarosjoined
10:48:48  * orlandovftwquit (Ping timeout: 265 seconds)
11:49:35  * indutny_sleepingchanged nick to indutny
11:56:17  * isaacsquit (Remote host closed the connection)
12:20:45  * bnoordhuisjoined
12:23:16  * mmalecki[zzz]changed nick to mmalecki
12:26:51  <mmalecki>*yaaawn* morning
13:03:40  * benviequit (Ping timeout: 248 seconds)
13:27:08  <CIA-99>node: Myles Byrne master * r21374c3 / Makefile : build: remove unused makefile target - http://git.io/lP6-ow
13:41:41  * travis-cijoined
13:41:41  <travis-ci>[travis-ci] joyent/node#478 (master - 21374c3 : Myles Byrne): The build is still failing.
13:41:41  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/27d8b05...21374c3
13:41:41  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/720510
13:41:41  * travis-cipart
14:21:32  <CIA-99>node: T.C. Hollingsworth master * r3d1b670 / (configure node.gyp):
14:21:32  <CIA-99>node: build: support shared V8 properly
14:21:32  <CIA-99>node: -don't pull in bundled v8 as a dependency when node_shared_v8==true
14:21:32  <CIA-99>node: -use node_shared_v8_includes for v8.h and v8-debug.h - http://git.io/63p4mQ
14:22:36  * benviejoined
14:35:56  * travis-cijoined
14:35:56  <travis-ci>[travis-ci] joyent/node#479 (master - 3d1b670 : T.C. Hollingsworth): The build is still failing.
14:35:56  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/21374c3...3d1b670
14:35:56  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/720826
14:35:56  * travis-cipart
14:36:40  * piscisaureus_joined
15:08:39  * mikeal1quit (Quit: Leaving.)
15:11:47  * mikealjoined
15:16:31  * mikealquit (Ping timeout: 255 seconds)
15:20:36  * mikealjoined
15:39:41  * mikealquit (Quit: Leaving.)
15:40:07  * mikealjoined
15:43:55  <bnoordhuis>piscisaureus_: yo bertje, what are you working on?
15:44:04  <piscisaureus_>bnoordhuis: utf8 conversion
15:44:17  * mikealquit (Ping timeout: 240 seconds)
15:45:21  <bnoordhuis>piscisaureus_: the v8 patch?
15:48:01  <piscisaureus_>bnoordhuis: discussing with erik whether it has any chance of landing at all.
15:50:12  * AndreasMadsenjoined
15:52:28  <bnoordhuis>piscisaureus_: tell him he's got a nice house and how it'd be a shame if anything were to happen to it
15:52:45  <tjfontaine>I'll get the horse head
15:55:30  <bnoordhuis>works miracles, horse heads
15:55:34  <bnoordhuis>piscisaureus_: https://github.com/bnoordhuis/libuv/compare/issue300 <- review?
16:01:11  * einaros-joined
16:03:33  * pieternjoined
16:04:17  * pieternquit (Client Quit)
16:18:49  * einaros-part
16:19:31  <creationix>wow, ioctl is complicated. I expanded one of the macros to see how the magic number is calculated
16:19:55  <creationix>I can see how making generic access to this tricky without a full header/macro parser and access to the include files
16:28:12  <piscisaureus_>ioct?
16:28:16  <piscisaureus_>ioctl? to do what?
16:28:36  <tjfontaine>evil evil things
16:28:41  <tjfontaine>mostly his joystick code I'm sure though
16:28:42  * pfox___joined
16:29:46  <pfox___>bnoordhuis: https://github.com/mozilla/rust/pull/1878
16:31:01  <piscisaureus_>bnoordhuis: what does #300 do? Use a single inotify watcher instead of one per fs watcher?
16:34:12  <pfox___>is uv_err_t just a error code? is there a Big List of meanings?
16:34:35  <piscisaureus_>pfox___: uv_err_t is a struct. uv_err_t.code is the error code
16:35:00  <piscisaureus_>pfox___: we store the original system error in uv_err_t._sys_errno to make debugging easier in case of UNKNOWN
16:35:32  <piscisaureus_>pfox___: this is bound to change btw. We want to turn uv_err_t into an int in the future
16:35:35  <pfox___>ah. what's up with the multiple type names? the _s and _t ?
16:35:46  <piscisaureus_>pfox___: _s is struct, _t is typedef
16:35:50  <piscisaureus_>so the pattern is
16:36:03  <piscisaureus_>struct uv_foo_s { /* fields */ };
16:36:13  <piscisaureus_>typedef struct uv_foo_s uv_foo_t;
16:36:32  <pfox___>what does this get you?
16:36:58  <piscisaureus_>pfox___: what would you do instead?
16:37:16  <pfox___>ask you what the rationale is. im not saying i have a better way.
16:37:21  <pfox___>im curious, wanting to understand :)
16:37:32  <pfox___>what *your* reason is.
16:37:49  <piscisaureus_>pfox___: *shrug* that's what we started doing a year ago.
16:38:02  <piscisaureus_>pfox___: oh now I remember
16:38:28  <piscisaureus_>pfox___: uv.h has this structure:
16:38:55  <piscisaureus_>typedef struct uv_foo_s uv_foo_t;
16:38:57  <piscisaureus_>...
16:39:03  <piscisaureus_>#include <uv-win.h>
16:39:05  <piscisaureus_>...
16:39:16  <piscisaureus_>struct uv_foo_s {
16:39:24  <piscisaureus_>int type;
16:39:37  <piscisaureus_>UV_FOO_PLATFORM_SPECIFIC_FIIELDS
16:39:39  <piscisaureus_>}
16:40:23  <piscisaureus_>but sometimes within uv-win.h you need to reference uv_foo_s which by then is not yet defined
16:40:29  <piscisaureus_>so now you can uv_foo_t
16:40:56  <piscisaureus_>there are probably alternatives
16:41:26  <piscisaureus_>such as just using `struct uv_foo_s*` instead of `uv_foo_t` within uv-win.h
16:41:34  <piscisaureus_>but being able to use uv_foo_t there is nicer
16:41:46  <piscisaureus_>pfox___: ^
16:42:38  * mjr_joined
16:42:42  <pfox___>cool. so multi-platform devil magick.
16:42:47  <piscisaureus_>yes
16:43:33  <piscisaureus_>The api could be nicer (e.g. we could jus return a point
16:43:41  <piscisaureus_>fucking mac keyboard
16:44:11  <piscisaureus_>The api could be nicer (we could just return a pointer or an uv_file_descriptor_t or something allocate the memory to hold state within libuv)
16:44:42  * AndreasMadsenpart
16:44:51  * AndreasMadsenjoined
16:44:55  <piscisaureus_>but that's a speed tradeoff - the nice thing about the current way of doing it is that you can embed uv_tcp_t inside your own struct which saves on malloc() calls
16:45:12  <piscisaureus_>At least that is nice for node - I don't know how that plays out for rust
16:49:54  <creationix>tjfontaine, you know me too well
16:50:14  <creationix>tjfontaine, and serial ports
16:53:18  <benvie>windows pty https://bitbucket.org/geertj/winpexpect/wiki/Home
17:03:21  <piscisaureus_>benvie: won't support colors
17:03:36  <piscisaureus_>benvie: it just creates a pipe for stdio - basically the same node does for spawn()
17:06:38  <piscisaureus_>benvie: the only way to do that is by polling the screne buffer (what console2 does: https://github.com/piscisaureus/console2/blob/master/ConsoleHook/ConsoleHandler.cpp)
17:07:04  <piscisaureus_>benvie: or to redirect console api calls using IAT/EAT hooks (which is more flexible but also more brittle)
17:09:42  <DrPizza>just say no
17:10:17  <piscisaureus_>of course
17:10:26  <piscisaureus_>over my dead body it would make it into node core
17:11:06  <piscisaureus_>besides it would be massive project in itself
17:11:48  <DrPizza>yes
17:12:01  <piscisaureus_>I also think it would benefit windows btw
17:12:19  <piscisaureus_>if someone wrote a reusable lubrary for that
17:12:44  <DrPizza>I think it would benefit Windows to shitcan the entire console model and properly virtualize them
17:12:48  <piscisaureus_>because people would be able to start experimenting with the terminal and finally write one that is reasonable
17:12:51  <piscisaureus_>yes
17:13:07  <piscisaureus_>the console model sucks monkey balls
17:13:57  <DrPizza>and only drivers can add new HANDLE types
17:14:07  <DrPizza>so there's no clean way to do it from user mode
17:14:12  <piscisaureus_>it's also super slow (because the backing buffer is actually sort of RLE encoded)
17:14:33  <piscisaureus_>Trading efficiency for a few bytes of memory
17:14:51  <piscisaureus_>That probably made sense back in '89 but nowadays it's fucked up
17:23:13  * stephankjoined
17:26:19  * isaacsjoined
17:27:17  * orlandovftwjoined
17:37:45  <benvie>wait
17:38:19  <benvie>is my understanding of how it works correct:
17:40:15  <benvie>it spawns a new process, opens a named pipe up to it, then launches child processes and has them share stdin/stdout/stderr, then is able to relay back the streams through the pipe
17:40:25  <benvie>and if not, I made that up and it seems like a good idea
17:40:43  <benvie>the idea isn't so much to read the colors and stuff from the windows API
17:41:04  <benvie>it's to be able to trick other programs into treating you as interactive/tty mode
17:41:40  <benvie>the rendering is a separate thing and is already desirable to do outside of the windows console api if you want to do anything beyond what node has
17:41:55  <benvie>you have reached the pinnacle of the console on windows haha
17:42:44  <benvie>but like for tty.js as an example, it uses forkPty to allow it to then pipe that over to a browser
17:43:05  <benvie>but you need that ability to have programs treat you as interactive
17:43:08  * philipsjoined
17:44:18  <benvie>in windows the only way to do that is to have a legit console screenbuffer handle
17:44:34  <benvie>sadly
17:44:46  <benvie>or maybe we should start hacking into kernel mode
17:46:55  <benvie>node itself is a good example, trying to use mintty locally. The only reason it doesn't work is because node treats pty/console handles differently than pipes. If I were to come along with wexpect.py I could make node actually read and write ansi escape sequences
17:49:06  <DrPizza>piscisaureus_: if you have a pipe to a console and send ANSI over the pipe, it still works, doesn't it? it's only the isatty check that fails?
17:49:10  <DrPizza>or does everything break?
17:50:02  <benvie>it breaks sizing and whatnot, but there's some side-effect cascade because it effects various things and is loaded early on
17:51:25  <benvie>like a pipe won't keep the event loop going without extra work while a tty will
17:56:30  <benvie>there's a lot of stuff in win/tty.c for actually making sense of window's dimensions and managing a virtual window that is nice to have but it can be emulated if you're fully emulating the rendering
18:17:30  * orlandovftwquit (Ping timeout: 240 seconds)
18:18:14  * TooTallNatejoined
18:19:08  * igorzi_quit (Ping timeout: 245 seconds)
18:19:41  * mikealjoined
18:29:29  * dshaw_joined
18:36:37  * xaqjoined
18:41:35  * pieternjoined
18:44:57  <piscisaureus_>
18:57:02  * `3rdEdenjoined
18:58:38  * xaqquit (Remote host closed the connection)
19:01:24  <isaacs>piscisaureus_: is that some unicode?
19:01:32  <piscisaureus_>yup
19:01:40  <isaacs>got mochibaked for me
19:01:59  * AndreasMadsenquit (Remote host closed the connection)
19:02:00  <piscisaureus_>U+24B62
19:02:28  <piscisaureus_>Doesn't show up in the logs, because it's non-BMP
19:02:34  <piscisaureus_>and slurp is written in node
19:02:37  * xaqjoined
19:02:46  <mmalecki>doesn't show up in irssi neither :)
19:03:57  * orlandovftwjoined
19:05:36  <isaacs>yeah, my terminal doesn't have that one, either
19:05:39  <isaacs>it has emoji, though
19:06:00  <isaacs>piscisaureus_: so, how goes the unicoding?
19:06:15  <piscisaureus_>isaacs: good. show you something later tonight.
19:06:37  <piscisaureus_>isaacs: have to have some discussion with Erik Corry still about what they are willing to land and what not
19:06:51  <isaacs>awesome
19:06:58  <piscisaureus_>isaacs: spoke to him today but he had to leave
19:07:13  <isaacs>piscisaureus_: you're the frontrunner for mjr_'s scotch offer, i think
19:07:43  <mjr_>I might have a trip to Amsterdam in my future.
19:10:52  <isaacs>TooTallNate: hey
19:11:16  <isaacs>TooTallNate: do you know what the gyp magic is to build fat binaries on os x?
19:11:57  <TooTallNate>isaacs: they're not supported yet
19:12:06  <isaacs>TooTallNate: \o/
19:12:12  <isaacs>er, no, the other one. /o\
19:12:14  <TooTallNate>isaacs: we'd have to run our gyp build twice instead, and `lipo` the result
19:12:44  <isaacs>that doesn't sound SO bad..
19:12:44  <TooTallNate>isaacs: that's a workaround though, ideally we'd just specify two ARCHS in common.gypi
19:12:52  <TooTallNate>but that's not implemented yet
19:13:14  <TooTallNate>it's probably not too bad :)
19:14:47  <isaacs>
19:15:46  <isaacs>x64 is such a pita
19:16:05  <piscisaureus_>That one is not shown but trillian tells me it's supposed to be U+1F620
19:16:33  <mmalecki>my terminal tells me it's a "?" wrapped in some frame
19:16:34  <TooTallNate>isaacs: the main problem with the v0.6.11 release (and all these "unable to load shared library" error reports) is that node-waf only builds for the default arch
19:16:49  <TooTallNate>so people installed the 32-bit pkg and then node-waf doesn't work for them anymore
19:16:57  <isaacs>oh, jesus.
19:17:04  <isaacs>waf just never stops hurting us.
19:17:10  <isaacs>i think we need to release a fat binary
19:17:37  <TooTallNate>agreed, looks like only a little modification to the `make pkg` target is necessary I think
19:17:40  <piscisaureus_>isaacs: that probably won't help :-)
19:17:56  <piscisaureus_>isaacs: because osx will still prefer the x64 variant
19:18:01  <isaacs>oh, right
19:18:06  <TooTallNate>why is that a problem?
19:18:34  <isaacs>right, but you'll prefer the variant you want, and node-waf will build to that variant also.
19:21:05  <isaacs>well, node-waf will build ia32, but you have to set CCFLAGS=-m32
19:22:54  <creationix>isaacs, � is quite the strange character. I can see it in xchat, and my gnome terminal, but not in the node repl (running in the same gnome terminal)
19:23:15  * brsonjoined
19:23:17  <piscisaureus_>creationix: that is exactly what all the unicode fuzz is all about
19:23:21  <piscisaureus_>creationix: node can't handle it
19:23:27  <creationix>ahh, so v8 is puking on it
19:23:31  <piscisaureus_>yup
19:23:48  <creationix>luvit handles it just fine ;)
19:24:00  <creationix>of course, 8-bit encoding-less strings is kinda cheating
19:24:32  <piscisaureus_>creationix: luvit has conceptual issue too but you don't know yet because luvit has no users
19:24:34  <piscisaureus_></troll>
19:25:39  <creationix>interesting, c9.io handles the character just fine. I can even save it, close the tab, and when I reload, it's still there
19:25:49  <creationix>(in chrome)
19:25:55  <isaacs>creationix: because it's not interacting with the utf8 with v8
19:26:02  <piscisaureus_>creationix: that's interesting
19:26:07  <isaacs>creationix: webkit is presenting ucs2 bytes to v8
19:26:14  <piscisaureus_>creationix: are you sure it's an non-BMP character
19:26:26  <isaacs>piscisaureus_: it's definitely non-BMP
19:26:32  <piscisaureus_>creationix: I just demonstrated to Sergi that ACE actually pukes on SMP characters too
19:26:39  <piscisaureus_>creationix: try to delete it
19:26:45  <creationix>sublime can't handle it btw. Is that v8 or something else
19:27:22  <piscisaureus_>creationix: the reason btw that c9.io can save/load it is because it saves files as binary, it never translates from/to string in node
19:27:37  <piscisaureus_>because that's where it breaks
19:27:48  <creationix>so chrome is sending blobs to the node backend?
19:27:54  <creationix>I thought it was json
19:28:06  <piscisaureus_>creationix: no saving files uses webdav
19:28:07  <creationix>but yeah, deleting it takes two backspace presses
19:28:16  * dshaw_quit (Quit: Leaving.)
19:29:37  <isaacs>ok, trying out this lipo thing for make pkg
19:37:04  <mmalecki>isaacs: btw, after doing some little benchmark, your http://blog.izs.me/post/7746314700/benchmark-array-ification-of-arguments still holds true :)
19:38:43  * xaqquit (Remote host closed the connection)
19:43:46  <isaacs>mmalecki: well, we haven't changed v8 much since then. it'd be interesting to see how it does in master.
19:44:13  <mmalecki>isaacs: node master or v8 master?
19:44:43  * xaqjoined
19:45:09  <TooTallNate>☮ ~/node (master) ⚡ file nodefat
19:45:10  <TooTallNate>nodefat: Mach-O universal binary with 2 architectures
19:45:10  <TooTallNate>nodefat (for architecture x86_64): Mach-O 64-bit executable x86_64
19:45:10  <TooTallNate>nodefat (for architecture i386): Mach-O executable i386
19:45:11  <TooTallNate>:)
19:45:30  <TooTallNate>we should add the armv7 version too :p
19:45:49  <tjfontaine>have they released the arm macbook air? :)
19:46:18  <TooTallNate>i was talking iOS
19:46:25  * mikealquit (Quit: Leaving.)
19:46:40  <isaacs>mmalecki: first one, then th'other ;)
19:46:46  <isaacs>mmalecki: but i meant node-master
19:48:06  <mmalecki>isaacs: I'm on node master
19:48:16  <isaacs>mmalecki: oh, sweet, then :)
19:48:24  <mmalecki>I run master as global node
19:48:28  <isaacs>then yes, that is more interesting, though still not super surprising.
19:48:31  * dshaw_joined
19:48:34  <mmalecki>#engineerlivingontheedge
19:49:34  <isaacs>TooTallNate: https://github.com/isaacs/node/commit/6e257434c4ce68ef4108a90e8ceee654fd984fd9 <-- seems to work
19:50:21  <isaacs>TooTallNate: are you doing that on master?
19:50:31  <isaacs>oh, yeah, just saw your bash prompt :)
19:50:51  <TooTallNate>isaacs: i was just messing around, your commit looks good
19:51:08  <isaacs>yeah, but it's v0.6 specific
19:51:16  <TooTallNate>ohohohoho
19:51:19  <TooTallNate>i see now
19:51:40  <TooTallNate>isaacs: so you want me to whip up a similar one for master?
19:51:43  <isaacs>TooTallNate: it's a bit of a pain, though, because you have to clean and re-compile all the deps too (v8, uv, etc.)
19:51:47  <isaacs>yeah, if you like
19:52:30  <TooTallNate>isaacs: i don't think -m32 and -m64 do anything on OSX
19:52:37  <isaacs>TooTallNate: yeah, they do
19:52:44  <tjfontaine>which is why we need to help gyp learn how to handle it
19:52:53  <isaacs>they set teh arch
19:53:06  <TooTallNate>isaacs: oh ok, I've always used it's -arch i386 and -arch x86_64
19:53:19  <isaacs>right, but waf doesn't share that with all the child thingies
19:53:34  <isaacs>so they need CCFLAGS env to be set.
19:53:37  <TooTallNate>ahh ok
19:53:43  <isaacs>er, CFLAGs
19:54:00  <TooTallNate>ok fine with me. going to lunch, back in a bit
19:54:36  <isaacs>hm, looks like the pkg that gets built in master doesn't set the prefix=/usr/local. do we still expose that as process.installPrefix?
19:54:56  <isaacs>oh, no, i guess we don't.
19:54:58  <isaacs>that's nicer.
19:56:51  * igorzijoined
19:57:40  * xaqquit (Remote host closed the connection)
19:59:18  * xaqjoined
20:00:29  <CIA-99>libuv: Igor Zinkovsky v0.6 * rc0e7044 / (src/win/internal.h src/win/tcp.c src/win/winsock.c): windows: avoid IOCP short-circuit if non-ifs lsps are detected - http://git.io/YE076A
20:02:57  <igorzi>isaacs: ^-- we confirmed that this fixes the issue described here: http://groups.google.com/group/nodejs/browse_thread/thread/ffd00d5213175428
20:03:14  <isaacs>igorzi: !! awesome
20:03:20  <isaacs>i'll release 0.6.12 with this, and a fat binary
20:04:34  <piscisaureus_>isaacs: after that we should post to npm-1894 to try with the new version
20:04:44  <piscisaureus_>and see how many people still have a problem of some sorts
20:04:57  <isaacs>yes
20:05:24  <isaacs>i'm gonna go get lunch. sorry for the delay with 0.7.5, was up late hacking on glob and minimatch last nigh
20:05:25  <isaacs>t
20:05:26  * dapjoined
20:06:02  <CIA-99>node: Igor Zinkovsky v0.6 * r35c1f68 / (3 files): update libuv to c0e7044862 - http://git.io/GzygHQ
20:06:07  * isaacsquit (Remote host closed the connection)
20:12:09  * felixgejoined
20:13:50  * travis-cijoined
20:13:50  <travis-ci>[travis-ci] joyent/node#480 (v0.6 - 35c1f68 : Igor Zinkovsky): The build passed.
20:13:50  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/634b4de...35c1f68
20:13:50  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/722561
20:13:50  * travis-cipart
20:36:08  * xaqquit (Remote host closed the connection)
20:37:27  <bnoordhuis>piscisaureus_: what does #300 do? Use a single inotify watcher instead of one per fs watcher? <- yes
20:37:58  <piscisaureus_>bnoordhuis: gotta run. sorry.
20:38:13  <piscisaureus_>bnoordhuis: coming to the office tomorrow?
20:39:04  <bnoordhuis>piscisaureus_: yes
20:39:19  <bnoordhuis>make sure you're in at 9, you're on coffee duty tomorrow
20:39:48  <bnoordhuis>pfox___: nice work
20:40:10  * bnoordhuisis referring to mozilla/rust#1878
20:40:13  <pfox___>ty
20:40:22  <pfox___>yeah, it looks like it'll land.
20:40:35  <pfox___>it still needs work. i need to pass back err codes from libuv
20:40:49  <pfox___>etc etc ad nauseum
20:41:04  <mmalecki>!gh mozille/rust#1878
20:41:04  <kohai>mmalecki, https://github.com/mozille/rust/issues/1878
20:41:09  <mmalecki>!gh mozilla/rust#1878
20:41:09  <kohai>mmalecki, https://github.com/mozilla/rust/issues/1878
20:42:03  <bnoordhuis>pfox___: we're probably changing how errors are passed around
20:42:11  <bnoordhuis>but i think bertje already mentioned that
20:42:27  <pfox___>just returning a number, instead of uv_err_s ?
20:42:30  <bnoordhuis>yes
20:42:37  <bnoordhuis>also, you're probably not going to like my patch for issue #300
20:43:20  * piscisaureus_quit (Ping timeout: 245 seconds)
20:44:14  <pfox___>bnoordhuis: the uv_fs_event_init() thing? how so?
20:44:47  <bnoordhuis>pfox___: it changes the layout of uv_loop_t based on if the os is linux or not
20:45:19  <pfox___>huh.
20:45:32  <pfox___>well we haven't gone down the road of mapping libuv structs from rust, yet.
20:45:43  <pfox___>ill reserve my ire for some future date :)
20:46:16  <bnoordhuis>heh, okay
20:46:23  <pfox___>hopefully by then there'll be some hand-wavey tooling magic to make the problem go away
20:47:02  <pfox___>since building libuv from src is part of building rust from src, if we have a binding generator, we should be able to handle it (i hope)
20:48:24  <pfox___>so this is the first time you've had to do this sort of thing (per-platform struct layout)?
20:48:30  <bnoordhuis>yes
20:48:46  <bnoordhuis>hopefully won't happen too often
21:00:59  * piscisaureus_joined
21:13:02  * indutnychanged nick to indutny_sleeping
21:21:40  <CIA-99>node: Cam Pedersen master * r7f94b5c / doc/api/net.markdown : docs: remove duplicate socket.write - http://git.io/tVjY9Q
21:35:03  <TooTallNate>hey guys, what's the difference between - and @ in make syntax?
21:35:11  <TooTallNate> -rm some-file
21:35:15  <TooTallNate> @rm some-file
21:36:02  <bnoordhuis>TooTallNate: - ignores errors, @ doesn't print
21:36:38  <TooTallNate>bnoordhuis: - errors as in exit code? and can they be used together?
21:36:49  <bnoordhuis>TooTallNate: yes and yes
21:37:11  * travis-cijoined
21:37:11  <travis-ci>[travis-ci] joyent/node#481 (master - 7f94b5c : Cam Pedersen): The build is still failing.
21:37:11  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/3d1b670...7f94b5c
21:37:11  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/722888
21:37:11  * travis-cipart
21:37:48  <TooTallNate>bnoordhuis: thanks :)
21:49:52  <bnoordhuis>indutny_sleeping: https://github.com/joyent/node/pull/2765 <- what are you going to do with this?
22:03:38  <indutny_sleeping>bnoordhuis: I think...
22:03:41  <indutny_sleeping>oh, just commented
22:03:42  <indutny_sleeping>:D
22:03:51  * isaacsjoined
22:04:04  <indutny_sleeping>bnoordhuis: sorry, I'm deeply involved in my dotlang project
22:04:21  <bnoordhuis>indutny_sleeping: no rush
22:04:23  <indutny_sleeping>bnoordhuis: I think I'll investigate possibility of using fsevents with uv tomorro
22:04:24  <isaacs>hello
22:04:28  <isaacs>it's insanely nice outside here in oakland.
22:04:29  <indutny_sleeping>isaacs: hi!
22:04:30  <bnoordhuis>tomorrow is soon enough
22:04:32  <isaacs>you all should move here.
22:04:33  <bnoordhuis>hey isaac
22:04:37  <indutny_sleeping>isaacs: I don't mind
22:04:42  <isaacs>it's like summer.
22:04:50  <indutny_sleeping>it's like spring in Omsk now
22:04:55  <indutny_sleeping>snow is going to melt soon
22:05:11  <isaacs>hehe. "snow"
22:05:20  <indutny_sleeping>yeah
22:05:27  <TooTallNate>yes, very nice here in SF today
22:05:27  <indutny_sleeping>a lot of it
22:05:41  <TooTallNate>geez, doing 2 gyp builds takes forever!! haha
22:05:49  <AvianFlu>I remember snow... from back when I lived in NY XD
22:05:55  <isaacs>TooTallNate: yeah, it's pretty painful with waf, too.
22:06:09  <isaacs>TooTallNate: it's the gcc that takes a long time. gyp or waf don't really add much
22:06:31  <tjfontaine>TooTallNate: I really don't think it's as difficult as the comments make it out to add the feature into gyp, but I won't get to look at that before the weekend
22:07:11  <isaacs>TooTallNate, tjfontaine: is there a way to build fat versions of uv, zlib, v8, etc. so that we don't have to do the *whole* compilation twice?
22:07:15  <TooTallNate>tjfontaine: it will be cool once gyp gets it natively since then node-gyp would be able to create universal addons :)
22:07:26  <isaacs>or does lipo just glue the two bins together?
22:07:56  <tjfontaine>isaacs: the latter in this case, TheRightWay(tm) does it at compile time so you're not reparsing everything
22:08:09  <isaacs>i see.
22:08:11  <isaacs>yes, that sounds better.
22:08:30  <TooTallNate>isaacs: here's for master https://github.com/TooTallNate/node/commit/0d77886a83f178179af1b252c228992888b6b29c
22:08:32  <isaacs>even if it is a slower compile, presumably it wouldn't be double?
22:08:36  <tjfontaine>right
22:08:58  <isaacs>TooTallNate: the first two 'rm's need to have a -
22:09:08  <isaacs>TooTallNate: the - says "don't fail on failure"
22:09:12  <TooTallNate>isaacs: with -f, rm always exists 0
22:09:27  <isaacs>TooTallNate: orly? even if it doesn't exist?
22:09:30  <TooTallNate>yup
22:09:32  <indutny_sleeping>yes
22:09:40  <isaacs>is that a posix thing, or just bsd/darwin?
22:10:03  <bnoordhuis>posix
22:10:20  <TooTallNate>ya posix, works on my linux box at home too
22:11:28  <isaacs>neat.
22:11:37  <isaacs>k, then, ignore my comment :)
22:13:30  <indutny_sleeping>is there any stuff to work on in node? :)
22:13:59  <indutny_sleeping>what're our priorities? fixing tests?
22:14:18  <indutny_sleeping>ah, I think I gonna search mailbox for one letter
22:16:48  * mikealjoined
22:16:52  * mikealquit (Read error: Connection reset by peer)
22:17:12  * mikealjoined
22:21:36  <TooTallNate>igorzi: piscisaureus_: you windows guys online?
22:21:51  <piscisaureus_>I''m online
22:22:42  <TooTallNate>piscisaureus_: what do you think about the "off-screen console" comment?
22:22:45  <TooTallNate>https://github.com/joyent/node/issues/2754#issuecomment-4107968
22:23:26  <piscisaureus_>TooTallNate: it is possible, but I don't want it in libuv
22:23:36  <isaacs>oh, holy crap, that's crazy.
22:23:47  <isaacs>wait, so you just position the cmd window off the screen?
22:24:02  <TooTallNate>i was curious about that part too, sounds hacky haha
22:24:08  <isaacs>yes, that absolutely does not belong in libuv, maybe not in node, either. that's gui-insanity
22:24:14  <isaacs>guinsanity
22:24:18  <piscisaureus_>TooTallNate: just accept that windows has no notion of a pty. It would be a massive project and it is super hacky
22:24:52  <DrPizza>^
22:25:01  <piscisaureus_>TooTallNate: besides, this probably won't fix it for you because it does not allow presenting the windows tty as a stream.
22:25:26  <DrPizza>require('posix').isatty(fd)
22:25:31  <DrPizza>or w/e
22:25:42  <piscisaureus_>require('tty').isaaty(fd) also works
22:26:24  <DrPizza>yes, as long as it's clear that the tty module won't do what you want/expect on windows
22:26:35  <TooTallNate>piscisaureus_: ok, for the windows case (was gonna use it in node-gyp) i'll revert back to customFds
22:26:44  <piscisaureus_>That's fine/
22:26:46  <TooTallNate>piscisaureus_: for the other use-cases, i guess it's unix only
22:26:51  <piscisaureus_>yes
22:26:56  <piscisaureus_>it sucks but that's what it is
22:27:10  <TooTallNate>i have accepted
22:27:14  <piscisaureus_>btw - supporting pty's in unix is something that I would consider in node
22:27:15  <DrPizza>I'm planning to write an editorial to say that windows needs to fix its unix incompatibilities
22:27:27  <piscisaureus_>DrPizza: don't put it that way
22:27:34  <piscisaureus_>DrPizza: although I agree
22:27:49  <DrPizza>no, I won't put it that way
22:27:53  <DrPizza>the way I'm going to put it is this:
22:28:00  <piscisaureus_>DrPizza: but the console problem should be fixed anyway. It is virtually impossible to write sshd for windows
22:28:22  <DrPizza>in 2000, being windows compatible was in many ways make-or-break for an application's success (see MySQL's dominance over the technically superior but crap-on-Windows postgres)
22:28:31  <DrPizza>but in 2012 that's no longer the case
22:28:55  <DrPizza>unix-only apps (or at least, hard-to-port-to-Windows apps) such as git, node, mongo, etc., can succeed
22:29:03  <DrPizza>because developers who want unix and a nice GUI can use Mac OS X
22:29:10  <piscisaureus_>yup
22:29:17  <piscisaureus_>the landscape has drastically changed
22:29:19  <DrPizza>yes
22:29:32  <DrPizza>and whilst I think Microsoft's sponsorship of things like node.js development is great
22:29:40  <DrPizza>it means that it's always playing catch-up
22:29:42  <isaacs>Windows is still *hugely* relevant.
22:29:53  <DrPizza>isaacs: definitely, but it's not make-or-break in the way it once was, IMO
22:30:00  <isaacs>we can debate whether it'll still be the case in 10 years or not
22:30:10  <piscisaureus_>DrPizza: back in 2000 unix was only for neckbeard geeks and enterprises. Nowadays we have os x and a pretty mature linux
22:30:17  <isaacs>yeah
22:30:20  <piscisaureus_>Of course - it's highly relevant
22:30:31  <DrPizza>in 2000, even if you _deployed_ on linux, you _developed_ on windows
22:30:37  <DrPizza>so first-class win32 support mattered
22:31:05  <piscisaureus_>It still matters, but much less so
22:31:09  <DrPizza>right
22:31:15  <piscisaureus_>I mean redis won't take patches for windows support
22:31:22  <DrPizza>you can get a lot of traction nowadays by only supporting unix-like platforms
22:31:35  <piscisaureus_>which leaves igorzi maintaining the windows fork
22:31:39  <DrPizza>I don't think that was so true 10-12 years ago
22:31:44  <isaacs>pty as a unix-only thing is fine, though, as long as we either fail gracefully or early-and-loud on windows.
22:32:02  <piscisaureus_>either way
22:32:15  <piscisaureus_>probably just scream
22:32:15  <DrPizza>piscisaureus_: yes, redis is a nice example
22:32:16  <isaacs>no half-way failure :)
22:32:18  <DrPizza>of the new breed of app
22:32:31  <isaacs>same with extended stdio fd's
22:32:54  <DrPizza>piscisaureus_: anyway, it's on my list of articles to write
22:33:01  <piscisaureus_>heh
22:33:01  <DrPizza>I need to talk to MS's open source people first
22:33:07  <DrPizza>the problem is, they're going the othe rway
22:33:10  <benvie>many of the advantages windows had have decreased, in terms of usability and whatnot
22:33:10  <DrPizza>win8 ditches SUA
22:33:18  <piscisaureus_>SUA ?
22:33:30  <benvie>not that windows has gotten worse but the alternatives have greatly improved
22:33:44  <DrPizza>piscisaureus_: unix subsystem
22:33:50  <piscisaureus_>oh, that
22:33:53  <DrPizza>which does have pseudoterms
22:33:55  <piscisaureus_>that sucked monkey balls anyway
22:34:11  <DrPizza>it was slow
22:34:14  <piscisaureus_>I though it was dropped much earlier
22:34:17  <DrPizza>but it was much better at providing unix semantics
22:34:23  <DrPizza>no, it's available up to win7/2008R2
22:34:29  <piscisaureus_>Why do you think people use cygwin instad of that
22:34:37  <DrPizza>stupidity!
22:34:43  <piscisaureus_>nO
22:34:46  <isaacs>anything that people use cygwin INSTEAD of is probably best removed.
22:34:50  <piscisaureus_>Because sua doesn't have networking
22:34:53  <DrPizza>yes it does
22:35:06  <DrPizza>people use cygwin because of history
22:35:17  * pfox___quit (Quit: leaving)
22:35:18  <DrPizza>interix cost money
22:35:26  <DrPizza>SFU I think cost money
22:35:28  <DrPizza>SUA is free
22:35:42  * CoverSlidejoined
22:36:22  <tjfontaine>depended on the version of sfu
22:37:14  <DrPizza>oh possibly
22:37:20  <DrPizza>either way, the availability was limited
22:37:31  <DrPizza>not least because during the 9x era, Interix was NT-only anyway
22:37:34  <DrPizza>so cygwin grew and grew
22:37:34  <tjfontaine>istr 3.5 (where sfu ended) was free
22:37:46  <DrPizza>so if people supported any unix-like environment on windows, it was cygwin
22:38:38  <CoverSlide>you mean SUA?
22:39:02  <tjfontaine>CoverSlide: you joined after the antecedent tree was made
22:39:02  <DrPizza>SFU became SUA
22:39:56  <DrPizza>but sadly sinofsky doesn't get it
22:40:01  <DrPizza>sinofsky only cares about Office
22:40:18  <DrPizza>server & tools might as well not exist
22:40:53  <DrPizza>heh
22:40:55  <CoverSlide>well there is always powershell
22:40:56  <DrPizza>it still calls itself interix
22:40:58  <DrPizza>$ uname -a
22:40:58  <DrPizza>Interix awkawk 6.1 10.0.7063.0 genuineintel Intel64_Family_6_Model_42_Stepping_7
22:41:02  <isaacs>indutny_sleeping: you awake?
22:41:03  <DrPizza>powershell isn't remotely unix-like
22:41:29  <CoverSlide>not saying it is, but not all server tools have to be unixy
22:41:31  <isaacs>indutny_sleeping: what's your feeling about https://github.com/joyent/node/pull/2772? pull or no? i kind of like the functionality, but the commits are a bit hard to follow.
22:41:56  <isaacs>indutny_sleeping: ok, your nick is probably accurate, i'll let you sleep :)
22:42:12  <tjfontaine>*this* time
22:45:19  * `3rdEdenquit (Quit: Linkinus - http://linkinus.com)
22:56:30  <isaacs>igorzi: piscisaureus_: any idea what's going on here? https://github.com/isaacs/npm/issues/2190
22:57:12  <isaacs>igorzi, piscisaureus_: it looks like it's getting caught in osme loop of creating a file, then failing, etc.
22:57:57  <piscisaureus_>isaacs: don't you have some retry logic in npm that retries if a file appears locked?
22:58:07  <piscisaureus_>isaacs: node itself doesn't
22:58:11  <isaacs>piscisaureus_: hm... maybe?
22:58:24  <isaacs>i thought i yanked that out, and it's only for removal, not for creating
22:58:52  <isaacs>this looks like it's in a CreateFile call
22:59:04  <piscisaureus_>hmm
22:59:06  <piscisaureus_>C:\Windows\SysWOW64\config
22:59:14  <piscisaureus_>ah wft of course
22:59:19  <piscisaureus_>somehow the environment isn't set
22:59:24  <piscisaureus_>so %APPDATA% is empty
22:59:28  <isaacs>right
22:59:31  <isaacs>that's what they're finding
22:59:48  <DrPizza>piscisaureus_: another one for the list of mandatory environment settings?
22:59:49  <isaacs>oh, i think the npmrc sets prefix=${APPDATA} or some such
22:59:49  <piscisaureus_>and path.resolve resolves to <<cwd>>/config
23:00:00  <DrPizza>hmm
23:00:20  <isaacs>so the npmrc sees prefix=
23:00:21  <isaacs>after replacing
23:00:31  <igorzi>it's running in IIS
23:00:32  <piscisaureus_>DrPizza: looks like we have to put appdata on the environment default override list
23:00:35  <isaacs>npm could abort if there's an environment variable in a config setting that can't be replaced.
23:00:48  <piscisaureus_>isaacs: yeah, that would be good anyway
23:00:51  <isaacs>but even still, shouldn't the fs.mkdir or whatever be getting an EACCES rather than some other error?
23:00:56  <isaacs>especially rather than looping forever?
23:01:02  <DrPizza>piscisaureus_: yes, it seems so
23:01:16  <piscisaureus_>DrPizza: the right solution would be imho to just merge environments by default
23:01:23  <piscisaureus_>because issues like this will keep popping up
23:01:24  <DrPizza>hmmm
23:01:38  <piscisaureus_>the only headache is that it is a subtle api change
23:01:54  <piscisaureus_>isaacs: that I don't know
23:02:09  <igorzi>piscisaureus_: what do you mean "put appdata on the environment default override list" ?
23:02:25  <piscisaureus_>isaacs: but you should be aware that CreateFile is the equivalent of open(2).
23:02:43  <piscisaureus_>isaacs: it's not just for creating files, it's also for opening them, and for stat() even
23:03:11  <DrPizza>piscisaureus_: yes, and I thought there was some reason we didn't, maybe to make it closer to CRT behaviour or something
23:03:14  <piscisaureus_>igorzi: we have a list in libuv of environment variables that are always set, even if they are not specified
23:03:51  <DrPizza>igorzi: if you spawn a child process, and specify a custom environment for that child, it wipes out the whole environment, and JUST uses the custom environment.
23:04:04  <DrPizza>igorzi: however, that breaks stuff, so we have a few settings that are ALWAYS inherited and NEVER destroyed
23:04:13  <DrPizza>(I guess someone could technically specify an empty value for them, though)
23:04:16  <DrPizza>(but that's their own stupid fault)
23:04:17  * mikealquit (Quit: Leaving.)
23:04:18  <piscisaureus_>yeah
23:04:40  <piscisaureus_>but maybe it wasn't even spawned from node (php has the same stupid behavior iirc)
23:04:40  <igorzi>piscisaureus_: do we know that's what happened here? (spawned process not having appdata)
23:04:48  <piscisaureus_>igorzi: who spawned it?
23:05:17  <igorzi>IIS is spawning npm in this case
23:05:27  <piscisaureus_>igorzi: it could happen from node if someone was explicitly passing an environment (e.g. child_process.fork('foo.exe, [], { env: {})
23:06:10  <piscisaureus_>igorzi: it's not going through node somehow? does npm use child_process.spawn/exec somewhere?
23:06:13  <piscisaureus_>^-- isaacs?
23:06:14  <igorzi>piscisaureus_: yes, i'm just saying that it's not clear that this issue is caused by that.. it's possible that when node was spawned by IIS there's no appdata
23:06:33  <piscisaureus_>well, then IIS is broken :-)
23:07:06  <bnoordhuis>igorzi, piscisaureus_: https://github.com/joyent/node/issues/2808
23:07:22  <igorzi>piscisaureus_: "This was reproduced by running a simple web application in IIS under the ApplicationPoolIdentity"
23:07:33  <igorzi>piscisaureus_: it might be valid to not have appdata set in that env.
23:07:43  <bnoordhuis>the error messages suggest that openssl is fed bad data
23:07:52  <piscisaureus_>igorzi: why? It's running as a particular user right?
23:08:26  <igorzi>piscisaureus_: yeah
23:08:36  <piscisaureus_>igorzi: maybe if it spawns as NetworkService then not
23:08:49  <piscisaureus_>igorzi: just checked, I don't have a NetworkService user folder
23:09:26  <piscisaureus_>igorzi: in that case NPM should probably disallow global installs and look elsewhere for its config
23:09:35  <piscisaureus_>but where?
23:09:40  <DrPizza>doesn't network service use all users profile?
23:09:41  <DrPizza>maybe not
23:11:53  <isaacs>piscisaureus_, igorzi: the thing that's confusing to me is that this permission error isn't getting up to node.
23:12:00  <isaacs>and it's getting caught in some loop.
23:12:19  <igorzi>isaacs: yeah that's strange too
23:12:32  * mikealjoined
23:12:34  <isaacs>npm handles EACCES from global installs all the time.
23:12:41  <isaacs>even prints a message that you need to run as root/Administrator
23:12:46  * mikealquit (Client Quit)
23:12:50  <piscisaureus_>It has the Open Reparse Point bit set
23:12:57  <piscisaureus_>which suggests that he is trying to lstat
23:13:43  * pfox___joined
23:14:24  <piscisaureus_>BTW, kudos for the user that pastes a procmon dump
23:14:30  <piscisaureus_>everybody should do that
23:15:15  <piscisaureus_>isaacs: I will try to reproduce
23:15:35  <piscisaureus_>isaacs: should be easy by loggin in unprivileged and clearing $APPDATA
23:19:15  <piscisaureus_>isaacs: igorzi: it's more funky than I though. I cleared those env vars and logged in as an unpriviliged user.
23:19:38  <piscisaureus_>isaacs: it just works - although NPM creates a directory ${APPDATA} (sic) for me
23:19:48  <piscisaureus_>isaacs: which is kinda weird
23:21:56  <igorzi>hmm
23:22:03  <piscisaureus_>wait
23:22:41  <piscisaureus_>changing to windows\syswow64 changed the game a little bit
23:22:42  <piscisaureus_>https://gist.github.com/1888314
23:22:47  <piscisaureus_>but no hang
23:22:56  <piscisaureus_>also - npm seems to get stuck earlier
23:23:20  <piscisaureus_>because in that perfmon report the problem was with a file named `config`
23:23:33  <piscisaureus_>isaacs: where does npm look for `config` by default?
23:23:55  <isaacs>piscisaureus_: hm... that's weird...
23:23:59  <isaacs>piscisaureus_: it.. doesn't.
23:24:25  <DrPizza>lol npm trying to overwrite your registry?
23:25:59  * mjr_quit (Quit: mjr_)
23:27:26  <piscisaureus_>11:35:22.3546154 AM node.exe 7660 CreateFile C:\Windows\SysWOW64\config NAME COLLISION Desired Access: Read Data/List Directory, Synchronize, Disposition: Create, Options: Directory, Synchronous IO Non-Alert, Open Reparse Point, Attributes: N, ShareMode: Read, Write, AllocationSize: 0
23:27:33  <DrPizza>lol
23:27:38  <piscisaureus_>funny flag combo also
23:27:52  <piscisaureus_>Disposition: create. Options: directory
23:27:57  <piscisaureus_>iow, mkdir?
23:28:11  <piscisaureus_>mkdir('config')
23:28:20  * mikealjoined
23:28:59  <piscisaureus_>maybe mkdirp?
23:29:46  <piscisaureus_>lol http://www.geekfreelancers.com/projects/duplicate-web-app-c9-io-409362.html
23:30:08  <isaacs>yeah, it never creates a directory called 'config'
23:30:09  <isaacs>ever
23:30:20  <isaacs>maybe the package they were trying to install is called 'config
23:30:22  <isaacs>that'd do it
23:30:36  <isaacs>but even then, it'd be node_modules/config that it tries to create first
23:30:54  <piscisaureus_>and if that fails?
23:31:01  <isaacs>abort
23:31:07  <isaacs>pretty much any failure, npm aborts.
23:45:01  <CoverSlide>npm is pro-choice
23:46:37  * felixge_joined
23:46:37  * felixge_quit (Changing host)
23:46:37  * felixge_joined
23:49:51  * pfox___quit (Ping timeout: 244 seconds)
23:51:32  <piscisaureus_>I am pretty sure somewhere we end up in a mkdir/stat loop
23:51:33  * stephankquit (Quit: *Poof!*)
23:53:29  * DrPizza_joined
23:54:36  * felixgequit (Read error: Connection reset by peer)
23:54:36  * felixge_changed nick to felixge
23:54:37  * mikealquit (Quit: Leaving.)
23:54:37  * DrPizzaquit (Ping timeout: 252 seconds)
23:54:49  * DrPizza_changed nick to DrPizza
23:57:01  <isaacs>piscisaureus_: you can run the command with --loglevel=silly arg, and it'll print all that stuf fout to stderr
23:58:12  <piscisaureus_>isaacs: I think it is an mkdirp bug
23:58:28  <isaacs>orly?
23:58:36  <piscisaureus_>I am reproducing right now
23:58:41  * mjr_joined
23:58:41  <isaacs>nice!
23:58:42  <piscisaureus_>Will start working shortly after :-p
23:59:50  <piscisaureus_>isaacs: yet it is still questionable why it would try to create the config directory or something in there
23:59:59  <isaacs>yes