00:00:47  <piscisaureus_>igorzi: actually, GenerateConsoleCtrlEvent is very limited
00:01:04  <piscisaureus_>igorzi: the semantics are too different from kill(2) to be meaningful
00:01:34  <piscisaureus_>igorzi: maybe we should just have some `DebugBreak` binding that invokes the debugger
00:02:31  * dapquit (Quit: Leaving.)
00:02:35  <piscisaureus_>igorzi: on linux it would kill(pid, SIGUSR1), on windows that would generate a ctrl break event
00:02:53  <piscisaureus_>I think process.kill should just unconditionally terminate the process on windows
00:05:04  <igorzi>piscisaureus_: without checking the 2nd arg?
00:05:24  <piscisaureus_>igorzi: maybe we can do nothing when the second arg is 0
00:05:27  <piscisaureus_>igorzi: but, yeah
00:05:51  <piscisaureus_>igorzi: the thing is, the only control message you can generate is CTRL_BREAK_EVENT
00:06:05  <piscisaureus_>and that only works if the child process was started as a new process group
00:06:23  <piscisaureus_>and then the child process of the receiving process also receive that signal
00:06:36  <piscisaureus_>that's just too different from what people expect
00:06:40  <igorzi>piscisaureus_: i was thinking whether that's better or worse than what we have now (which is to fail process.kill). unconditionally killing might give people the impression that their ported code still works
00:07:02  <piscisaureus_>igorzi: yeah, that's truee
00:08:23  <igorzi>piscisaureus_: if we fail fast - people will notice right away that process.kill probably won't do what they need, and if they really need to kill a process they'll use spawn().kill()
00:08:54  <piscisaureus_>igorzi: yeah, but what if they want to kill something that's not a child process
00:09:16  <piscisaureus_>igorzi: (besides, how do we handle signals for child_process.kill? I think we just unconditionally kill it, right?)
00:10:20  <igorzi>piscisaureus_: actually yeah, we do unconditionally kill if signum!=0
00:10:35  <piscisaureus_>maybe we should back that up as well then
00:10:42  <piscisaureus_>yes I like this
00:10:42  <igorzi>piscisaureus_: so then process.kill should probably follow the same semantics
00:10:49  <piscisaureus_>yeah
00:11:49  <igorzi>piscisaureus_: so we need uv_kill then, and basically implement it the same way as we have uv_process_kill
00:14:05  <piscisaureus_>igorzi: actually, I think we should check if the signal is SIGTERM or SIGKILL or unspecified
00:14:11  <piscisaureus_>in that case we can kill the process
00:14:41  <piscisaureus_>if the user specifies some other signal he probably had special intentions that we can't satisfy
00:14:43  <piscisaureus_>so we throw
00:15:00  <piscisaureus_>if the specified signal is 0 then we can do this weird unix-y thing
00:15:36  <piscisaureus_>And I definitely think that child_process.kill and process.kill should have the same semantics.
00:15:43  <piscisaureus_>igorzi bnoordhuis ^
00:15:48  <igorzi>piscisaureus_: ok
00:16:19  <piscisaureus_>igorzi: feel free to disagree btw. You are now a core team member. It's now allowed to question me :-p
00:16:50  <bnoordhuis>piscisaureus_: should i have an opinion?
00:16:56  <piscisaureus_>yes
00:17:03  <bnoordhuis>okay
00:17:17  <bnoordhuis>well, i feel it's going downhill with the euro zone lately
00:17:35  <piscisaureus_>labrador or jack russell, bnoordhuis?
00:17:49  <bnoordhuis>labrador, of course - i'm a family man
00:18:10  <igorzi>piscisaureus_: :).. i think i agree with you. i was under the impression that child_process.kill already did the "right thing" (since I didn't know what signum means in unix world).
00:18:55  <igorzi>i must admit that it's kind of strange to have a kill api, that doesn't always actually kill :)
00:19:04  <piscisaureus_>yes
00:19:09  <igorzi>but i'm sure there's a very good reason for it
00:19:10  <piscisaureus_>unix
00:19:16  <piscisaureus_>hah
00:19:34  * mikealquit (Quit: Leaving.)
00:19:55  <piscisaureus_>Just as good as having CreateFile2
00:24:58  <piscisaureus_>igorzi: https://plus.google.com/115094562986465477143/posts/aEJE2vff4jS <-- God admitting that signals were a mistake
00:26:35  * mikealjoined
00:27:07  <igorzi>piscisaureus_: so what scenarios do people use signals for?
00:27:15  * mikealquit (Client Quit)
00:28:23  <piscisaureus_>igorzi: anything. Mostly starting a debugger, or re-initializing an application, or killing it "softly" e.g. giving the application the chance to clean up first
00:28:35  <piscisaureus_>igorzi: the operating system also sends signals itself
00:28:46  <piscisaureus_>but that's not related to kill
00:29:27  <piscisaureus_>igorzi: for example, on linux you have a dd command that basically pumps data (for example from a disk image onto a disk)
00:29:48  <igorzi>so it's not really similar to SEH on windows?
00:29:53  <piscisaureus_>igorzi: if you want to know it's progress, you send it SIGUSR1 and it'll dump some info
00:30:13  <piscisaureus_>igorzi: yes, it is somewhat similar to SEH
00:30:23  <piscisaureus_>igorzi: except that SEH destroys your stack and signals dont
00:30:35  <igorzi>if you deref a bad pointer - do you get a signal from the OS?
00:30:45  <piscisaureus_>igorzi: yes, SIGSEGV :-)
00:31:46  <igorzi>is there some default handler that kills the process if SIGSEGV is sent and not handle?
00:31:57  <igorzi>*handled
00:32:10  <piscisaureus_>igorzi: if the application doesn't specify a handler, all signals kill the process
00:32:46  <igorzi>piscisaureus_: ahh ok
00:33:15  <piscisaureus_>igorzi: the os sends many more signals btw, e.g. when a child process exits, or when some types of asynchronous io complete, or when the user tries to write to a stdout pipe that's broken
00:34:55  <piscisaureus_>igorzi: http://en.wikipedia.org/wiki/POSIX_signal#List_of_signals
00:46:54  * AvianFluquit (Ping timeout: 255 seconds)
00:48:17  * AvianFlujoined
00:59:46  * pfox___quit (Ping timeout: 260 seconds)
01:05:14  * AvianFluquit (Quit: Leaving)
01:11:19  * brsonquit (Ping timeout: 244 seconds)
01:15:23  <piscisaureus_>I am going to bed -
01:18:11  <bnoordhuis>piscisaureus: sleep tight
01:18:24  <piscisaureus_>you should do that too bnoordhuis
01:18:43  <bnoordhuis>yeah, i will
01:18:52  <piscisaureus_>but thnx :-)
01:18:59  <bnoordhuis>but one thing before i go
01:19:16  <piscisaureus_>bnoordhuis: what?
01:19:26  <bnoordhuis>fuck, github is down
01:19:37  <bnoordhuis>ah, no more
01:19:38  <bnoordhuis>https://github.com/bnoordhuis/linux/compare/master...epoll_ctl2
01:19:40  <bnoordhuis>FUCK YEAH!
01:20:14  <piscisaureus_>bnoordhuis: you think it'll make it?
01:20:31  <piscisaureus_>bnoordhuis: give me a link to the post on lkml
01:20:38  <bnoordhuis>oh, i bet there'll be a couple of iterations
01:20:51  <bnoordhuis>the kernel guys are never fond of adding new syscalls
01:20:53  <bnoordhuis>but who knows
01:27:55  <piscisaureus_>bnoordhuis: so where's the lkml link? :-)
01:27:59  <piscisaureus_>I want to see how this works
01:28:29  <bnoordhuis>piscisaureus_: i haven't posted it yet :)
01:28:42  <bnoordhuis>gonna play around with it first for a couple of days
01:29:03  <bnoordhuis>i'm thinking of changing the api a little
01:30:44  <piscisaureus_>bnoordhuis: I wonder why you move epoll_create1 around
01:31:10  <bnoordhuis>piscisaureus_: i don't, it's a diff artifact
01:31:24  <piscisaureus_>hmm
01:31:30  <piscisaureus_>maybe use diff --patience
01:33:19  <bnoordhuis>piscisaureus_: that works but github doesn't use it :)
01:36:38  * ericktquit (Quit: erickt)
01:40:37  <piscisaureus_>if only the linux kernel wasn't so massive I would clone it
01:42:12  <bnoordhuis>oh, it only takes 15 minutes
01:54:23  * bnoordhuisquit (Read error: Operation timed out)
01:59:19  * pfox___joined
03:44:48  * pfox___quit (Ping timeout: 256 seconds)
03:54:35  * ericktjoined
04:04:41  * mikealjoined
04:55:59  * mikealquit (Quit: Leaving.)
04:56:41  * mikealjoined
05:10:22  * ericktquit (Quit: erickt)
06:04:48  * isaacsquit (Quit: isaacs)
09:23:52  * bnoordhuisjoined
10:26:13  * CIA-95joined
10:28:34  * igorziquit (*.net *.split)
10:28:35  * bnoordhuisquit (*.net *.split)
10:28:36  * piscisaureusquit (*.net *.split)
10:28:36  * rmustaccquit (*.net *.split)
10:28:36  * ryahquit (*.net *.split)
10:28:36  * ircretaryquit (*.net *.split)
10:28:37  * indutnyquit (*.net *.split)
10:28:38  * piscisaureus_quit (*.net *.split)
10:28:39  * CoverSlidequit (*.net *.split)
10:28:40  * Marakquit (*.net *.split)
10:28:40  * daurnimatorquit (*.net *.split)
10:28:40  * DrPizzaquit (*.net *.split)
10:28:40  * pquernaquit (*.net *.split)
10:28:41  * raggiquit (*.net *.split)
10:28:41  * jesusabdullahquit (*.net *.split)
10:28:41  * CIA-53quit (*.net *.split)
10:33:00  * bnoordhuisjoined
10:33:01  * piscisaureus_joined
10:33:01  * indutnyjoined
10:33:01  * piscisaureusjoined
10:33:01  * ircretaryjoined
10:33:01  * ryahjoined
10:33:01  * rmustaccjoined
10:33:09  * CoverSlidejoined
10:33:09  * Marakjoined
10:33:09  * daurnimatorjoined
10:33:09  * DrPizzajoined
10:33:09  * pquernajoined
10:33:32  * DrPizzaquit (Excess Flood)
10:33:39  * DrPizzajoined
10:33:52  * jesusabdullahjoined
10:35:13  * raggijoined
11:29:01  * piscisaureus_quit (Ping timeout: 240 seconds)
11:38:58  * piscisaureus_joined
13:31:10  * ericktjoined
14:06:39  * ericktquit (Quit: erickt)
14:09:31  * ericktjoined
14:40:54  * pfox___joined
15:50:04  <bnoordhuis>piscisaureus_: ping
15:50:18  <piscisaureus_>bnoordhuis: pnip
15:50:42  <bnoordhuis>piscisaureus_: i'm increasingly convinced that deferred socket creation is a bad thing
15:50:49  <bnoordhuis>remind me again, why do we do it?
15:52:30  <piscisaureus_>bnoordhuis: so we can decide on the address family at bind time
15:53:01  <bnoordhuis>piscisaureus_: right
15:53:17  <bnoordhuis>but the reason it sucks is that if you want to set flags, multicast groups, etc.
15:53:47  <bnoordhuis>you have to do a lot of leg work when the socket is not yet initialized
15:55:21  <bnoordhuis>piscisaureus_: re address family: that's something we can fix in node, right?
15:55:32  * sh1mmerjoined
16:00:04  * dapjoined
16:01:30  * brsonjoined
16:03:00  * ericktquit (Quit: erickt)
16:04:29  <CIA-95>node: Ben Noordhuis master * redea412 / (226 files in 16 dirs): (log message trimmed)
16:04:29  <CIA-95>node: Revert "Upgrade V8 to 3.7.1"
16:04:29  <CIA-95>node: This reverts commit 92f5a5d3caf01f382f90c235e9057590a5e76870.
16:04:29  <CIA-95>node: V8 3.7.1 in debug mode on ia32 has a curious race-like bug where an fs.Stats
16:04:29  <CIA-95>node: object is not fully formed until some time after it's created. This is easy
16:04:30  <CIA-95>node: to demonstrate by running `make test-debug`.
16:04:31  <CIA-95>node: V8 3.7.0 does not exhibit this behaviour so back we go.
16:06:44  <bnoordhuis>^ weird bug
16:14:44  <bnoordhuis>http://cvs.schmorp.de/libev/ev_epoll.c?r1=1.64&r2=1.65 <- so that rascal *did* fix the bug, he just kept quiet about it
16:21:18  <CIA-95>libuv: Ben Noordhuis master * r8d5c64a / src/unix/error.c : unix: map EAFNOSUPPORT error code - http://git.io/CImhow
16:32:36  <CIA-95>node: Ben Noordhuis master * r672b453 / doc/api/http.markdown : docs: http: fix docs for the 'close' event - http://git.io/BaRCpg
16:35:15  <piscisaureus_>bnoordhuis: just create a macro or function `uv_create_socket_if_needed`
16:36:04  <bnoordhuis>piscisaureus_: that won't work - because what type of socket should be created? ipv4 or ipv6?
16:39:16  <piscisaureus_>sure - okay
16:39:27  <piscisaureus_>can we discuss this somewhere after 0.6?
16:39:37  <piscisaureus_>or are you eternally bored right now?
16:39:43  <piscisaureus_>bnoordhuis: ^
16:40:31  * felixgejoined
16:40:31  * felixgequit (Changing host)
16:40:31  * felixgejoined
16:41:04  <piscisaureus_>bnoordhuis: btw I cannot make it to the call tonight
16:41:15  <bnoordhuis>piscisaureus_: not bored but it breaks e.g. the multicast patch
16:41:19  <bnoordhuis>piscisaureus_: sure, np
16:41:41  <piscisaureus_>I think igor know pretty well what the status is
16:41:49  <piscisaureus_>*knows
16:41:51  <ryah>hello
16:41:56  <piscisaureus_>hello
16:42:00  <ryah>im back now
16:42:00  <felixge>I just ran into a bug. Closing the process.stdin breaks stdin streams on all children
16:42:07  <felixge>I think it's a known problem: https://github.com/joyent/node/blob/v0.4/lib/net.js#L834
16:42:21  <felixge>test case: https://gist.github.com/1334027
16:42:26  <piscisaureus_>ryah: good
16:42:43  <piscisaureus_>ryah: I was just saying I won't be on the call with msft tonight
16:43:00  <bnoordhuis>ryah: wb
16:43:13  <ryah>piscisaureus_: do you have time to sync now?
16:43:19  <piscisaureus_>ryah: yeah
16:43:23  <ryah>piscisaureus_: can i skype you?
16:43:32  <piscisaureus_>ryah: one sec
16:43:55  <felixge>ryah: wb, how was japan?
16:44:11  <ryah>japan was lots of fun
16:44:31  <bnoordhuis>piscisaureus_ ryah: can i join?
16:45:38  <ryah>aber klar
16:45:47  <bnoordhuis>super! machen wir
16:45:55  <piscisaureus_>ich bin zuruck
16:48:32  <felixge>ok, I've got to head out for an hour, if anybody has a comment on the bug above while I'm gone that'd be awesome. This is causing problems when executing children from a node program that also reads stdin
16:49:00  <felixge>can't figure out why close() doesn't work on the stdin fd of the process
16:49:08  <felixge>maybe it special?
16:49:11  <felixge>* it is
16:50:52  <felixge>actually gotta close the machine / won't be able to read the backlog here. Need persistent IRC : ). Please comment on the gist
16:51:45  * felixgequit (Quit: felixge)
16:52:27  * felixgejoined
16:52:27  * felixgequit (Changing host)
16:52:27  * felixgejoined
16:52:29  * felixgequit (Client Quit)
16:56:50  * brsonquit (Quit: leaving)
17:04:02  <bnoordhuis>maybe we should put out one or two more 0.4 releases
17:04:06  <bnoordhuis>extended support, so to speak
17:06:07  <piscisaureus_>bnoordhuis: ryah: what about `process.debugBreak(pid)` or `child.debugBreak()`
17:07:38  <bnoordhuis>piscisaureus_: haha
17:09:15  <ryah>[03:25|% 100|+ 307|- 4]: Done
17:09:18  <ryah>osx
17:09:33  <ryah>piscisaureus_: that would work for me
17:09:45  <ryah>piscisaureus_: maybe with a leading underscore
17:09:51  <piscisaureus_>yeah
17:10:28  <piscisaureus_>ryah: also we are going to make process.kill work if the signal is SIGTERM or SIGKILL
17:10:38  <piscisaureus_>otherwise it'll throw
17:12:13  <ryah>do we have a uv_kill() ?
17:12:56  <CIA-95>node: Ryan Dahl master * r60818b9 / (15 files in 2 dirs): Add missing copyright headers - http://git.io/J1H_Iw
17:13:28  <ryah>how do you do "git reset --hard HEAD^" in windows
17:13:35  <ryah>it seems to think ^ is a special character
17:15:30  <piscisaureus_>ryah: git reset --hard HEAD^^
17:15:40  <piscisaureus_>ryah: git reset --hard HEAD~1
17:16:17  <indutny>ryah: heya!
17:20:46  * piscisaureus_quit (Ping timeout: 260 seconds)
17:23:02  * igorzijoined
17:24:44  <igorzi>piscisaureus ryah: so, we're in agreement to add uv_kill to libuv? and make uv_kill and uv_process_kill behave the same (terminate the process for SIGTERM or SIGKILL on windows)
17:26:48  <ryah>indutny: hi
17:27:05  <ryah>igorzi: yes, i think so
17:27:47  <ryah>igorzi: im just catching up - how many tests are we down on windows?
17:28:01  <bnoordhuis>[16:03|% 100|+ 615|- 7]: Done <- linux...
17:28:41  <igorzi>ryah: around 10-15 total. out of those 2 fail because of fs.watchFile, and 3 because of process.kill
17:29:44  <igorzi>ryah: you're back in the states?
17:29:54  <ryah>igorzi: yep
17:30:46  * isaacsjoined
17:30:47  <bnoordhuis>hrm, 4 of the 7 failing tests are timing related
17:31:33  <ryah>bnoordhuis: we need to hammer that down to 0 in the next few days
17:33:02  <bnoordhuis>can do, i think
17:33:25  <ryah>bnoordhuis: i will help - please let me know which tests you're working on
17:33:33  <ryah>so we dont overlap
17:33:38  <CIA-95>node: Maciej MaƂecki master * r6bd0bcd / lib/child_process.js :
17:33:38  <CIA-95>node: child_process: in a new `ChildProcess` set `killed` to false
17:33:38  <CIA-95>node: This behavior is consistent with what v0.4 does. - http://git.io/0CjB8w
17:34:36  <wankdanker>hey all, do you guys want issues created for features that thow 'not yet implemented' or do you have another task list for those? (specifically i'm interested in dgram stuff)
17:35:00  * ericktjoined
17:35:03  <ryah>wankdanker: multicast?
17:35:40  <wankdanker>ryah: plus broadcast and binding multiple processes to the same port/address (works in 4.x)
17:37:28  <wankdanker>i have a module which uses broadcast, which i can give up for multicast, but i need to be able to listen on the same port in multiple processes.
17:38:01  <CIA-95>node: Ben Noordhuis master * rc8646e0 / test/simple/test-child-process-kill.js : test: add ChildProcess.prototype.killed test case - http://git.io/6mtaew
17:38:22  * bnoordhuisis off to dinner
17:49:22  <ryah>wankdanker: hm
17:49:39  <ryah>wankdanker: the problem is windows support
17:49:48  <ryah>wankdanker: do you have a simple test case?
17:49:53  <ryah>it will help us discuss it
17:50:28  <wankdanker>ryah: node-discover is the module, https://github.com/wankdanker/node-discover
17:50:47  <wankdanker>the examples folder has several examples
17:51:02  <wankdanker>i do not have a more simple test case at the moment.
17:51:06  <ryah>[06:31|% 100|+ 273|- 12]: Done <-- win7, vcbuild.bat release test
17:51:19  <wankdanker>if you would like one other than this, i will be happy to put together the interesting bits for you.
17:51:29  <wankdanker>lmk
17:51:37  <ryah>wankdanker: yes, please
17:51:46  <wankdanker>ryah: will do.
17:51:47  <ryah>wankdanker: our deadline for v0.6 is this friday
17:52:02  <ryah>wankdanker: after which api changes will wait for v0.8 - so let's see if we can address this
17:52:07  <ryah>it might be too late though
17:52:10  <igorzi>ryah: [09:49|% 100|+ 295|- 16]: Done <-- test-all
17:52:11  <wankdanker>ryah: nice.
17:52:39  <wankdanker>ryah: i'll put it together for you right now.
17:52:46  <wankdanker>ryah: do you want an issue posted?
17:53:05  <ryah>wankdanker: yes
17:53:13  <wankdanker>ryah: k. thank you.
17:54:32  <igorzi>ryah: os of these tests, 5 are known due to fs.watchFile + process.kill. test-debugger-repl also fails on unix
17:54:49  <igorzi>ryah: what other tests are failing on unix? (so that we know which ones are windows-specific)
17:57:15  <ryah>igorzi: https://gist.github.com/1334365
17:58:52  <ryah>bnoordhuis: what's the deal with set proctitle?
17:59:01  <ryah>bnoordhuis: basically it's only working in linux?
18:02:09  <ryah>bnoordhuis: call
18:03:17  * brsonjoined
18:07:24  * AvianFlujoined
18:12:08  <ryah>igorzi: we're on now
18:24:10  * igorziquit (Quit: Page closed)
18:36:38  * sh1mmerquit (Quit: sh1mmer)
18:42:09  * mikealquit (Quit: Leaving.)
18:48:26  * isaacschanged nick to isaacs[away]
19:12:34  * sh1mmerjoined
19:27:42  * AvianFlu_joined
19:27:51  * AvianFluquit (Disconnected by services)
19:27:56  * AvianFlu_changed nick to AvianFlu
19:32:49  * piscisaureus_joined
19:48:13  * brsonquit (Ping timeout: 252 seconds)
19:54:45  * piscisaureus_quit (Ping timeout: 260 seconds)
19:55:14  * brsonjoined
19:57:07  * kuebk^joined
20:01:44  * mikealjoined
20:02:33  * igorzijoined
20:21:19  <igorzi>http://developer.yahoo.com/blogs/ydn/posts/2011/11/yahoo-announces-cocktails-%E2%80%93-shaken-not-stirred/
20:22:04  * felixgejoined
20:22:04  * felixgequit (Changing host)
20:22:04  * felixgejoined
20:24:19  <wankdanker>mmm. mojito
20:26:36  * felixgequit (Client Quit)
20:35:33  * brsonquit (Ping timeout: 252 seconds)
20:36:27  * brsonjoined
20:46:37  * sh1mmerquit (Ping timeout: 240 seconds)
20:52:39  * piscisaureus_joined
20:53:41  * kuebkjoined
20:53:49  * kuebk^quit (Ping timeout: 240 seconds)
20:53:55  * sh1mmerjoined
21:06:19  <CIA-95>libuv: Igor Zinkovsky uv_kill * r31f94db / (5 files in 4 dirs): uv_kill - http://git.io/BZ1FZA
21:06:52  <igorzi>piscisaureus_ ryah bnoordhuis: ^--- please review (uv_kill)
21:16:23  <piscisaureus_>igorzi: did anything come up at the call that I need to know about?
21:16:51  <igorzi>piscisaureus_: nope.. it was pretty short
21:21:06  * pfox___quit (Ping timeout: 260 seconds)
21:26:59  <CIA-95>libuv: Igor Zinkovsky uv_kill * r15c4253 / (7 files in 4 dirs): review feedback fixes - http://git.io/Hh-t1A
21:27:11  <igorzi>piscisaureus_ ryah: --^
21:27:21  <indutny>ryah: still I think that there're no place in core for that stuff
21:29:41  <piscisaureus_>igorzi: yeah, lght
21:30:17  <piscisaureus_>igorzi: probably we should make sure thate we correctly map errors
21:30:25  <piscisaureus_>but it's not terribly important now
21:30:48  <ryah>indutny: what stuff?
21:35:25  <CIA-95>libuv: Igor Zinkovsky master * r74b49e8 / (10 files in 5 dirs): uv_kill - http://git.io/bmrNdw
21:36:00  <igorzi>ok, i'll do the binding for uv_kill now
21:39:04  <ryah>do you guys ever get failures on the 'message' tests?
21:39:10  <ryah>test.py message
21:39:50  <piscisaureus_>ryah: no failures here
21:40:23  <ryah>somehow i thought our write buffer wasn't flushing for tty - but that doesn't seem to be it
21:40:44  <ryah>we're getting sporadic message errors
21:41:13  * mikealquit (Quit: Leaving.)
21:47:52  <indutny>hm...
21:48:10  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
21:48:10  <indutny>when we started outputing `undefined` in repl?
21:50:37  <ryah>indutny: 2 weeks ago
21:54:32  <indutny>ryah: is that a bug or feature? :)
21:54:56  <indutny>I'm asking because of some debugger's UI problems
21:55:11  * piscisaureus_joined
22:02:15  * dapquit (Quit: Leaving.)
22:05:12  * mikealjoined
22:05:14  <ryah>indutny: feature
22:07:54  <bnoordhuis>back
22:08:04  <bnoordhuis>we had had the call already right?
22:08:40  <bnoordhuis>maybe we should reschedule it - it's at 7 PM local time now, just around dinner time
22:12:29  <piscisaureus_>for me 7pm is actually cook
22:12:31  <piscisaureus_>*cool
22:12:34  <piscisaureus_>except today
22:15:30  <bnoordhuis>ryah: re message tests: yes, fails intermittently
22:15:46  <ryah>bnoordhuis, piscisaureus_: removing WAF is the main priority for v0.8
22:16:11  <bnoordhuis>music to my ears
22:16:20  <ryah>i'd like that to happen early in the v0.7 cycle
22:16:26  <ryah>so we have a long time to play with it
22:17:51  <ryah>so..
22:18:02  <ryah>nm
22:22:14  <bnoordhuis>igorzi: https://github.com/joyent/node/issues/1988#issuecomment-2597208 <- can you do a quick review?
22:29:51  <indutny>ryah: https://github.com/joyent/node/pull/1994
22:31:53  <ryah>indutny: can you do this in a less hacky way?
22:32:24  <indutny>hm...
22:32:25  <indutny>probably
22:32:31  <ryah>i.e. without monkey patching
22:32:32  <indutny>I need to introduce new option for that
22:32:36  <ryah>fine
22:33:26  <indutny>forgot that we don't have settings object in repl's arguments
22:33:39  <indutny>ryah: is it ok to just add fifth argument?
22:35:56  <piscisaureus_>igorzi: yt?
22:38:01  * sh1mjoined
22:38:01  * sh1mquit (Client Quit)
22:38:16  * sh1mjoined
22:38:46  * sh1mmerquit (Disconnected by services)
22:38:46  * sh1mchanged nick to sh1mmer
22:39:44  * dapjoined
22:40:54  <indutny>ryah: https://github.com/joyent/node/pull/1995 <- is that better?
22:42:13  <ryah>indutny: yes
22:42:22  <ryah>update the docs please
22:42:27  <indutny>ryah: ok!
22:43:12  * dapquit (Client Quit)
22:43:16  * isaacs[away]quit (Quit: isaacs[away])
22:46:20  <indutny>updated: https://github.com/joyent/node/pull/1995
22:53:30  <ryah>indutny: thanks
22:54:39  <ryah>can't really figure out what's going on with the message tests
22:56:34  <ryah>indutny: what about the debugger changes?
22:57:09  <ryah>indutny: just squash it all into one commit please and gist it to me
22:57:43  <CIA-95>node: Fedor Indutny master * r9ad27f7 / (doc/api/repl.markdown lib/_debugger.js lib/repl.js):
22:57:43  <CIA-95>node: ignore undefined messages in the debugger repl
22:57:43  <CIA-95>node: fixes #1995 - http://git.io/5x3t4A
22:58:00  <ryah>nm
22:58:08  <indutny>ryah: ok :)
23:03:31  <piscisaureus_>ryah: bnoordhuis: on unix, when a user hits ^C, does that automatically kill all child processes?
23:03:41  <bnoordhuis>piscisaureus_: no
23:04:20  <ryah>piscisaureus_: no
23:04:46  <piscisaureus_>ok, thanks
23:05:22  <ryah>piscisaureus_: the process will send a SIGHUP to all processes in its process group
23:05:47  <piscisaureus_>which will implicitly kill them right?
23:06:10  <ryah>yes
23:06:18  <piscisaureus_>hmmmm
23:06:29  <rmustacc>Assuming they aren't ignoring hup.
23:06:46  <piscisaureus_>yeah ok - I got that
23:09:28  <ryah>ok. figured out why message tests are fialing.
23:10:05  <ryah>they use require('util').error() to output stuff
23:10:19  <ryah>previously this called directly into fprintf(stderr)
23:10:53  <ryah>now util.error goes to process.stderr.write
23:11:12  <ryah>process.stderr could be either tty, file, or pipe stream
23:11:26  <ryah>depending on how you use it
23:11:32  <ryah>in the case of the test runner it's a file
23:11:36  <igorzi>piscisaureus_: what'sup?
23:11:43  <ryah>file streams use require('fs').WriteStream
23:11:47  <ryah>which does not flush
23:11:49  <ryah>-_-
23:12:01  <piscisaureus_>igorzi: I have a question about ASLR
23:12:21  <piscisaureus_>igorzi: is the randomization done every time a process loads?
23:13:44  <ryah>piscisaureus_: probably!
23:13:47  <piscisaureus_>igorzi: or, suppose that I start 2 instances of node.exe, will the image be loaded at the same offset in both processes?
23:16:02  <igorzi>piscisaureus_: i believe so (the randomization is only done at system boot), but let me find out for sure. also, non-windows binaries need to opt-in to be ASLR'ed
23:16:20  <piscisaureus_>igorzi: I think they need to opt out
23:16:42  <piscisaureus_>igorzi: the thing is, I am having trouble with starting the remote debugger
23:16:51  <bnoordhuis>it's a compiler switch, right?
23:17:01  <bnoordhuis>compiler|linker
23:17:06  <igorzi>yes
23:17:14  <piscisaureus_>igorzi: there are 2 things I can think of: (1) use a mailslot, (2) use CreateRemoteThread
23:17:32  <piscisaureus_>I think aslr is opt-in by default now btw
23:17:54  <piscisaureus_>http://msdn.microsoft.com/en-us/library/bb384887.aspx
23:18:13  <igorzi>right, vs2008 it wasn't on by default, vs2010 it is
23:18:32  <igorzi>piscisaureus_: why do you care about ASLR?
23:19:01  <piscisaureus_>igorzi: because if I go for the CreateRemoteThread option, I need to make assumptions about the other process' address spac
23:19:02  <piscisaureus_>e
23:21:01  <ryah>okay - tools/test.py message is also failing sometimes on windows
23:21:19  <ryah>if you run it a few times you'll see
23:22:23  <CIA-95>node: Ben Noordhuis master * r1ba834b / doc/api/http.markdown : docs: http: link to relevant net.Socket methods - http://git.io/5c-hrQ
23:22:50  <piscisaureus_>ryah: not here, really.
23:23:03  <piscisaureus_>I am not saying there is no problem btw
23:26:02  <ryah>C:\Users\ryan\node>python tools\test.py message
23:26:02  <ryah>=== release throw_custom_error ===
23:26:02  <ryah>Path: message/throw_custom_error
23:26:02  <ryah>node.js:201
23:26:02  <ryah> throw e; // process.nextTick error, or 'error' event on first tick
23:26:04  <ryah> ^
23:26:07  <ryah>MyCustomError: This is a custom message
23:26:09  <ryah>Command: C:\Users\ryan\node\Release\node.exe C:\Users\ryan\node\test\message\thr
23:26:12  <ryah>ow_custom_error.js
23:26:14  <ryah>=== release throw_non_error ===
23:26:17  <ryah>Path: message/throw_non_error
23:26:19  <ryah>node.js:201
23:26:22  <ryah> throw e; // process.nextTick error, or 'error' event on first tick
23:26:24  <ryah> ^
23:26:27  <ryah>[object Object]
23:26:29  <ryah>Command: C:\Users\ryan\node\Release\node.exe C:\Users\ryan\node\test\message\thr
23:26:32  <ryah>ow_non_error.js
23:26:34  <ryah>[00:01|% 100|+ 4|- 2]: Done
23:26:37  <ryah>C:\Users\ryan\node>
23:28:02  <piscisaureus_>maybe it's a gc timing issue
23:29:43  <ryah>my bug is because we don't flush streams on exit
23:29:59  <ryah>(im fairly certain)
23:30:00  <bnoordhuis>piscisaureus_: i think it may be that the layout of stack traces changed a bit
23:30:12  <piscisaureus_>hmm
23:30:16  <ryah>no
23:30:18  <piscisaureus_>reverse heisenbug
23:30:25  <piscisaureus_>It suddenly appeared
23:30:41  <piscisaureus_>when analyzing it
23:31:28  <piscisaureus_>ryah: in that case we should flush 'em :-)
23:31:45  <bnoordhuis>oh, not throw_custom_error btw
23:31:47  <bnoordhuis>that was undefined_reference_in_new_context
23:31:59  <bnoordhuis>but koichi fixed that one already
23:32:05  <ryah>it appeared in d77ce4b9989d143c7b5ab7640bd6c0cbe261e458
23:32:16  <piscisaureus_>ryah: the problem is that we lack a proper way to do it
23:37:10  * mikealquit (Quit: Leaving.)
23:37:55  <bnoordhuis>[16:13|% 100|+ 607|- 15]: Done <- sunos, better than it used to be
23:41:42  <igorzi>i need libuv updated in node.. any objections?
23:42:17  <ryah>can i land something first?
23:42:23  <ryah>give me 5 min
23:43:26  <igorzi>sure
23:43:27  <CIA-95>node: Ryan Dahl master * r850609e / (110 files in 6 dirs): Remove separation of libuv tests - http://git.io/eUr7MA
23:47:34  <CIA-95>libuv: Ryan Dahl master * re1bee05 / (src/unix/stream.c src/unix/tty.c):
23:47:35  <CIA-95>libuv: UNIX: Loop on blocking streams
23:47:35  <CIA-95>libuv: Also removes a superfluous syscall during uv_tty_init for writable TTY
23:47:35  <CIA-95>libuv: streams. - http://git.io/StRy_w
23:47:42  <ryah>igorzi: okay.
23:47:58  * AvianFlu_joined
23:48:29  <piscisaureus_>isaacs, ryah: why is https://github.com/joyent/node/issues/1884 closed?
23:50:01  <ryah>piscisaureus_: probably a mistake
23:50:55  * AvianFluquit (Ping timeout: 255 seconds)
23:52:27  <CIA-95>node: Igor Zinkovsky master * r143aeb9 / (14 files in 5 dirs): upgrade libuv to e1bee05ecdbffbe9de37830530ad2ae2f1fb41c8 - http://git.io/LwA3lw