00:23:24  * c4milojoined
00:39:00  * brsonjoined
00:39:10  * mikeal1quit (Quit: Leaving.)
01:01:16  * mikealjoined
01:07:45  * abraxasjoined
01:18:27  * loladirojoined
01:23:10  * abraxas_joined
01:24:03  * Aria_changed nick to Aria
01:25:05  * abraxasquit (Ping timeout: 252 seconds)
01:31:31  * abraxasjoined
01:32:47  * AvianFlujoined
01:33:48  * abraxas_quit (Ping timeout: 265 seconds)
01:34:12  * loladiroquit (Quit: loladiro)
01:36:21  * brsonquit (Quit: leaving)
01:44:24  * mikealquit (Quit: Leaving.)
02:12:19  * iraquit (Quit: Computer has gone to sleep.)
02:22:17  * Ariaquit (Remote host closed the connection)
02:27:49  * AvianFluquit (Quit: This computer has gone to sleep)
02:52:40  * mikealjoined
03:11:19  * brsonjoined
03:15:44  * brsonquit (Ping timeout: 248 seconds)
03:17:06  * mikealquit (Quit: Leaving.)
03:17:28  * brsonjoined
03:17:37  * mikealjoined
03:17:40  * mikealquit (Client Quit)
03:29:23  * bnoordhuisquit (Ping timeout: 252 seconds)
03:33:44  * c4miloquit (Remote host closed the connection)
03:35:36  * AvianFlujoined
03:39:02  * AvianFluquit (Client Quit)
03:41:26  * isaacsjoined
04:03:30  * mjr_quit (Quit: mjr_)
04:10:27  * mikealjoined
04:29:30  * mikeal1joined
04:29:31  * mikealquit (Read error: Connection reset by peer)
04:58:07  * mikeal1quit (Quit: Leaving.)
05:03:03  * isaacsquit (Remote host closed the connection)
05:58:57  * mikealjoined
06:08:45  * mikealquit (Quit: Leaving.)
06:21:28  * mikealjoined
06:27:54  * mikealquit (Quit: Leaving.)
06:42:57  * DrPizzaquit (Quit: alice.)
06:45:01  * stephankquit (Quit: *Poof!*)
06:57:19  * perezdquit (Quit: perezd)
07:17:39  * brsonquit (Quit: leaving)
07:23:59  * paddybyersjoined
07:40:07  * mikealjoined
07:46:56  * AvianFlujoined
07:58:37  * rendarjoined
08:35:03  * AvianFlupart ("Leaving")
09:22:13  * paddybyers_joined
09:24:24  * paddybyersquit (Ping timeout: 256 seconds)
09:24:24  * paddybyers_changed nick to paddybyers
09:33:01  * mmaleckijoined
09:54:55  * mmaleckiquit (Ping timeout: 245 seconds)
10:04:07  * mmaleckijoined
10:05:55  * paddybyersquit (Quit: paddybyers)
10:24:34  * paddybyersjoined
10:33:41  * mmaleckiquit (Ping timeout: 265 seconds)
10:37:41  * paddybyersquit (Quit: paddybyers)
10:48:58  * piscisaureus_joined
11:05:02  * paddybyersjoined
11:05:32  <indutny>piscisaureus_: heya
11:19:00  <piscisaureus_>indutny: hey
11:19:09  <indutny>piscisaureus_: updated PR https://github.com/joyent/libuv/pull/441/files
11:20:10  <indutny>and a documentation patch
11:20:20  <indutny>piscisaureus_: https://gist.github.com/b3f097a50b2ae25988ad
11:20:51  <piscisaureus_>indutny: :-(
11:20:55  <indutny>haha
11:20:56  <indutny>fuck
11:20:58  <piscisaureus_>indutny: "Open the fd in the child for 0,1,2 stdios:"
11:21:02  <piscisaureus_>c'mon
11:21:03  <indutny>sorry, I cutted down sentence
11:21:06  <indutny>my wrong
11:21:14  <indutny>s/wrong/bad
11:21:21  <indutny>2. `'ignore'` - Open the fd in the child for 0,1,2 stdios, do not expose it to
11:21:21  <indutny> parent.
11:21:25  <indutny>err
11:21:29  <indutny>s/do/but do/g
11:21:41  <indutny>piscisaureus_: ok?
11:21:58  <piscisaureus_>nah
11:22:21  <indutny>piscisaureus_: well, that's actually your text
11:22:23  <indutny>almost
11:22:27  <piscisaureus_>really?
11:23:34  <piscisaureus_>indutny: let me do the doc patch
11:23:43  <indutny>oook
11:23:53  <indutny>:)
11:23:57  <indutny>btw, that's not yours
11:37:22  <piscisaureus_>Note: A ChildProcess may have at most *one* IPC stdio file descriptor.
11:37:22  <piscisaureus_> Setting this option enables the ChildProcess.send() method. If
11:37:23  <piscisaureus_></3
11:37:27  <piscisaureus_>too much magic
11:44:03  <indutny>you think so?
11:44:27  <indutny>I think it's quite useful
11:50:50  <piscisaureus_>useful - yes
11:50:54  <piscisaureus_>but very magical
11:51:16  <piscisaureus_>it would be better to make it explicit - e.g. process.setChannel(cp.fds[2]) or something
11:52:33  <indutny>well, we'll have enough time to consider that :)
11:52:43  <indutny>but I think current API is good enough for 0.8.0
12:08:39  <piscisaureus_>ngist y u no work
12:09:36  <indutny>hahaha
12:12:07  <piscisaureus_>indutny: https://gist.github.com/2867969
12:13:29  * abraxasquit (Remote host closed the connection)
12:14:08  * abraxasjoined
12:15:29  <indutny>piscisaureus_: looking
12:15:59  <indutny>piscisaureus_: lgtm
12:16:04  <indutny>much clearer
12:16:15  <piscisaureus_>indutny: thanks :-)
12:16:19  <indutny>hahaha
12:18:21  <CIA-112>node: Bert Belder master * r0699f5b / doc/api/child_process.markdown : Improve child process stdio documentation - http://git.io/DRpczA
12:18:22  <CIA-112>node: Jeroen Janssen master * r7161ecd / tools/msvs/msi/product.wxs : windows/msi: fix adding node to PATH - http://git.io/igNYyw
12:18:37  * abraxasquit (Ping timeout: 250 seconds)
12:24:14  <CIA-112>node: Bert Belder reviewme * r7614f15 / tools/msvs/msi/product.wxs : windows/msi: shorten manufacturer-based registry key (+966 more commits...) - http://git.io/DHi-pw
12:43:46  * bnoordhuisjoined
12:44:03  <bnoordhuis>http://blog.regehr.org/archives/721 <- 18 out of 20... c is hard
12:44:26  <bnoordhuis>not to say a harsh mistress
12:48:53  <piscisaureus_>lemme try that
12:49:27  * theColejoined
12:51:28  <piscisaureus_>bnoordhuis: it is much easier if you correctly read the explanations before proceeding to the next question
12:52:40  <indutny>bnoordhuis: heya
12:52:45  <bnoordhuis>indutny: hoya
12:52:55  <indutny>bnoordhuis: wanna review my stdio PR for uv?
12:53:00  <indutny> /dev/null stuff
12:53:01  <bnoordhuis>already reviewing it
12:53:29  <piscisaureus_>also
12:53:32  <piscisaureus_>"What does the expression -1L > 1U evaluate to on x86-64? On x86?"
12:53:36  <piscisaureus_>depends on the platform :-p
12:53:41  <indutny>haha
12:53:53  <piscisaureus_>on windows x86 and x64 will be the same
12:53:54  <indutny>yeah, that's quite interesting
12:54:25  <bnoordhuis>piscisaureus_: assume LP64
12:54:31  <bnoordhuis>it's in the introduction
12:54:36  <piscisaureus_>ah, right
12:54:42  <piscisaureus_>easy, then :-)
12:56:36  <piscisaureus_>What does the expression SCHAR_MAX == CHAR_MAX evaluate to? <-- bah
12:57:34  <bnoordhuis>yeah, depends on the implementation
12:58:08  <piscisaureus_>I have to admit that I have to think very deeply about all these question
12:58:10  <piscisaureus_>dangerous
13:05:08  <piscisaureus_>I actually made 4 errors
13:05:26  <piscisaureus_>Some of them really stupid
13:05:53  <bnoordhuis>the ones that tripped me up are type promotion in shifts
13:06:07  <piscisaureus_>yeah that one was a genuine error of mine
13:06:17  <bnoordhuis>particularly that unsigned short is promoted to signed int... i mean, why?
13:06:29  <piscisaureus_>yes, that's super lame
13:06:39  <piscisaureus_>c should just preserve unsigned-ness
13:06:54  <bnoordhuis>well, i suppose there's a reason it works like that
13:07:05  <bnoordhuis>but i'm not able to come up with one myself :)
13:07:20  <piscisaureus_>To be honest, I also didn't get (x + 1 - 1) wrong
13:07:28  <piscisaureus_>er, I got it wrong
13:07:40  <piscisaureus_>If I saw that code I would be scared and do it differently I think
13:07:46  <bnoordhuis>oh, that's easy - just substitute x with INT_MIN or INT_MAX
13:08:20  <piscisaureus_>yes, but I assumed (hoped) that there would be some constant folding involved
13:08:33  <piscisaureus_>I mean,
13:08:33  <piscisaureus_>char foo[4 + 1 - 1] is also legal right?
13:09:17  <bnoordhuis>yes
13:09:52  <bnoordhuis>but there's nothing stopping an implementation from doing mov 4, r0; add 1, r0; add 1, r0; add r0, rsp
13:10:16  <piscisaureus_>bnoordhuis: yes. Luckily that will just work on any real architecture :-)
13:10:22  <bnoordhuis>heh, true enough
13:10:36  <bnoordhuis>there is one place where the spec mandates constant folding but i forgot where
13:10:44  <piscisaureus_>bnoordhuis: also, this one: Assume is x is int. Is (short x) + 1 defined for ...
13:10:58  <bnoordhuis>you mean (short)x + 1?
13:11:01  <piscisaureus_>bnoordhuis: he says, it's always defined
13:11:03  <piscisaureus_>bnoordhuis: yeah
13:11:13  <piscisaureus_>bnoordhuis: but is it really defined when x == INT_MAX ?
13:11:40  <bnoordhuis>yes
13:12:00  <piscisaureus_>so how does the spec define (short)INT_MAX ?
13:12:17  <piscisaureus_>I mean, if overflow isn't defined, how can truncation be defined?
13:12:54  <piscisaureus_>The explanation is rather unsatisfactory
13:12:55  <piscisaureus_>Question 18 Explanation:
13:12:55  <piscisaureus_>Any value of type int, after being truncated to short and then promoted back to int, can be safely incremented as long as the int type is wider than the short type.
13:13:01  <piscisaureus_>Yeah, sure
13:13:34  <bnoordhuis>it just works that way :)
13:13:54  <piscisaureus_>I know, but that was the part I knew
13:14:07  <piscisaureus_>I was wondering about the truncation
13:14:22  <piscisaureus_>how is (short)INT_MIN defined ?
13:14:50  <bnoordhuis>as SHORT_MIN
13:16:46  <CIA-112>node: Ben Noordhuis master * rf0a561f / lib/net.js : net: rename flag FLAG_SHUTDOWNQUED - http://git.io/ybeJAA
13:17:17  <piscisaureus_>bnoordhuis: not really no
13:17:25  <bnoordhuis>no?
13:17:26  <piscisaureus_>bnoordhuis: msvc makes it 0
13:19:17  <bnoordhuis>hmm, so does gcc
13:19:22  * mmaleckijoined
13:19:32  <bnoordhuis>let me get my copy of the spec
13:19:41  <piscisaureus_>int a = (short) INT_MIN; // 0
13:19:41  <piscisaureus_> int b = (short) INT_MAX; // -1
13:19:41  <piscisaureus_> int c = (unsigned short) INT_MIN; // 0
13:19:41  <piscisaureus_> int d = (unsigned short) INT_MAX; // USHORT_MAX
13:20:24  * irajoined
13:20:54  <bnoordhuis>Otherwise, the new type is signed and the value cannot be represented in it; either the result is implementation-defined or an implementation-defined signal is raised.
13:21:37  <bnoordhuis>so the answer is 'it depends'...
13:21:39  <indutny>the whole libuv core team was freezed by C quiz
13:22:01  <bnoordhuis>indutny: this is of utmost importance, someone is being wrong on the internet!
13:22:09  <indutny>hahahahahaha
13:22:23  <piscisaureus_>yep
13:22:30  <piscisaureus_>everything on the internet is true
13:22:34  <piscisaureus_>this is really shocking
13:22:57  <piscisaureus_>bnoordhuis: I wasn't the first one: http://blog.regehr.org/archives/721#comment-4341
13:22:58  <piscisaureus_>:-)
13:23:33  <bnoordhuis>right
13:23:45  <piscisaureus_>http://blog.regehr.org/archives/721#comment-4348 <-- boo!
13:23:48  <piscisaureus_>:-p
13:23:50  <piscisaureus_>ok, to work
13:25:37  * theColequit (Quit: theCole)
13:26:42  <piscisaureus_>The C spec should just have mandated the use of 2s complement
13:26:56  <piscisaureus_>then all this undefined bullshit wasn't necessary
13:27:03  <indutny>so far, brainfuck's spec is the clearest one in the world
13:27:07  * c4milojoined
13:27:49  <indutny>bnoordhuis: wanna merge my patch in libuv?
13:28:43  <piscisaureus_>bnoordhuis: https://github.com/joyent/libuv/issues/443
13:29:06  <piscisaureus_>bnoordhuis: we don't support this, although the ECONNREFUSED error is odd
13:29:34  <piscisaureus_>bnoordhuis: I think we should do that tho - if we queue all writes in libuv then we can remove the connect_queue from net.js
13:29:45  * DrPizzajoined
13:34:37  * rendarquit (Ping timeout: 245 seconds)
13:37:14  * rendarjoined
14:00:42  <bnoordhuis>piscisaureus_: https://github.com/bnoordhuis/libuv/commit/b96ed68
14:01:12  <bnoordhuis>piscisaureus_: and yes, i agree we should queue up writes
14:01:24  <bnoordhuis>*if not connected yet
14:01:36  <piscisaureus_>bnoordhuis: the patch is probably not so invasive on unix
14:01:48  <piscisaureus_>bnoordhuis: on windows this equals $work :-)
14:01:58  <bnoordhuis>yes? what needs to be changed?
14:02:11  <piscisaureus_>bnoordhuis: well we don't queue anything in userspace on windows atm
14:02:16  <bnoordhuis>shall i land that test as a gentle reminder?
14:02:47  <piscisaureus_>bnoordhuis: well, it's no prio. Maybe land it and disable it on windows
14:03:03  <piscisaureus_>bnoordhuis: and create an issue that says we should do it :-)
14:08:46  * mmaleckiquit (Quit: leaving)
14:09:01  <CIA-112>libuv: Ben Noordhuis master * rb96ed68 / (3 files in 2 dirs): test: add TCP connect error + write test - http://git.io/0YizqQ
14:09:01  <CIA-112>libuv: Ben Noordhuis master * r97801c6 / test/test-tcp-dont-connect-after-write.c : test: disable tcp_dont_connect_after_write on windows - http://git.io/UellAA
14:11:09  * travis-cijoined
14:11:09  <travis-ci>[travis-ci] joyent/libuv#376 (master - 97801c6 : Ben Noordhuis): The build is still failing.
14:11:09  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/c76c206...97801c6
14:11:09  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1525090
14:11:09  * travis-cipart
14:12:52  <bnoordhuis>indutny: can you rebase your pr against master? bert already landed part of it
14:12:58  <indutny>bnoordhuis: ok
14:13:24  <indutny>bnoordhuis: tests are already here, right?
14:13:28  <bnoordhuis>yes
14:14:37  <indutny>bnoordhuis: done
14:15:36  <bnoordhuis>what's kind of odd is that the tests were already passing...
14:16:12  <piscisaureus_>bnoordhuis: probably because node doesn't set CLOEXEC on fd 0-2
14:16:23  <piscisaureus_>bnoordhuis: so the child just inherits it from the parent
14:16:42  <piscisaureus_>bnoordhuis: the tests *did* catch a problem on windows (before I patched it)
14:21:48  <indutny>bnoordhuis: well, they ain't passing actually
14:21:58  <indutny>bnoordhuis: this test just don't cover unix error
14:22:19  <indutny>bnoordhuis: before my patch, child was outputing to parent's stdio
14:22:29  <indutny>bnoordhuis: so output was visible in tty
14:23:01  <indutny>I think testing that case is quite complex for such a simple issue
14:23:22  <CIA-112>libuv: Fedor Indutny master * ra30e45f / src/unix/process.c : unix: remap fds 0-2 to /dev/null if ignore flag set - http://git.io/IKRJOA
14:24:39  <indutny>good
14:24:41  <indutny>brb
14:24:47  <bnoordhuis>https://github.com/joyent/node/issues/3370 <- wut?
14:25:50  <tjfontaine>heh
14:27:00  <indutny>forever in node
14:33:35  * travis-cijoined
14:33:35  <travis-ci>[travis-ci] joyent/libuv#377 (master - a30e45f : Fedor Indutny): The build is still failing.
14:33:35  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/97801c6...a30e45f
14:33:35  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1525304
14:33:35  * travis-cipart
14:35:06  <bnoordhuis>i learned something today... write(2) can return ECONNREFUSED
14:35:48  <tjfontaine>under what condition?
14:36:41  <bnoordhuis>tjfontaine: connect() returning EINPROGRESS, then doing a write immediately afterwards
14:36:51  <tjfontaine>interesting
14:37:04  <bnoordhuis>it is, isn't it? here is what it looks like:
14:37:04  <tjfontaine>this is that queue conversation you were having earlier
14:37:05  <bnoordhuis>connect(5, {sa_family=AF_INET, sin_port=htons(9123), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)
14:37:05  <bnoordhuis>write(5, "TEST", 4) = -1 ECONNREFUSED (Connection refused)
14:37:05  <bnoordhuis>getsockopt(5, SOL_SOCKET, SO_ERROR, [-7100142103535026176], [4]) = 0
14:37:12  <bnoordhuis>tjfontaine: yes
14:37:53  <tjfontaine>well that's helpful knowledge to have :)
14:42:47  * bitprobejoined
14:46:57  * isaacsjoined
14:55:15  * ibcjoined
15:01:21  <piscisaureus_>bnoordhuis: uv_buflen_t: yay or nay ?
15:01:33  <piscisaureus_>bnoordhuis: buflen_t would be 32-bit on windows, always
15:04:55  <bnoordhuis>piscisaureus_: yay if you tell me why you need it
15:05:18  <piscisaureus_>bnoordhuis: well I am trying to squash size_t -> uint conversion warnings
15:05:21  <piscisaureus_>in libuv
15:05:54  <piscisaureus_>but the bottom line is that if someone does uv_buf_init(buf, a_very_big_value) there's not much we can do, except abort
15:06:02  <bnoordhuis>what about making it unsigned long or unsigned int?
15:06:04  * mmaleckijoined
15:06:07  <bnoordhuis>i don't like typedefs very much
15:06:17  <piscisaureus_>oh, I wouldn't mind that, either
15:06:29  <piscisaureus_>uint32_t would be okay I think
15:06:38  <piscisaureus_>or unsigned int
15:06:56  <bnoordhuis>let's go with unsigned int then
15:07:00  <piscisaureus_>ok
15:07:01  <piscisaureus_>kewl
15:07:07  <bnoordhuis>in case someone wants to compile libuv on a 16 bits platform :)
15:07:15  <piscisaureus_>hahaha lol
15:07:32  <piscisaureus_>I don't think that would work in any meaningful way
15:07:43  <bnoordhuis>i don't think so either :)
15:07:43  * piscisaureus_dusts off his old watcom compiler
15:08:00  <bnoordhuis>i need to finish the cp/m port
15:08:08  <piscisaureus_>plan9, dude
15:08:21  <piscisaureus_>even google go has plan9 support
15:08:34  <bnoordhuis>heh, really?
15:08:35  <piscisaureus_>that's gotta put our conceptual integrity to the test
15:08:50  <bnoordhuis>i've got plan9 running in a vm actually
15:08:58  <piscisaureus_>well, I am not sure it actually works
15:09:07  <bnoordhuis>i'll concentrate all my efforts on the p9 port from now on
15:09:07  <piscisaureus_>but I saw plan9 code in the source tree
15:09:31  <bnoordhuis>oh, maybe rob stole some p9 libs
15:10:20  <mmalecki>bnoordhuis: hey
15:10:46  <mmalecki>bnoordhuis: so, how about that Cracow thing?
15:11:19  <bnoordhuis>mmalecki: hey maciej
15:11:22  <bnoordhuis>sorry, i can't
15:11:32  <mmalecki>bnoordhuis: no problem
15:11:40  <bnoordhuis>i would have liked to
15:11:56  <mmalecki>bnoordhuis: yeah, I mean, I totally understand
15:12:18  <bnoordhuis>next time, ask me two or three months in advance :)
15:12:54  <mmalecki>bnoordhuis: so I guess 2 weeks doesn't cut it, eh ;) ?
15:14:04  <bnoordhuis>mmalecki: yeah, too short notice
15:14:27  <CIA-112>libuv: Ben Noordhuis master * rcb9ca14 / src/unix/stream.c : unix: queue write reqs if stream is not connected - http://git.io/o8RIVA
15:14:27  <CIA-112>libuv: Ben Noordhuis master * r76fa163 / test/test-tcp-dont-connect-after-write.c : test: add a 'write before connect' test - http://git.io/c-9x0w
15:15:47  <bnoordhuis>piscisaureus_: ^ your turn now :)
15:16:28  <piscisaureus_>bnoordhuis: are they off on windows ?
15:16:45  <bnoordhuis>yes
15:16:51  <bnoordhuis>for now
15:16:52  <piscisaureus_>kewl
15:20:46  <ibc>hi, the write-after-connect issue is fixed (thanks a lot). I expected that maybe the fix could also solve another issue I've reported right now, but it does not: https://github.com/joyent/libuv/issues/445
15:21:02  <CIA-112>libuv: Ben Noordhuis master * red73adb / (test/test-list.h test/test-tcp-dont-connect-after-write.c): test: rename test tcp_dont_connect_after_write - http://git.io/3eBGPw
15:21:07  <bnoordhuis>ibc: yeah, i saw. i'll look into it
15:21:10  <ibc>this is more "shutdown-after-write-after-connect" :)
15:21:17  <ibc>thanks a lot
15:27:56  <ibc>hi, is handle->write_queue_size "public"? I mean, will it be forever?
15:28:43  <piscisaureus_>hmm
15:29:52  <piscisaureus_>int ares_expand_name(const unsigned char *encoded, const unsigned char *abuf,
15:29:52  <piscisaureus_> int alen, char **s, long *enclen)
15:30:05  <piscisaureus_>ffs, `long *enclen` ?
15:37:19  <CIA-112>libuv: Ben Noordhuis master * rd080704 / (4 files in 2 dirs): test: rename test tcp_dont_connect_after_write - http://git.io/WaUucA
15:37:34  * bnoordhuisforce-pushed
15:38:53  <piscisaureus_>What a stupid pattern
15:39:26  <piscisaureus_>int uv_expath(char* buffer, size_t size) {
15:39:26  <piscisaureus_> ...
15:39:26  <piscisaureus_> buffer[size] = '\0';
15:39:26  <piscisaureus_>}
15:39:36  <piscisaureus_>how defensive programming can kill you
15:42:51  <bnoordhuis>how so?
15:48:19  <piscisaureus_>well
15:48:28  <piscisaureus_>end the function with an out-of-bounds write
15:48:30  <piscisaureus_>not so nice heh
15:50:08  * travis-cijoined
15:50:08  <travis-ci>[travis-ci] joyent/libuv#378 (master - 76fa163 : Ben Noordhuis): The build is still failing.
15:50:08  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/a30e45f...76fa163
15:50:08  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1525860
15:50:08  * travis-cipart
15:50:30  * travis-cijoined
15:50:30  <travis-ci>[travis-ci] joyent/libuv#379 (master - ed73adb : Ben Noordhuis): The build is still failing.
15:50:30  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/76fa163...ed73adb
15:50:30  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1525963
15:50:30  * travis-cipart
15:59:30  * travis-cijoined
15:59:30  <travis-ci>[travis-ci] joyent/libuv#380 (master - d080704 : Ben Noordhuis): The build is still failing.
15:59:30  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/ed73adb...d080704
15:59:30  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1526129
15:59:30  * travis-cipart
16:03:10  <bnoordhuis>piscisaureus_: ah right, it should be buffer[size-1]
16:03:13  * ibcquit (Remote host closed the connection)
16:03:28  <bnoordhuis>i didn't quite get the defensive programming quip :)
16:03:32  * einarosquit (Ping timeout: 244 seconds)
16:03:57  <piscisaureus_>well, it's there just for defensive programming reasons
16:04:04  <piscisaureus_>because if all goes well the buffer would be null-terminated anyway
16:04:34  * saghulquit (Ping timeout: 244 seconds)
16:05:10  * saghuljoined
16:05:39  <CIA-112>libuv: Bert Belder master * r0dff0e7 / test/test-tcp-writealot.c : test: avoid compiler warnings due to size_t truncation (+7 more commits...) - http://git.io/h2I54w
16:08:01  * rendarquit
16:10:23  * einarosjoined
16:12:05  * dapjoined
16:18:50  * einarosquit (Ping timeout: 240 seconds)
16:19:43  * travis-cijoined
16:19:44  <travis-ci>[travis-ci] joyent/libuv#381 (master - 0dff0e7 : Bert Belder): The build is still failing.
16:19:44  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/d080704...0dff0e7
16:19:44  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1526473
16:19:44  * travis-cipart
16:19:46  * TheJHjoined
16:20:11  * einarosjoined
16:20:18  * japjjoined
16:21:49  * piscisaureus_quit (*.net *.split)
16:21:49  * elijah-mbpquit (*.net *.split)
16:21:49  * indutnyquit (*.net *.split)
16:21:49  * russell_hquit (*.net *.split)
16:22:51  * bnoordhuisquit (Ping timeout: 240 seconds)
16:23:17  * bnoordhuisjoined
16:26:51  * einarosquit (Ping timeout: 240 seconds)
16:28:29  * einaros_joined
16:30:07  * stephankjoined
16:31:54  * piscisaureus_joined
16:31:54  * elijah-mbpjoined
16:31:54  * indutnyjoined
16:31:54  * russell_hjoined
16:38:20  * hij1nx_joined
16:51:58  * TooTallNatejoined
16:52:16  <japj>piscisaureus_: heya, just a check (based on the discussion on github with domenic, do we want to use "Node.js" for 32 bit and "Node.js x64" (with or without () surrounding x64), it's a bit confusing of all the possible options but I would like to atleast make it consistent for Node.js
16:52:48  * TooTallNatequit (Client Quit)
16:53:10  * TooTallNatejoined
16:53:59  <piscisaureus_>japj: I don't really care.
16:54:17  <piscisaureus_>japj: If I were forced to choose at gunpoint, i'd say Node.js (x32) and Node.js (x64)
16:54:26  <piscisaureus_>er,
16:54:30  <piscisaureus_>x86 of course
16:54:53  <japj>yeah I used x32 somewhere too already ;)
16:56:26  * theColejoined
17:03:33  * AvianFlujoined
17:07:29  * avalanch_joined
17:11:31  <japj>piscisaureus_: was there an upstream v8 issue with the build paths that we should report? (I asked to add the 3.11 tags to the v8 github repository but they apparently usually only do that until after they have a corresponding branch, since before that the version isn't stable enough. I'm also wondering if we should be using 3.11 at all then?)
17:12:34  <piscisaureus_>japj: I don't know, unfortunately. If they say it's unstable then probably we shouldn't be using it
17:12:50  <piscisaureus_>japj: otoh, as long as we're still on 0.7.x it doesn't matter much
17:13:06  <piscisaureus_>japj: I will ask Erik Corry what the situation is tomorrow
17:13:14  <japj>https://groups.google.com/group/v8-users/browse_frm/thread/d857475a7095c45d
17:13:32  <piscisaureus_>ah, right
17:13:43  <piscisaureus_>maybe they have an ETA on 3.11
17:13:46  <piscisaureus_>lemme ask
17:14:06  <piscisaureus_>if they are not going to get it stable before end of this month then probably we should not use it
17:15:54  <japj>piscisaureus_: I'm wondering if we should just hardcode the registry path and not use any ${var.*} pieces, since then it will be explicitly set in stone, else it could 'accidently' change again when someone changes the casing/meaning of variables (like me ;)
17:16:14  <piscisaureus_>japj: yeah, that's okay too
17:16:30  <piscisaureus_>I though I would just doe it the Jeroen way
17:16:47  <japj>piscisaureus_: there is also a patch floating that adds the path + version of node.js to the registry I saw
17:16:56  <piscisaureus_>japj: what do you do the rest of the day btw? (just curious)
17:17:29  <piscisaureus_>japj: that would be fine, but since there could be multiple node's side by side we have to find a solution for that
17:18:11  <japj>piscisaureus_: I work at Oce in Venlo (copier/printer manufacturer, at the moment with a focus on test automation for the PRISMAsync print controller)
17:18:25  <piscisaureus_>ah
17:18:33  <piscisaureus_>well Async +1 :-p
17:18:43  <piscisaureus_>you use node for that
17:18:45  <piscisaureus_>?
17:18:51  <piscisaureus_>or is this just a side project?
17:18:59  <japj>piscisaureus_: I don't know if you actually side by side multiple nodes together (you can probably install 32/64 side by side)
17:19:15  <piscisaureus_>japj: that was the idea of separating upgrade paths, right?
17:20:30  <japj>piscisaureus_: partly side project, but I'm also trying to fit in some of it at work. But mainly on the infrastructure part at the moment (we use RabbitMQ, CouchDB/MongoDB), since there is a lot of async events occurring
17:21:20  * mmaleckiquit (Quit: leaving)
17:21:41  <piscisaureus_>yeah, I suppose you don't really need node to drive copiers
17:22:10  <japj>piscisaureus_: we basically have ~150 PC's testing the controller software whenever builds become available my team is working on both test cases for new features as managing those PC's and storing test results
17:22:50  <japj>piscisaureus_: well, I was thinking about a node.js LPR/LPD implementation. that would be a nice idea I think
17:23:06  <tjfontaine>*shiver8
17:23:09  * piscisaureus_googles LPR/LPD
17:23:25  <tjfontaine>printer server
17:23:40  <tjfontaine>japj: I hope you just mean ipp :)
17:24:09  <japj>piscisaureus_: but there is also system/job monitoring that is going on (SNMP and stuff), that would be interesting but I'm not involved in that atm. For the moment I'm mostly interested in my infrastructure, since it is expected to grow aswell
17:24:37  <piscisaureus_>how is oce doing anyway
17:25:15  <piscisaureus_>I mean, printing stuff is not the business you really want to be in right now, and I suppose printer manufacturers have the same problem
17:26:01  <piscisaureus_>Operating income decrease (€72.3 million) (2010)[1]
17:26:02  <piscisaureus_>Profit decrease (€167.0 million) (2010)[1]
17:26:09  <piscisaureus_>still quite profitable apparently
17:26:29  <japj>piscisaureus_: well, there is a lot of different printing stuff happening, we're currently figuring out how to integrate with Canon (since they bought us), but there is also "document management" things related to printing ofc
17:27:22  <japj>piscisaureus_: but some of the printing business is highly related to the 'creating buildings' industry
17:27:40  <piscisaureus_>yeah, I know
17:28:03  <japj>piscisaureus_: so there is a income relation to the 'economic crisis' ofc
17:28:05  <piscisaureus_>Actually, I was doing that before node www.aanenuitbesteden.nl)
17:28:47  * rendarjoined
17:28:59  * xaqjoined
17:29:33  <japj>piscisaureus_: anyway, even before I started working at Oce I've been busy & interested with OSS
17:31:04  <japj>piscisaureus_: I contributed some stuff to php3 (ouch), sharpdevelop, mono, audacity, bochs (/vgabios) and a number of other projects including node ;)
17:32:08  <japj>piscisaureus_: one of the coolest stuff was the OpenUT port (Unreal Tournament on Linux), but that was ages ago
17:32:21  <piscisaureus_>haha
17:32:27  * brsonjoined
17:32:33  <piscisaureus_>but they pulled you back to windows
17:32:53  <piscisaureus_>I never did that, actually
17:33:00  <piscisaureus_>Ah I did some Drupal patches
17:33:08  <piscisaureus_>that never got accepted I think
17:33:44  <japj>well, windows is where the PRISMAsync development is taking place, but I worked on a print controller on Linux aswell (was actually cool to get asked for that because it was 'known' that I had Linux experience)
17:34:18  <japj>I don't really mind the platform, eventually everything will be JavaScript anyway ;)
17:36:43  <japj>the only thing I miss here in Venlo is a good community where you can actively talk with other developers. I know there is a javascript/nodejs group in Amsterdam but that's slightly out of range and there is something in Cologne (Germany), but that conflicts with my BigBand rehearsal unfortunately
17:37:52  <piscisaureus_>yeah, well, it could be more interesting here (Amsterdam)
17:38:15  <piscisaureus_>amsterdamjs is very infrequent. Some interesting people come but the talks are ususally not that interesting
17:39:07  <piscisaureus_>Last thursday I went to a node.js meetup for the first time. All the talks were actually product pitches more or less. Next time I'd like to see some more interesting technical stuff.
17:40:05  <japj>piscisaureus_: I love that most javascript/nodejs conferences provide online videos, that really helps to get some insights in stuff
17:40:14  <piscisaureus_>yes
17:40:21  <japj>but it would be nice to have something close by aswell ;)
17:40:38  <piscisaureus_>Is there nothing going on in Eindhoven
17:40:39  <japj>atleast we have irc which helps a lot too
17:40:44  <piscisaureus_>I would sort of expect that
17:42:04  <japj>Delft seems to have something
17:42:55  <piscisaureus_>hmm, well I lived there for quite a while, never noticed anything :-)
17:43:08  <piscisaureus_>And Delft is a village, I would have known
17:43:16  <piscisaureus_>maybe it's really new
17:44:50  * mikealquit (Quit: Leaving.)
17:45:26  <japj>so how did you end up in node, coming from aanenuitbesteden?
17:45:56  <piscisaureus_>wanted to use node for aanenuitbesteden
17:46:11  <piscisaureus_>but we were all on windows
17:46:16  <piscisaureus_>so i started ported the thing
17:46:23  <piscisaureus_>and then pquerna hired me
17:46:36  <piscisaureus_>which was good because I was fed up with aanenuitbesteden anyway
17:46:43  <japj>ah, that's cool
17:47:27  <japj>en then you eventually ended up at cloud9 ;)
17:47:38  * mjr_joined
17:48:06  <piscisaureus_>yep
17:48:50  <piscisaureus_>had no problems with rackspace or anything
17:49:14  <piscisaureus_>but it's rather lonely, coding 9 to 5 in your bedroom
17:50:13  <japj>true indeed
17:50:22  <piscisaureus_>for me at least. Other people seem have to problems with it <-- bnoordhuis, for example
17:51:04  * mmaleckijoined
17:52:03  <japj>well, I think being in a room with other people and being able to brainstorm problems and stuff can help a lot, but at some point it is just work and it doesn't really matter where you do it
17:52:38  <japj>but it differs from person how one handles it
17:53:11  <japj>if you look at opensource development, a lot is being done online by people far away
17:53:26  <japj>but it is still nice to be able to meetup once a while
17:53:57  <japj>anyway, slightly offtopic... did you have a look at the node command prompt update? ;)
17:56:09  * mmalecki_joined
17:56:51  <piscisaureus_>japj: well... yeah, better :-)
17:57:00  <piscisaureus_>japj: so why is the copy step now needed?
17:57:08  <piscisaureus_>look at how npmrc is handled
17:57:09  <piscisaureus_><File Id="filenpmrc" KeyPath="yes" Source="$(var.repoDir)\tools\msvs\npm\npmrc" />
17:57:31  <japj>ah
17:57:36  * piscisaureus_tries very hard to keep the build system simple
17:57:51  <japj>I used the license.rtf as example
17:57:54  <piscisaureus_>I would also like to get rid of the license2rtf step
17:57:59  <piscisaureus_>(another day)
17:58:07  <japj>lol
17:58:32  <piscisaureus_>japj: yeah the thing with license.rtf is that it is actually generated.
17:58:56  * mmaleckiquit (Ping timeout: 248 seconds)
17:59:37  * mmalecki_changed nick to mmalecki
18:00:44  <japj>piscisaureus_: I don't understand exactly what the npmrc is trying to do and why the npm folder is added to the environment
18:01:35  <piscisaureus_>japj: is it?
18:02:01  * isaacsfeels a disturbance in the force.
18:02:02  <piscisaureus_>japj: npmrc is just a default config file for npm/windows
18:02:09  <isaacs>npmrc is a config file for npm
18:02:21  <isaacs>but unix defaults to what we want without any extra configuration.
18:02:31  <isaacs>our windows install is a little peculiar (from a unix pov)
18:04:28  <japj>isaacs: that much I already understood :)
18:04:55  <isaacs>ok, i'll duck out now :)(
18:05:00  * mikealjoined
18:05:03  <isaacs>clearly this is not actually an npm discussin
18:05:19  <japj>it could become one at some point
18:05:54  <japj>but I'm going to watch some of the rebels 2012 videos, so it would be without me
18:06:19  <japj>piscisaureus_: I removed the copy step
18:07:28  <japj>piscisaureus_: the reason that I added the argument parsing was that maybe we also want to show Prod/Debug in the nodejsvars (or some other thing?) and it needs to be passed through the commandline to the shortcut
18:11:06  * hij1nx_quit (Quit: hij1nx_)
18:11:09  <CIA-112>node: isaacs master * r04e484c / deps/v8/build/common.gypi : v8: Don't use 'echo -n' in configure script - http://git.io/QziRNA
18:12:49  <piscisaureus_>japj: I don't see your new commit
18:14:25  <japj>piscisaureus_: https://github.com/joyent/node/pull/3365#commits-pushed-b1bc777
18:15:36  <japj>isaacs: btw, any specific reason we are using v8 3.11.x in master?
18:15:53  <isaacs>japj: what would you prefer?
18:16:52  <japj>I was just wondering in relation to a question I asked on the v8 mailinglist
18:17:54  <isaacs>japj: link? (it's buried in my gmail folder under a bazillion codesite-noreplys)
18:18:22  <japj>isaacs: https://groups.google.com/group/v8-users/browse_frm/thread/d857475a7095c45d
18:18:49  <japj>isaacs: I also wondered due to deps/v8 commit you just did
18:18:59  <isaacs>japj: ah, is ee
18:19:14  <isaacs>japj: yeah, if 3.11 doesn't have a branch by the time we release 0.8, i might revert to 3.10
18:19:17  <piscisaureus_>D:\node4\npm.wxs(380): warning LGHT1076: ICE60: The file fil05C099A68D7D547CA0E5145EDD721658 is not a Font, and its ver
18:19:17  <piscisaureus_>sion is not a companion file reference. It should have a language specified in the Language column. [D:\node4\tools\msv
18:19:17  <piscisaureus_>s\msi\nodemsi.wixproj]
18:19:24  <piscisaureus_>I wonder what that means
18:19:27  <isaacs>japj: but i usually pull in from a tag on http://v8.googlecode.com/svn/tags/
18:19:46  <isaacs>piscisaureus_: that's odd.
18:19:54  <japj>piscisaureus_: maybe it is not a real font (in the windows sence)
18:19:56  <piscisaureus_>It always happens for me
18:20:00  <japj>me too
18:20:12  <isaacs>piscisaureus_: i mean, it's odd that you don't know what it means ;)
18:20:20  <piscisaureus_>rel:-p
18:20:33  <isaacs>piscisaureus_: i assumed it was windowsese for "I <3 you and hope you're having a lovely day"
18:20:34  <japj>and I also had the LGHT0217 failure that I tried to fix already
18:20:47  <japj>piscisaureus_: are you building with administrative permissions?
18:20:54  <piscisaureus_>japj: yep
18:21:09  <isaacs>piscisaureus_: is it choking on the font files in deps/npm/html maybe?
18:21:10  <japj>I'm not, that could it explain it
18:21:24  <piscisaureus_>japj: the good news is: it seems to work
18:21:56  <japj>html\api\GubbleBum-Blocky.ttf
18:22:18  <japj>html\doc\GubbleBum-Blocky.ttf
18:22:39  <japj>euhm.. why do we have it twice and why do we have it?
18:24:41  <piscisaureus_>good question
18:24:44  <piscisaureus_>seems poinless
18:24:56  <japj>and do we have permission to distribute?
18:26:37  <piscisaureus_>It's in npm
18:26:40  <piscisaureus_>isaacs should know
18:26:59  <japj>Note of the author
18:26:59  <japj>The Gubblebum font family is Copyright (c) by and a Trademark (tm) of Tjarda Koster. DO NOT DISTRIBUTE WITHOUT PERMISSION.
18:26:59  <japj>For more fonts go to http://jelloween.deviantart.com and http://www.myfonts.com/foundry/jelloween!
18:27:13  <japj>apparently she lives in The Netherlands
18:27:50  * kohaijoined
18:29:02  <isaacs>piscisaureus_: it's in there twice because the api doc webpage is a copy of the cli docs webpages
18:29:34  <isaacs>japj: where do you see the "do not distribute"? it's already distributed by pretty much every font website everywhere.
18:30:06  * xaqquit (Remote host closed the connection)
18:30:08  <isaacs>but still, i'd better email Tjarda and discuss it.
18:30:25  <japj>http://www.dafont.com/gubblebum.font
18:32:31  <isaacs>hm. no such notice on ffonts.net, and they have a link to the webfont there
18:32:39  <isaacs>ah well. ip and trademarks. fun.
18:33:23  * hij1nx_joined
18:33:38  * theColequit (Quit: theCole)
18:34:28  * iraquit (Quit: Textual IRC Client: http://www.textualapp.com/)
18:34:30  <isaacs>wtf, no email address anywhere.
18:36:13  <isaacs>oh, actually, no, i got it from MyFonts
18:36:13  <isaacs>http://www.myfonts.com/fonts/jelloween/gubblebum/
18:37:20  <japj>ah, then it seems to be ok, as far as I can tell she's made lots of free fonts
18:37:56  <japj>strange that one page has the distribution limit then
18:46:24  <isaacs>japj: i couldn't find the receipt from when i donwloaded it, but i just got it again with "unlimited users" and 16M concurrent users for print.
18:46:30  <isaacs>this webfonts license is insane, though.
18:46:47  <isaacs>basically, it says that you can't put the file online, except via the specific instructions provided, which tell you to put it online.
18:46:57  <isaacs>it also says that you can't distribute the font to others' computers.
18:47:03  <isaacs>but like... that's kinda how the web works... so....
18:47:05  <isaacs>i'm confused.
18:48:37  <japj>sorry for that
18:48:39  * bitprobequit (Quit: Computer has gone to sleep.)
18:49:52  <japj>let's see felix'es Web Rebels talk on nodejs in production
18:50:44  * TheJHquit (Read error: Operation timed out)
18:52:54  <bnoordhuis>every time i see a zero read i cry a little...
18:53:27  <japj>as long as you dont die a little
18:53:52  <bnoordhuis>if only ioctl(FIONREAD) weren't so expensive
18:54:55  <bnoordhuis>that wouldn't work in edge-triggered mode, though
18:57:06  * mmalecki_joined
19:00:13  * mmaleckiquit (Ping timeout: 265 seconds)
19:00:37  * mmalecki_changed nick to mmalecki
19:01:21  * ericktjoined
19:01:43  <piscisaureus_>bnoordhuis: yeah, I don't think EPOLLET is going to work for udp :(
19:02:58  <piscisaureus_>japj: I am trying to make it start the Node command prompt in the home dir
19:03:06  <piscisaureus_>apparently it's not possible :-(
19:03:15  <japj>piscisaureus_: what homedir?
19:03:20  <piscisaureus_>the user's home dir
19:03:33  <piscisaureus_>instead of c:\program files (x86)\node.js
19:03:35  <japj>USERPROFILE?
19:03:44  <piscisaureus_>japj: yeah I know there is an env var for it
19:04:02  <piscisaureus_>but I want it to be the user's home dir, and not the home dir of the guy that built the installer :-)
19:04:22  <japj>just edit the nodejsvars.bat and put it in there
19:04:28  <piscisaureus_>I can just create a shortcut that sets the working dir to %HOMEDRIVE%%HOMEPATH%
19:04:42  <piscisaureus_>but I cannot put that into wix
19:05:00  <japj>but I don't know if there is a consistent way homedir env is available on all windows versions
19:05:04  <piscisaureus_>%HOMEDRIVE%%HOMEPATH%
19:05:12  <piscisaureus_>like that, yeah, pretty consistent
19:05:44  <japj>piscisaureus_: probably also do a cd %HOMEDRIVE first, in case Windows is not installed on the same drive as HOMEDRIVE
19:05:56  <piscisaureus_>japj: cd /d
19:06:05  <piscisaureus_>japj: they joy of modern os'es :-)
19:06:12  <piscisaureus_>:-p
19:06:16  <japj>is that new?
19:06:26  <piscisaureus_>depends on what you count as new
19:06:32  <piscisaureus_>new in windows 2000 I think
19:06:52  <japj>ok, that's new enough for me ;)
19:07:54  <japj>piscisaureus_: btw, why don't you just add "cd /d %HOMEDRIVE%%HOMEPATH%" to the end of nodejsvars.bat?
19:08:06  <japj>that should work for whoever executes the shortcut
19:08:11  <japj>doesnt it?
19:08:12  <piscisaureus_>japj: yeah, I was going to :-)
19:09:55  <japj>btw, did you read the comments on the MS guideline yesterday?
19:10:06  <piscisaureus_>eh, no? wut?
19:10:54  <piscisaureus_>I suppose MS didn't read the Bert guideline either
19:10:56  <piscisaureus_>so we're even
19:11:39  <japj>https://github.com/joyent/node/commit/943448772e988eba86173e9d53746137070420f4#tools-msvs-msi-product-wxs-P61
19:12:16  <japj>not sure what to do with it, since I think it is not entirely clear how to map it correctly to our specific usecase
19:13:20  <piscisaureus_>japj: unfortunately that link doesn't really point to anything meaningful for me, and I don't know what I should be looking at either :S
19:14:04  <japj>piscisaureus_: https://github.com/joyent/node/commit/943448772e988eba86173e9d53746137070420f4 and then look for domenic
19:14:33  <japj>or did you mean the UX link?
19:14:47  <piscisaureus_>https://github.com/joyent/node/commit/943448772e988eba86173e9d53746137070420f4#tools-msvs-msi-product-wxs-P61 <-- that link
19:15:21  <japj>it's a guideline on the startmenu
19:16:21  <japj>it says: don't put shortcuts to the following items on the startmenu: Program uninstallers. Users access uninstallers through the Programs control panel item., Help files. Users access Help topics directly from your program., Web sites. Users access Web sites through appropriate links in your program, or Help for technical support sites. etc
19:16:48  <piscisaureus_>bla
19:16:57  <piscisaureus_>maybe, for the uninstaller
19:17:02  <japj>piscisaureus_: don't you have access to MSDN? or is the content meaningless to you?
19:17:30  <piscisaureus_>japj: well, I clicked the link but there was nothing about guidelines on the page
19:17:35  <piscisaureus_>and now github seems down
19:17:43  * hij1nx_quit (Ping timeout: 256 seconds)
19:17:44  <japj>that's impossible
19:18:01  <japj>how can github be down?
19:18:10  <piscisaureus_>build on rails
19:18:16  <japj>ah, they should switch then
19:18:20  <piscisaureus_>japj: anyway, I can see the point for the uninstaller link
19:18:34  <piscisaureus_>japj: but we don't have help in our app nor links to the website
19:18:55  <japj>that's what I wrote in the comments ;)
19:19:27  <piscisaureus_>Anyway, MSVS has a doc link too :-;
19:19:48  <piscisaureus_>an yeah, the nodejs.org link is not so useful
19:26:02  * hij1nx_joined
19:33:40  <CIA-112>node: Jeroen Janssen reviewme * r3ea4957 / (tools/msvs/msi/product.wxs vcbuild.bat): remove nodejsvars copy step - http://git.io/p8uyuA
19:33:40  <CIA-112>node: Bert Belder reviewme * r224eb93 / (tools/msvs/msi/product.wxs tools/msvs/nodejsvars.bat): windows/msi: Minor installer tweaks - http://git.io/FaU3AA
19:33:41  <CIA-112>node: Jeroen Janssen reviewme * rcb24ce5 / (3 files in 3 dirs): windows/msi: add node.js prompt to startmenu - http://git.io/9aql7g
19:34:16  <piscisaureus_>japj: what about https://github.com/joyent/node/commit/224eb93a6bfa8e4e782c13e895e1b02ec1e20ba9?w=1 ?
19:38:49  <bnoordhuis>http://www.quake3world.com/forum/viewtopic.php?f=1&t=47672 <- makes me proud to be dutch *snif*
19:38:52  <japj>piscisaureus_: seems ok to me
19:39:03  <bnoordhuis>but seriously, that's pretty twisted
19:39:31  <piscisaureus_>raaaaaaaaaaaight
19:40:00  <japj>nice movie
19:40:09  <japj>my cat didn't like it one bit
19:40:58  <bnoordhuis>was he jealous?
19:41:09  <bnoordhuis>he can be a feline flying device too, you know
19:41:12  <CIA-112>node: Bert Belder master * r4f6882e / (tools/msvs/msi/product.wxs tools/msvs/nodejsvars.bat): windows/msi: minor installer tweaks - http://git.io/E2X2dg
19:41:13  <CIA-112>node: Jeroen Janssen master * r0143240 / (tools/msvs/msi/product.wxs tools/msvs/nodejsvars.bat): windows/msi: add node.js prompt to startmenu - http://git.io/j91c0g
19:41:55  <japj>he will be 19 this year, I'd rather him not fly at all for a while
19:43:21  <japj>piscisaureus_: what are the remaining installer things we want to add so I can have a look at it later this week?
19:43:36  <piscisaureus_>japj: I think it is okay as it is, except for
19:43:49  <piscisaureus_>japj: a scope/dir picker (!!!(
19:45:06  <mmalecki>that cat flying device actually made me spill my coke today
19:46:03  <mmalecki>which was pretty weird because I was in KFC
19:46:03  <piscisaureus_>japj: otherwise the msi is good as it is imho. I am going going to take patches for a while except bug fixes. And a scope/dir picker is also very welcome.
19:46:08  <mmalecki>and people were giving me weird looks
19:47:22  <AvianFlu>mmalecki, don't people usually give you weird looks?
19:48:45  <mmalecki>AvianFlu: well, uhm, yeah
19:48:55  <mmalecki>because usually I'm coding and talking to myself
19:48:56  <mmalecki>sooo
19:57:12  * mikealquit (Quit: Leaving.)
19:58:59  <bnoordhuis>piscisaureus_: if you call uv_run / uv_run_once and there are only handles about to be closed, should prepare/check/idle watchers run?
19:59:23  * theColejoined
19:59:34  * hij1nx__joined
20:00:31  * hij1nx__changed nick to hij1nx
20:00:31  <piscisaureus_>bnoordhuis: hmmm.
20:00:34  <piscisaureus_>bnoordhuis: I do it
20:00:47  * hij1nx_quit (Ping timeout: 256 seconds)
20:00:54  <piscisaureus_>bnoordhuis: I think it doesn't really matter though
20:01:25  <bnoordhuis>piscisaureus_: maybe not but being consistent on windows/unix won't hurt
20:01:42  <piscisaureus_>bnoordhuis: on windows they are always run
20:01:57  <piscisaureus_>bnoordhuis: we're sort of abusing prepare/check in node, but they're sort of meant to embed another event loop
20:02:58  <piscisaureus_>bnoordhuis: which basically means that (a) there's not much point to call prepare/stat when we're sure that the poll function won't block, and (b) that the user also needs an uv_async_t to wake up the main loop from the embedded loop
20:03:17  <piscisaureus_>so whenever your scenario is encountered, someone is abusing prepare/check :-)
20:07:30  * hij1nxquit (Remote host closed the connection)
20:12:31  <piscisaureus_>I am heading out
20:12:57  <piscisaureus_>current status: fixing compiler warnings in libuv when compiling for x64
20:15:35  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
20:18:12  * bitprobejoined
20:26:12  <isaacs>I think we need a better download page.
20:26:32  <isaacs>the #download popup is not enough, and the /dist/ folder is way too much
20:27:44  <tjfontaine>I agree, but I don't have a useful suggestion
20:41:29  * paddybyersquit (Quit: paddybyers)
20:42:37  * avalanch_changed nick to avalanche123|w
20:43:54  * benviequit
21:01:16  * mikealjoined
21:01:55  * dshaw_joined
21:08:56  * theColequit (Quit: theCole)
21:11:45  * mralephjoined
21:14:03  * paddybyersjoined
21:18:15  * irajoined
21:24:43  * erickt_joined
21:27:21  * ericktquit (Ping timeout: 240 seconds)
21:27:21  * erickt_changed nick to erickt
21:41:03  * c4miloquit (Remote host closed the connection)
21:41:07  <CIA-112>libuv: Ben Noordhuis master * r7d2ea31 / (4 files in 3 dirs): unix: fix event loop stall - http://git.io/UZvI3A
21:48:44  * japjquit (Remote host closed the connection)
21:51:49  * paddybyersquit (Quit: paddybyers)
21:59:23  * travis-cijoined
21:59:24  <travis-ci>[travis-ci] joyent/libuv#382 (master - 7d2ea31 : Ben Noordhuis): The build is still failing.
21:59:24  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/0dff0e7...7d2ea31
21:59:24  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1529251
21:59:24  * travis-cipart
21:59:46  * piscisaureus_joined
22:24:00  <bnoordhuis>https://github.com/joyent/node/issues/3371 <- worrisome, i can reproduce it
22:27:47  * c4milojoined
22:30:20  * mikealquit (Quit: Leaving.)
22:37:02  * mikealjoined
22:37:56  * paddybyersjoined
22:39:57  * loladirojoined
22:41:08  * mmalecki_joined
22:41:10  * mmaleckiquit (Ping timeout: 245 seconds)
22:41:24  * mmalecki_changed nick to mmalecki
22:42:17  * xaqjoined
22:44:47  * mmalecki_joined
22:44:59  * mmaleckiquit (Client Quit)
22:47:46  * mmalecki_quit (Client Quit)
22:48:01  * mmaleckijoined
22:48:11  * paddybyersquit (Quit: paddybyers)
22:50:59  * brsonquit (Ping timeout: 252 seconds)
22:51:55  <isaacs>TooTallNate: minor pull req for you on node-gyp
22:52:06  <isaacs>TooTallNate: i can work around for now, but it's complaining in npm
22:52:10  <TooTallNate>isaacs: yup, merging right now :)
22:52:17  <TooTallNate>and i can do a quick version bump
22:52:18  <isaacs>kewl
22:52:21  <isaacs>awesomesauce
22:53:56  <TooTallNate>isaacs: ok, v0.4.5 should be good!
22:54:04  <isaacs>sweet
22:55:41  * xaqquit (Remote host closed the connection)
22:56:55  * xaqjoined
22:59:47  <CIA-112>libuv: Bert Belder master * rc9f83e5 / src/win/util.c : windows: refactor uv_cwd implementation - http://git.io/2UbX4w
22:59:48  <CIA-112>libuv: Bert Belder master * r1b75d36 / src/win/util.c : windows: refactor uv_exepath implementation - http://git.io/jUjefw
22:59:48  <CIA-112>libuv: Bert Belder master * r829eaf3 / src/win/req-inl.h : windows: cast OVERLAPPED.Internal to NTSTATUS to avoid warnings - http://git.io/8W8GAw
22:59:48  <CIA-112>libuv: Bert Belder master * rbe9d1ce / src/win/process.c : windows: cast STARTUP_INFO.cbReserved2 to WORD to avoid warnings - http://git.io/xoSAxQ
23:01:16  <piscisaureus_>ehm
23:01:28  * erickt_joined
23:01:29  <piscisaureus_>This seems to happen on Linux versions of node (tried 0.6.18 and 0.7.9), but works
23:01:29  <piscisaureus_>fine on Windows versions (tried 0.4.11 and 0.6.18).
23:01:39  <piscisaureus_>0.4.11, I don't recall that working on windows
23:01:58  * travis-cijoined
23:01:59  <travis-ci>[travis-ci] joyent/libuv#383 (master - be9d1ce : Bert Belder): The build is still failing.
23:01:59  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/7d2ea31...be9d1ce
23:01:59  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1529965
23:01:59  * travis-cipart
23:02:07  <bnoordhuis>piscisaureus_: cygwin maybe
23:02:19  <piscisaureus_>I think even cywin was broken then
23:02:30  <piscisaureus_>not sure
23:03:06  <bnoordhuis>i'm not sure what's causing it in 0.6.18
23:03:29  <bnoordhuis>but in master something seems to keep a ref to the buffers
23:03:57  <bnoordhuis>i'm pretty convinced by now it's not the slab allocator, so it's probably some js ref leak
23:04:10  <piscisaureus_>something in http, perhaps :p
23:04:20  * rendarquit
23:04:35  <bnoordhuis>that's the one upside, the guy's test case uses only the net module
23:04:37  * ericktquit (Ping timeout: 244 seconds)
23:04:38  * erickt_changed nick to erickt
23:04:40  * mmaleckiquit (Ping timeout: 252 seconds)
23:05:25  <piscisaureus_>are callbacks being leaked somehow?
23:05:55  <piscisaureus_>like, write callbacks
23:06:33  <piscisaureus_>bnoordhuis: can you detect an individual buffer being leaked? If that's the case prolly you can just bisect it
23:07:04  <bnoordhuis>piscisaureus_: i don't think so... i can see the buffers getting created but that's about it
23:07:26  <piscisaureus_>bnoordhuis: well if they're rounded up then the weak callback should be called
23:07:31  * mikealquit (Quit: Leaving.)
23:10:23  * xaqquit (Remote host closed the connection)
23:16:38  * mikealjoined
23:17:18  * brsonjoined
23:17:56  <bnoordhuis>piscisaureus_: interesting... i see buffers being freed up till a certain point, then nothing, then lots of buffers being freed once i kill the client
23:18:17  <bnoordhuis>this is on the server btw
23:18:29  <piscisaureus_>hmm
23:18:50  <piscisaureus_>maybe there is starvation or something
23:19:04  <piscisaureus_>are you using an idle watcher to dispatch callbacks ?
23:19:30  <bnoordhuis>https://gist.github.com/ba9393403b7481390f57 <- here is a patch if you want to try it yourself
23:20:02  <bnoordhuis>piscisaureus_: i don't think this is a unix-specific problem
23:21:03  <piscisaureus_>bnoordhuis: patch is for 0.6 or master ?
23:21:18  <bnoordhuis>piscisaureus_: master
23:22:29  * bitprobequit (Quit: Computer has gone to sleep.)
23:23:23  <bnoordhuis>piscisaureus_: https://gist.github.com/ba9393403b7481390f57 <- updated, forgot to include v8_typed_array.cc
23:24:26  <bnoordhuis>piscisaureus_: https://gist.github.com/6920fe78d0acaa0d01fc <- patch to disable the slab allocator
23:25:04  <piscisaureus_>bnoordhuis: I am going to try but I am checking out now, too tired
23:25:34  <piscisaureus_>bnoordhuis: I also have a strong suspicion that v8 could be to blame
23:26:14  * mralephquit (Quit: Leaving.)
23:26:26  <bnoordhuis>piscisaureus_: how so?
23:26:47  <piscisaureus_>bnoordhuis: well 3.11 doesn't seem that stable :-)
23:26:47  <bnoordhuis>well... now that you mention it, the new gc does seem quirky sometimes
23:27:12  <piscisaureus_>bnoordhuis: so it would be worth it to try with another v8 version
23:27:22  <piscisaureus_>bnoordhuis: or can you also reproduce with 0.6?
23:27:29  <bnoordhuis>haven't tried v0.6 yet
23:28:01  <piscisaureus_>the github issue seems to mention it but I would like to think that if there is a serious leak in there, mjr_ would have known :-)
23:28:50  <bnoordhuis>0.6 is leaking brutally too
23:29:11  <bnoordhuis>way faster than master even
23:29:20  * xaqjoined
23:29:33  <mjr_>mmm, leaks
23:30:11  <piscisaureus_>bnoordhuis: ok, but I see no mention of pause/resume in the code
23:30:31  <bnoordhuis>piscisaureus_: what's pause/resume got to do with it?
23:31:04  <piscisaureus_>bnoordhuis: unless it plays ping pong, you're gonna have leaks because writes are buffered
23:31:40  * dshaw_quit (Quit: Leaving.)
23:32:09  <bnoordhuis>piscisaureus_: still not following... the write reqs get freed
23:38:18  <bnoordhuis>belay that... some get freed, lots of them don't and never get their write cb called
23:39:11  <piscisaureus_>bnoordhuis: wird...
23:39:24  <piscisaureus_>bnoordhuis: on windows/0.6.18 no sign of leaks whatsoever
23:40:15  <piscisaureus_>bnoordhuis: the client is steady at ~30mb working set, the server fluctuates between 30 and 50 or so
23:40:48  <piscisaureus_>actually, client also fluctuates, between 18 and 30 mb
23:41:22  <bnoordhuis>yeah, i know what's causing it
23:41:28  <bnoordhuis>something is starving the event loop
23:41:37  <piscisaureus_>bnoordhuis: ah
23:41:41  * ericktquit (Ping timeout: 245 seconds)
23:41:46  <piscisaureus_>bnoordhuis: bnoordhuis: possibly a fast-completing write :-)
23:42:17  <piscisaureus_>bnoordhuis: the server does a lot of "computation"
23:42:40  * ericktjoined
23:43:01  <piscisaureus_>so when it's done likely the write buffer will be partially flushes
23:43:04  <piscisaureus_>*flushed
23:43:52  <piscisaureus_>bnoordhuis: https://github.com/joyent/libuv/blob/master/src/win/req-inl.h#L143-145
23:44:02  <piscisaureus_>^-- solucion
23:44:20  <loladiro>piscisaureus_: I have been thinking a little more about creating pipes between different processes with uv_spawn and I've come to the conclusion that wrapping it in uv_pipe_t is probably not the right way to go. I'm now thinking about a thin wrapper that basically just wraps the two raw file fds and is used with an extra flag to uv_spawn. Thoughts?
23:45:28  <piscisaureus_>loladiro: so why do you need an extra flag, then?
23:45:37  <piscisaureus_>we have UV_INHERIT_FD now right
23:45:48  <piscisaureus_>we could add UV_INHERIT_HANDLE too
23:46:40  <bnoordhuis>piscisaureus_: it's kind of odd... i see the server hanging indefinitely in epoll_wait while the timeout is < 3 sec
23:46:40  <loladiro>Yeah, it's gonna be pretty much like that, except for libuv creating the fd on demand and automatically choosing the input/output handle, so that the user doesn't have to deal with that
23:46:40  <piscisaureus_>loladiro: althought there is no uv api for it, I think it's quite easy to get what you want even without libuv's help. The api you're looking for is called pipe(2) on unix and CreatePipe on windows :-)
23:47:44  <loladiro>piscisaureus_: I know. I want to incorporate in into uv_spawn though, as I am relucatant to add extra plaform code around it. If you don't think that belongs in libuv, I guess I could make it work with UV_INHERIT_FD
23:48:07  <piscisaureus_>loladiro: well, I'd be interested to see an API proposal :-)
23:48:19  <loladiro>ok
23:48:44  <piscisaureus_>I am really going to bed now... bnoordhuis has been keeping me awake with his leaks :-p
23:48:48  <piscisaureus_>but I am dying
23:49:10  <piscisaureus_>so goobye. bnoordhuis: if you find anything, drop me an email. Otherwise I will go leak hunting tomorrow morning.
23:49:19  <bnoordhuis>piscisaureus_: i will. sleep tight
23:49:38  <piscisaureus_>loladiro: sorry, I will catch you later. My brain doesnt work any more.
23:49:43  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
23:59:15  * xaqquit (Remote host closed the connection)