00:07:38  * dylukesjoined
00:20:20  * Ariajoined
00:39:24  * dshaw_quit (Quit: Leaving.)
00:41:32  <piscisaureus>bnoordhuis: so we are going to add the restriction that before sending a socket over the ipc channel the socket must be either connected or listening.
00:41:58  <piscisaureus>bnoordhuis: if the socket has been only bound we are going to assume that you want to use it as a server.
00:42:09  <piscisaureus>bnoordhuis: igorzi will document this
00:42:41  <piscisaureus>bnoordhuis: attempting to send a completely pristine socket will result in UV_ENOTSUP
00:42:51  <piscisaureus>bnoordhuis: ^-- this is to make sure you are aware
00:45:37  * orlandovftwquit (Ping timeout: 264 seconds)
00:52:08  <igorzi>does libuv support sending pipes over ipc on unix?
00:52:20  <igorzi>bnoordhuis piscisaureus: ^
00:52:34  <dap>TooTallNate: thanks for your help thus far. I've mailed the GYP list…my message is held for moderation, but we'll see what they say.
00:52:54  <dap>I know Ryan assured us that the GYP guys assured him that this would be possible :)
00:53:16  <TooTallNate>dap: cool i'll keep my eye on the thread
00:53:20  <TooTallNate>thanks for pointing me to #smartos too
00:53:27  <TooTallNate>finally got a VM running :D
00:53:49  <TooTallNate>dap: it seems like 32-bit though. how do I switch?
00:58:37  <piscisaureus>igorzi: yes - bnoordhuis recently added support that
00:59:18  <piscisaureus>igorzi: but I investigated it a little and sending pipe servers is pretty hairy on windows
00:59:22  <piscisaureus>well, maybe not
00:59:31  <piscisaureus>but you'd have to send the filename if was a pipe server
00:59:51  <piscisaureus>and probably create the pipe without setting the PIPE_FIRST_INSTANCE flag
01:00:40  <piscisaureus>igorzi: it's kind of getting out of hand though... next up is sending IPC channels over IPC
01:00:46  <piscisaureus>igorzi: and UDP
01:01:14  <igorzi>piscisaureus: yeah.. maybe we should enable sending pipe connections, and just stop there
01:01:30  <piscisaureus>igorzi: well in fact ben added support for pipe servers I think
01:01:46  <piscisaureus>igorzi: but I don't think many people use pipes on windows anyways
01:02:33  <piscisaureus>igorzi: which is mostly due to unwarareness though... you can use the pipe to connect to mysql just fine for example (I tried that with node-mysql)
01:04:03  <piscisaureus>igorzi: but I think the pipe code could use some brooming before we do that.
01:04:23  <piscisaureus>igorzi: there is this stupid disconnect timer that I regret adding.
01:04:47  <piscisaureus>igorzi: somehow we should stop pretending pipe servers support graceful close
01:05:15  <piscisaureus>igorzi: btw - does iisnode still use pipes (because it might actually have an effect on that_
01:06:50  <igorzi>yes, it still uses pipes
01:07:12  <igorzi>that disconnect timer runs on uv_shutdown?
01:09:14  <piscisaureus>igorzi: yes
01:09:37  <igorzi>piscisaureus: does http.js have any codepaths that results in uv_shutdown?
01:09:46  <piscisaureus>igorzi: I think so
01:09:49  <igorzi>(http.js server)
01:09:52  <piscisaureus>igorzi oh well no
01:10:05  <piscisaureus>igorzi: but sometimes the client needs to send us that
01:10:16  <igorzi>ok, then iisnode is not effected
01:10:22  <piscisaureus>igorzi: I think it is
01:10:48  <piscisaureus>igorzi: if you upload a file without sending a content-length header, the end of the file is signaled by a half close initiated by the client
01:11:00  <piscisaureus>igorzi: but the server still needs to send a http response after that.
01:11:12  <piscisaureus>igorzi: I don't think this is possible with named pipes
01:12:42  <igorzi>yeah, i don't know how iisnode deals with this, but this is orthogonal to disconnect timer, right?
01:14:00  <piscisaureus>igorzi: eh, yeah, you're right. The http server does not have to shutdown indeed.
01:18:26  <igorzi>piscisaureus: https://github.com/igorzi/libuv/commit/be6914f2f555f5fe2313b74f2867ccc1f80ce9a3
01:19:48  <piscisaureus>igorzi: I think CONNECTED kind of implies BOUND but lgtm
01:20:27  <piscisaureus>igorzi: I think that's it then.
01:20:36  <igorzi>piscisaureus: heh, yeah :)
01:20:42  <piscisaureus>igorzi++
01:20:42  <kohai>igorzi has 5 beers
01:21:07  <piscisaureus>igorzi: You should probably squash the first two commits (at least)
01:21:46  <piscisaureus>actually, the first 3 or all of them should be squashed
01:21:50  <piscisaureus>^-- igorzi
01:21:58  <igorzi>piscisaureus: yep..it'll be 2 commits altogether
01:25:52  <CIA-99>libuv: Igor Zinkovsky master * r70925c3 / (9 files in 3 dirs): windows: Enable passing of TCP connections over IPC - http://git.io/evFuSw
01:27:54  * travis-cijoined
01:27:54  <travis-ci>[travis-ci] joyent/libuv#156 (master - c3daa44 : Igor Zinkovsky): The build is still failing.
01:27:54  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/31ff986...c3daa44
01:27:54  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/978409
01:27:54  * travis-cipart
01:27:57  <piscisaureus>igorzi: very cool
01:28:02  <igorzi>wow.. there are 139 libuv tests now (on windows).. when i just started working on libuv i think there were less than 20 :)
01:28:14  <piscisaureus>I know, right :-)
01:28:19  <piscisaureus>When I started there were 0
01:28:22  <piscisaureus>:-p
01:28:44  <piscisaureus>it's good that it grows
01:29:05  <piscisaureus>I bet that there are still code paths that are uncovered
01:29:21  <piscisaureus>maybe we should add a test runner flag that forces the detection of a non-ifs lsp
01:29:46  <igorzi>yeah.. it would be nice to get code coverage % for these tests
01:29:48  <piscisaureus>and one that forces XP/2k3 mode
01:30:02  <piscisaureus>Is code coverage % possible with vs?
01:30:13  <piscisaureus>we spawn a lot of processes ?
01:30:42  <igorzi>it's definitely possible for .net code.. i don't know about native
01:32:00  <igorzi>yeah, it looks like it should be possible with c/c++ too
01:33:22  * pieternquit (Ping timeout: 246 seconds)
01:37:04  * abraxasjoined
01:40:16  * travis-cijoined
01:40:16  <travis-ci>[travis-ci] joyent/libuv#157 (master - ab8c3b8 : Igor Zinkovsky): The build is still failing.
01:40:16  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/c3daa44...ab8c3b8
01:40:16  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/978433
01:40:16  * travis-cipart
01:43:46  * isaacsjoined
01:49:08  <piscisaureus>igorzi: Ok so I am checkout out for today. Will continue work on uv_poll_t
01:49:42  <igorzi>alright.. ttyl
01:52:42  * piscisaureusquit (Quit: ~ Trillian Astra - www.trillian.im ~)
02:00:05  * perezdquit (Quit: perezd)
02:06:51  * orlandovftwjoined
02:14:16  * TooTallNatequit (Quit: Linkinus - http://linkinus.com)
02:35:35  * brsonquit (Ping timeout: 244 seconds)
03:09:03  * orlandovftwquit (Ping timeout: 244 seconds)
03:10:12  <CIA-99>node: isaacs v0.7.7-release * re3bb6e0 / (AUTHORS ChangeLog src/node_version.h): (log message trimmed)
03:10:12  <CIA-99>node: 2012.03.30, Version 0.7.7 (unstable)
03:10:12  <CIA-99>node: * Upgrade V8 to
03:10:12  <CIA-99>node: * Upgrade npm to 1.1.14
03:10:12  <CIA-99>node: * Handle Emoji characters properly (Erik Corry, Bert Belder)
03:10:12  <CIA-99>node: * readline: migrate ansi/vt100 logic from tty to readline (Nathan Rajlich)
03:10:13  <CIA-99>node: * readline: Fix multiline handling (Alex Kocharin)
03:21:15  <CIA-99>node: isaacs v0.7.7-release * r9a70d99 / (98 files in 6 dirs): Upgrade npm to 1.1.15 - http://git.io/HAWLHw
03:21:16  <CIA-99>node: isaacs v0.7.7-release * r5cda254 / (AUTHORS ChangeLog src/node_version.h): (log message trimmed)
03:21:16  <CIA-99>node: 2012.03.30, Version 0.7.7 (unstable)
03:21:16  <CIA-99>node: * Upgrade V8 to
03:21:16  <CIA-99>node: * Upgrade npm to 1.1.15
03:21:16  <CIA-99>node: * Handle Emoji characters properly (Erik Corry, Bert Belder)
03:21:16  <CIA-99>node: * readline: migrate ansi/vt100 logic from tty to readline (Nathan Rajlich)
03:21:17  <CIA-99>node: * readline: Fix multiline handling (Alex Kocharin)
03:24:32  * travis-cijoined
03:24:32  <travis-ci>[travis-ci] joyent/node#665 (v0.7.7-release - e3bb6e0 : isaacs): The build is still failing.
03:24:32  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/988e9dd...e3bb6e0
03:24:32  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/978718
03:24:32  * travis-cipart
03:24:40  * isaacstopic: Liberty. Unity. Velocity. - test, please: http://nodejs.org/dist/v0.7.7/node-v0.7.7-RC0.tar.gz
03:26:23  * orlandovftwjoined
03:28:57  * dylukesquit (Quit: Pipes are broken. Sending packets via Fedex.)
03:35:24  * bnoordhuisquit (Ping timeout: 244 seconds)
03:36:17  * travis-cijoined
03:36:17  <travis-ci>[travis-ci] joyent/node#666 (v0.7.7-release - 5cda254 : isaacs): The build is still failing.
03:36:17  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/e3bb6e0...5cda254
03:36:17  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/978791
03:36:17  * travis-cipart
03:39:05  * isaacsquit (Remote host closed the connection)
03:41:08  * isaacsjoined
03:55:57  * sh1mmerjoined
04:02:14  * orlandovftwquit (Ping timeout: 260 seconds)
04:05:05  * indexzerojoined
04:14:04  * Brandon_Rjoined
04:32:04  * philipsquit (Excess Flood)
04:33:56  * philipsjoined
05:08:39  * perezdjoined
05:36:06  * paddybyersjoined
05:36:40  * sh1mmerquit (Quit: sh1mmer)
06:24:07  * toothrquit (*.net *.split)
06:24:07  * CoverSli1equit (*.net *.split)
06:24:07  * Raynosquit (*.net *.split)
06:27:08  * paddybyersquit (Quit: paddybyers)
06:39:43  * perezdquit (Quit: perezd)
06:52:10  * dshaw_joined
06:56:47  * rendarjoined
07:04:17  * stephankquit (Quit: *Poof!*)
07:04:21  * orlandovftwjoined
07:23:24  * indexzeroquit (Quit: indexzero)
07:58:06  * toothrjoined
07:58:06  * CoverSli1ejoined
07:58:06  * Raynosjoined
08:01:31  * mmalecki[zzz]changed nick to mmalecki
08:11:04  * txdvjoined
08:14:31  * txdv_quit (Ping timeout: 244 seconds)
08:18:15  * dshaw_quit (Quit: Leaving.)
08:31:49  <einaros>can anyone think of a good reason why RSS would remain sky high after a run of a socket intensive node app, but heap dumps by the v8 profiler will show no unexpected objects (or sizes)?
09:00:52  * paddybyersjoined
09:01:46  * Brandon_Rquit (Ping timeout: 245 seconds)
09:14:10  * rendarquit (Quit: reboot)
09:17:42  * rendarjoined
10:00:51  * paddybyersquit (Quit: paddybyers)
10:01:50  * paddybyersjoined
10:06:28  * bnoordhuisjoined
10:15:41  * abraxasquit
10:26:58  * orlandovftwquit (Ping timeout: 250 seconds)
10:55:02  * mmaleckichanged nick to mmalecki[plane]
11:42:10  * Ariaquit (Remote host closed the connection)
12:58:00  <CIA-99>node: Ben Noordhuis master * r0f0557d / src/stream_wrap.cc : stream_wrap: fix signedness compiler warnings - http://git.io/JuNcMg
12:58:00  <CIA-99>node: Ben Noordhuis master * rb82b4f2 / (src/node_buffer.cc src/node_buffer.h): buffer: fix signedness compiler warnings - http://git.io/W7-Ihw
12:58:00  <CIA-99>node: Ben Noordhuis master * r6986d93 / src/node_crypto.cc : crypto: fix signedness compiler warnings - http://git.io/2h10xw
12:58:00  <CIA-99>node: Ben Noordhuis master * r8c97ad4 / src/node.cc : node: fix signedness compiler warnings - http://git.io/1xFMmg
12:58:00  <CIA-99>node: Ben Noordhuis master * rdb0a1dc / src/node.cc : node: remove unused function - http://git.io/N-oh7Q
12:58:16  <bnoordhuis>no warnings build ftw
13:12:45  * travis-cijoined
13:12:45  <travis-ci>[travis-ci] joyent/node#667 (master - db0a1dc : Ben Noordhuis): The build is still failing.
13:12:45  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/7abbda8...db0a1dc
13:12:45  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/981069
13:12:45  * travis-cipart
13:26:07  * piscisaureus_joined
13:27:40  <bnoordhuis>piscisaureus_: https://github.com/joyent/node/pull/3035 <- seen this?
13:28:58  <piscisaureus_>bnoordhuis: nope.
13:29:05  <piscisaureus_>bnoordhuis: I will read it
13:29:46  * k-s[AWAY]changed nick to k-s
13:29:53  <bnoordhuis>i kind of like the concept
13:31:16  <piscisaureus_>bnoordhuis: meh
13:31:41  <bnoordhuis>piscisaureus_: is that a "i don't"?
13:31:43  <piscisaureus_>bnoordhuis: meeeeeeh
13:31:46  <piscisaureus_>yes
13:32:06  <piscisaureus_>bnoordhuis: I have to reboot my mac. bbiab
13:32:11  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
13:33:29  * piscisaureus_joined
13:34:01  <einaros>hrm, is this expected behavior or a Buffer related memory leak?
13:34:03  <einaros>https://gist.github.com/77654c1d91fd4ff8a7fa
13:34:24  <piscisaureus_>bnoordhuis: I would not mind having macros for this purpose
13:35:21  <piscisaureus_>TYPE_CHECK(0, filename, String, "Filename must be a string");
13:35:28  <piscisaureus_>which would translate to
13:36:28  <piscisaureus_>if (!arguments[0].isString()) return ThrowSomething("Filename must be a string")
13:36:28  <piscisaureus_>Handle<Value> filename =
13:37:07  <piscisaureus_>bnoordhuis: this will end up in infinite bikeshedding
13:37:43  <piscisaureus_>people will want to add support for optional arguments and polymorphism etc
13:38:29  <bnoordhuis>okay, okay
13:38:33  <bnoordhuis>i don't like it *that* much
13:38:37  <piscisaureus_>bnoordhuis: But I do not like this patch because (1) it is very non-obvious what it does (people would have to look at the implementation of ScanArgs to find ot what S means) and (2) it is too expensive
13:38:46  <piscisaureus_>I kinda liked the STL thing
13:39:10  <bnoordhuis>einaros: can you give me the executive summary on that test?
13:39:23  <bnoordhuis>that is, explain it in five words or less? :)
13:42:40  <piscisaureus_>einaros: On windows, I get this (node 0.6.14)
13:42:41  <piscisaureus_>Initial rss: 8 MB
13:42:41  <piscisaureus_>After closure has completed, buffer array is unreachable, rss: 322 MB
13:42:41  <piscisaureus_>After two gc calls and 5 second delay, rss: 11 MB
13:43:25  <einaros>on linux, with node 0.4.12 and node 0.6.11 (?) I saw it linger around 2-300 MB even after the last gc
13:43:36  <einaros>the output in the gist is from my mac, 0.6.14
13:43:56  <einaros>but I'll dig into this a bit further, then get back to you
13:44:20  <piscisaureus_>einaros: probably free() just does not unmap the pages
13:44:55  <einaros>it's a rather pressing issue for ws. with 10k clients connected and disconnected, rss stays on or about 800MB
13:46:08  <piscisaureus_>einaros: so ... Probably your computer just has a lot of memory
13:46:25  <piscisaureus_>einaros: so what you should do is start another process and make it touch a lot of memory
13:46:33  <piscisaureus_>and then check the rss again
14:07:57  <CIA-99>node: Ben Noordhuis master * r1752443 / (src/node_crypto.cc src/node_file.cc src/node_http_parser.cc): Fix Engrish in error messages. - http://git.io/3RqDUA
14:08:39  <bnoordhuis>piscisaureus_: https://github.com/bnoordhuis/node/compare/issue2981 <- review?
14:09:37  <bnoordhuis>compiles, passes all tests
14:10:45  <piscisaureus_>bnoordhuis: did you rebase heavily or did I already review the commits up to ROUND_UP ?
14:10:51  <bnoordhuis>it's just as fast too, even now that it converts all handles to locals
14:11:06  <bnoordhuis>piscisaureus_: you reviewed parts of it last week, yes
14:11:08  <piscisaureus_>good
14:12:47  <piscisaureus_>bnoordhuis: did you write the ROUND_UP macro yourself?
14:13:01  <einaros>piscisaureus_: in the case of node 0.6.x you are right. the pages seem to be unmapped when the box reaches around 95% memory use.
14:13:21  <bnoordhuis>piscisaureus_: yes
14:13:26  <piscisaureus_>bnoordhuis: aha
14:13:28  <bnoordhuis>why?
14:13:31  <piscisaureus_>bnoordhuis: I think it is good
14:13:46  <piscisaureus_>bnoordhuis: well it is nice although it is somewhat dangerous to have it
14:14:03  <piscisaureus_>since it might evaluate (a) three times
14:14:04  <bnoordhuis>einaros: welcome to the wonderful of non-deterministic computing :/
14:14:08  <bnoordhuis>*wonderful world
14:14:23  <bnoordhuis>piscisaureus_: right - that's a problem with macros in general
14:14:36  <bnoordhuis>i could change it into a template but...
14:14:41  <piscisaureus_>yeah well
14:14:47  <piscisaureus_>it is fine as long as we use it carefully
14:15:59  <piscisaureus_>bnoordhuis: I think Clear and Dispose are fine even when v8 is dead
14:16:08  <piscisaureus_>bnoordhuis: but you could double check if you want
14:16:32  <einaros>0.4 is another story entirely, but I won't bother with that
14:21:30  <piscisaureus_>bnoordhuis: I double checked and Clear seems to be fine while Dispose is not.
14:22:29  <piscisaureus_>bnoordhuis: oh well. It just returns if v8 is dead.
14:22:43  * travis-cijoined
14:22:43  <travis-ci>[travis-ci] joyent/node#668 (master - 1752443 : Ben Noordhuis): The build is still failing.
14:22:43  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/db0a1dc...1752443
14:22:43  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/981716
14:22:43  * travis-cipart
14:22:49  <bnoordhuis>piscisaureus_: right. i'll update the comment
14:23:37  <piscisaureus_>bnoordhuis: also, it was never about a V8 context, but just about a V8 isolate.
14:23:56  <bnoordhuis>yeah, i know
14:24:22  <bnoordhuis>"context" in this, er, context was a general phrase
14:29:13  <piscisaureus_>bnoordhuis: so the idea is that if someone wants to chip a really big amount off the slab allocator you
14:29:19  <piscisaureus_>just create new Buffer
14:29:20  <piscisaureus_>?
14:30:12  <bnoordhuis>piscisaureus_: yes
14:30:18  <bnoordhuis>but that's not something i thought up
14:30:27  <bnoordhuis>the old slab allocator does it too
14:31:28  <bnoordhuis>piscisaureus_: https://github.com/bnoordhuis/node/commit/79a8798d5361a2049d943a402800c7e00a678c19#commitcomment-1154114 <- suggestions? it doesn't fit in 80 chars
14:34:10  <isaacs>bnoordhuis: what's the linter say about it?
14:34:29  <bnoordhuis>isaacs: the linter says "love and hugs"
14:35:20  <piscisaureus_>bnoordhuis: I think I would just do:
14:35:20  <piscisaureus_>Local<Value> foo =
14:35:20  <piscisaureus_><tab><tab>a->b()->c();
14:36:08  <bnoordhuis>well, okay
14:36:19  * pfox___joined
14:36:21  <bnoordhuis>i don't really care either way
14:36:43  <isaacs>bnoordhuis: meh
14:37:06  <bnoordhuis>isaacs: ?
14:37:32  <isaacs>bnoordhuis: re: style.
14:37:38  <isaacs>c++ is ugly by design
14:37:38  <kohai>c has 7 beers
14:37:46  <isaacs>it's all those beers.
14:37:50  <bnoordhuis>haha
14:42:10  <piscisaureus_>bnoordhuis: almost done. Still pondering what this line is supposed to do <-- https://github.com/bnoordhuis/node/commit/e6dc425045df61aa9eff86137c4cc4e381a93472#L0R181
14:42:10  <piscisaureus_>And how SlabAllocator::Shrink is supposed to work
14:43:15  <piscisaureus_>ah wait the first one is the offset into the SlowBuffer that we use to create a fastbuffer,.
14:43:19  <bnoordhuis>yes
14:43:33  <bnoordhuis>Shrink() returns the tailing memory to the pool
14:43:43  <bnoordhuis>it doesn't work so well on localhost because most reads are actually 64K
14:43:44  <piscisaureus_>I know right
14:43:59  <piscisaureus_>bnoordhuis: then you are writing to fast :-)
14:45:10  <bnoordhuis>the principle is sound though, you can verify it with a couple of printf statements or placing breakpoints in the debugger
14:45:32  <bnoordhuis>so isaacs, piscisaureus_ - does the patch lgty?
14:45:42  <piscisaureus_>ah right
14:45:47  <piscisaureus_>bnoordhuis: final question
14:45:55  <piscisaureus_>bnoordhuis: oh wait no
14:46:06  <piscisaureus_>bnoordhuis: why do you reset last_ptr_ in ::Shrink?
14:46:32  <bnoordhuis>piscisaureus_: to side-step bugs if a SlabAllocator client calls Shrink() twice with the same ptr
14:46:45  <piscisaureus_>bnoordhuis: we never do that right?
14:46:46  <isaacs>bnoordhuis: i'm not fit to review yet. haven't had coffee.
14:47:03  <piscisaureus_>bnoordhuis: strictly it should not be necessary, but yeah leave it in.
14:47:31  <piscisaureus_>bnoordhuis: I also have to question about the namespace key but sorry I have to talk to someone for 5 min
14:47:36  <bnoordhuis>piscisaureus_: we shouldn't - it's a precautionary measure
14:47:47  <bnoordhuis>piscisaureus_: sure
14:48:21  * CoverSli1equit (Read error: Connection reset by peer)
14:48:31  * CoverSlidejoined
15:01:39  <piscisaureus_>bnoordhuis: so basically there will be only one slab allocator in node?
15:01:59  <bnoordhuis>piscisaureus_: no - stream_wrap and udp_wrap have different instances
15:02:45  <piscisaureus_>bnoordhuis: so - 2
15:02:51  <bnoordhuis>for now yes
15:02:58  <piscisaureus_>okay
15:02:59  <piscisaureus_>yes
15:03:02  <piscisaureus_>bnoordhuis: lgtm
15:03:04  <bnoordhuis>cool
15:03:06  <bnoordhuis>isaacs?
15:03:31  * k-schanged nick to k-s[AWAY]
15:03:32  <bnoordhuis>piscisaureus_: btw, we have this company meeting next week. do you need me at the office earlier than friday?
15:04:50  <piscisaureus_>bnoordhuis: no I don't I think
15:04:58  <piscisaureus_>bnoordhuis: so I don't need you
15:05:12  <bnoordhuis>piscisaureus_: cool. then invite your gf for beers next week
15:05:36  <piscisaureus_>bnoordhuis: I might. I think my gf won't be there though.
15:05:39  <piscisaureus_>but maybe
15:05:46  <bnoordhuis>no? why not?
15:06:19  <piscisaureus_>bnoordhuis: we are going to be at her parents on saturday
15:06:38  <piscisaureus_>coming to amsterdam and then going back is not really worth the effort
15:07:31  <piscisaureus_>bnoordhuis: we can do a talk about what we are doing btw
15:07:38  <piscisaureus_>at the company meeting
15:08:15  * paddybyersquit (Quit: paddybyers)
15:11:46  <bnoordhuis>piscisaureus_: sure
15:12:08  * bnoordhuisis off to dinner
15:23:43  <isaacs>bnoordhuis: looking at it now.
15:34:43  <isaacs>piscisaureus_, bnoordhuis: is it necessary to use Local<Value>::New(..) for Null() and Undefined()?
15:35:39  <isaacs>i mean, if it gets gc'ed, it'll just be Undefined() anyway
15:37:56  <pfox___>i thought maybe you'd guys be interested in seeing this: https://github.com/olsonjeffery/rust/blob/uv_tcp/src/libstd/uv.rs#L1532
15:38:10  <pfox___>a kind of perverse, bizzaro-world of libuv
15:38:25  <pfox___>where we have a low-level API in pure rust.. with structs on the rust stack and everything.. no C mallocs!
15:38:40  <pfox___>maybe you guys would be interested, even
15:39:39  <pfox___>spawns two loops in different tasks.. one's a tcp server, the other's a tcp client.. and the client makes a request to the server.. then both emit the counter-party's req/resp, respsectively, via rust channels, which we assert on at the end
15:39:43  <pfox___>good times, good times.
15:42:45  <piscisaureus_>isaacs: Wrong and Wrong
15:42:56  <piscisaureus_>isaacs: if it gets gc'ed we will segfault
15:43:16  <piscisaureus_>isaacs: and indeed you don't have to make Null and Undefined a Local<Handle>
15:43:20  <piscisaureus_>(nor True, False)
15:43:43  <piscisaureus_>isaacs: but if you create an array of locals you can't just add a Handle<Value> to it because the compiler will reject it
15:43:52  <isaacs>ahh
15:45:12  <isaacs>but if you have a Local<Value> foo = Null(); then that creates a local value, right?
15:45:42  <isaacs>or do you actually have to do Local<Value> foo = Local<Value>::New(Null())
15:48:11  <piscisaureus_>isaacs: *shrug* I don't know
15:48:21  <piscisaureus_>isaacs: if the compiler rejects (1) I'd replace it by (2)
15:48:48  <isaacs>yeah, guess it's just ugly noise.
15:48:51  <isaacs>c++ is always ugly
15:48:51  <kohai>c has 8 beers
15:48:54  <isaacs>it's all those beers
15:49:09  <piscisaureus_>isaacs: I think the compiler would reject Local<Value> foo = Null()
15:49:23  <isaacs>hm. ok
15:51:33  * TooTallNatejoined
15:55:57  * AndreasMadsenjoined
16:02:52  <isaacs>the SlabAllocator is nice. very simple.
16:03:56  * `3rdEdenjoined
16:06:09  * perezdjoined
16:16:30  * txdvquit (Quit: No Ping reply in 180 seconds.)
16:16:45  * txdvjoined
16:29:51  * orlandovftwjoined
16:31:42  * orlandovftwquit (Client Quit)
16:33:14  <piscisaureus_>bnoordhuis: igorzi: https://gist.github.com/219a27c7a1ceb9501426 <-- thoughts?
16:33:55  <piscisaureus_>bnoordhuis: igorzi: especially, you like a bitflag better than just [int readable, int writable] ?
16:39:07  * k-s[AWAY]changed nick to k-s
16:42:40  * isaacsquit (Read error: Connection reset by peer)
16:42:47  * isaacs_joined
16:53:42  <isaacs_>test, please: http://nodejs.org/dist/v0.7.7/node-v0.7.7-RC0.tar.gz
16:54:31  * pieternjoined
17:06:33  <piscisaureus_>ok, running it
17:12:35  <igorzi>piscisaureus_: why not have just uv_poll_init that takes uv_platform_socket_t ?
17:12:57  <pfox___>is there a way to shortcut a libuv loop safely and tell it to just drop whatever its doing and exit?
17:13:11  <pfox___>like, that you could call from within a uv_async cb or something to make sure its on the loop's thread
17:14:07  <igorzi>AndreasMadsen: hey.. the patch to enable passing tcp connections over ipc got landed yesterday
17:17:37  <AndreasMadsen>igorzi: oh, nice - I will test the my JS patch later today then.
17:18:06  <AndreasMadsen>igorzi: Is it no joyent/node/master or should I also clone libuv?
17:18:14  <AndreasMadsen>s/no/on/
17:19:49  <AndreasMadsen>By the way I have reproduced the eio failure on this env: https://github.com/joyent/node/commit/6aa755070a5d89f5adeb6d53e6eea6fbf49a6bb7#commitcomment-1153702
17:22:15  <igorzi>AndreasMadsen: it's in joyent/libuv/master now.. but i'll upgrade libuv in node shortly
17:22:30  <igorzi>isaacs piscisaureus_: any objections? ^
17:23:11  * orlandovftwjoined
17:23:44  * AndreasMadaenjoined
17:23:54  * AndreasMadaenquit (Client Quit)
17:24:11  * AndreasMjoined
17:26:10  <isaacs_>igorzi: i don't object, no.
17:26:15  * paddybyersjoined
17:26:16  <isaacs_>but it's going to be in 0.7.8 at the earliest
17:26:22  <saghul>pfox___ nope, I'd also like to have something like that. Looks like if that uv_walk debug tool could help there, when/if it's finished
17:26:35  <isaacs_>unless you think it's worth pulling into the release branch as well
17:28:02  <saghul>piscisaureus_ In case you want more opinions, I'd go for the bitfield :-)
17:28:09  <igorzi>isaacs_: nope.. 0.7.8 is fine
17:28:51  <isaacs_>k
17:29:01  * isaacs_changed nick to isaacs
17:30:26  <isaacs>TooTallNate: https://github.com/isaacs/gyp-reader
17:30:46  <piscisaureus_>saghul: yeah I though of that too.
17:30:59  <piscisaureus_>saghul: why do you prefer the bitfield though>
17:31:35  <piscisaureus_>isaacs: the debugger tests crash for me
17:31:57  <isaacs>piscisaureus_: what os?
17:32:03  <TooTallNate>isaacs: nice :)
17:32:06  <TooTallNate>i will use
17:32:12  <piscisaureus_>isaacs: guess
17:32:14  <saghul>piscisaureus_ if I read a line like this: uv_poll_start(handle, 1, 0, cb) it's not obvious what the parameter order is
17:32:15  <isaacs>hah
17:32:17  <isaacs>just checking
17:32:30  <isaacs>piscisaureus_: does the debugger work, if you just run it normally?
17:32:38  <isaacs>that test is super annoying.
17:32:44  <saghul>piscisaureus_ uv_poll_start(handle, UV_POLL_READ|UV_POLL_WRITE, cb) is more readable IMHO :-)
17:32:50  <piscisaureus_>isaacs: *all* the debugger tests crash
17:33:10  <isaacs>piscisaureus_: typically, if one crashes, the rest all will
17:33:14  <isaacs>piscisaureus_: can you gist the output?
17:33:20  <piscisaureus_>isaacs: but yeah the debugger works
17:33:55  <isaacs>piscisaureus_: there's a race condition somewhere with the debugger, and i suspect it's going to require some powerful v8 mojo to sort it out
17:34:04  * AndreasMquit (Remote host closed the connection)
17:34:19  <piscisaureus_>isaacs: https://gist.github.com/802601f13f22e1ed48b4
17:34:31  <isaacs>piscisaureus_: i added a 50ms timeout in src/node.js for this reason, but it's sometimes not enough when the tests are running
17:35:00  <isaacs>piscisaureus_: oh!! the *repl* tests are failing!
17:35:02  <isaacs>that's different
17:35:25  <piscisaureus_>isaacs: I will try to locate the crash site
17:35:53  <isaacs>TooTallNate: ^
17:36:25  <isaacs>piscisaureus_: is it only in debug, or in release as well?
17:36:30  <TooTallNate>i'll try the tests on windows too
17:37:24  <CIA-99>node: Igor Zinkovsky master * r6aa7f6f / (44 files in 8 dirs): upgrade libuv to ab8c3b85c1 - http://git.io/9nGXUg
17:37:43  <piscisaureus_>isaacs: this seems to be the issue
17:37:44  <piscisaureus_># Fatal error in d:\node-v0.7.7\deps\v8\src\api.h, line 453
17:37:44  <piscisaureus_># CHECK(entered_contexts_.length() == 0) failed
17:38:33  <piscisaureus_>isaacs: It calls v8::Dispose()
17:39:15  <piscisaureus_>it asserts that entered_contexts == 0
17:39:19  <piscisaureus_>but in fact, it is 16
17:40:18  <isaacs>piscisaureus_: where are we calling that from?
17:40:42  <piscisaureus_>isaacs: node.cc:2802
17:40:52  <piscisaureus_>isaacs: so yeah it would only happen in debug mode
17:41:00  <piscisaureus_>the question is: why is that there and why does it assert?
17:41:25  <isaacs>piscisaureus_: and also, why are we calling V8::Dispose()?
17:41:47  <piscisaureus_>isaacs: good question.
17:41:58  <piscisaureus_>isaacs: I think it is there to catch bugs :_)
17:42:02  <isaacs>haha
17:42:05  <isaacs>fair enough
17:42:15  <isaacs>so, if it's not debug, then we call context.Dispose()
17:42:42  <piscisaureus_>isaacs: read again
17:43:07  <isaacs>oh, right
17:45:07  <piscisaureus_>isaacs: well this could actually be caused by Ben's slab allocator patch
17:46:04  <isaacs>piscisaureus_: how? it's not in this release?
17:46:13  * perezdquit (Read error: Connection reset by peer)
17:46:18  <piscisaureus_>in that case, that's probably not the case :-)
17:46:49  * perezdjoined
17:47:05  <piscisaureus_>isaacs: aah it's not the Dispose() call that does it
17:47:15  <piscisaureus_>its the Locker destructor
17:48:02  <isaacs>should we be V8::Dispose()ing before the locker dies?
17:48:19  <piscisaureus_>no
17:48:24  <piscisaureus_>on the contrary
17:48:43  <piscisaureus_>isaacs: I think that the debugger tests somehow enter v8 contexts that are not properly disposed
17:48:59  <piscisaureus_>isaacs: well maybe I should just bisect it
17:49:47  <isaacs>piscisaureus_: i'm willing to bet it's 5e8c2b0
17:52:08  <isaacs>piscisaureus_: or it's the last time we updated v8
17:52:26  <isaacs>4b64542
17:52:48  * travis-cijoined
17:52:48  <travis-ci>[travis-ci] joyent/node#669 (master - 6aa7f6f : Igor Zinkovsky): The build is still failing.
17:52:48  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/1752443...6aa7f6f
17:52:48  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/983223
17:52:48  * travis-cipart
17:53:52  <isaacs>piscisaureus_: all the repl tests work for me
17:54:05  <piscisaureus_>isaacs: also in debug mode?
17:55:25  <isaacs>oh, derp.
17:55:27  <isaacs>right
17:56:15  * paddybyers_joined
17:58:22  * brsonjoined
17:58:26  * paddybyersquit (Ping timeout: 246 seconds)
17:58:27  * paddybyers_changed nick to paddybyers
17:59:16  <piscisaureus_>writing a bisect script
18:04:14  <piscisaureus_>I wish git bisect was smarter
18:04:26  <tjfontaine>in what regard?
18:05:08  <piscisaureus_>It keeps on recompiling for me\
18:05:18  <piscisaureus_>it should try to minimize tree differences between tries
18:05:36  <piscisaureus_>or whatever I want to have a little more control
18:05:41  <piscisaureus_>this is going to take ages
18:06:23  <tjfontaine>ccache? :P
18:19:22  <piscisaureus_>bnoordhuis: isaacs: AndreasMadsen:
18:19:22  <piscisaureus_>Cluster: the 'exit' event is renamed to 'death'"
18:19:30  <piscisaureus_>I think I'd rather just have that called "exit"
18:20:00  <isaacs>yeah, that makes sense
18:20:07  <isaacs>less morbid, more like ChildProcess
18:20:21  * dshaw_joined
18:21:11  <piscisaureus_>isaacs: the end/exit api change was landed right?
18:21:15  <piscisaureus_>(for child processes)
18:21:24  <isaacs>piscisaureus_: close/exit. yes
18:21:29  <piscisaureus_>close?
18:22:10  <isaacs>yes
18:22:17  <isaacs>close is when the stdio is closed.
18:22:22  <isaacs>exit is when the process exits
18:22:47  <piscisaureus_>isaacs: yeah I was just adding that line to the api changes document
18:23:02  <piscisaureus_>I have the uneasy feeling that there's twice as much api changes as documented
18:23:32  * stephankjoined
18:23:45  <isaacs>piscisaureus_: what other api changes aren't documented?
18:23:51  <isaacs>piscisaureus_: oh, you mean the 0.6->0.8 thing?
18:23:54  <piscisaureus_>if only I knew
18:23:56  <piscisaureus_>yeah
18:23:56  <isaacs>or the ChangeLog?
18:24:17  <isaacs>yeah, having a 'death' event is unnecessarily increasing the semantics.
18:24:23  <isaacs>sorry, i should've caught that
18:24:44  <isaacs>but, as far as i'm concerned, i'm pretty much ok just saying that cluster is rewritten, and a new thing now, so read the docs.
18:25:08  <isaacs>it's mostly compatible, but the 0.6 cluster doesn't really have much to it anyway
18:25:23  <isaacs>Debug\node.exe test\simple\test-repl.js fails
18:25:35  <isaacs># Fatal error in c:\node-v0.7.7\deps\v8\src\api.h, line 453
18:25:35  <isaacs># CHECK(entered_contexts_.length() == 0) failed
18:30:27  * paddybyersquit (Quit: paddybyers)
18:31:07  <piscisaureus_>hmm
18:31:15  <piscisaureus_>isaacs: bisecting tells me that 11d1eca9f3c465045828e3a00b103620c8253258 is the bad commit
18:31:27  <piscisaureus_>which dates back aug 10
18:32:38  <piscisaureus_>isaacs: I think it could be 9a6012ed
18:33:42  <isaacs>piscisaureus_: so, here's what i'm thinking:
18:33:56  <isaacs>it's only broken when in debug mode (but indicates a bug, no doubt)
18:34:06  <isaacs>and 2) it's an unstable release.
18:34:13  <isaacs>so, let's log it as an issue and move on, i think.
18:34:14  <piscisaureus_>isaacs: ok I see where you're going
18:34:15  <piscisaureus_>fine
18:34:16  <isaacs>fix for 0.7.8
18:34:24  <piscisaureus_>isaacs: did you test windows?
18:34:28  <isaacs>piscisaureus_: yeah
18:34:36  <piscisaureus_>alright, so then it's fine
18:34:40  <isaacs>some breakage, some of it silly, some of it concerning, but none of it new except this
18:34:42  <piscisaureus_>(I lost my test output)
18:34:57  <isaacs>but i am not going to be spending jsconf doing a build :)
18:35:04  <piscisaureus_>ah I se
18:35:06  <piscisaureus_>*see
18:35:12  <piscisaureus_>it's jsconf now
18:35:16  <piscisaureus_>is it good?
18:35:22  <isaacs>no, it's jsconf on monday
18:35:44  <isaacs>but if this takes a few days to fix, then it gets annoying.
18:35:53  <piscisaureus_>yes, agreed
18:36:01  <piscisaureus_>releases are pretty smooth lately
18:36:05  <piscisaureus_>(for me, that is)
18:36:19  <piscisaureus_>so either they really got smoother, or you are bearing the pain on your own
18:40:54  <piscisaureus_>igorzi: there's an issue with libuv - uv_tcp_close is still being used
18:41:58  <igorzi>piscisaureus_: where?
18:42:14  <piscisaureus_>igorzi: uv_close @@ handle_close
18:42:21  <piscisaureus_>igorzi: I wonder if you forgot to commit something
18:42:36  <piscisaureus_>er uv_close @ src/win/handle.c
18:42:52  <isaacs>piscisaureus_: pushing for test passing makes a big difference.
18:43:06  <isaacs>piscisaureus_: like, day-to-day tests passing
18:43:14  <piscisaureus_>yeah
18:43:22  <igorzi>piscisaureus_: that was part of yesterday's commit
18:43:40  * CoverSli1ejoined
18:43:46  <piscisaureus_>hmm
18:43:51  <piscisaureus_>ah now I get it
18:43:59  <piscisaureus_>igorzi: probably there is no header for uv_tcp_close
18:44:21  <piscisaureus_>because I get a function not defined warning but in the end it all links fine
18:44:48  <igorzi>piscisaureus_: ahh crap, i must have removed it from internal.h
18:44:52  <igorzi>piscisaureus_: i'll fix it
18:44:59  <piscisaureus_>igorzi: nice, thanks
18:45:25  <piscisaureus_>isaacs: yeah 9a6012edd9330296b7476bc6b7fbda2cd5c8165d is the culprit
18:46:04  <isaacs>piscisaureus_: so.. what is that Locker thing, anyway? do you know?
18:46:24  <isaacs>piscisaureus_: i thought that was some thread-safe thingie that Marcel Laverdet added so that fibers would work.
18:46:31  <isaacs>but if it's breaking node, then really, i could not care less about fibers.
18:46:53  <piscisaureus_>I don't know
18:47:31  * CoverSlidequit (Read error: Operation timed out)
18:47:42  <piscisaureus_>isaacs: actually that commits adds the context.Dispose call that crashes
18:47:54  <isaacs>yeah
18:47:57  <piscisaureus_>let's put a comment in it for the time being
18:49:01  <isaacs>piscisaureus_: it moves the context.Dispose() up into the higher scope
18:49:05  <piscisaureus_>well hmm he just seems to have moded the statement
18:49:19  <isaacs>piscisaureus_: right
18:49:28  <isaacs>piscisaureus_: i'm gonna email Marcel and ask him about it
18:49:43  <isaacs>piscisaureus_: or you can, if you want
18:50:10  <isaacs>but really, supporting multi-threaded extensions is pretty far down on the "nice to have" list, imo
18:50:36  <CIA-99>libuv: Igor Zinkovsky master * r4360018 / src/win/internal.h : add missing uv_tcp_close declaration - http://git.io/knFvIw
18:52:32  * mmalecki[plane]changed nick to mmalecki
18:52:36  * travis-cijoined
18:52:36  <travis-ci>[travis-ci] joyent/libuv#158 (master - 4360018 : Igor Zinkovsky): The build is still failing.
18:52:36  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/ab8c3b8...4360018
18:52:36  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/983866
18:52:36  * travis-cipart
18:53:37  <TooTallNate>isaacs: nice, i just got node-gyp support for libxmljs. and removed the preinstall and install phases :)
18:53:44  <isaacs>sweet :)
18:53:52  <TooTallNate>slowly but surely, that list is shrinking :p
18:54:02  <isaacs>that's really really awesome
18:57:23  <TooTallNate>it's hard preaching static libraries to people that don't give a shit about windows though :\
18:59:43  <CIA-99>node: isaacs master * r69ae75c / (101 files in 8 dirs): Merge branch 'v0.7.7-release' - http://git.io/z0tPGg
18:59:43  <CIA-99>node: isaacs master * r8d3278b / src/node_version.h : Now working on 0.7.8 - http://git.io/LCM2bg
19:00:10  <isaacs>TooTallNate: tell them it's the Node Way
19:00:37  <isaacs>TooTallNate: it's not just windows, it's any system that doesn't have that particular library already installed.
19:00:56  <TooTallNate>isaacs: indeed. libxml2 is a big one so it's kinda tough. https://github.com/polotek/libxmljs/pull/126#issuecomment-4848659
19:04:33  <tjfontaine>which is why we need a mechanism to check for libraries in pre-install, bundling all of llvm+clang or imagemagick is an absurd concept for two of my modules
19:05:42  <isaacs>tjfontaine: hm. what if you published imagemagick to the npm registry?
19:05:47  <isaacs>tjfontaine: then you could just depend on it.
19:06:13  <isaacs>tjfontaine: since it will hardly ever change, it's not that big a deal, really
19:06:15  <tjfontaine>isaacs: yes, but that's a quite slippery slope you're about to fall down, and if what you want is nodeos then sure go for it
19:06:31  <isaacs>tjfontaine: for a library like imagemagick? meh. i dunno.
19:06:34  <isaacs>tjfontaine: it's not so bad.
19:06:53  <isaacs>tjfontaine: then you can just tell gyp to pull imagemagic from ./node_modules/imagemagick/lib/whatever
19:07:10  * isaacsjust thinking outside of the box, and in a different box.
19:07:14  <tjfontaine>isaacs: no, it's a precedent, and you'll start seeing other large libraries, and a lot of duplicated work since there are existing mechanisms to install it on !windows
19:07:27  * isaacstopic: Liberty. Unity. Velocity.
19:07:52  <tjfontaine>I mean, if that's what the plan is then that's what the plan is, but I just see it as a lot of work for you
19:08:18  <tjfontaine>because some of the licensing would require you to be the mechanism for source distribution as well, and not just link to the source
19:09:06  <tjfontaine>see the debian/ubuntu derivatives that got in trouble for just pointing upstream
19:09:07  <isaacs>tjfontaine: duplicated work?
19:09:37  <isaacs>tjfontaine: oh, right... yeah, i really don't want anyone putting any AGPL bullshit in the npm repo
19:11:19  <tjfontaine>duplicated in the sense that dpkg/apt, rpm/yum, ports, brew etc exist for !windows, regardless of how you feel about their versioning mechanism, they have distribution mechanisms and content delivery solutions that are not YourProblem(tm)
19:14:34  * travis-cijoined
19:14:34  <travis-ci>[travis-ci] joyent/node#670 (master - 8d3278b : isaacs): The build is still failing.
19:14:34  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/6aa7f6f...8d3278b
19:14:34  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/983945
19:14:34  * travis-cipart
19:15:33  <isaacs>tjfontaine: right, but "Y sucks on X", for all X in {Windows, Linux, SmartOS, OS X} and all Y in {Node, npm} absolutely IS my problem
19:16:36  <isaacs>tjfontaine: the nuclear option, of course, is that scripts.install will simply not be run in some future version of npm/node, and node-gyp will simply not link to any assets that are not delivered in a manner that is suitable to all node platforms.
19:16:40  * pieternquit (Ping timeout: 265 seconds)
19:17:26  <isaacs>tjfontaine: or, perhaps, node-imagemagick will never ever work on windows, and thus will never be featured in npm search, and it and any module that depends on it will get a lower score.
19:17:43  <isaacs>tjfontaine: or we figure out a way to make it work on windows :)
19:18:02  <tjfontaine>isaacs: so "punish" those of us who don't want to support the minority? :)
19:18:09  <isaacs>some things, of course, like inotify or zsock, are just fundamentally platform-specific
19:18:12  <isaacs>but imagemagick is not
19:18:22  <isaacs>tjfontaine: you think windows users are a minority?
19:18:33  <tjfontaine>isaacs: there are more dependencies to imagemagick than itself, it's a dependency hell, regardless of where the responsibility is
19:18:59  <isaacs>tjfontaine: windows is not the minority.
19:20:04  <isaacs>tjfontaine: our goal is nothing short of total world domination. most of the world's developers use windows.
19:20:42  <isaacs>and even more of the world's non-developers use windows, and will become developers if we make it easy enough.
19:20:46  <tjfontaine>are there numbers for break down of node developers by platform?
19:20:56  <tjfontaine>I'm speaking about node, not what the goals are
19:21:22  <bnoordhuis>piscisaureus_: re https://gist.github.com/219a27c7a1ceb9501426 <- a flag would free up a register on most archs
19:21:29  <bnoordhuis>something of a micro-optimization though
19:22:12  <piscisaureus_>bnoordhuis: yeah saghul also wanted a falg
19:22:13  <piscisaureus_>*flag
19:22:20  <TooTallNate>piscisaureus_: what would cause "unknown error" when trying to require a native module on windows?
19:22:35  <bnoordhuis>isaacs, piscisaureus_: what is the issue with Locker?
19:23:17  <bnoordhuis>also, yes, rename 'death' to 'exit' (re: cluster)
19:23:35  <isaacs>ok, i'm renaming death to exit
19:23:51  <piscisaureus_>bnoordhuis: try test/simple/test-repl on the latest master *in debug mode*
19:25:30  <bnoordhuis>have you guys noticed how nicely warning free the build is?
19:25:40  <isaacs>review? https://github.com/isaacs/node/commit/73fc34b857b7f80886c1de79f63b670b8bef219e
19:25:57  <bnoordhuis>ah, CHECK(entered_contexts_.length() == 0) - yes, i've seen that one before
19:26:08  <isaacs>bnoordhuis: i did notice that it's not talking asmuch. i thought it was just mad and not speaking to me.
19:26:33  <bnoordhuis>isaacs: lgtm but you've missed the tests
19:26:41  * paddybyersjoined
19:28:27  <creationix>I want an freaddir (fd version of readdir)
19:28:36  <creationix>could that be added to libuv and future versions of node?
19:29:29  <saghul>bnoordhuis I get warnings about __unused being undefined in Darwin
19:29:31  <creationix>also streaming readdir would be nice
19:29:39  <creationix>for folders with *lots* of files
19:30:10  <bnoordhuis>saghul: can you gist the compiler output?
19:30:59  <saghul>bnoordhuis https://gist.github.com/2254287
19:32:01  <bnoordhuis>saghul: that should be easy to fix, 1 sec
19:32:55  * AndreasMjoined
19:33:28  <bnoordhuis>saghul: can you try this patch? https://gist.github.com/83d98e1e584b7df02ee5
19:38:08  <piscisaureus_>bnoordhuis: ok so do you know how to debug the context issue?
19:38:14  <isaacs>bnoordhuis: https://github.com/isaacs/node/commit/master
19:38:19  <CIA-99>node: Ben Noordhuis master * r7c02b5a / src/udp_wrap.cc : udp_wrap: simplify AddressToJS() function (+11 more commits...) - http://git.io/vdigoQ
19:38:22  <piscisaureus_>bnoordhuis: actually I think it is the Locker destructor that triggers it
19:38:49  <bnoordhuis>piscisaureus_: that wouldn't surprise me, it's been giving trouble in the past
19:39:14  <piscisaureus_>bnoordhuis: so my suspicion is that it happens if you create VM contexts that are not disposed
19:39:14  <bnoordhuis>i reverted the initial patch, marcel laverdet later submitted a PR that did work
19:39:39  <piscisaureus_>bnoordhuis: I think if we would force a full gc just before that it might actually work
19:39:39  <bnoordhuis>isaacs: lgtm. does it work? :)
19:40:04  <bnoordhuis>piscisaureus_: yes... that's kind of difficult to force though
19:40:23  <piscisaureus_>bnoordhuis: it's not but I don't like it conceptually
19:40:49  <piscisaureus_>bnoordhuis: rather we should just revert, open a node issue, and tell @laverdet to fix it
19:40:57  <bnoordhuis>piscisaureus_: how? (to gc)
19:41:05  <piscisaureus_>I don't know
19:41:12  <piscisaureus_>he should figure it out
19:41:16  <bnoordhuis>oh right
19:41:19  <bnoordhuis>sure, revert it
19:41:22  <piscisaureus_>maybe it's not even possible
19:41:48  <piscisaureus_>what if you run setInterval() in a vm context and then process.exit the thing?
19:41:50  <piscisaureus_>gc won't help
19:42:27  <AndreasMadsen>issacs: I'm fine with renaming death to exit, just as long cluster.on and worker.on use the same event name. But you should know that it will result in just another API change from 0.6, since the event names was cluster.on('death') and worker.on('exit').
19:42:51  <isaacs>AndreasMadsen: yeah, that's fine.
19:42:55  <TooTallNate>piscisaureus_: nvm on the msjava.dll thing, we figured it out
19:43:01  * AndreasMquit (Remote host closed the connection)
19:43:04  <isaacs>AndreasMadsen: i'm ok with api changes, as long as it increases consistency
19:43:09  <TooTallNate>piscisaureus_: but "unknown error" sure is annoying. not quite sure where it comes from
19:44:49  <AndreasMadsen>isaacs: No problem then, I just needed to make sure you knew.
19:45:15  <piscisaureus_>TooTallNate: can you gist me some code that triggers the UNKNOWN error?
19:47:09  <TooTallNate>piscisaureus_: the hello world addon in the repo used to do it before we added NODE_MODULE()
19:47:10  <TooTallNate>piscisaureus_: https://github.com/joyent/node/tree/3f1f2d149724b617418ac2212ac829b12b50d321/test/addons/hello-world
19:47:31  <TooTallNate>but apparently there's still modules out there not using that macro
19:47:40  <CIA-99>node: Bert Belder master * r79675d5 / src/node.cc :
19:47:40  <CIA-99>node: Revert "Re-add top-level v8::Locker"
19:47:40  <CIA-99>node: The locker makes node crash in debug mode sometimes.
19:47:40  <CIA-99>node: For example, test/simple/test-repl. triggers it.
19:47:40  <CIA-99>node: This reverts commit 9a6012edd9330296b7476bc6b7fbda2cd5c8165d.
19:47:40  <CIA-99>node: Conflicts:
19:47:40  <CIA-99>node: src/node.cc - http://git.io/dkgSQg
19:47:49  <piscisaureus_>TooTallNate: ok, will look at it. Going for food now
19:48:07  <TooTallNate>piscisaureus_: cool, thanks
19:48:17  * perezdquit (Quit: perezd)
19:51:01  <CIA-99>node: Bert Belder master * r4071815 / src/node.cc :
19:51:01  <CIA-99>node: Revert "Re-add top-level v8::Locker"
19:51:01  <CIA-99>node: The locker makes node crash in debug mode sometimes.
19:51:01  <CIA-99>node: For example, test/simple/test-repl.js triggers it.
19:51:01  <CIA-99>node: This reverts commit 9a6012edd9330296b7476bc6b7fbda2cd5c8165d.
19:51:01  <CIA-99>node: Conflicts:
19:51:01  <CIA-99>node: src/node.cc - http://git.io/J6kSDg
19:51:28  <bnoordhuis>saghul: did the patch work for you?
19:54:33  <pfox___>so.. an EADDRNOTAVAIL error on windows
19:54:37  * travis-cijoined
19:54:38  <travis-ci>[travis-ci] joyent/node#671 (master - 7c02b5a : Ben Noordhuis): The build is still failing.
19:54:38  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/8d3278b...7c02b5a
19:54:38  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/984219
19:54:38  * travis-cipart
19:54:40  <pfox___>what does that mean... inadequate perms?
19:54:43  <saghul>bnoordhuis I'll heck now
19:54:48  <pfox___>i was kinding to port 8888
19:54:55  <pfox___>excuse me
19:55:00  <pfox___>actually, it was in uv_tcp_connect
19:55:01  <creationix>hmm, we're also missing flstat (lstat with fd)
19:55:04  <pfox___>and the server was already set up
19:55:19  <pfox___>this code works in linux.. so i guess its an env/perms thing
19:56:14  <saghul>bnoordhuis Nice and clean, no more warnings!
19:56:46  <bnoordhuis>saghul: cool, thanks. i'll merge it
19:56:47  <tjfontaine>pfox___: generally you shouldn't try and connect to, binding is another story
19:57:01  <tjfontaine>pfox___: different platforms treat connecting that way differently
19:57:13  <pfox___>so should i connect to ?
19:57:39  <tjfontaine>a lot of platforms (mac) treat a connect to as equivalent to, so if that's what you meant it should work
19:58:26  <tjfontaine>well is "default route" or so
19:58:29  <bnoordhuis>debian! /usr/bin/env: python: No such file or directory
19:58:35  * bnoordhuisbangs head against table
19:59:03  <TooTallNate>lol
19:59:18  <tjfontaine>I'm just happy when I can get an environment that requires neither perl or python
20:00:20  <TooTallNate>bnoordhuis: that happened to me yesterday when i got smartos going
20:00:31  <CIA-99>node: isaacs master * r90ce5b3 / (6 files in 3 dirs): cluster: Rename 'death' back to 'exit' - https://github.com/joyent/node/commit/90ce5b3d41a01bfd5793d1d634318fe607fa533c
20:03:23  * travis-cijoined
20:03:23  <travis-ci>[travis-ci] joyent/node#672 (master - 79675d5 : Bert Belder): The build is still failing.
20:03:23  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/7c02b5a...79675d5
20:03:23  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/984277
20:03:23  * travis-cipart
20:06:32  * travis-cijoined
20:06:32  <travis-ci>[travis-ci] joyent/node#673 (master - 4071815 : Bert Belder): The build is still failing.
20:06:32  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/79675d5...4071815
20:06:32  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/984309
20:06:32  * travis-cipart
20:15:23  * AndreasMadsenquit (Remote host closed the connection)
20:16:21  * travis-cijoined
20:16:21  <travis-ci>[travis-ci] joyent/node#674 (master - 90ce5b3 : isaacs): The build is still failing.
20:16:21  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/4071815...90ce5b3
20:16:21  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/984359
20:16:21  * travis-cipart
20:25:38  * indexzerojoined
20:42:51  <CIA-99>libuv: Ben Noordhuis master * r1ab8f5a / include/uv-private/tree.h :
20:42:51  <CIA-99>libuv: Conditionally define __unused.
20:42:51  <CIA-99>libuv: Fixes compiler warning '"__unused" redefined' on OS X.
20:42:51  <CIA-99>libuv: Reported by Saúl Ibarra Corretgé. - http://git.io/-16EpQ
20:44:53  * mikealjoined
20:44:53  * travis-cijoined
20:44:53  <travis-ci>[travis-ci] joyent/libuv#159 (master - 1ab8f5a : Ben Noordhuis): The build is still failing.
20:44:53  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/4360018...1ab8f5a
20:44:53  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/984655
20:44:53  * travis-cipart
20:49:35  <piscisaureus_>You should not connect to
20:49:44  <piscisaureus_>wont work on w.
20:50:16  <piscisaureus_>pfox___: --^
20:50:16  <kohai>pfox___ has -1 beer
20:50:22  <piscisaureus_>HE
20:50:30  <bnoordhuis>aww
20:50:31  <piscisaureus_>pfox___++
20:50:32  <kohai>pfox___ has 0 beer
20:50:42  <bnoordhuis>what good are zero beers?
20:50:44  <bnoordhuis>pfox___++
20:50:44  <kohai>pfox___ has 1 beer
20:52:24  * theColejoined
20:55:02  <CIA-99>node: Ben Noordhuis master * rc26a0b5 / doc/api/cluster.markdown : doc: fix grammar error in cluster docs - http://git.io/9PzrbQ
20:55:19  * sh1mmerjoined
20:58:18  * mikealquit (Quit: Leaving.)
21:06:54  * perezdjoined
21:07:28  * mikealjoined
21:08:32  <pfox___>my ill-gotten beers
21:08:47  <pfox___>piscisaureus_: so can i just connect to , if the server has bound to ?
21:09:07  <TooTallNate>pfox___: yes
21:09:22  <pfox___>and does that work on unix, as well?
21:10:37  * seebeesjoined
21:10:44  <TooTallNate>pfox___: indeed it does :)
21:10:48  * dapquit (Ping timeout: 272 seconds)
21:10:53  * travis-cijoined
21:10:53  <travis-ci>[travis-ci] joyent/node#675 (master - c26a0b5 : Ben Noordhuis): The build is still failing.
21:10:53  <travis-ci>[travis-ci] Change view : https://github.com/joyent/node/compare/90ce5b3...c26a0b5
21:10:53  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/984784
21:10:53  * travis-cipart
21:10:57  <pfox___>yeah. im build now to find out, heh.
21:11:05  <TooTallNate>pfox___: try it: `ping`
21:11:31  <pfox___>but why try *anything* when i can bug people with newb questions?
21:11:50  <TooTallNate>:p
21:11:56  <seebees>good afternoon
21:12:10  <seebees>I've got a few questions, if anyone has some time
21:13:20  <seebees>What I'm working on is a way to expose the loop count to the JS environment
21:13:25  <seebees>say, process.tick
21:13:59  <seebees>given that I've got what turn of the event loop i'm on, then I'm also trying to add this to any callback
21:14:05  <seebees>say proccess.tock
21:14:12  * indexzeroquit (Read error: Connection reset by peer)
21:14:16  * perezdquit (Quit: perezd)
21:14:26  * theColequit (Ping timeout: 246 seconds)
21:14:33  * indexzerojoined
21:14:40  <seebees>so that will a bit of magic logging, you can unwind everything if it all drops in the pot
21:14:59  <seebees>So I'm wondering if this is an interesting idea to anyone here?
21:15:16  <seebees>(or perhaps a terribly bad one?)
21:15:21  * theColejoined
21:16:56  * dapjoined
21:18:53  * pieternjoined
21:19:13  * pfox___quit (Ping timeout: 244 seconds)
21:23:55  * mjr_quit (Quit: mjr_)
21:26:16  * mikealquit (Quit: Leaving.)
21:32:23  <seebees>kk, I'll work up a pull in a few days and see what happens ;)
21:34:38  * mikealjoined
21:39:35  * paddybyersquit (Quit: paddybyers)
21:40:13  * seebeespart
21:40:21  * rendarquit
21:48:58  * dshaw_quit (Quit: Leaving.)
21:52:40  * dshaw_joined
21:53:48  * pfox___joined
22:05:12  * theColequit (Quit: theCole)
22:12:48  <bnoordhuis>`eio_overflow` failed: exit code 6
22:12:48  <bnoordhuis>Output from process `eio_overflow`:
22:12:48  <bnoordhuis>Assertion failed in ../test/test-eio-overflow.c on line 61: opened - closed < max_delta
22:13:05  <bnoordhuis>curious... it happens on my debian machine but not on my ubuntu machine
22:13:45  * pieternquit (Quit: pietern)
22:17:17  * TooTallNatequit (Quit: Linkinus - http://linkinus.com)
22:20:34  * theColejoined
22:25:29  * perezdjoined
22:27:38  * pfox___quit (Ping timeout: 240 seconds)
22:29:48  * pfox____joined
22:35:10  * pfox____quit (Ping timeout: 252 seconds)
22:37:04  * pfox____joined
22:38:09  * k-schanged nick to k-s[AWAY]
22:41:38  * piscisaureus_quit (Ping timeout: 240 seconds)
22:42:49  * pfox____quit (Ping timeout: 260 seconds)
22:44:32  * pfox____joined
22:47:28  * piscisaureus_joined
22:49:42  <piscisaureus_>bnoordhuis: igorzi: you think it would be better for uv_poll_init to take a SOCKET on windows and an fd on unix?
22:50:05  <bnoordhuis>piscisaureus_: what are the alternatives?
22:50:14  * pfox____quit (Ping timeout: 272 seconds)
22:50:22  <piscisaureus_>bnoordhuis: what I proposed
22:50:39  <piscisaureus_>. /* Initialize the poll watcher using a file descriptor. */.
22:50:39  <piscisaureus_>. UV_EXTERN int uv_poll_init(uv_poll_t* handle, int fd);
22:50:39  <piscisaureus_>. /* Initialize the poll watcher using a socket descriptor. On unix this is */
22:50:39  <piscisaureus_>. /* identical to uv_poll_init. On windows it takes a SOCKET handle. */
22:50:39  <piscisaureus_>. UV_EXTERN int uv_poll_init_socket(uv_poll_t* handle,
22:50:40  <piscisaureus_>. uv_platform_socket_t sock);
22:50:42  <piscisaureus_>^-- bnoordhuis
22:51:27  <bnoordhuis>piscisaureus_: i take it a SOCKET is not an integer?
22:51:40  <piscisaureus_>bnoordhuis: it is intptr_t
22:51:55  <piscisaureus_>bnoordhuis: could also be void*
22:51:59  <bnoordhuis>right
22:52:12  <bnoordhuis>i suppose uv_platform_socket_t works for me
22:52:24  <bnoordhuis>pretty wordy though
22:52:35  <bnoordhuis>what about uv_sock_t?
22:52:37  <piscisaureus_>bnoordhuis: yeah but you never really have to type it out
22:52:57  <bnoordhuis>annoying drunk students are annoying
22:53:08  <piscisaureus_>bnoordhuis: I like the name to be explicit about the fact that it takes a platform dependent thing
22:53:42  <piscisaureus_>bnoordhuis: I mean we normally hide this from the user. uv_stream_t might as well have been named uv_sock_t
22:53:50  * bnoordhuistakes the bb gun and steps outside
22:53:51  <igorzi>piscisaureus_: yeah, why not just have uv_poll_init take uv_platform_socket_t (or whatever it'll be called) ?
22:53:58  <igorzi>(without uv_poll_init_socket)
22:54:08  <piscisaureus_>igorzi: so what if we ever decided to support pipes
22:54:24  <piscisaureus_>(not that I think that will ever happen)
22:54:30  * mikealquit (Quit: Leaving.)
22:54:33  <piscisaureus_>then we would have to add uv_poll_init_handle
22:55:20  <igorzi>piscisaureus_: or name it uv_platform_handle_t ?
22:55:37  <piscisaureus_>igorzi: well yeah but there is no polyphormism in c
22:56:12  <piscisaureus_>igorzi: so let me explain from another perspective
22:56:20  <igorzi>piscisaureus_: yeah, got it
22:56:34  <piscisaureus_>igorzi: if we do the streams refactor we will have uv_stream_init_fd(int fd)
22:56:44  <piscisaureus_>so people can open stdin with uv_stream_init_fd(0)
22:57:41  <piscisaureus_>igorzi: so let's drop uv_poll_init and have *only* uv_poll_init_socket
22:58:25  <piscisaureus_>bnoordhuis: ^
22:58:30  <igorzi>piscisaureus_: or we could try to detect if the given uv_platform_handle_t is a socket or a pipe (didn't you have code that did that?)
22:58:38  <piscisaureus_>igorzi: yeah we could
22:58:44  <piscisaureus_>igorzi: but HANDLE != SOCKET
22:59:00  <piscisaureus_>igorzi: people will have to cast SOCKET to HANDLE or vice versa and think that it is wrong
22:59:28  <igorzi>piscisaureus_: cast it when? when calling uv_poll_init?
22:59:48  <piscisaureus_>igorzi: so suppose
23:00:38  <piscisaureus_>HANDLE pipe;
23:00:38  <piscisaureus_>SOCKET sock;
23:00:38  <piscisaureus_>uv_tcp_init_socket(sock); <-- ok
23:00:38  <piscisaureus_>uv_tcp_init_socket(pipe) <-- rejected by the compiler
23:00:38  <piscisaureus_>uv_tcp_init_socket((SOCKET) pipe) <-- ok
23:00:54  <piscisaureus_>igorzi: ^-- we could make it like that but it is kidna confusing
23:01:57  <igorzi>piscisaureus_: uv_platform_handle_t could be typedef'ed to intptr_t .. then both of them will be rejected without a cast
23:02:14  <igorzi>(would be consistent :))
23:02:41  <piscisaureus_>igorzi: can you type it out?
23:02:50  <piscisaureus_>igorzi: I don't think you what you say is true
23:03:02  <piscisaureus_>igorzi: or do you propose to have people cast the socket to a HANDLE
23:03:02  <piscisaureus_>?
23:04:19  <igorzi>1 sec
23:06:52  * mikealjoined
23:08:13  * TooTallNatejoined
23:09:04  * avalanche123quit (Ping timeout: 260 seconds)
23:09:47  <igorzi>piscisaureus_: yeah, you're right.. that doesn't quite work
23:10:43  <igorzi>piscisaureus_: i was looking for a way to force people to cast to uv_platform_handle_t (from both HANDLE or SOCKET)
23:10:52  * avalanche123joined
23:11:04  <piscisaureus_>igorzi: ah right... nah, that would be painful I think
23:11:28  <piscisaureus_>igorzi: I think many external libs that would need uv_poll define something like uv_os_socket_t already
23:12:44  <piscisaureus_>igorzi: so now the glue code can just use `uv_poll_init_socket(sock)`
23:12:44  <piscisaureus_>instead of
23:12:44  <piscisaureus_>#ifdef _WIN32
23:12:44  <piscisaureus_>uv_poll_init((HANDLE) sock)
23:12:44  <piscisaureus_>#else
23:12:44  <piscisaureus_>uv_poll_init(sock)
23:12:44  <piscisaureus_>#endif
23:12:46  * `3rdEdenquit (Quit: Leaving...)
23:18:13  <igorzi>piscisaureus_: yep.. sounds good
23:18:22  <piscisaureus_>nice
23:19:16  * mikealquit (Quit: Leaving.)
23:37:12  * philipsquit (Excess Flood)
23:40:31  * philipsjoined
23:40:43  <piscisaureus_>bnoordhuis: there's something I'd like to do at some point.
23:41:19  <bnoordhuis>piscisaureus_: oh dear
23:41:24  <piscisaureus_>bnoordhuis: namely, report exec() failure as an exception instead of writing cruft to the child's stderr
23:41:39  <piscisaureus_>bnoordhuis: I am sure we can find some trickery to make that possible on unix
23:41:49  <piscisaureus_>(and on windows it is trivial)_
23:41:59  <bnoordhuis>piscisaureus_: what do you mean?
23:42:23  <piscisaureus_>bnoordhuis: well what happens not if you do child_process.spawn
23:42:27  <piscisaureus_>*now
23:42:33  <piscisaureus_>er sorry
23:43:04  <piscisaureus_>bnoordhuis: if you do child_process.spawn('doesnotexist') it writes an error message to the stderr
23:43:23  <piscisaureus_>bnoordhuis: that is kind of nonobvious right
23:43:28  <bnoordhuis>it does? it shouldn't
23:43:35  <bnoordhuis>execve() failures are perfectly catchable
23:43:41  * dapquit (Quit: Leaving.)
23:43:46  <piscisaureus_>bnoordhuis: yes well what the forked process does is
23:44:02  <piscisaureus_>if (exec(...) < 0) perror('exec')
23:44:11  <piscisaureus_>bnoordhuis: just try it
23:44:24  <bnoordhuis>piscisaureus_: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=589020 <- kind of related :)
23:44:26  <bnoordhuis>(kind of)
23:44:39  * dapjoined
23:44:43  <bnoordhuis>right, like that
23:44:49  <bnoordhuis>it could just return a special error code
23:45:14  <bnoordhuis>or even write something to the pipe the parent set up
23:45:19  <piscisaureus_>bnoordhuis: the only thing is that if we really want to throw then we are forcing ourselves to keep spawn() sync until the end of days
23:45:28  <piscisaureus_>bnoordhuis: yeah it would be good to report the actual errno too
23:45:44  <piscisaureus_>bnoordhuis: probably we just want to emit 'error' on the child process object if spawn fails.
23:46:04  <piscisaureus_>bnoordhuis: and I think we have this magic pipe now so we can just write the failure to that if we care.
23:46:12  <bnoordhuis>yes
23:46:31  <piscisaureus_>bnoordhuis: on windows we now have this unix compat hack where we also write to the stderr even if we could just read GetLastError() on failure
23:49:10  * dshaw_quit (Quit: Leaving.)
23:51:17  * Ariajoined
23:54:46  * theColequit (Quit: theCole)
23:56:08  * seebeesjoined
23:59:35  <bnoordhuis>seebees: you rang?