00:25:56  * AvianFluquit (Remote host closed the connection)
00:51:01  * joshthecoderjoined
01:09:45  * piscisaureusquit (Quit: ~ Trillian Astra - www.trillian.im ~)
01:22:42  * bnoordhuisjoined
01:24:58  * piscisaureus_joined
01:25:14  <piscisaureus_>sblom: http://blogs.msdn.com/b/interoperability/archive/2012/12/03/ms-open-tech-contributes-support-for-windows-etw-and-perf-counters-to-node-js.aspx <-- cool
01:25:27  * c4miloquit (Read error: Connection reset by peer)
01:26:26  * piscisaureus_quit (Client Quit)
01:26:40  * c4milojoined
01:31:24  * kazuponjoined
01:43:33  * piscisaureus_joined
01:44:11  <sblom>piscisaureus_: I should've been the first to send you a link to that. >_< But, yeah, I'm really glad that's finally out.
01:46:34  <piscisaureus_>sblom: haha, good :-)
01:46:40  <piscisaureus_>ok I was going to be away
01:47:11  <piscisaureus_>fate doesn't seem me and bnoordhuis to be here at the same time
01:47:26  <piscisaureus_>therefore, I have to go again
01:47:30  * piscisaureus_quit (Client Quit)
01:59:45  * dapquit (Quit: Leaving.)
02:07:55  * AvianFlujoined
02:26:27  * abraxasjoined
02:35:39  <isaacs>ok, a lot of http tests passing.
02:35:42  <isaacs>many failing
02:35:47  <isaacs>but that's fine
02:36:33  <isaacs>prtty much the whole client is busted...
02:38:03  * stagasquit (Ping timeout: 245 seconds)
02:53:08  * TooTallNatequit (Quit: Computer has gone to sleep.)
03:18:46  <isaacs>[31:25|% 100|+ 422|- 56]: Done
03:22:43  * mmaleckichanged nick to mmalecki[zzz]
03:26:53  * jmar777quit (Remote host closed the connection)
03:54:00  * jmar777joined
03:55:46  * jmar777quit (Remote host closed the connection)
03:59:19  * brsonquit (Quit: leaving)
04:14:19  * c4miloquit (Remote host closed the connection)
04:16:14  * c4milojoined
04:23:22  * TooTallNatejoined
04:53:59  * TooTallNatequit (Quit: ["Textual IRC Client: www.textualapp.com"])
05:02:51  * kazupon_joined
05:05:39  * kazuponquit (Ping timeout: 255 seconds)
05:19:03  * sblomquit (Ping timeout: 256 seconds)
05:20:09  * mikealquit (Quit: Leaving.)
05:27:44  * mikealjoined
05:42:38  * tomshredsjoined
06:20:34  * benoitcquit (Excess Flood)
06:24:01  * benoitcjoined
06:25:49  * c4miloquit (Remote host closed the connection)
06:29:40  <indutny>bnoordhuis: morning
06:29:45  <bnoordhuis>indutny: hola
06:29:46  <indutny>bnoordhuis: commented https://github.com/joyent/node/pull/4357
06:30:56  <indutny>and
06:30:57  <indutny>gtg
06:31:03  <indutny>will be back in 30 minutes
06:44:35  * indutny_a_bjoined
07:00:41  * mjr_quit (Quit: mjr_)
07:04:12  * joshthecoderquit (Quit: Leaving...)
07:07:46  <bnoordhuis>indutny: so fedor, when are you going to fix those debugger tests? :)
07:07:50  <indutny>haha
07:07:53  <indutny>well
07:08:00  <indutny>I never can get to it
07:08:05  <indutny>it's damn too hard
07:12:37  <MI6>joyent/node: Ben Noordhuis master * 1f76a2e : fs: add long stacktrace debugging facility Enable long stacktraces if NO (+1 more commits) - http://git.io/nEhLyA
07:16:13  <indutny>oha
07:16:51  <indutny>has this stuff been reviewed?
07:17:02  <indutny>ah
07:17:04  <indutny>yes, indeed
07:17:12  <indutny>bnoordhuis: so lets talk about crypto refactor thing
07:17:24  <indutny>bnoordhuis: I really would like to pull it in master and have as a part of 0.10
07:17:41  <bnoordhuis>indutny: yes, so i gather. :) i still don't really see the point
07:17:51  <indutny>erh
07:17:53  <bnoordhuis>i mean, code cleanup is nice but not if it generates large deltas
07:17:55  <indutny>have you seen my previous messages?
07:18:04  <bnoordhuis>what previous messages?
07:18:07  <indutny>ooh shit
07:18:08  <indutny>:)
07:18:12  <indutny>ok, I'll write it again
07:18:31  <indutny>Yes it's a large delta, but only class declarations has moved from .cc to .h
07:18:35  <indutny>and also
07:18:44  <indutny>I've replace BIO_free with BIO_free_all everywhere
07:18:52  <indutny>other it could probably leak
07:19:05  <indutny>s/other/otherwise
07:19:11  <indutny>so
07:19:22  <bnoordhuis>okay. i support that in principle
07:19:31  <indutny>I can agree that merging Cipher/Decipher together might be a bad thing to do before release
07:19:39  <indutny>but do you want to support that shitty mess in 0.10? :)
07:19:42  <indutny>i mean node_crypto.cc
07:19:54  <bnoordhuis>i have plans with crypto
07:20:00  <indutny>It'll never be a right time to fix it
07:20:23  <indutny>and not getting it into 0.10 means waiting again
07:21:21  <bnoordhuis>well, i'm not totally adverse - i just didn't quite see the point
07:21:32  <bnoordhuis>but first things first, i'm off to breakfast :)
07:21:36  <indutny>haha
07:21:41  <indutny>I thought you hadn't slept yet
07:21:47  <indutny>are you just up early?
07:21:52  <bnoordhuis>no, i haven't
07:21:57  <indutny>oh
07:22:03  <bnoordhuis>or rather, i slept from 21.00 to 01.00 hours
07:22:07  <indutny>oh
07:22:08  <indutny>ok
07:22:13  <indutny>you need a breakfast
07:22:14  <bnoordhuis>more is indulgence
07:22:25  <bnoordhuis>yep, i'm pretty peckish by now
07:22:42  <indutny>:)
07:22:43  <indutny>brb
07:34:45  * rendarjoined
07:35:46  <indutny>back
07:46:04  * `3rdEdenjoined
07:46:30  <indutny>bnoordhuis: do you know that russians are always applause when airplane lands? :)
07:46:43  <indutny>I think that's because we're sure that everyone will die
07:46:50  <indutny>and in the end surprised that we're still alive
07:47:02  <indutny>well, personally, I'm not clapping
07:47:07  <indutny>but even my parents does
07:47:26  <indutny>and you know how this is related to node.js?
07:47:52  <indutny>nohow
07:47:53  <indutny>:D
07:59:38  * stagasjoined
08:08:26  * kazupon_quit (Remote host closed the connection)
08:10:38  <deoxxa>indutny: wait what
08:10:41  <deoxxa>indutny: really?
08:13:53  <indutny>yes
08:14:12  <indutny>and that scares me very much :)
08:16:04  <deoxxa>haha
08:16:07  <deoxxa>that's lol
08:24:02  <indutny>bnoordhuis: so
08:24:06  <indutny>bnoordhuis: are you done?
09:22:26  * kazuponjoined
10:02:58  * stagasquit (Quit: ChatZilla 0.9.89-rdmsoft [XULRunner 1.9.0.17/2009122204])
10:07:55  * felixgequit (Quit: http://www.debuggable.com/)
10:08:05  * Ralt_quit (Remote host closed the connection)
10:18:41  * kazuponquit (Remote host closed the connection)
10:19:46  * kazuponjoined
10:22:28  * btraskquit (Ping timeout: 256 seconds)
10:23:41  * btraskjoined
10:24:58  * kuplatup1ujoined
10:25:18  * kuplatupsuquit (Ping timeout: 256 seconds)
10:28:59  * Raltjoined
10:42:03  * kazuponquit (Remote host closed the connection)
10:42:41  * kazuponjoined
10:48:52  * indexzerojoined
11:08:35  * kazuponquit (Remote host closed the connection)
11:14:31  * kazuponjoined
11:16:23  * kazuponquit (Remote host closed the connection)
11:21:49  * abraxasquit (Remote host closed the connection)
11:30:07  * CoverSlidequit (Quit: leaving)
11:36:51  * piscisaureus_joined
12:02:43  * mmalecki[zzz]changed nick to mmalecki
12:51:50  * indexzeroquit (Quit: indexzero)
13:00:14  * indexzerojoined
13:05:14  <MI6>joyent/libuv: Bert Belder master * 2e4488f : windows: improve / fix uv_interface_addresses * If GetAdaptersAddresses( (+1 more commits) - http://git.io/8mHGFQ
13:07:04  * c4milojoined
13:07:20  * travis-cijoined
13:07:20  <travis-ci>[travis-ci] joyent/libuv#923 (master - 2e4488f : Bert Belder): The build passed.
13:07:20  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/44f0fcd033fa...2e4488f35af8
13:07:20  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/3494461
13:07:20  * travis-cipart
13:07:24  <MI6>joyent/libuv: Bert Belder v0.8 * 527a10f : windows: improve / fix uv_interface_addresses * If GetAdaptersAddresses( (+1 more commits) - http://git.io/uxQL-w
13:09:21  * travis-cijoined
13:09:21  <travis-ci>[travis-ci] joyent/libuv#924 (v0.8 - 527a10f : Bert Belder): The build is still failing.
13:09:21  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/deb1c34774e1...527a10f90428
13:09:21  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/3494487
13:09:21  * travis-cipart
13:19:11  * kazuponjoined
13:23:51  <indutny>bnoordhuis: hm
13:23:53  <indutny>bnoordhuis: yt?
13:33:02  * hzjoined
13:36:13  <bnoordhuis>indutny: yep, here
13:36:23  <indutny>so
13:36:28  <indutny>I've two things to ask you about
13:36:31  <indutny>ssl refactor
13:36:31  * hzquit (Client Quit)
13:36:32  <indutny>and
13:36:34  <indutny>select() fix
13:37:05  <indutny>bnoordhuis: do you think we can handle this today?
13:37:30  <bnoordhuis>no. i'm taking the day off, i don't feel like working
13:37:46  <bnoordhuis>i just heard this morning that my neighbour passed away
13:38:16  <bnoordhuis>it's very sad, she leaves behind two young children :(
13:39:03  <indutny>ow
13:39:13  <indutny>not good
13:39:28  <indutny>do they have some relatives?
13:40:24  <bnoordhuis>yes. most live on the other side of the country though
13:40:32  <bnoordhuis>granted, the netherlands is relatively small
13:41:03  <indutny>well
13:41:07  <indutny>at least they're not alone
13:44:45  * indexzeroquit (Quit: indexzero)
13:52:28  * indexzerojoined
13:54:43  * `3rdEdenquit (Quit: beam me up scotty)
13:58:13  * bnoordhuisquit (Ping timeout: 248 seconds)
13:58:41  * piscisaureus_quit (Ping timeout: 255 seconds)
14:02:16  * `3rdEdenjoined
14:07:05  * tomshredsquit (Quit: Leaving...)
14:08:35  * tomshredsjoined
14:14:42  * piscisaureus_joined
14:14:52  * tomshredsquit (Quit: Linkinus - http://linkinus.com)
14:25:38  * tomshredsjoined
14:27:07  * indexzeroquit (Quit: indexzero)
14:36:44  * piscisaureus__joined
14:40:03  * piscisaureus_quit (Ping timeout: 255 seconds)
15:07:21  * kazuponquit (Remote host closed the connection)
15:25:55  * stagasjoined
15:36:55  * bradleymeckjoined
15:37:48  * kazuponjoined
15:46:24  * kazuponquit (Ping timeout: 264 seconds)
15:50:00  <isaacs>when you do server.close(), if all the current requests are finished, and all the responses are finished, i think it should kill any open sockets.
15:50:13  <isaacs>it's kind of annoying that you do server.close() and have to wait 60 seconds for them to time out
15:50:16  <isaacs>thoughts?
15:50:21  <isaacs>(http servers, obv)
15:52:17  * indutny_a_b_cjoined
15:54:27  * indutny_a_bquit (Ping timeout: 246 seconds)
15:55:04  * mjr_joined
15:56:36  * indutny_a_b_cquit (Ping timeout: 248 seconds)
16:02:14  * indexzerojoined
16:02:14  * indexzeroquit (Client Quit)
16:09:36  <piscisaureus__>isaacs: yes, I'd be fine with that
16:09:50  <piscisaureus__>isaacs: not that I ever use server.close btw
16:10:22  <piscisaureus__>isaacs: I think that keeping track of all http incoming connections is a pretty big leak risk btw ... something to consider
16:10:50  * hzjoined
16:12:12  * kazuponjoined
16:12:14  <indutny>isaacs: ++
16:21:41  * kazuponquit (Ping timeout: 244 seconds)
16:23:26  * warzjoined
16:23:26  * warzquit (Changing host)
16:23:26  * warzjoined
16:23:53  * stagas_joined
16:25:12  * stagasquit (Ping timeout: 250 seconds)
16:25:20  * stagas_changed nick to stagas
16:30:46  * bradleymeck_joined
16:34:00  * bradleymeckquit (Ping timeout: 260 seconds)
16:34:00  * bradleymeck_changed nick to bradleymeck
16:35:30  * stagasquit (Ping timeout: 264 seconds)
16:36:57  * `3rdEdenquit (Remote host closed the connection)
16:37:03  * bradleymeck_joined
16:37:47  * bradleymeck_quit (Read error: Connection reset by peer)
16:38:08  * bradleymeck_joined
16:39:02  * bradleymeck__joined
16:39:37  * bradleymeckquit (Ping timeout: 246 seconds)
16:39:38  * bradleymeck__changed nick to bradleymeck
16:42:38  * bradleymeck_quit (Ping timeout: 252 seconds)
16:44:06  * bradleymeck_joined
16:47:39  * bradleymeckquit (Ping timeout: 260 seconds)
16:47:39  * bradleymeck_changed nick to bradleymeck
16:48:10  * kazuponjoined
16:57:11  * stephankquit (Ping timeout: 256 seconds)
16:58:45  * kazuponquit (Ping timeout: 260 seconds)
17:01:42  * stephankjoined
17:04:02  * mraleph2joined
17:04:21  <mraleph2>isaacs: hi. do you happen to be around?
17:04:46  * mjr_quit (Quit: mjr_)
17:06:21  <indutny>looks like no
17:06:24  * dapjoined
17:20:46  * bradleymeckquit (Quit: bradleymeck)
17:23:02  * sblomjoined
17:25:06  * kazuponjoined
17:35:53  * kazuponquit (Ping timeout: 265 seconds)
17:36:29  <isaacs>mraleph2: yo
17:51:37  * bradleymeckjoined
17:52:43  <sblom>piscisaureus__: At the current rate of __ accretion, you'll be up to piscisaureus_____________ by Christmas.
17:56:33  * bradleymeckquit (Quit: bradleymeck)
17:57:38  <piscisaureus__>sblom: haha
17:57:45  <piscisaureus__>it happens when internet is flaky
18:02:16  * kazuponjoined
18:02:27  * brsonjoined
18:04:58  <piscisaureus__>ok
18:04:59  <piscisaureus__>back
18:05:11  <piscisaureus__>er, that was meant for someone else
18:14:00  * kazuponquit (Ping timeout: 260 seconds)
18:14:25  <piscisaureus__>isaacs: hey, what was the rationale for realpath()ing module filenames?
18:15:35  <isaacs>piscisaureus__: there are a few cases that that makes work properly
18:15:51  <piscisaureus__>isaacs: do you remember which cases?
18:15:53  <isaacs>piscisaureus__: the most relevant is that if you symlink a node executable script, it means that you can use relative require()s in that file.
18:16:04  <isaacs>piscisaureus__: so, i have /path/to/foo/bin/foo.js
18:16:10  <isaacs>and that does require('../lib/foo.js')
18:16:19  <isaacs>and then i symlink it to /usr/local/bin/foo
18:16:21  <piscisaureus__>isaacs: so why do we do it with require() as well ?
18:17:08  <isaacs>i have to realpath(/usr/local/bin/foo) in order to know that the module is actually at /path/to/foo/bin/foo.js so that ../lib/foo.js is /path/to/foo/lib/foo.js instead of /usr/local/lib/foo.js
18:18:06  <sblom>piscisaureus__: (I think you can reclaim a username with fewer underscores by asking NickServ to mark it as a ghost.)
18:18:22  * piscisaureus__changed nick to piscisaureus
18:26:12  * stagasjoined
18:28:33  * bradleymeckjoined
18:32:08  <isaacs>piscisaureus: what do you mean, exactly? "so why do we do it with require() as well"
18:32:31  <piscisaureus>isaacs: actually, you answered my question :-)
18:33:16  <piscisaureus>isaacs: I was talking to tomasz and they had some problem on azure with resolving symlinks so he was questioning why we need it at all
18:33:19  <piscisaureus>but now we know
18:33:52  <piscisaureus>in node 0.6 realpath() was a no-op and it didn't cause much problems
18:34:06  <piscisaureus>but that was probably because most people don't use symlinks and npm link didn't work in 0.6
18:37:47  * TooTallNatejoined
18:39:56  * kazuponjoined
18:42:40  * loladirojoined
18:46:52  <isaacs>piscisaureus: yeah, npm still doesn't use symlinks for windows, but eventually, i'd like to
18:47:00  <isaacs>piscisaureus: oh, no, wait, it can't. shebangs.
18:47:15  <isaacs>piscisaureus: windows doesn't like scripts to be executed based on #!
18:47:26  <piscisaureus>isaacs: I know. That won't work indeed.
18:47:35  <isaacs>so, we're stuck with shims forever, regardless.
18:47:45  <isaacs>unless we do the rem /* trick
18:48:41  <isaacs>rem=''/*\nnode %0\nexit\n*/ ... rest of the program ...
18:48:51  <isaacs>http://pastebin.com/PdXCtce3
18:50:10  * kazuponquit (Ping timeout: 246 seconds)
18:56:05  * joshthecoderjoined
19:06:41  <isaacs>So, i'm noticing a bit of an annoying issue with streams2 in http.
19:07:03  <isaacs>consider this node program: http.createServer(function(q,s){s.end('ok')}).listen(1337)
19:07:25  <isaacs>if you send a POST request to this server, it doesnt' actually ever get to the end of the request.
19:07:51  <TooTallNate>just any body in general right?T
19:07:55  <TooTallNate>not just POST
19:08:20  <isaacs>sure.
19:08:22  <isaacs>a request body
19:08:28  <TooTallNate>isaacs: so is that a problem for keep-alive or something?
19:08:39  <isaacs>well... it's a bit weird, to say the least.
19:08:54  <TooTallNate>i don't think a single request necessarily needs to consume the body before responding
19:08:59  <isaacs>like, at some point, don't you kind of want data to either be discarded, or consumed?
19:09:06  <isaacs>right, no, you can respond as soon as the headers finish.
19:09:09  <isaacs>and the parser will pull in that much
19:10:28  <TooTallNate>isaacs: ya, kinda a tough call… could res.end() implicitly flush the request body?
19:11:16  <isaacs>TooTallNate: well, what if you want it that way?
19:11:25  <isaacs>TooTallNate: i mean, what if you want to consume it pull-style
19:11:43  <TooTallNate>isaacs: after sending a response you mean?
19:11:56  <isaacs>or after starting a response.
19:12:05  <isaacs>oh, yeah, after sending, you said on end
19:12:49  <TooTallNate>like, if you want to consume req, then do it before res.end()? makes sense to me i think...
19:13:04  <isaacs>let's say you want to do: s.statusCode=202;s.end('accepted\n'); q.pipe(somethign)
19:13:32  <isaacs>TooTallNate: that's not a reasonable restriction.
19:13:46  <TooTallNate>that seems unorthodox to me… i would think *some* clients would close the upload upon response
19:13:52  <isaacs>TooTallNate: one of the strong points of node's http API is that it allows actual duplex behavior
19:16:00  <TooTallNate>ok, so what happens if we just leave the data in the pipe then?
19:16:58  * kazuponjoined
19:17:16  <isaacs>eventually it'll back up, the socket will be paused, and the uplod will halt.
19:18:02  <TooTallNate>so whats the problem there?
19:18:37  <isaacs>well, we'll never get to the end of the message, and keepalives will fail.
19:18:59  <isaacs>it's almost like you want some timeout where if you havent' consumed the stream at all, it'll .resume() so that it all falls out
19:19:12  <isaacs>but that just seems so janky
19:19:38  <isaacs>or, we are adding a footgun
19:19:46  <TooTallNate>well the "data" event behavior right now is that eventually the body gets consumed
19:19:51  <TooTallNate>so that keep-alive works properly
19:22:49  * loladiroquit (Quit: loladiro)
19:23:00  <isaacs>right
19:23:10  <isaacs>if you add a "data" event handler, or call q.resume() then it's fine
19:25:56  <TooTallNate>it seems like a res.resume() call in res.end() would fix it… if you're still piping the req somewhere when you call res.end() it would still work
19:27:16  * kazuponquit (Ping timeout: 252 seconds)
19:31:08  <isaacs>right, but what if you're doing req.read(1024) or something?
19:31:13  * loladirojoined
19:31:59  <isaacs>i mean, yes, req.resume() fixes it
19:32:03  <isaacs>then it behaves appropriately
19:32:13  <isaacs>but now everyone has to add req.resume() to the default node.js http server example.
19:32:19  <isaacs>that's kind of... i dunno. shitty.
19:33:25  <isaacs>maybe i could check if req.read() had ever been called?
19:33:26  * loladiroquit (Client Quit)
19:33:32  <isaacs>and if not, then call req.resume()?
19:33:38  <isaacs>ugh. so ugly.
19:38:50  <mmalecki>isaacs: check for `data` listeners?
19:39:14  <isaacs>mmalecki: if you add a data listener, then it'll be fine
19:39:15  <mmalecki>like, on newListener for `data` event, switch to old mode?
19:39:17  * CoverSlidejoined
19:39:20  <mmalecki>I see
19:39:22  <isaacs>mmalecki: already doing that.
19:39:35  <isaacs>mmalecki: the issue is if you don't switch into old mode, but you end the response, and never consume the request data.
19:40:09  <mmalecki>ah, hmmm
19:43:46  <TooTallNate>well the only other option is to document that in order for keep-alive to work properly, you *must* consume the request body...
19:44:13  * tomshredsquit (Quit: Linkinus - http://linkinus.com)
19:46:41  <isaacs>TooTallNate: well, it's not just that... in order for *uploads* to work properly, you have to consume the request body, to
19:46:47  <isaacs>TooTallNate: otherwise they'll just hang forever.
19:46:51  <isaacs>until the client gives up and kills the socket.
19:47:26  <TooTallNate>right right
19:47:40  <TooTallNate>curl(1) never seems to give up though
19:47:51  <TooTallNate>i'm depending on that in a new little side project of mine :)
19:48:38  * mmaleckichanged nick to mmalecki[food]
19:49:03  <TooTallNate>isaacs: i think a semantic change is inevitable in this case, hacky things in res.end() aren't a good solution
19:49:37  <TooTallNate>someone always needs to *pull*
19:50:16  <isaacs>well, it's in res.on('finish')
19:50:23  <isaacs>where we also destroy the socket if it's not a keepAlive
19:51:09  <isaacs>seems to fix the issue...
19:51:26  <CoverSlide>on('finish') ??
19:51:46  <CoverSlide>that's not documented, is that a private event?
19:52:05  <TooTallNate>CoverSlide: it's a new event part of streams2
19:52:14  <CoverSlide>oic
19:52:16  <TooTallNate>CoverSlide: all Writable streams emit it after .end()
19:53:16  * mikealquit (Quit: Leaving.)
19:53:28  <CoverSlide>kk
19:53:43  <TooTallNate>isaacs: what fixes it?
19:53:44  <CoverSlide>so 'end' is streams1 only, we shouldn't even listen for it with streams2?
19:54:01  * kazuponjoined
19:54:01  <TooTallNate>CoverSlide: "end" is for Readables, "finish" is for Writables
19:54:05  * mikealjoined
19:54:07  <CoverSlide>k gotcha
20:04:38  * kazuponquit (Ping timeout: 255 seconds)
20:18:04  * indexzerojoined
20:19:56  * joshthecoderquit (Ping timeout: 255 seconds)
20:31:06  * kazuponjoined
20:31:36  <rphillips>in luvit we are seeing a detached process linger after a spawn
20:31:50  <rphillips>anybody know why this might be the case?
20:32:02  <rphillips>the detached flag isn't being passed
20:33:01  <piscisaureus>rphillips: "linger" as in not reaped?
20:33:12  <rphillips>right
20:33:22  <rphillips>the parent process will exit, but the child is sticking around
20:33:38  <piscisaureus>rphillips: ah - so that's the idea right?
20:34:06  <rphillips>is that what it's supposed to do?
20:34:07  <rphillips>https://gist.github.com/d0ba9abc625d86949ecf
20:34:19  <rphillips>that isn't very intuitive to me
20:34:23  <piscisaureus>ah - so the detached flag is not passed
20:34:26  <rphillips>correct
20:34:42  <piscisaureus>sorry, "in luvit we are seeing a detached process linger after a spawn" confused me ...
20:34:54  <piscisaureus>rphillips: is that process handling or ignoring SIGHUP ?
20:35:25  <rphillips>https://gist.github.com/d0ba9abc625d86949ecf#gistcomment-615592
20:35:30  <rphillips>not that I know of
20:35:36  <piscisaureus>hmm that doesn't seem likely :-)
20:35:37  * kansfacejoined
20:36:28  <piscisaureus>let's try this in node
20:38:29  * kansface1joined
20:39:54  <piscisaureus>rphillips: in node it lingers too
20:40:25  * kansfacequit (Ping timeout: 260 seconds)
20:40:27  <piscisaureus>the process was reparented to init
20:41:17  * kazuponquit (Ping timeout: 256 seconds)
20:45:23  * bradleymeckquit (Quit: bradleymeck)
20:46:30  * kansface1quit (Ping timeout: 250 seconds)
20:53:37  <piscisaureus>rphillips: it happens in node as well
20:53:48  <piscisaureus>rphillips: it seems that bash ignores EPIPE
20:54:23  * bradleymeckjoined
20:54:24  <piscisaureus>rphillips: and the process is not a session group leader (so the detached flag was not set) but somehow it's not receiving SIGHUP, or SIGHUP is being ignored
20:57:13  <piscisaureus>rphillips: I can tell that the process actually does not get SIGHUPed when the parent exits. Weird, so far
21:01:52  * AvianFluquit (Remote host closed the connection)
21:05:48  <isaacs>TooTallNate: it fixes it to do req.resume() in res.on('finish')
21:05:59  * loladirojoined
21:06:39  * kansfacejoined
21:06:40  * loladiroquit (Client Quit)
21:06:48  * lohkeyjoined
21:07:57  * kazuponjoined
21:12:57  * indexzeroquit (Quit: indexzero)
21:13:40  * loladirojoined
21:18:12  * kazuponquit (Ping timeout: 248 seconds)
21:18:42  * c4miloquit (Remote host closed the connection)
21:20:39  * Ralt_joined
21:38:31  * felixgejoined
21:38:31  * felixgequit (Changing host)
21:38:31  * felixgejoined
21:42:08  * TooTallNatequit (Quit: Computer has gone to sleep.)
21:44:20  * kazuponjoined
21:48:44  * TooTallNatejoined
21:48:55  * rendarquit
21:49:41  <TooTallNate>isaacs: ok sgtm then
21:50:08  <TooTallNate>isaacs: is there a way to check what state a stream is in (i.e. pull vs. push)?
21:51:23  <isaacs>TooTallNate: well, i'm just checking if read() has ever been called.
21:51:32  <isaacs>TooTallNate: you can check stream._readableState.flowing
21:51:41  <TooTallNate>ahh ok
21:51:43  <isaacs>TooTallNate: but that just tells you whether it's pipe()'d somewhere *or* in old mode
21:54:55  * kazuponquit (Ping timeout: 255 seconds)
21:55:50  * joshthecoderjoined
21:58:22  * bradleymeckquit (Quit: bradleymeck)
22:13:36  * loladiroquit (Quit: loladiro)
22:14:49  * indexzerojoined
22:20:35  * indexzeroquit (Quit: indexzero)
22:20:38  * kazuponjoined
22:27:48  * `3rdEdenjoined
22:30:34  * Ralt_quit (Read error: Operation timed out)
22:32:21  * kazuponquit (Ping timeout: 256 seconds)
22:38:08  * kansfacequit (Ping timeout: 255 seconds)
22:40:53  <isaacs>pet peeves: 1) Tests that do not produce any output. 2) Tests that produce a LOT of output.
22:58:03  * kazuponjoined
23:02:37  <TooTallNate>isaacs: would there be a way to make npm use a global copy of node-gyp rather than the local one when installed?
23:02:56  <TooTallNate>isaacs: the problem is it's hard to update npm's internal copy of node-gyp, and `npm install -g node-gyp` doesn't do it
23:03:27  <isaacs>TooTallNate: npm explore npm -g -- npm install node-gyp
23:03:46  <TooTallNate>isaacs: right, that's fine for unix, but doesn't seem to work on windows
23:03:55  <isaacs>TooTallNate: really? it should.
23:04:06  <TooTallNate>isaacs: err, maybe it does, but you need to be in a root cmd.exe
23:04:12  <TooTallNate>since it's in Program Files
23:04:16  <isaacs>TooTallNate: you can also grab the prefix manulaly, and do: npm install node-gyp --prefix=/path/to/npm/root
23:04:41  <isaacs>TooTallNate: oh, right, because npm isn't actually installed globall in windows
23:04:46  <isaacs>TooTallNate: it's sitting next to Node.
23:04:55  <isaacs>TooTallNate: so, first, npm install npm -g
23:05:18  <isaacs>TooTallNate: Then: npm explore npm -g
23:05:25  <isaacs>TooTallNate: then in the subshell: npm install node-gyp
23:05:42  <TooTallNate>ok, haha
23:05:46  <isaacs>TooTallNate: but yes, i'td be nice to make this all simpler.
23:05:48  <isaacs>patch welcome
23:05:49  <TooTallNate>kinda a bummer that npm isn't a "real" global
23:05:58  <TooTallNate>well, only on Windows
23:06:23  <TooTallNate>isaacs: is there an advantage to installing npm in Program Files over just being a global?
23:06:37  <isaacs>TooTallNate: simpler, i think
23:06:40  <isaacs>TooTallNate: i dunno
23:06:48  <isaacs>TooTallNate: it just unpacks into the same spot as node
23:06:59  <TooTallNate>it's confusing to install node.msi, do `npm ls -g` and see nothing
23:07:24  <isaacs>TooTallNate: i think it was because someone wanted npm to be installed for all users, but global space to be per-user
23:07:31  <isaacs>this was explained to me as less confusing to windows users.
23:08:01  <TooTallNate>ya that's probably true
23:09:48  * kazuponquit (Ping timeout: 264 seconds)
23:13:59  * felixgequit (Quit: felixge)
23:16:13  * warzquit
23:17:17  <TooTallNate>well short term solution: https://github.com/TooTallNate/node-gyp/wiki/Updating-npm's-bundled-node-gyp
23:20:56  <isaacs>kewl
23:21:09  <isaacs>TooTallNate: heh, so, just found the flip-side of that earlier problem.
23:21:18  <isaacs> http.get('http://127.0.0.1:' + common.PORT + '/foo?bar');
23:21:31  <isaacs>if you do that, it doesn't ever do anything with the response.
23:21:38  <isaacs>so, again, sits there paused forever.
23:23:11  <isaacs>and the request never emits 'finished', apparently..
23:23:46  <isaacs>oh, yeah, it does emit finished.
23:24:07  <isaacs>but it emits 'finished' before emitting 'response', so the "resume on finish" trick won't work...
23:27:32  * bradleymeckjoined
23:28:21  * loladirojoined
23:28:42  * `3rdEdenquit (Remote host closed the connection)
23:35:47  * kazuponjoined
23:38:06  <TooTallNate>isaacs: shit, haha. <3 edge cases
23:45:43  <isaacs>TooTallNate: so, i'm thikning, if you don't add a 'response' handler, we know that you can't possibly handle it
23:45:58  <isaacs>TooTallNate: so, if there's no handler, i'll just .resume() it onto the floor
23:46:09  <isaacs>TooTallNate: if you add a listener, make sure you read() in there.
23:47:01  * kazuponquit (Ping timeout: 248 seconds)
23:47:27  <TooTallNate>isaacs: that doesn't sound too bad actually
23:48:49  <isaacs>Pet peeve #3) Tests that take longer than 100ms to exit
23:49:13  <isaacs>this looks pretty good
23:49:14  <isaacs>[00:37|% 35|+ 172|- 0]: release test-http-client-pipe-end
23:49:25  <isaacs>oh, found a failure :)
23:59:53  <TooTallNate>isaacs: for node-vorbis, one of the tests ensures the "end" event, so it has to decode the whole thing, taking ~4 seconds :\
23:59:57  <TooTallNate>i hate long tests too