00:04:11  <ryah>okay
00:04:28  <ryah>igorzi, piscisaureus_: you guys probably have no idea - but im very stuck
00:04:38  <ryah>heat.exe has this -var option
00:04:50  <ryah>which allows you to specify a variable for the root of the tree..
00:05:06  <ryah>without specifying it somehow it thinks all files come from "SourceDir"
00:05:08  <ryah>whatever.
00:05:17  <ryah>so i specify -var var.NPMSourceDir
00:05:58  <ryah>and it correctly generates this
00:05:59  <ryah> <File Id="fil98E70C0CDE5DA8DE026AE5C188255F6E" KeyPath="yes" Source="$(var.NPMSourceDir)\AUTHORS" />
00:06:05  <ryah>(and other files)
00:06:22  <ryah>how do i define this var.NPMSourceDIr during the build?
00:07:37  <igorzi>ryah: see in product.wxs - <?define sourcedir="$(var.ProjectDir)..\..\..\$(var.Configuration)\" ?>
00:07:40  <ryah>yeah
00:07:42  <igorzi>can you defined it like that?
00:08:04  <ryah>igorzi: i tried that in many places
00:08:10  <ryah>but it doesn't get into the npm.wxs
00:08:11  <ryah>somehow
00:08:19  <ryah>igorzi: let me show you the diff i've got going
00:11:05  * piscisaureus_waves goodbye
00:11:32  <ryah>igorzi: https://gist.github.com/063fe772827efd3f2428
00:12:05  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
00:16:54  <ryah>igorzi: i also tried /p:NPMSourceDir=blah
00:17:12  <ryah>and <NPMSourceDir> in the PropertyGroup
00:17:22  <ryah>grasping at straws obvious
00:17:24  <ryah>ly
00:17:49  <igorzi>ryah: <?define sourcedir="$(var.ProjectDir)..\..\..\$(var.Configuration)\" ?> needs to be in npm.wxs somehow
00:17:59  <igorzi>ryah; oh wait.. never mind
00:18:21  <ryah>we could jsut .. sed it in there somehow..
00:18:23  <ryah>but..
00:18:25  <ryah>god.
00:19:19  <igorzi>i can't seem to apply the patch.. what commit is it on top of?
00:22:44  <ryah>7defbd27efe49850973f376c63cbf90ccb195468
00:22:47  <ryah>i can rebase...
00:22:49  <ryah>one se
00:28:18  <CIA-95>node: Ryan Dahl npm-msi * r451d61c / (4 files in 2 dirs): WIP. Support installing npm in the .msi - http://git.io/QeJJHg
00:28:40  <ryah>^-- igorzi
00:32:25  <ryah>igorzi: there is some documentation that suggests that if we use light.exe directly that it can be done
00:32:36  <ryah>but presumably there's someway to get that variable defined...
00:32:43  <ryah>through the msbuild...
00:33:56  <ryah>or just have heat.exe put full paths there..
00:35:07  <igorzi>ryah: i'll play with it now.. give me a few minutes
00:36:40  * bnoordhuisquit (Ping timeout: 240 seconds)
00:39:45  * AvianFluquit (Ping timeout: 260 seconds)
00:41:42  * AvianFlujoined
00:43:51  <igorzi>ryah: i think replacing "-var var.NPMSourceDir" with "-var NPMSourceDir", and then defining <NPMSourceDir> in the <PropertyGroup> works
00:44:11  <igorzi>(at least that got rid of the 'var.NPMSourceDir not defined' error
00:44:56  * ericktjoined
00:45:33  <ryah>igorzi: okay. trying that
00:54:56  <igorzi>ryah: actually, that doesn't seem to work
00:56:28  <ryah>C:\Users\ryan\node\npm.wxs(11): error CNDL0149: Ill-formed preprocessor variabl
00:56:28  <ryah>e '$(NPMSourceDir)'. Variables must have a prefix (like 'var.', 'env.', or 'sy
00:56:28  <ryah>s.') and a name at least 1 character long. If the literal string '$(NPMSourceDi
00:56:28  <ryah>r)' is desired, use '$$(NPMSourceDir)'. [C:\Users\ryan\node\tools\msvs\msi\node
00:56:30  <ryah>msi.wixproj]
01:00:16  <ryah>igorzi: is there an advantage to using msbuild instead of light.exe and candle.exe directly?
01:00:23  <isaacs>ryah: review? updated npm to 1.1.0-alpha-2
01:00:24  <isaacs>https://github.com/isaacs/node/commit/a386753651ef1d152b1f965355eaf0056c35e80d
01:00:38  <isaacs>removed a bunch of stuff that's never used in production
01:01:30  <ryah>isaacs: looks good to me
01:01:34  <isaacs>k
01:01:37  <isaacs>pushing
01:02:02  <isaacs>also sent a zip to npmjs.org/dist
01:02:11  <isaacs>can be unzipped right in the node folder, for windows users
01:02:31  <ryah>isaacs: have you tried the .pkg and 'make install' with npm yet?
01:02:55  <isaacs>not yet. trying that now
01:02:57  <ryah>isaacs: i'd love to have a second pair of eyes on them before the release
01:03:10  <ryah>isaacs: you can build the .pkg with 'make pkg'
01:03:14  <isaacs>ryah: kewl
01:03:20  <isaacs>ryah: where's `make install`? on master?
01:03:27  <ryah>isaacs: v0.6
01:03:34  <isaacs>and that installs npm?
01:03:41  <ryah>yes
01:04:30  <isaacs>kewl
01:04:33  <isaacs>trying
01:04:47  <igorzi>ryah: msbuild is supposed to make it easier to use light.exe + candle.exe (at least according to my friend)
01:05:06  <ryah>igorzi: okay - easier is better
01:05:31  <ryah>igorzi: can you ask him about this preprocessor/heat problem?
01:06:25  <isaacs>ryah: it should also symlink as npm-g and npm_g
01:06:36  <isaacs>but that's just extra.
01:06:51  <isaacs>looks pretty good, though
01:07:04  <isaacs>installs are pretty easy when all your deps are bundled :)
01:07:14  <ryah>yep
01:07:39  <isaacs>v8 is building...
01:09:32  <igorzi>ryah: yep
01:12:58  <isaacs>hahaha, wow, that's a lot of green
01:13:00  <isaacs>ryah: lgtm
01:13:10  <isaacs>i'm gonna land this alpha-2 update, then
01:13:54  <CIA-95>node: isaacs v0.6 * r3ab15cd / (139 files in 50 dirs): Update npm to 1.1.0-alpha-2 - http://git.io/QR-RwA
01:14:29  <ryah>isaacs: v0.6.3 is going out thursday at midnight
01:14:33  <ryah>isaacs: fyi
01:16:44  <isaacs>ok
01:16:54  <isaacs>well, there isn't going to be another npm release before then, i don't think
01:18:13  <isaacs>ryah: this one is looking pretty solid.
01:18:15  <ryah>k
01:21:25  * igorziquit (Ping timeout: 265 seconds)
01:23:52  <ryah>im just going to sed this shit
01:23:54  <ryah>god.
01:27:50  * igorzijoined
01:27:56  <igorzi>ryah: figured it out
01:28:21  <igorzi>it needs to go into <DefineConstants> (in nodemsi.wixproj)
01:29:02  <igorzi>it fails now with this:
01:29:02  <igorzi>light.exe : error LGHT0103: The system cannot find the file 'C:\src\reset\node\deps\npm\\node_modules\tar\test\fixtures\r\e\a\l\l\y\-\d\e\e\p\-\f\o\l\d\e\r\-\p\a\t\h\aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\cccccccccccccccccccccccccccccccccccccccccccccccccc\aaaaaaa.txt' with type ''. [C:\src\reset\node\tools\msvs\msi\nodemsi.wixproj]
01:29:14  <igorzi>but that's understandable :)
01:29:17  <isaacs>hah!
01:29:19  <isaacs>take THAT [email protected]
01:29:31  <isaacs>igorzi: i just removed that file from node
01:31:42  <ryah>igorzi: oh nice
01:32:18  <ryah>igorzi: i was just about to put some sed hackery in there
01:32:32  <ryah>igorzi: what's your <DefineConstants> line look like?
01:35:30  <igorzi>ryah: <DefineConstants>Debug;ProductVersion=$(NodeVersion);NPMSourceDir=..\..\..\deps\npm\</DefineConstants>
01:37:12  * isaacsquit (Quit: isaacs)
01:39:00  <ryah>igorzi: -var var.NPMSourceDir ?
01:39:04  <ryah>still doesnt work for me..
01:39:23  <igorzi>what do you get?
01:40:41  <igorzi>yes: -var var.NPMSourceDir
01:41:19  <ryah>oh wait.. ok
01:41:25  <ryah>got it - i put it in the wrong place
01:41:25  <ryah>cool
01:43:36  <igorzi>nice
01:44:29  <igorzi>ryah isaacs: btw is laying the files out on disk enough? do we need to run anything as part of the install?
01:45:33  <CIA-95>node: Ryan Dahl npm-msi * r46cbe6e / (4 files in 2 dirs): WIP. Support installing npm in the .msi - http://git.io/2fgBmw
01:45:33  <CIA-95>node: Ryan Dahl npm-msi * r4e9372d / (tools/msvs/msi/nodemsi.wixproj vcbuild.bat): Correctly replace NPMSourceDir - http://git.io/0BHsXA
01:45:42  <ryah>igorzi: just putting there is good
01:45:55  <ryah>igorzi: we need to somehow put the npm.cmd in the base directory
01:47:34  <ryah>wow it worked :D
01:47:47  <ryah>okay.. now for the .cmd...
01:48:20  <ryah>maybe i'll have time to put the node logo in the msi
01:48:44  <ryah>which is the kind of polish that people appriciate
01:57:07  <ryah>just installed socket.io via the .msi :D
01:58:13  <igorzi>sweet!
02:00:16  <CIA-95>node: Ryan Dahl v0.6 * re5cf3f9 / (4 files in 2 dirs): Fixes #2083. Support installing npm in the .msi - http://git.io/Bnq70Q
02:00:46  <ryah>http://nodejs.org/dist/v0.6.3/node-v0.6.3.msi <--
02:00:57  * ericktquit (Ping timeout: 244 seconds)
02:02:19  <igorzi>the install is definitely not as fast anymore :)
02:02:51  <ryah>yeah :(
02:04:29  <igorzi>isaacs: https://gist.github.com/1387720
02:07:03  <ryah>igorzi: create a bug for him on isaacs/npm
02:07:17  <ryah>i think he left for school
02:07:19  <igorzi>ryah: k
02:13:03  <igorzi>ryah: i think windows devs will definitely appreciate this (msi installing node+npm)
02:16:41  <ryah>yeah
02:17:39  <CIA-95>node: Ryan Dahl v0.6 * r055a933 / vcbuild.bat : Add exe and msi signing to vcbuild.bat - http://git.io/FR7lzA
02:18:17  * dapquit (Quit: Leaving.)
02:25:26  <ryah>okay. now for some hot logo action.
02:34:14  * AvianFluquit (Ping timeout: 255 seconds)
02:59:35  * brsonquit (Quit: leaving)
03:14:28  <ryah>got the logos :D
03:16:15  <ryah>http://tinyclouds.org/nodejs-msi.png
03:24:27  <CIA-95>node: Ryan Dahl v0.6 * rb906e85 / (3 files in 2 dirs): Fixes #2076. Add logos to MSI - http://git.io/AICQWw
03:26:55  <ryah>http://nodejs.org/dist/v0.6.3/node-v0.6.3-rc2.msi
03:36:53  * creationixjoined
04:08:28  * creationixquit (Ping timeout: 244 seconds)
04:21:47  * creationixjoined
05:30:45  * ericktjoined
05:38:48  * AvianFlujoined
05:42:58  * ericktquit (Quit: erickt)
05:43:54  * piscisaureus___changed nick to piscisaureus_
05:54:08  * isaacsjoined
06:10:17  * creationixquit (Ping timeout: 252 seconds)
06:23:12  * mikealjoined
06:53:06  * paddybyersjoined
07:06:14  * paddybyersquit (Quit: paddybyers)
07:37:15  * sh1mmerquit (Quit: sh1mmer)
08:18:51  * isaacsquit (Quit: isaacs)
08:35:38  * kuebkjoined
08:46:44  * paddybyersjoined
11:05:58  * raggiquit (Read error: Connection reset by peer)
11:06:08  * raggi_joined
11:29:51  * bnoordhuisjoined
11:41:11  <bnoordhuis>piscisaureus_: ping
11:55:39  * AvianFluquit (Quit: Leaving)
11:56:46  <CIA-95>node: Ben Noordhuis v0.6 * rce3ccc8 / Makefile : build: fix circular dependency in doc target - http://git.io/KVu88Q
11:56:47  <CIA-95>node: Ben Noordhuis v0.6 * r16889e2 / doc/api/dgram.markdown : docs: fix dgram markdown - http://git.io/7c6kig
12:14:53  * piscisaureus__joined
12:16:50  <bnoordhuis>piscisaureus__: ping
12:17:15  <piscisaureus__>bnoordhuis: ping
12:17:23  * piscisaureus__changed nick to piscisaureus
12:17:27  <bnoordhuis>yo homie
12:17:31  <piscisaureus>sup
12:17:39  <bnoordhuis>sup sup
12:17:42  <piscisaureus>yo oma
12:17:58  <bnoordhuis>can you run libuv's thread_create benchmark?
12:18:04  <bnoordhuis>i'm curious what numbers you get
12:20:14  <piscisaureus>building libuv is so nice n fast
12:20:33  <piscisaureus>how long does that run?
12:21:16  <piscisaureus>bnoordhuis: 4214/s
12:21:25  <piscisaureus>bnoordhuis: but the processor is not maxing out
12:21:31  <piscisaureus>it's running at 2% cpu or something
12:22:01  <bnoordhuis>piscisaureus: it creates threads serially
12:22:16  <bnoordhuis>i get about 26000/s btw
12:22:26  <bnoordhuis>and only 80/s on windows xp :/
12:24:27  <piscisaureus>let me try to figure it out
12:24:31  <piscisaureus>but first lunch
12:26:01  <bnoordhuis>100000 threads created in 3.70 seconds (26998/s) <- sunos is no slouch either
12:26:10  <bnoordhuis>bon appetite, piscisaureus
12:28:53  <CIA-95>node: Ben Noordhuis master * r1db9a2a / Makefile : build: print "not yet implemented" warning on `make install` - http://git.io/L1caYQ
12:45:17  * creationixjoined
14:40:10  <piscisaureus>bnoordhuis: what's the difference between Handle<T> and Local<T>
14:40:11  <piscisaureus>?
14:53:43  <bnoordhuis>piscisaureus: handle is the superclass of local and persistent
14:54:43  <bnoordhuis>indutny: changed jobs again?
15:39:36  <wankdanker>bnoordhuis: quick question, why isn't `handle->fd` initialized in `uv_udp_init()`? If it were then we could setsockopt all day before `uv__bind()`, no?
15:40:30  <bnoordhuis>wankdanker: it's a long story...
15:40:43  <wankdanker>bnoordhuis: i figured that might be that case.
15:41:22  <wankdanker>bnoordhuis: ok, i won't climb that tree then
15:41:26  <bnoordhuis>wankdanker: it's for feature parity with the uv_tcp functions
15:41:48  <bnoordhuis>why those functions do it like that, well... ask ryah or piscisaureus
15:43:11  <wankdanker>how much effort is required in your lazy socket creation concept?
15:43:23  <wankdanker>(just out of curiosity)
15:43:44  <bnoordhuis>wankdanker: effort for what?
15:45:08  <wankdanker>bnoordhuis: for `revisiting` it as you mentioned in pull request 255. and possibly implementing the changes also.
15:45:27  <wankdanker>bnoordhuis: i have no idea what is involved, so i was just curious
15:45:37  <piscisaureus>the reasons sockets are created lazily is because we don't know what the address family is going to be
15:45:58  <piscisaureus>because uv_tcp_init does not take an af argument
15:46:03  <bnoordhuis>piscisaureus: we do for dgram sockets in node
15:46:25  <bnoordhuis>wankdanker: not hard for udp
15:47:53  <wankdanker>cool. thanks guys.
15:50:53  <indutny>bnoordhuis: :)
15:51:12  <piscisaureus>indutny: so what is your new job?
15:52:31  <indutny>piscisaureus: build/development tools engineer at Yandex
15:54:53  <piscisaureus>ah ok
15:55:19  <piscisaureus>indutny: got bored with Nodejitsu?
15:55:42  <indutny>piscisaureus: of course, not!
15:55:46  <indutny>they're awesome
15:58:24  <bnoordhuis>indutny: but?
16:00:10  <indutny>bnoordhuis: having some social garantees and medical insurance is always good :)
16:00:24  <indutny>and hard to get if your employer is in another country
16:00:37  <bnoordhuis>okay, makes sense
16:01:05  <indutny>I'm not saying that I stopped working at Nodejitsu
16:03:58  <indutny>anyway it's a big pleasure for me to colaborate with you, guys :)
16:07:40  * kuebkpart
16:10:37  <piscisaureus>bnoordhuis: are you coming to amsterdam today or has that been cancelled?
16:10:57  <bnoordhuis>piscisaureus: no, but it's next week
16:11:03  <piscisaureus>ah so I see
16:11:25  <piscisaureus>bnoordhuis: you should send me invites for this kind of stuff
16:11:32  <piscisaureus>I have no memory, just outlook
16:11:59  <bnoordhuis>piscisaureus: i'll see what i can do...
16:30:49  <CIA-95>libuv: Ben Noordhuis master * rb52b8c7 / (8 files in 5 dirs): util: add uv_strlcpy() and uv_strlcat() functions - http://git.io/JrjUSg
16:55:38  * sh1mmerjoined
16:58:41  * mikealquit (Quit: Leaving.)
17:00:46  * isaacsjoined
17:03:29  * mikealjoined
17:08:16  * dapjoined
17:20:12  * paddybyersquit (Quit: paddybyers)
17:42:07  * ericktjoined
17:48:27  * isaacschanged nick to izs
17:54:13  * piscisaureus_quit (Read error: Connection reset by peer)
17:57:49  * piscisaureus_joined
18:08:08  <CIA-95>libuv: seebees master * r59f9a73 / (test/test-list.h test/test-spawn.c): test: process should not wait for stdio before terminating - http://git.io/hC_LiQ
18:08:08  <CIA-95>libuv: Ben Noordhuis master * r96c2303 / src/unix/internal.h : linux: fix build when compiling with -std=c89 -pedantic - http://git.io/Y3OG1g
18:08:09  <CIA-95>libuv: Ben Noordhuis master * ref811b1 / src/unix/internal.h : Merge branch 'v0.6' - http://git.io/r1JhRA
18:08:14  <CIA-95>libuv: Ben Noordhuis v0.6 * r96c2303 / src/unix/internal.h : linux: fix build when compiling with -std=c89 -pedantic - http://git.io/Y3OG1g
18:20:27  * creationixquit (Ping timeout: 244 seconds)
18:32:22  <piscisaureus>bnoordhuis: igorzi: ryah: what is our current policy on uv_xxx_init and the the `data` member?
18:32:39  <bnoordhuis>piscisaureus: don't touch
18:32:46  * creationixjoined
18:32:47  <piscisaureus>init functions are *guaranteed* to not touch the data event?
18:32:53  <bnoordhuis>yes
18:36:33  * mikealquit (Quit: Leaving.)
18:49:56  <piscisaureus>I assume we are not having a call today?
18:50:04  <piscisaureus>I believe the americans are out?
18:55:00  <igorzi>piscisaureus: no, the americans are out on thursday
19:09:16  * mikealjoined
19:09:18  * igorzi_joined
19:11:30  * igorziquit (Ping timeout: 265 seconds)
19:23:32  * sh1mmerquit (Quit: sh1mmer)
19:36:31  <indutny>bnoordhuis: have you fixed that process.stdin bug?
19:36:57  <bnoordhuis>indutny: no
19:37:05  <bnoordhuis>btw, is there a call today?
19:38:48  <igorzi_>bnoordhuis: we're already 40 min passed the usual time.. so i guess no
19:45:04  <piscisaureus>igorzi_: bnoordhuis: ryah is not here today
19:45:12  <piscisaureus>if anyone wants to call we can do that
19:45:25  <bnoordhuis>piscisaureus: sure - anyone got anything interesting to tell?
19:45:33  <piscisaureus>nah, not really
19:45:44  <bnoordhuis>i saw a kitten today
19:45:59  <piscisaureus>i work on domains today
19:46:05  <bnoordhuis>isolates here
19:46:11  <bnoordhuis>igorzi_: what about you?
19:46:26  <piscisaureus>igorzi_: that long filenames patch - did that land?
19:46:46  <piscisaureus>igorzi_: also, prepending \\?\ makes the path unparsed
19:46:55  <piscisaureus>but I do not really know what that means
19:48:32  <igorzi_>piscisaureus: still working on that patch
19:48:51  <igorzi_>piscisaureus: i'll send it to you for another review soon
19:58:11  * felixgejoined
20:03:09  * paddybyersjoined
20:08:48  * wankdankerquit (Ping timeout: 248 seconds)
20:30:32  <igorzi_>piscisaureus: https://gist.github.com/1389807
20:30:42  <igorzi_>piscisaureus: ^-- pls review
20:34:33  <piscisaureus>igorzi_: will do. have to run now to get to the shop before it closes
20:35:40  <igorzi_>piscisaureus: k, sounds good
20:43:35  * piscisaureusquit (Ping timeout: 240 seconds)
20:48:01  * izsquit (Read error: Connection reset by peer)
20:48:14  * isaacsjoined
20:51:26  <CIA-95>node: Ben Noordhuis isolates * r8ebe08a / (4 files): isolates: add atexit() functionality for isolates - http://git.io/XP4rdw
20:51:28  <CIA-95>node: Ben Noordhuis isolates * r67077b0 / (18 files in 2 dirs): isolates: isolate-ify the main loop - http://git.io/GcdroQ
20:51:29  <CIA-95>node: Ben Noordhuis isolates * r2b0bdc8 / (src/node.cc src/node_isolate.cc): isolates: add _newIsolate() and _joinIsolate() to process object - http://git.io/LhcUMA
20:51:30  <CIA-95>node: Ben Noordhuis isolates * r4b86c0c / (21 files in 7 dirs): uv: upgrade to ef811b1 - http://git.io/aTbxNw
20:57:30  * piscisaureusjoined
20:57:47  * mikealquit (Quit: Leaving.)
20:59:50  <piscisaureus>igorzi_: question
21:00:01  <piscisaureus>igorzi_: how does this work with relative paths
21:00:15  <piscisaureus>and drive-relative paths like c:..\foo.txt
21:01:52  <piscisaureus>igorzi_: also, does it still accept forward slashes?
21:03:13  <igorzi_>piscisaureus: I only prepend \\?\ if the path is not relative (so paths like foo\bar or c:..\foo.txt will not get \\?\)
21:04:00  <igorzi_>piscisaureus: forward slashes.. i just ran node tests with this, and a bunch are broken because of forward slashes
21:04:11  <piscisaureus>igorzi_: so what about c:\foobar\..\windows?
21:05:05  <igorzi_>piscisaureus: if the path consists entirely of forward slashes.. it'll work (because i don't add the prefix).. if the path contains both backword and forward slashes - we're broken (this is why node tests are failing)
21:05:24  <igorzi_>piscisaureus: hmm.. i kind of think now that we should probably punt on this in libuv
21:05:47  <igorzi_>piscisaureus: too many special cases to take care of
21:05:49  <piscisaureus>igorzi_: I'd like it to be fixed in libuv
21:06:04  <piscisaureus>igorzi_: but maybe we can get a quick fix in node in place
21:06:13  <igorzi_>piscisaureus: we have to scan the entire path for ., .., forward slashes
21:06:25  <igorzi_>piscisaureus: not super optimal
21:06:42  <piscisaureus>igorzi_: path.resolve does all preprocessing you'll ever want (except for the c:../path case under some circumstances - that should be easy to fix though)
21:06:49  <piscisaureus>igorzi_: maybe we can temporarily fix this in node
21:08:04  <igorzi_>piscisaureus: does path resolve do c:\foobar\..\windows ?
21:10:20  <piscisaureus>igorzi_: yep
21:10:36  <piscisaureus>igorzi_: it also turns / into \, squashes multiple backslashes etc
21:10:42  <piscisaureus>igorzi_: and it resolves relative paths
21:11:20  <piscisaureus>igorzi_: the only problem that's there is that if the current directory is on c: and you resolve d:..\bla it does not work correctly
21:11:20  <igorzi_>piscisaureus: so, maybe we should add this logic (prepend \\?\) to path.resolve on windows? and have fs functions on windows call path.resolve before calling into fs binding?
21:11:52  <piscisaureus>igorzi_: don't hack path.resolve
21:12:17  <piscisaureus>instead add another function (unexported) that calls path.resolve and then prepends \\?
21:12:26  <igorzi_>piscisaureus: we have to do a lot of what path.resolve does before we can prepend \\?\
21:12:26  <piscisaureus>and call that before going to the fs binding
21:12:38  <igorzi_>piscisaureus: ok, sounds good
21:13:19  <piscisaureus>igorzi yeab, but it can just be:
21:13:20  <piscisaureus>function _makeLong(p) {
21:13:20  <piscisaureus> return "\\?\"+ path.resolve(p)
21:13:20  <piscisaureus>;}
21:14:41  <igorzi_>piscisaureus: yeah, i think we're in agreement on that
21:15:27  <igorzi_>piscisaureus: i was just thinking that it might be beneficial for path.resolve to auto resolve to a ext. path, but that's probably not the case
21:16:09  <piscisaureus>igorzi_: nah, people will get really confused when they see \\?\ in a path
21:16:15  <piscisaureus>I'd rather keep this internal
21:18:18  <piscisaureus>https://github.com/joyent/node/blob/master/lib/path.js#L126-130 <-- needs fix
21:22:03  * isaacschanged nick to izs
21:33:47  <igorzi_>piscisaureus: calling path.resolve on every fs call (that takes a path) also seem like an overkill, no?
21:34:19  <piscisaureus>igorzi_: yes, a little
21:34:28  <piscisaureus>igorzi_: but I think for a while it's fine
21:34:28  <igorzi_>piscisaureus: why not let people handle it them-selves if they need/want?
21:34:49  <piscisaureus>igorzi_: well
21:35:04  <igorzi_>piscisaureus: we can add path.makeLong for convenience (so that people don't have to figure out how to do it)
21:35:42  <igorzi_>piscisaureus: the majority of people (probably 99%) will not need it.. so why make them pay the penalty?
21:35:51  <piscisaureus>igorzi_: https://github.com/joyent/node/issues/618
21:36:42  <piscisaureus>igorzi_: also, I don't think the penalty is really that big
21:36:48  <piscisaureus>if it is, we should move it to c :-)
21:37:23  <piscisaureus>igorzi_: but what did you want to propose, how should people handle it themselves?
21:37:25  <izs>igorzi_, piscisaureus hey
21:37:29  <izs>line endings in package.json files.
21:37:37  <izs>should be \r\n on windows? or \n everywhere?
21:37:58  <piscisaureus>izs: *shrug* I don't really care
21:38:01  <izs>JSON.stringify spits out \n, so it'd be an extra step.
21:38:04  <igorzi_>piscisaureus: same way as with win32 api
21:38:23  <igorzi_>piscisaureus: if you want long paths - prepend \\?\ or \\?\unc\
21:38:37  <igorzi_>piscisaureus: and will give you a convenience function that will do it
21:40:43  <igorzi_>izs: maybe just do \n and see if you get issues for that?
21:40:58  <piscisaureus>izs: +1 for igorzi_'s solution
21:40:59  <izs>igorzi_: i did get an issue on it: https://github.com/isaacs/npm/issues/1767
21:42:01  <piscisaureus>izs: I see you already decided
21:42:06  <igorzi_>izs: ohh :) you should probably do \r\n then, cause you'll probably get more issues on it
21:42:19  <izs>piscisaureus: i decided based on the lack of outrage from you and igor
21:42:36  <izs>you're my windows developer litmus testers :)
21:42:53  <piscisaureus>izs: in a way I can see the point of using \r\n
21:42:54  <izs>if i suggest something, and you say "WHAT!!? YOURE USING \n FOR JSON FILES!!!???" then i know it's a problem.
21:43:10  <izs>piscisaureus: the problem is that it's an annoying extra stem.
21:43:12  <izs>*step
21:43:17  <piscisaureus>izs: yeha
21:43:27  <izs>and if someone opens your package.json in vim on a mac, then it'll be all ^M'ed up
21:43:35  <piscisaureus>izs: exactly
21:43:37  <igorzi_>izs: i use notepad++, so it doesn't bother me.. but you'll probably get a bunch of issues from people using notepad
21:44:00  <izs>i'd rather just make *everything* use \n, everywhere, and even crash if i detect a \r in a json or config file, and force windows users to use a proper editor.
21:44:13  <piscisaureus>what about microsoft fixes fucking notepad
21:44:14  <izs>seriously, who codes in notepad? i did that for like a week when i started programming.
21:44:45  <izs>in my *intro* windows programming course in college, we built a notepad replacement that was significantly better than notepad.
21:44:52  <piscisaureus>igorzi_: tell your boss' boss that I will fix nodepad.exe completely for free
21:45:12  <igorzi_>well, there's a reason for notepad++ :)
21:45:25  <izs>doesn't notepad++ have a way to replace notepad entirely?
21:45:32  <izs>can we just shove that into the node msi installer?
21:45:35  <piscisaureus>it should, but it doesn't
21:45:39  <izs>i thought it did
21:45:40  <piscisaureus>ghehe
21:45:45  <piscisaureus>doesn't for me
21:45:54  <piscisaureus>nodepad++ is also somewhat buggy
21:45:58  <izs>there was some trick involving replacing it in 3 places, and a registry change, and two restarts.
21:46:08  <izs>so that windows didnt' detect the change and switch it back.
21:46:35  * izsreminiscing about being a window script kiddie...
21:48:48  <igorzi_>izs: package.json that ends up in the registry must have \n, right? so theoretically you could convert \r\n -> \n when publishing? (but that's probably too much hassle)
21:49:06  <izs>igorzi_: no, couch stores the data, not the json string.
21:49:14  <izs>so it all gets reformatted anyway
21:49:44  <izs>i see \r as a blocker preventing windows users from integrating.
21:50:10  <izs>you're not going to ever get the unix world to use a two-byte line ending.
21:50:25  <izs>i think history has spoken, and \r\n has to go.
21:50:26  <piscisaureus>izs: does the json parser not choke on \r?
21:50:41  <izs>piscisaureus: json treats [\r\n\s\t] all the same.
21:50:44  <izs>any whitespace is ignored.
21:50:51  <piscisaureus>izs: ah ok good
21:51:03  <izs>so, if you write your package.json in notepad, and it has \r or whatever, fine.
21:51:13  <izs>but the quesion is whether npm init should *write* a package.json with \r\n in it
21:51:19  <piscisaureus>izs: yeah I see
21:51:38  <izs>i'm all for legalizing drugs. not so much for handing out crack to children. you know?
21:52:15  <izs>you wanna ruin your life with \r line endings, that's your own deal. i'm just torn about helping you do that.
21:53:18  <piscisaureus>izs: I am all for educating children
21:53:40  <piscisaureus>izs: the question is just whether you should start when they're 1
21:53:51  <piscisaureus>or if you can let them play for some time
21:54:40  <piscisaureus>izs: I might change my mind at some point about package.json ... but not yet :-)
21:55:07  <igorzi_>izs: the problem is that some people don't even know '\n' vs. '\r\n'.. all they know is that their editor doesn't show the well-formatted package.json.. i don't know how many people like that will use npm to create new modules..
21:55:32  <izs>well... and if they do, they'll almost certainly use npm init
21:55:42  <izs>the question is how many will use npm init, and THEN open it up in an editor :)
21:56:42  <igorzi_>piscisaureus: so, what's the consensus on the long paths? i don't really care either way.. you want it to be done auto-magically?
21:59:01  <piscisaureus>igorzi_: yeah, I think so
21:59:37  <piscisaureus>igorzi_: a quick benchmark reveals that node can resolve about 500.000 paths per seconds
22:00:45  <piscisaureus>igorzi_: if that turns out to be a problem then we can move it to c (or optimize the js code)
22:00:48  <piscisaureus>and get 10x
22:00:56  <igorzi_>piscisaureus: ok
22:01:25  <piscisaureus>igorzi_: that is way beyond the number of files that windows can open per second :-)
22:02:14  <igorzi_>piscisaureus: is there a benchmark for that? :)
22:02:45  <piscisaureus>igorzi_: no, but let's have one
22:06:15  <piscisaureus>igorzi_: opening and closing files: 5000 per second
22:08:11  <igorzi_>piscisaureus: btw, was that 500 or 500000 paths/sec?
22:08:30  <piscisaureus>igorzi_: 500000
22:09:13  <piscisaureus>igorzi_: I was trying path.resolve("c:/windows/../foo/bar")
22:09:36  <piscisaureus>igorzi_: I think that resolving a relative path is slightly slower because that requires a js->c transition
22:10:20  <igorzi_>piscisaureus: ahh ok.. i thought it was 500 (the difference between american and european decimal mark)
22:10:46  <igorzi_>piscisaureus: ok, i'll go ahead with doing path.resolve on every fs operation
22:18:45  <piscisaureus>igorzi_: cool
22:21:37  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
22:23:58  * piscisaureus_joined
22:24:31  * creationixquit (Read error: Operation timed out)
22:27:16  * creationixjoined
22:35:28  * creationixquit (Ping timeout: 248 seconds)
22:37:36  * creationixjoined
22:52:17  <piscisaureus>igorzi_: I am really surprised that ntdll understands drive-specific CWDs but SetCurrentDirectory doesnt update the drive-specific cwd
22:52:26  <piscisaureus>it seems the latter is implemented in crt
22:52:31  * piscisaureussighs
22:53:00  * mikealjoined
22:54:21  * sh1mmerjoined
23:00:29  * paddybyersquit (Quit: paddybyers)
23:05:13  * creationixquit (Read error: Operation timed out)
23:09:32  * izsquit (Quit: izs)
23:17:18  * felixgequit (Quit: felixge)
23:20:22  * piscisaureusquit (Quit: ~ Trillian Astra - www.trillian.im ~)
23:21:29  * piscisaureus__joined
23:49:37  <piscisaureus__>heh
23:49:46  <piscisaureus__>process.cwd("foo") crashes node
23:49:54  <piscisaureus__>(debug build)
23:53:11  <bnoordhuis>where is pietern when you need him?
23:56:55  * mikealquit (Quit: Leaving.)