--- Log opened Wed Jun 20 00:00:45 2012 00:01 < isaacs> piscisaureus__: dare me to set the version to 0.8.0-pre? 00:01 * isaacs thinkin about it 00:02 < piscisaureus__> isaacs: go think about it 00:02 < isaacs> yeah. i'm gonna do it. 00:02 < isaacs> why pretend that there'll be a 0.7.13? 00:03 < CIA-108> node: isaacs master * r252f034 / tools/email-footer.md : email-footer: Label Windows x64 installer properly - http://git.io/-B86WA 00:03 < CIA-108> node: isaacs master * rf105f2f / (doc/api/cluster.markdown lib/querystring.js): trivial: Doc typo and lint fix - http://git.io/6YBJDw 00:03 < CIA-108> node: isaacs master * ra721201 / (ChangeLog src/node_version.h): 2012.06.19, Version 0.7.12 (unstable) - http://git.io/TMTYIw 00:03 < isaacs> the die is cast! 00:03 < CIA-108> node: isaacs master * rfbc2ad5 / (5 files in 5 dirs): Merge branch 'v0.7.12-release' - http://git.io/EI1hCQ 00:03 < CIA-108> node: isaacs master * re401740 / src/node_version.h : Now working on 0.8.0 - http://git.io/j9D5tA 00:06 < bnoordhuis> sleep tight, all 00:06 < isaacs> g'nite! 00:08 < isaacs> piscisaureus__: is https://github.com/joyent/node/issues/3478 fixed now? 00:08 < isaacs> piscisaureus__: you pulled in that performance somethingorother, right? 00:10 < piscisaureus__> isaacs: yep 00:10 < piscisaureus__> isaacs: I'll close it 00:10 < isaacs> awesome. 00:10 < isaacs> 0 blockers! 00:10 < isaacs> let's see if we can collect a few more before we release 0.8 :) 00:11 < isaacs> probably 00:22 < piscisaureus__> hmm, unfixable conceptual problem found 00:23 < isaacs> ooh, delicious 00:23 < isaacs> what's this? 00:24 < piscisaureus__> well, well, when a cluster "disconnects" a worker it makes the worker close all the servers 00:25 < piscisaureus__> and then waits for the worker to exit naturally 00:25 < piscisaureus__> but 00:25 < piscisaureus__> on windows the server can't close itself because the parent is holding a copy of the server handle 00:31 < piscisaureus__> I can make it work somewhat 00:33 < isaacs> hm. ok 00:33 < isaacs> that sounds puzzling :) 00:35 < piscisaureus__> Maybe node should just refuse to run when people have LSPs installed >:) 00:36 < piscisaureus__> that would solve so many problems 00:37 < isaacs> what are LSPs? layerd something pipes? 00:37 < tjfontaine> layered service providers 00:37 < isaacs> 1/3. nice 00:38 < piscisaureus__> this isn't the first time they drive me mad 00:38 < isaacs> yeah, i've heard you and igor complain about them before 00:38 < tjfontaine> where I stopped reading: " A Layered Service Provider is a DLL that uses Winsock APIs to insert itself into the TCP/IP protocol stack" 00:38 < pquerna> yeah, its awesome :D 00:38 < isaacs> resorting to wget -mk. 00:38 < piscisaureus__> heh 00:38 < isaacs> there is no way to just pull all the data out of wordpress, apparently 00:38 < pquerna> its commonly used by anti-virus software and the like 00:39 < tjfontaine> isaacs: there is, but you get xml 00:39 < piscisaureus__> pquerna: I would hope not 00:39 < isaacs> oh, wait, there is!! 00:39 < piscisaureus__> pquerna: It's commonly used by malware 00:39 < pquerna> yes :) 00:39 < isaacs> sweet, that'll be so much easier than parsing html. 00:40 < piscisaureus__> pquerna: because LSPs all work in user mode they are not a good fit for anti virus stuff. As a virus writer you could just opt to ignore the LSPs and make syscalls directly 00:41 < isaacs> haha, the first few posts on this are ryan talking about new features. 00:41 < isaacs> before we just did that on the github issues. 01:35 < CIA-108> libuv: Bert Belder reviewme * r6e8eb33 / src/win/tcp.c : windows: abort accept requests when a shared tcp server is closed - http://git.io/pY7MrA 01:36 < piscisaureus__> ^-- anyone cares to review? 01:36 < piscisaureus__> meh, I am missing igor already 01:40 < piscisaureus__> well, I suppose some more unreviewed code I wrote will go into node 01:49 < piscisaureus__> isaacs: okay ? 02:06 < piscisaureus__> isaacs: not here? 02:06 < piscisaureus__> isaacs: I caught you tweeting 1 second ago 02:21 < piscisaureus__> [06:38|% 100|+ 470|- 0]: Done 02:21 < CIA-108> libuv: Bert Belder master * r6e8eb33 / src/win/tcp.c : windows: abort accept requests when a shared tcp server is closed - http://git.io/pY7MrA 02:23 < CIA-108> node: Bert Belder master * r7887e68 / deps/uv/src/win/tcp.c : uv: upgrade to 6e8eb332 - http://git.io/kqQ3ag 02:48 < travis-ci> [travis-ci] joyent/libuv#431 (reviewme - 6e8eb33 : Bert Belder): The build passed. 02:48 < travis-ci> [travis-ci] Change view : https://github.com/joyent/libuv/commit/6e8eb33249f7 02:48 < travis-ci> [travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1661261 02:49 < piscisaureus__> ircretary: tell isaacs I just landed it. See windowsdrone for test status, tests are running. 02:49 < ircretary> piscisaureus__: I'll be sure to tell isaacs 02:54 < travis-ci> [travis-ci] joyent/libuv#432 (master - 6e8eb33 : Bert Belder): The build passed. 02:54 < travis-ci> [travis-ci] Change view : https://github.com/joyent/libuv/compare/b496c1221c38...6e8eb33249f7 02:54 < travis-ci> [travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1661420 04:10 < isaacs> ircretary: hi 04:10 < ircretary> isaacs: Hello :) 04:10 < isaacs> ircretary: notes 04:10 < ircretary> isaacs: I don't have any notes for you. 04:17 < isaacs> ircretary: wtf 04:17 < ircretary> isaacs: I'm not sure what to do with that command. Ask for help in PM. 04:17 < isaacs> . 04:25 < TooTallNate> isaacs: :p 04:35 < isaacs> TooTallNate: man, 0.8 is so close. 04:35 < isaacs> <3 this 04:35 < TooTallNate> isaacs: ya man, exciting 04:36 < TooTallNate> isaacs: i thought you would retweet :D https://twitter.com/tootallnate/status/215146109574717443 04:42 < isaacs> TooTallNate: i missed that one! 11:02 < indutny> isaacs: alert 11:03 < indutny> some error with IPC in fork 11:03 < indutny> reported by mmalecki 11:03 < mmalecki> (and we have a reproduction) 11:04 < indutny> figuring out what's happening 11:04 < indutny> but it seems that read_cb gets some negative status 11:08 < indutny> isaacs: nvm 11:08 < indutny> problem in user code 11:33 < indutny> isaacs: or not 12:09 < einaros> I've updated the websocket benchmark suite to accommodate perf comparisons between node versions 12:10 < einaros> I should automate that somehow, travis style 12:28 < `3rdEden> but how does it compare to other websocket libs ;) 12:28 < einaros> I really don't want to publish such results (it's trivial enough to generate the stats yourself) 12:29 < einaros> publish as in anywhere outside of this channel, that is 12:29 < einaros> https://gist.github.com/1c773855726975bbda4f 12:31 < `3rdEden> Roundtrips of 10 MB binary data: ws 1917% faster -- ouch 12:32 < einaros> jcoglan is doing something very strange to cause that. I've notified him, so he's looking into it. 13:05 < indutny> ircretary: just FYI problem fixed 13:05 < ircretary> indutny: I'm not sure what to do with that command. Ask for help in PM. 13:05 < indutny> ooh 13:05 < indutny> isaacs: just FYI problem fixed 13:05 < indutny> that was userspace stuff 13:06 < indutny> connecting node 0.7.x to node 0.6.x by IPC channel is borked 13:06 < indutny> bnoordhuis: hoya 13:06 < indutny> bnoordhuis: can you please assist me? 13:07 < bnoordhuis> indutny: heya 13:07 < bnoordhuis> sure 13:07 < bnoordhuis> what's up? 13:07 < indutny> bnoordhuis: I'm trying to use uv as a dependency to a small toy project 13:07 < indutny> first of all I got variable 'library' is undefined 13:07 < bnoordhuis> you're building with gyp? 13:07 < indutny> which I fixed by passing -Dlibrary=static_library argument to Makefile 13:07 < indutny> yes 13:08 < indutny> now I get following ../deps/uv/src/cares.c:22:16: error: uv.h: No such file or directory 13:08 < indutny> ../deps/uv/src/cares.c:23:18: error: tree.h: No such file or directory 13:08 < indutny> s/I get/I'm getting 13:08 < bnoordhuis> what's the make command you're using? 13:08 < indutny> looks like uv's defaults ain't picked up anywhere 13:08 < indutny> one minute 13:09 < indutny> I'll create private repo and add you 13:10 < indutny> bnoordhuis: https://github.com/indutny/tls-candy/blob/master/Makefile 13:12 < indutny> brb 13:12 < bnoordhuis> indutny: what happens if you add deps/uv/include to include_dirs in tls-candy.gyp? 13:21 < indutny> bnoordhuis: nothing 13:21 < indutny> it was here 13:21 < indutny> I just changed it to cares 13:21 < indutny> actually 13:21 < indutny> when BUILDTYPE=Default - it works 13:22 < bnoordhuis> right, you need to set up build targets 13:22 < indutny> how is that supposed to work? 13:23 < bnoordhuis> have a look at common.gypi 13:24 < indutny> bnoordhuis: I've just copied contents of uv/common.gypi into common.gyp 13:24 < indutny> bnoordhuis: still the same 13:26 < bnoordhuis> wait, let me clone it 13:27 < bnoordhuis> indutny: Exception: Call to 'python build/gcc_version.py' returned exit status 2. while trying to load tls-candy.gyp 13:27 < indutny> em 13:27 < bnoordhuis> did you actually test it? :-/ 13:27 < indutny> yes 13:27 < indutny> ah 13:27 < indutny> build/ in gitignore 13:27 < indutny> one sec 13:30 < indutny> bnoordhuis: are you doing `make` in the folder? 13:30 < bnoordhuis> yes, plain `make` 13:31 < indutny> ah 13:31 < indutny> have you did `git submodule update --init` ? 13:31 < indutny> I've added uv as a submodule 13:31 < indutny> probably that was a mistake ^ 13:31 < bnoordhuis> submodules... 13:31 < bnoordhuis> yeah, they're more pain than they're worth 13:32 < bnoordhuis> okay, checked out the submodules, still the same error though 13:32 < indutny> em... 13:32 < bnoordhuis> no worries, i'll strip out gcc_version 13:33 < indutny> probably because you're on linux/unix 13:33 < bnoordhuis> KeyError: 'Undefined variable library in deps/uv/uv.gyp while loading dependencies of tls-candy.gyp while trying to load tls-candy.gyp' 13:33 < bnoordhuis> well, it's progress 13:33 < indutny> yes 13:34 < bnoordhuis> indutny: you need two things 13:34 < bnoordhuis> first one is -> tools/gyp/gyp -Dlibrary=static_library -f make --depth=. --generator-output=build tls-candy.gyp 13:34 < bnoordhuis> second one is to downgrade gyp :) 13:34 < indutny> hahaha 13:34 < bnoordhuis> because the current one fails with KeyError: 'Duplicate basenames in sources section, see list above' 13:34 < indutny> to what version 13:35 < indutny> s/what/which 13:35 < bnoordhuis> pick the one that's in node 13:35 < bnoordhuis> r1214 13:35 < indutny> it doesn't work with it 13:35 < indutny> one moment I'll push update 13:36 < bnoordhuis> do `git clean -dfx` after you've downgraded gyp 13:36 < indutny> still no luck 13:36 < bnoordhuis> maybe we should've picked cmake after all... 13:36 < indutny> Pushed update 13:36 < indutny> gyp works fine for me in candor 13:37 < indutny> candor.io is using it to build candor as a dependency 13:37 < indutny> well, it's using it in my branch 13:37 < bnoordhuis> okay, it's not picking up the deps includes 13:37 < indutny> ah 13:38 < indutny> yes 13:38 < indutny> and variables 13:38 < indutny> how does node handling that? 13:38 < bnoordhuis> i had that problem in spiderluv too... what was causing that again? 13:39 < indutny> ok, I'll use raw epoll then :P 13:39 < indutny> or kqueue 13:40 < mmalecki> bnoordhuis: hey, mind looking at https://github.com/joyent/node/issues/3496 when you find some time? 13:40 < bnoordhuis> indutny: you can use the plain makefile too 13:41 < indutny> bnoordhuis: like build uv 13:41 < indutny> bnoordhuis: and use uv.a ? 13:41 < bnoordhuis> though that only does debug builds 13:41 < bnoordhuis> yeah 13:41 < indutny> bnoordhuis: I don't really like it, but it'll work 13:41 < bnoordhuis> or rather, `make -C deps/uv` 13:41 < bnoordhuis> libuv has a non-gyp makefile as well 13:42 < indutny> yes, I know 13:42 < indutny> but it can't handle file changes 13:42 < indutny> err... I can't make it handle file changes 13:42 < indutny> without placing all dependencies in my makefile too 13:44 < bnoordhuis> it was something in common.gypi that was screwing up things... 13:44 < bnoordhuis> re the spiderluv bug 13:44 < bnoordhuis> i'll dig some mor 13:44 < bnoordhuis> *more 13:46 < indutny> bnoordhuis: https://gist.github.com/eecc51503df6f83260ac 13:46 < indutny> much better with make! 13:46 < indutny> :) 13:48 < bnoordhuis> indutny: git pull 13:48 < indutny> wow 13:49 < indutny> what was the problem in? 13:49 < indutny> -Icommon.gypi? 13:49 < bnoordhuis> yes, more or less 13:49 < indutny> GYP is so retarded sometimes 13:49 < bnoordhuis> it is :) 13:49 < indutny> bnoordhuis: thanks a lot man! 13:50 < bnoordhuis> my pleasure :) 14:34 < creationix> we're thinking about switching to cmake for luvit 14:34 < creationix> half our deps already use it 14:34 < creationix> and we don't need v8, so libuv and http_parser are the only gyp based deps 14:35 < indutny> creationix: hm... this is a valuable objection 14:35 < creationix> though cmake is pretty large itself 14:35 < creationix> I think it depends on libstdc++ 14:36 < creationix> http_parser is so small and simple that any build system will do 14:36 < creationix> how hard is libuv to build on windows without gyp? 14:36 < creationix> would cmake be hard? 14:37 < bnoordhuis> no, not hard 14:37 < bnoordhuis> we won't be maintaining it though :) 14:37 < creationix> understood 14:37 < creationix> but we're maintaining gyp for half our deps 14:37 < creationix> many which are cmake upstream 14:38 < creationix> build systems are a pain, why are there so many? 14:38 < indutny> haha 14:38 < isaacs> indutny: yes, ipc requires matching nodes (or at least matching version family) 14:38 < indutny> creationix: have you seen that xkcd comic 14:39 < bnoordhuis> because all other build systems suck 14:39 < indutny> about 14 standards 14:39 < tjfontaine> bnoordhuis++ 14:39 < creationix> indutny, if I did I don't remember 14:39 < indutny> isaacs: yes, I understand 14:39 < indutny> isaacs: that was just hard to track 14:39 < indutny> :) 14:40 < creationix> indutny, did you ever decide what build system you wanted for candor? 14:40 < creationix> still planning on using gyp? 14:41 < indutny> creationix: well, I haven't really considered it yet 14:41 < indutny> still rewriting JIT engine, you know 14:41 < creationix> just wondering, I'd like one build system for my 3 projects 14:41 < indutny> haha 14:41 < indutny> well, candor.io is not actively maintained atm ;) 14:41 < creationix> spidermonkey is a real pain to build 14:41 < indutny> oh 14:41 < indutny> yes, indeed 14:42 < indutny> I was doing that a lot when I was toying couchdb stuff 14:42 < creationix> maybe this whole bundled deps thing was a bad idea? 14:42 < creationix> though non-bundled deps leads to version mismatch issues 14:42 < tjfontaine> only for crappy library apis, or people with bad configure's 14:43 < indutny> creationix: I like bundled deps 14:43 < indutny> for example 14:43 < indutny> candor has only one dependency - python 14:43 < indutny> for gyp 14:43 < tjfontaine> the question of to bundle is a matter of how popular the library is vs how volatile the api is 14:43 < creationix> indutny, yeah, when it works, it's great 14:44 < creationix> tjfontaine, right, and how easy it is to bundle 14:44 < tjfontaine> if the library can build itself, it's relatively easy to bundle, so tthat's a non-issue 14:46 < creationix> heh, cmake libuv fork https://github.com/okuoku/libuv 14:50 < bnoordhuis> piscisaureus_: http://groups.google.com/group/nodejs/browse_thread/thread/57382d346cbafae7 < seen that? sounds like a threading issue but what do i know? 14:51 < piscisaureus_> bnoordhuis: no clue ... 14:51 < indutny> bnoordhuis: GUI is running in another thread 14:51 < indutny> and v8 just can't figure what isolate to use 14:51 < indutny> seems like that 14:51 < bnoordhuis> yeah, something like that 14:51 < indutny> though who I am to talk about it 14:51 < piscisaureus_> bnoordhuis: that argc = __argc looks icky too 14:51 < bnoordhuis> but i don't claim to be a windows programmer 14:51 < piscisaureus_> I don't think that works 14:52 < bnoordhuis> i'm just a guy that hangs out with windows programmers 14:55 < piscisaureus_> it could also be that he is linking to the dll version of the crt 15:00 < indutny> piscisaureus_: is windows invoking click callbacks and others in other thread? 15:00 < piscisaureus_> indutny: no. Windows makes no callbacks 15:02 < indutny> piscisaureus_: huh 15:02 < indutny> ok, I'm not really a UI man 15:02 < piscisaureus_> indutny: you just ask for events 15:02 < indutny> polling? 15:02 < piscisaureus_> http://msdn.microsoft.com/en-us/library/windows/desktop/ms644936%28v=vs.85%29.aspx 15:02 < piscisaureus_> indutny: well, I suppose DispatchMessage could trigger actual callbacks 15:02 < indutny> well, it's quite raw isn'it ? 15:02 < indutny> it's putting message in a box 15:02 < indutny> as I can remember it 15:03 < piscisaureus_> but that always happens on the same thread 15:03 < piscisaureus_> indutny: GetMessage != MsgBox :-) 15:07 < piscisaureus_> I still really like gyp 15:08 < piscisaureus_> I had to do stuff with waf and scons two days ago 15:08 < piscisaureus_> oh, the humanity 15:09 < indutny> you feel like you're hitler 15:09 < indutny> "SCONS and WAF makes you fill like you're hitler" 15:10 < creationix> piscisaureus_, have you used cmake? 15:10 < piscisaureus_> creationix: not a lot, no 15:11 < piscisaureus_> but I hear reasonable stories 15:11 < piscisaureus_> er, I hear stories that it works reasonably well :-) 15:12 < mmalecki> I've heard it makes pupies die in unimaginable pain 15:12 < mmalecki> *puppies 15:13 < creationix> node for webos was built using cmake 15:13 < creationix> I never could figure it out 15:13 < creationix> but Tom said it made cross-compiling a lot easier 15:14 < creationix> but that was back in the waf-scons era 15:14 < piscisaureus_> right 15:14 < piscisaureus_> well, I have no problems with waf 15:14 < piscisaureus_> it's easy to maintain 15:15 < piscisaureus_> er, with gyp 15:15 < piscisaureus_> aaah 15:15 < piscisaureus_> I HATE waf 15:16 < piscisaureus_> bnoordhuis: hey, question. Does ev_signal work in node atm? 15:19 < isaacs> anyone have any idea why simple/test-zlib-random-byte-pipes fails in debug mode? 15:19 < isaacs> looks like something completely unrelated to zlib itself: this._hash = this._hasher.digest('hex').toLowerCase().trim(); 15:33 < piscisaureus_> hmm 15:34 < piscisaureus_> so zero writing *is* the trick to gracefully close a pipe 15:34 < piscisaureus_> awesome 15:34 < piscisaureus_> let's get rid of the EOF timer 15:39 < bnoordhuis> piscisaureus_: i think so 15:45 < bnoordhuis> it probably won't ref the loop though 15:45 < bnoordhuis> s/probably// 15:47 < piscisaureus_> bnoordhuis: well, I think on uv-unix it doesn't work 15:47 < piscisaureus_> bnoordhuis: because you would coalesc the writes 15:47 < piscisaureus_> but on windows we now have this stupid timer 15:47 < piscisaureus_> it should be a flush + a zero write 15:48 < piscisaureus_> hmm, uv-win also cannot read 0 bytes because it would be picked up by the zero read we do all the time 15:48 < piscisaureus_> this will be a long journey 15:48 < piscisaureus_> let's join the standup 15:57 < CIA-108> libuv: Ben Noordhuis master * r14ffaa6 / (include/uv.h src/fs-poll.c test/test-fs-poll.c): unix, windows: stat: never pass NULL to cb - http://git.io/9WikIw 15:59 < travis-ci> [travis-ci] joyent/libuv#433 (master - 14ffaa6 : Ben Noordhuis): The build passed. 15:59 < travis-ci> [travis-ci] Change view : https://github.com/joyent/libuv/compare/6e8eb33249f7...14ffaa668d41 15:59 < travis-ci> [travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1666048 17:01 < isaacs> bnoordhuis, piscisaureus_: seems like we stopped being able to read a pipe as if it was a file in 0.8: https://gist.github.com/2960945 17:06 < piscisaureus_> isaacs: you can't read from stdin using an offset 17:06 < piscisaureus_> isaacs: you should set the read offset to -1 17:07 < isaacs> piscisaureus_: yeah 17:07 < isaacs> so, i think fs.readFile should set offset=-1 the first time, rather than offset=0 17:07 < piscisaureus_> isaacs: I don't think that works in 0.6 either 17:07 < piscisaureus_> isaacs: hmm, maybe... 17:07 < isaacs> piscisaureus_: the reason why it fails is becasue fs.readFile changed 17:08 < isaacs> piscisaureus_: the less efficient fs.ReadStream implementation didn't try to be smart about positions. 17:08 < piscisaureus_> isaacs: really, it didn't? hmmm 17:08 < isaacs> piscisaureus_: is there any way to detect whether or not pread will work? 17:08 < isaacs> piscisaureus_: no, it was just a fs.ReadStream that got collected 17:08 < isaacs> piscisaureus_: i mean, actually, isn't read() supposed to always keep moving forward? so the offset in fs.readFile is really unnecessary. 17:09 < piscisaureus_> isaacs: its complicated. I am sure that WriteStream always uses pwrite. 17:09 < piscisaureus_> isaacs: with good reason 17:09 < piscisaureus_> isaacs: not sure about ReadStream 17:10 < isaacs> hm. readstream does set position. 17:10 < piscisaureus_> isaacs: whether pwrite support is detectable - you could just try or call lseek. But bnoordhuis has more experience than me. (In this area, that is) 17:11 < isaacs> piscisaureus_: oh, ok. it sets the offset to this.pos, but only if you've given it a {start:n}, or if it's a subsequent read 17:15 < isaacs> actually we don't have to detect whether it's a pipe. 17:15 < isaacs> we should just use the default behavior of read() and keep getting more data. 17:15 < isaacs> 99% of the time, we'll get it all in the first pass anyway. 17:20 < isaacs> piscisaureus_: silly question, i know... is there anything like /dev/stdin on windows? 17:20 < piscisaureus_> isaacs: yes, but you can't open it in node 17:20 < isaacs> k 17:20 < piscisaureus_> isaacs: for various reasons. It's something to look into later 17:20 < piscisaureus_> isaacs: funny, TooTallNate asked me exactly the same question 17:20 < isaacs> this test really only is valid if it's opening a file that is actually stdin 17:21 < isaacs> a file that is actually a pipe to stdin, i mean 17:22 < isaacs> we could also always do the php thing, and just lie to you 17:22 < isaacs> if you open('/dev/stdin') we just give you standard input and don't even try to open it 17:30 < CIA-108> node: isaacs reviewme * r1d3d02c / (lib/fs.js test/simple/test-fs-readfile-pipe.js): Fix fs.readfile('/dev/stdin') (+22 more commits...) - http://git.io/azA0xA 17:30 < isaacs> piscisaureus_, bnoordhuis: ^ 17:36 < piscisaureus_> isaacs: ok, so this works when the entire thing can be read in one pass? And after that it chokes? 17:36 < isaacs> piscisaureus_: no, it'll work if you have subsequent reads, as well. 17:36 < isaacs> that's what read() does 17:37 < piscisaureus_> oh, hmm 17:37 < piscisaureus_> well, I suppose this flies because node serializes te read() calls 17:37 < isaacs> there's no need to pass in a pos unless you know that you need to start at some other position. 17:38 < piscisaureus_> isaacs: unfortunately we cannot fix fs.writeFile('/dev/stdout', data) 17:38 < isaacs> piscisaureus_: not without evil, no 17:38 < isaacs> actually, i'm not convinced it's evil.. 17:38 < piscisaureus_> isaacs: Me neither 17:38 < piscisaureus_> isaacs: this will be fixed in 0.10 17:39 < isaacs> i mean, seriously, how bad would it *really* be if fs.readFile('/dev/stdin') just opened stdin, and then called your cb when it closes? 17:39 < isaacs> or if fs.writeFile('/dev/stdout') just did console.log? 17:39 < piscisaureus_> isaacs: no, that would not be that bad 17:39 < isaacs> it'd work on windows. 17:39 < piscisaureus_> isaacs: umm, I don't like this aliasing 17:39 < isaacs> of course, someone would come along and whine that it doesn't work for /dev/ttyp0 or something 17:40 < isaacs> aliasing? 17:40 < piscisaureus_> isaacs: well, you just proposed to do some magic in node to detect a write to /dev/stdout and do something magic on windows 17:41 < isaacs> piscisaureus_: no, i proposed to detect a fs.writeFile() to /dev/stdout and do some magic everywhere. 17:41 < piscisaureus_> isaacs: but I agree; the fs methods should just work reasonably on /dev'files 17:41 < isaacs> but down that road leads madness. 17:41 < piscisaureus_> isaacs: this requires some significant work in libuv - which we should do for 0.10 17:41 < isaacs> all tests still pass with this change. 17:41 < isaacs> yes, i agree. 17:41 < piscisaureus_> Make it faster. Make it all streams. 17:41 < isaacs> yes. 17:42 < mmalecki> isaacs: I'm personally -1 on that. don't do too much magic in the core 17:42 < isaacs> STREAM ALL THE THINGS! SPEED ALL THE STREAMS! 17:42 < isaacs> mmalecki: yeah, i'm over it. 17:42 < mmalecki> but I agree with STREAM ALL THE THINGS. 17:42 < isaacs> mmalecki: it was just a temporary bit of insanity 17:42 < mmalecki> and I agree with SPEED ALL THE THINGS even more. 17:42 < isaacs> piscisaureus_: so, fixme? lgty? 17:42 < piscisaureus_> isaacs: yes 17:42 < isaacs> thanks 17:43 < CIA-108> node: isaacs master * r1d3d02c / (lib/fs.js test/simple/test-fs-readfile-pipe.js): Fix fs.readfile('/dev/stdin') - http://git.io/azA0xA 17:43 < isaacs> er, "reviewme", not "fixme" 17:45 < isaacs> every time we fix a bug, i'm going to drop an RC in http://nodejs.org/dist/v0.8.0/ 17:46 < isaacs> or maybe land a patch even 17:47 < piscisaureus_> isaacs: you're starting to like this huh. 17:47 < piscisaureus_> Man, you're releasing like there's no tomorrow 17:47 < isaacs> THERE IS NO TOMORROW ONLY TODAY FOREVER 17:47 < isaacs> we really need loudbot in here. 17:47 < mmalecki> release early, release often :) 17:48 < mmalecki> also, go on isaacs. we're waiting to get rid of all our compiled modules :) 17:59 < isaacs> LOUDBOT: welcome. 17:59 < LOUDBOT> isaacs: SHE'S PROBABLY TITLESS AND HAS NO FLOW 17:59 < isaacs> please use responsibly. 17:59 < ik> im 12 and what is this 17:59 < TooTallNate> LOUDBOT: vulgar 17:59 < LOUDBOT> TooTallNate: DONT LISTEN TO JB 17:59 < mmalecki> CAN ONE USE LOUDBOT RESPONSIBLY?! 17:59 < LOUDBOT> USER PERL FAG 18:00 < isaacs> if it gets annoying, we can always kick it out. 18:00 < ik> loudbot's like firearms guys 18:00 < ik> loudbot is not annoying, people who use loudbot are annoying 18:00 < isaacs> ik: indeed. 18:01 < ik> also loudbot shoots people 18:01 < ik> is, I think, the analogy I was trying to make there 18:08 < CoverSlide> LOUDBOT: How meny testicles do you have? 18:08 < LOUDBOT> CoverSlide: SPACE IN-VA-DERS 18:09 * TooTallNate confused 18:36 < piscisaureus_> isaacs: actually, that test could work on windows 18:36 < piscisaureus_> isaacs: createReadStream({fd: 0}) :-) 18:38 < piscisaureus_> hmm, on linux pummel/test-http-client-reconnect-bug.js consistently fails for me 18:38 < piscisaureus_> bnoordhuis: ^-- you know what it is, or should I dig? 19:48 < einaros> hm 19:49 < ik> isaacs: are you guys down for mandatory capslock day 19:49 < ik> isaacs: on the 28th? 19:49 < ik> isaacs: hint: yes 19:49 < ik> b/c mandatory 19:49 < ik> isaacs: gonna need you to /msg chanserv access #libuv add CAPSLOCKBOT +O 19:49 < ik> isaacs: at your convenience of course but basically no later than right the heck now 19:49 < ik> TIA 20:02 * einaros is confused 20:02 < ik> Don't worry about it einaros 20:04 < indutny> CAPSLOCKBOT: hi 20:04 < indutny> ik: how does it work? 20:04 < ik> it takes effect during capslock day 20:04 < mmalecki> if it does what I think it does, it's pretty fucking awesome 20:05 < ik> See 20:05 < indutny> nice 20:05 < ik> In a perfect world, mandatory capslock day would have 100% voluntary participation 20:05 < indutny> I just entered all caps text and see what's happened 20:05 < indutny> **** 20:05 < indutny> mmalecki: you should try 20:05 < ik> But it's not a perfect world. 20:06 < tjfontaine> mandatory volunteering, how could the world get more perfect 20:06 < mmalecki> LOLOL 20:06 < indutny> tjfontaine: heh 20:06 < indutny> well, you probably don't know but that's how things happened in USSR 20:07 < indutny> actually it's good 20:07 < mmalecki> "who's your favorite hero and why Lenin" 20:07 < indutny> :D 20:15 < mmalecki> ik: are these bots open source btw? 20:15 < ik> sssssssoooort of?? 20:15 < mmalecki> linkety link? 20:16 < ik> LOUDBOT: source 20:16 < LOUDBOT> ik: git clone git://isuckatdomains.net/loudbot.git 20:16 < ik> yikes 20:16 < ik> wasn't expecting THAT to work 20:16 < mmalecki> hahaha 20:16 < ik> Wed Jun 20 16:16:16 EDT 2012 20:16 < mmalecki> CAPSLOCKBOT: source 20:16 < ik> hey let me push some stuff 20:16 < ik> we made it web scale 20:16 < ik> yea CAPSLOCKBOT is still in the skunkworks 20:17 < mmalecki> I love commit messages 20:17 < ik> ok latest loudbot is up 20:17 < ik> yeah I dunno what's in my commit messages 20:17 < ik> or what kind of scary stuff is in the revision history 20:31 < isaacs> ik: no mandatory capslock here, please 20:31 < isaacs> there is actual work that gets done in here :) 20:33 < ik> I mean 20:34 < ik> you know what to do if you decide to man up and become a patriot 20:34 < ik> CAPSLOCKBOT will be waiting 20:36 < ryah> isaacs, bnoordhuis, piscisaureus_: https://gist.github.com/e7a1774248ac9f74fc34 20:36 < ryah> either of you 20:37 < ik> looks good to me ryah 20:37 < ik> go ahead and commit 20:37 < ryah> ik: who are you? 20:38 < isaacs> ryah: mostly lgtm, but we shouldn't make an existing configure flag stop working right now. 20:38 < indutny> ryah: bot 20:38 < ik> ryah: I'm sort of like the Ronald Reagan of the whole "node.js" thing 20:39 < ryah> it's not a flag - just a variable 20:39 < ryah> but that's fine 20:39 < isaacs> oh, sorry, i see. it's just the name we use it internally, then? 20:39 * isaacs shrug 20:39 < isaacs> if it's more symmetric with the other ones, whatever. 20:40 < piscisaureus_> yeah 20:40 < piscisaureus_> a minor win tho 20:40 < piscisaureus_> but I suppose we can land it 20:40 < ryah> also Command: out/Release/node /home/ryan/projects/node/test/simple/test-net-connect-timeout.js 20:40 < isaacs> yeah, it is 20:40 < ryah> ^- failing for me on linux 20:40 < CIA-108> node: Ryan Dahl master * rfe464a2 / (configure doc/api/process.markdown node.gyp): Rename GYP variable node_use_system_openssl to be consistent - http://git.io/2Yj15w 20:40 < ryah> i assume just some timeout problem 20:40 < isaacs> ryah: thanks :) 20:42 < isaacs> ryah: ubuntu, i take it? 20:43 < ryah> yeah 20:43 < isaacs> k 20:43 < piscisaureus_> doesn't fail for me on ubuntu 20:44 < isaacs> yeah, it's passing consistently for me, also 20:44 < isaacs> ryah: what error do you get? 20:53 < ryah> https://gist.github.com/2962145 <-- bench 20:53 < ryah> super impressed with how much better the large response got 20:53 < ryah> how did that happen? 20:54 < ryah> i hope this gets highlighted in the announcement blog post 20:54 < ryah> /bytes/123 is still slower in 0.7 20:54 < ryah> marginally 20:54 < isaacs> yeah, not by much 20:55 < japj> isaacs: what release is node-waf being phased-out? (it is being phased out right? now that we have node-gyp?) 20:56 < isaacs> japj: yeah, it's hard though. lots of stuff in the registry still uses it. 20:56 < isaacs> we've blessed gyp in 0.8. we're going to start warning about waf in 0.10. it'll be gone in 0.11 20:56 < isaacs> which of those are actually 1.0 we'll see. 20:56 < piscisaureus_> ryah: (1) optimizations in v8 and (2) https://github.com/joyent/node/commit/0e57aafbb1c4ad9c8157bfe7f5718e867861492e 20:57 < ryah> piscisaureus_: nice man 20:57 < ryah> it's almost 2x 20:57 < piscisaureus_> ryah: try /unicode/1234 also 20:58 < piscisaureus_> ryah: strings with unicode also got a good perf boost, mostly because me and Erik fixed some pathetic behaviour in the v8 WriteUtf8 code 20:58 < ryah> this is going to be huge for a lot of people 20:58 < piscisaureus_> it's unfortunate tho that bytes/123 didn't get faster 20:59 < piscisaureus_> the day I landed that patch I swear it was faster than 0.6 :-p 21:00 < ryah> ryan@ryan-ThinkPad-X201:~/projects/node% ab -q -t 30 -c 100 http://localhost:8000/unicode/12345 | grep Req 21:00 < ryah> Requests per second: 3693.23 [#/sec] (mean) 21:00 < ryah> ^-- nice 21:00 < ryah> ryan@ryan-ThinkPad-X201:~/projects/node% ab -q -t 30 -c 100 http://localhost:8000/unicode/12345 | grep Req 21:00 < ryah> Requests per second: 1652.66 [#/sec] (mean) 21:00 < ryah> v0.7 vs v0.6 obviously 21:00 < isaacs> :D 21:00 < isaacs> yeah, people are gonna flip over that. 21:00 * isaacs heading out for a bit 21:00 < ryah> just dont publish the /bytes/123 benchmark :) 21:06 < TooTallNate> japj: basically, we have to send pull requests and/or have module authors add a binding.gyp. Once there's a majority then we can start considering removing it 21:10 < japj> TooTallNate: true, so in 0.9 node-waf will show a depricated warning so module authors will be bugged to add a binding.gyp? :) 21:11 < TooTallNate> japj: not a bad idea :) 21:15 < japj> TooTallNate: I have been sending pull requests for some modules already using node-gyp to not call node-gyp manually, since npm already does it when it finds a binding.gyp 21:15 < TooTallNate> japj++ 21:16 < japj> TooTallNate: it would be nice to have a way of going through the module list in an ordered way (i.e. most popular/used first) and start submitting pull requests to port to libuv/node-gyp 21:17 < TooTallNate> japj: well it's easy to query couchdb (and the npm registry) for packages that invoke node-waf, but sorting them by popularity is a little harder 21:17 < japj> TooTallNate: I used a query a while ago that gave me an alphabetical list, which is not optimal.. some modules were already abanded, etc... that gets tiring quickly 21:18 < japj> TooTallNate: see also https://groups.google.com/group/nodejs/browse_frm/thread/89e968ac501c71f0/1e084255452d002e?q=#1e084255452d002e 21:19 < japj> TooTallNate: btw, how tall are you? (asks the person who is ~2 meters tall ;) 21:19 < TooTallNate> japj: hahaha 21:20 < TooTallNate> japj: ~ 6'6" 21:26 < ryah> im going to flood.. 21:26 < ryah> ryan@ryan-ThinkPad-X201:~/projects/node% npm install -g jsdom 21:27 < ryah> npm http GET https://registry.npmjs.org/jsdom 21:27 < ryah> npm http 200 https://registry.npmjs.org/jsdom 21:27 < ryah> npm http GET https://registry.npmjs.org/jsdom/-/jsdom-0.2.14.tgz 21:27 < ryah> npm http GET https://registry.npmjs.org/htmlparser 21:27 < ryah> npm http GET https://registry.npmjs.org/request 21:27 < ryah> npm http GET https://registry.npmjs.org/contextify 21:27 < ryah> npm http 200 https://registry.npmjs.org/contextify 21:27 < ryah> npm http GET https://registry.npmjs.org/contextify/-/contextify-0.1.3.tgz 21:27 < ryah> npm http 200 https://registry.npmjs.org/htmlparser 21:27 < ryah> npm http GET https://registry.npmjs.org/htmlparser/-/htmlparser-1.7.6.tgz 21:27 < ryah> npm http 200 https://registry.npmjs.org/request 21:27 < ryah> npm http GET https://registry.npmjs.org/request/-/request-2.9.202.tgz 21:27 < ryah> > contextify@0.1.3 install /home/ryan/local/node/lib/node_modules/jsdom/node_modules/contextify 21:27 < ryah> > node-gyp rebuild 21:27 < ryah> gyp http GET http://nodejs.org/dist/v0.7.11/node-v0.7.11.tar.gz 21:27 < ryah> gyp http 200 http://nodejs.org/dist/v0.7.11/node-v0.7.11.tar.gz 21:27 < ryah> ^-- downloading node-v0.7.11 ? 21:27 < TooTallNate> ryah: what's `node -v` say? 21:28 < ryah> v0.7.12-pre 21:28 < TooTallNate> well 0.7.11 is the "closest match" in that case then 21:28 < TooTallNate> in terms of header files 21:31 < ryah> TooTallNate: why doesn't it use the headers that were installed with node? 21:32 < TooTallNate> ryah: cause we don't install header files on windows :( 21:32 < ryah> hmm.. 21:32 < TooTallNate> ryah: when it's a "pre" version though, usually you have the source repo handy, so you can pass `node-gyp rebuild --nodedir=~/node` or whatever 21:32 < TooTallNate> and it won't download anything 21:33 < ryah> why not install the headers on windows? 21:34 < TooTallNate> https://github.com/joyent/node/pull/2611 21:34 < TooTallNate> https://github.com/joyent/node/issues/3185 21:35 < TooTallNate> ryah: looks like the bottom line was because "regular" users won't be compiling anything in our ideal world 21:36 < TooTallNate> and some kind of build farm is on my wishlist for v0.9 21:46 < einaros> TooTallNate: build farm as in on-demand compilation of extension foo for platform baz and bar? 21:47 < TooTallNate> einaros: the details are still in the air, but the bottom line is that "npm install weak" shouldn't require compilation for the average windows user 21:48 < einaros> 6+ months ago, when the npm ship-with-binaries thing was first being discussed, I said "it'd be nice with a Travis like service for cross platform binary compilation" 21:51 < TooTallNate> einaros: ya, that might be a good way to go 21:51 < einaros> azure trial account to the rescue 21:54 < TooTallNate> einaros: for a little while i was manually compiling and committing to the repos themselves 21:54 < TooTallNate> which frankly, i don't have a problem with, but it is quite unmanageable once you have to be recompiling all the time 21:54 < TooTallNate> so there definitely needs to be some kind of automated service 21:56 < piscisaureus_> so the question is, who is going to pay for that? :-) 21:59 < TooTallNate> well it would seem appropriate for joyent to front the machines for us ;) 21:59 * TooTallNate hint hint 22:41 < CIA-108> node: Fedor Indutny master * r81a889f / deps/v8/tools/gen-postmortem-metadata.py : v8: fix postmortem debugging tools build - http://git.io/cSRl3w 22:41 < CIA-108> node: Bert Belder master * r6b8ae8e / deps/v8/build/common.gypi : v8: reapply floating patches - http://git.io/jJv7NQ 22:41 < CIA-108> node: Bert Belder master * r6b26583 / (22 files in 8 dirs): v8: upgrade to v3.11.10.10 - http://git.io/E3ZwaA 23:05 < bnoordhuis> back 23:06 < bnoordhuis> piscisaureus_: is that the perf regression fix? ^ 23:11 < piscisaureus_> bnoordhuis: umm, no, the perf regression already landed 23:11 < piscisaureus_> bnoordhuis: but they landed it in 3.11 plus some more patches 23:11 < piscisaureus_> bnoordhuis: so I just upgraded 23:11 < bnoordhuis> okay, cool 23:11 < bnoordhuis> did you figure out what was wrong with pummel/test-http-client-reconnect-bug? it wfm 23:11 < piscisaureus_> yeah 23:12 < piscisaureus_> it stopped failing at some point 23:12 < piscisaureus_> which is when I stopped looking 23:12 < bnoordhuis> just like that? scary 23:21 < piscisaureus_> bnoordhuis: hey, btw, I was wondering whether the SignalWatcher is supposed to work in node now? 23:26 < bnoordhuis> piscisaureus_: it might be broken 23:26 < bnoordhuis> i'll check it tonight 23:35 < piscisaureus_> bnoordhuis: no hurry, 0.8 is only going out tomorrow :-) 23:35 < piscisaureus_> :-p 23:35 < bnoordhuis> everyone knows you should wait until at least the 0.x.1 release 23:41 < bnoordhuis> piscisaureus_: works 23:41 < piscisaureus_> just accidentally, probably :-p 23:41 < bnoordhuis> well... it ev_unrefs the watcher 23:42 < piscisaureus_> yes 23:42 < bnoordhuis> but since we don't use the ev refcount anyway, the net effect is the same 23:42 < piscisaureus_> well, is it completely disabled 23:42 < piscisaureus_> or will it fall out when the ev refcount drops to 0 23:42 < piscisaureus_> ? 23:42 < bnoordhuis> will what fall out? 23:43 < piscisaureus_> bnoordhuis: the loop 23:44 < bnoordhuis> piscisaureus_: it works just like before, try it 23:44 < piscisaureus_> bnoordhuis: will uv_run return when the ev refcount drops to 0 23:44 < bnoordhuis> ah, like that. no, ev refcount is completely and totally ignored 23:44 < piscisaureus_> ah, very good 23:52 < CIA-108> node: Karl Skomski master * r57d53a4 / (lib/buffer.js test/simple/test-buffer.js): Use parent SlowBuffer, if any, when Buffer is sliced - http://git.io/pf9oPg --- Log closed Thu Jun 21 00:00:51 2012