00:00:00  <ryah>piscisaureus: night
00:00:02  <piscisaureus>igorzi: I won't review your stuff today, but I'll be up early tomorrow so I can have it done
00:00:09  <piscisaureus>when you get up
00:00:14  <piscisaureus>thx all
00:01:09  <rmustacc>See you piscisaureus
00:02:22  <bnoordhuis>okay, i suppose i should be off to bed too
00:02:34  <bnoordhuis>ryah: https://github.com/bnoordhuis/node/compare/http-hack
00:03:06  <bnoordhuis>it passes all the tests i wrote but not, to name something, simple/test-http-server :/
00:03:34  <ryah>hm
00:03:35  <ryah>ok
00:05:49  <bnoordhuis>at least now you know i haven't been slacking off
00:06:07  <bnoordhuis>not the whole time anyway
00:06:07  * piscisaureusquit (Ping timeout: 248 seconds)
00:06:14  <bnoordhuis>sleep tight people
00:06:54  * bnoordhuisquit (Quit: Leaving)
00:07:19  <ryah>yes, faster - great
00:07:30  <ryah>he's already gone
00:09:21  <ryah>moderately faster...
00:10:31  <ryah>not fast enough!
00:10:32  <ryah>damn
00:28:20  * isaacsquit (Quit: isaacs)
00:31:28  * bradleymeckjoined
00:32:10  <igorzi>ryah: i want to remove this: https://github.com/joyent/libuv/blob/master/include/uv.h#L378-384 together with ipc work
00:32:14  <igorzi>ryah: are you ok with it?
00:37:48  <ryah>igorzi: yes
00:40:15  * bradleymeckquit (Ping timeout: 248 seconds)
01:36:13  * brsonquit (Ping timeout: 240 seconds)
02:33:07  <indutny>ryah: sorry
02:33:13  <indutny>going to take a look
02:33:29  * indutnyyawns
02:41:59  <indutny>ryah: so as I can see you fixed that :D
02:52:04  * indexzeroquit (Quit: indexzero)
03:30:31  * ericktquit (Quit: erickt)
03:38:22  * ericktjoined
03:56:49  <ryah>indutny: yeah, already fixed
04:00:33  * ericktquit (Quit: erickt)
05:36:27  * isaacsjoined
06:41:23  <dmkbot>joyent/libuv: creationix: Wrong error message for fs_* operations - https://github.com/joyent/libuv/issues/210
07:02:08  * stagas_joined
07:03:14  * stagasquit (Ping timeout: 252 seconds)
07:07:38  * stagas_quit (Ping timeout: 252 seconds)
07:43:23  <indutny>pquerna: yt?
07:43:25  <indutny>:)
08:04:35  * mralephjoined
08:06:53  * stagasjoined
08:20:17  * piscisaureusjoined
08:20:21  * isaacsquit (Quit: isaacs)
08:25:26  * piscisaureusquit (Quit: ~ Trillian Astra - www.trillian.im ~)
08:26:35  * piscisaureusjoined
08:26:45  * piscisaureusquit (Client Quit)
08:32:36  * mralephquit (Quit: Leaving.)
08:34:49  * piscisaureus_joined
08:45:58  <luxigo>i had this trying fishback-standalone but i dunno why "node: src/uv-common.c:92: uv_err_name: Assertion `0' failed."
08:52:05  <CIA-53>libuv: Igor Zinkovsky ipc2 * r6f3e89b / (14 files in 6 dirs): ipc on windows (+9 more commits...) - http://git.io/b-75AA
08:54:15  <igorzi>ryah: ipc2 branch is ipc branch + ipc on windows -> rebased against master
08:54:32  <luxigo>obviously there's much less error codes handled in uv-common.c uv_err_name() than defined in uv.h
08:54:45  <igorzi>ryah: (i didn't want to force push into ipc branch)
08:55:53  <luxigo>ev_err_name() should return a numerical value by default instead of exiting
08:57:25  <luxigo>u read uv_err_name :-)
09:14:02  <piscisaureus_>luxigo: instead of exiting?
09:58:51  <piscisaureus_>ryah: why doesn't http.writeHead throw if you call it twice?
09:59:04  <piscisaureus_>just got bitten by this
10:17:58  * stagasquit (Quit: bye)
10:20:54  * piscisaureus_quit (Ping timeout: 244 seconds)
10:22:19  * piscisaureus_joined
11:09:51  * mralephjoined
12:23:01  <luxigo>piscisaureus_: theres a switch(err.code) default: assert(0); in uv-common.c line 85
12:24:37  <luxigo>piscisaureus_: could return a "uv error code nnn" message instead.... but yes there should be a "case" for every error code..
12:27:03  <piscisaureus_>There should be a case for evert error code indeed… that assert is going to stay there, if there's no case for the error code then that's a bug.
12:27:44  * dmkbotquit (Remote host closed the connection)
12:27:49  * dmkbotjoined
12:28:12  <luxigo>it would be more solid to return a numerical value, and it would be more useful even if the assert(0) stay here
12:29:00  <piscisaureus_>are there particular errors missing?
12:29:30  <luxigo>i dunno which happened, but yes in uv.h there's lot more
12:36:25  * piscisaureus_quit (Quit: Leaving.)
12:37:49  * piscisaureusjoined
12:47:01  * pieternjoined
13:31:16  * pieternquit (Quit: pietern)
13:57:42  * ericktjoined
13:58:43  * Casanjoined
14:04:35  <piscisaureus>hey
14:04:41  <piscisaureus>any linux experts here?
14:05:07  <piscisaureus>s/linux/unix/
14:10:22  * indutnyis not a linux expert
14:10:30  <indutny>but probably I can help you
14:10:39  <indutny>piscisaureus: yt?
14:10:45  <piscisaureus>yes
14:11:07  <piscisaureus>does a write to a local tty every really return EAGAIN?
14:11:11  <piscisaureus>*ever
14:11:27  <piscisaureus>^-- indutny
14:12:07  <indutny>piscisaureus: oh, that's really out of my knowledge, sorry. but I'll take a look at it
14:12:14  <indutny>probably I'll be able to google something
14:12:19  <piscisaureus>well
14:12:23  <piscisaureus>I can google too :-)
14:12:37  <indutny>heh :)
14:12:40  <indutny>k
14:41:37  <erickt>ryah: ping? your kqueues commit 8e9a3 isn't compiling for me. Saying error: ‘uv_fs_event_t’ has no member named ‘event_watcher’
14:48:12  <piscisaureus>I think bnoordhuis made that
14:48:19  <piscisaureus>probably he forgot to add something
14:52:18  <indutny>erickt: yeah
14:52:21  <indutny>seen this
14:54:05  <erickt>ah, I think it's because gyp is compiling with "-mmacosx-version-min=10.4"
14:55:40  * bnoordhuisjoined
14:56:07  <bnoordhuis>so i'm finally in-crowd now
14:56:12  <bnoordhuis>i bought a macbook
15:12:45  <indutny>hahaha
15:12:56  <indutny>bnoordhuis: congrats
15:13:11  <indutny>still using hp dv6 with ubuntu
15:13:32  <indutny>but I love osx much more
15:16:22  <bnoordhuis>well... it's mostly to cross-check stuff
15:17:10  <bnoordhuis>so far it feels like my linux machine in the late '90s, early '00s
15:17:16  <bnoordhuis>old ssh, old bash, old gdb
15:17:46  <bnoordhuis>and vnc'ing into the machine is dog slow for some reason
15:18:00  <bnoordhuis>but i might get to love it still
15:18:25  <indutny>heh
15:18:33  <indutny>just reinstall it
15:18:40  <indutny>I'm doing this time after time
15:18:54  <indutny>this helps to be more up-to-date
15:19:19  <indutny>and requires you to have all necessary configs in some reliable place
15:19:38  <bnoordhuis>reinstall? it comes with lion installed
15:19:55  <indutny>bnoordhuis: ah, you mean osx
15:19:58  <indutny>bnoordhuis: I meant linux
15:24:57  * ericktquit (Quit: erickt)
15:31:12  * ericktjoined
15:38:27  * ericktquit (Quit: erickt)
16:12:18  * piscisaureusquit (Ping timeout: 260 seconds)
16:23:05  <ryah>bnoordhuis: your http-parser branch isn't faster than v0.4 - but i didn't get time to look into it
16:23:31  <bnoordhuis>ryah: it's not quite finished yet
16:23:48  <bnoordhuis>what did you benchmark? raw parser performance or http_simple?
16:23:55  <ryah>http_simple
16:24:18  <ryah>ab -c 100 -n 10000 | grep Req
16:24:30  <bnoordhuis>right, i'm not yet done with tweaking http.js
16:26:05  <ryah>k
16:38:44  * piscisaureusjoined
16:38:48  <ryah>http://codereview.chromium.org/8139027/
16:38:53  <ryah>mraleph!
16:40:58  <piscisaureus>ryah: how can we get rid of node::stdio::Flush?
16:41:15  <mraleph>ryah yes :-) it is not in Chrome yet
16:41:49  <indutny>mraleph: !!!!
16:41:52  <indutny>о майн год
16:45:28  <bnoordhuis>at least the new http parser is faster than master's...
16:46:15  <bnoordhuis>an earth-shattering 8-9% :(
16:46:19  <ryah>piscisaureus: don't use stdio.h
16:46:46  <bnoordhuis>v0.4 is faster still
16:46:48  * bnoordhuissighs
16:47:09  <ryah>:(
16:47:18  <ryah>we need to deal with this somehow...
16:47:28  <bnoordhuis>i'm open to suggestions
16:47:36  <bnoordhuis>i think i've cut out nearly all the fat
16:48:30  <ryah>we should strace it - make sure we're not calling shutdown() - or something stupid.
16:48:51  <ryah>also might consider not having writeReq go into JS if the callback isn't present?
16:49:07  <ryah>(although that would be annoying)
16:49:22  <bnoordhuis>does that ever happen?
16:50:56  <ryah>the callback doesn't - but we're creating lots of writeReq
16:51:23  <bnoordhuis>so... batch the writereqs and do a single call into js land? or is that a silly idea?
16:55:04  <ryah>i dont know. let's first look at the syscalls. im heading into work. i'll bb in a few hours
16:58:54  * ericktjoined
17:50:49  * Casanquit (Quit: Leaving)
17:55:19  * brsonjoined
17:55:46  * piscisaureusquit (Ping timeout: 258 seconds)
18:03:51  <ryah>bnoordhuis: this might be a hint at why we're slow http://github.com/joyent/node/commit/49806864e489dd73bdda56ec66a1c8a9450fa4a7
18:05:33  <bnoordhuis>ryah: thanks, i'll look into it
18:29:13  * brsonquit (Ping timeout: 252 seconds)
19:23:10  * CoverSlidequit (Ping timeout: 258 seconds)
19:23:54  * CoverSlidejoined
19:39:34  * mraleph1joined
19:39:44  * mralephquit (Read error: Connection reset by peer)
19:49:06  <ryah>mraleph1:
19:49:06  <ryah>[email protected]:~/src/v8% svn up
19:49:06  <ryah>At revision 9533.
19:49:06  <ryah>[email protected]:~/src/v8% head -1 ChangeLog
19:49:07  <ryah>2011-09-15: Version 3.6.4
19:49:10  <ryah>:(
19:49:29  * ryahtopic: libuv
19:50:21  <mraleph1>ryah: hm
19:52:03  <mraleph1>ryah: so it was not commited yet.
19:52:17  <mraleph1>ryah: googlecode.com is not working for me atm
20:09:09  * piscisaureusjoined
20:13:21  <piscisaureus>mraleph1: you should also publish these GC visualizations
20:13:25  <piscisaureus>the tools
20:13:46  <piscisaureus>die sind ganz geil
20:23:14  <piscisaureus>can we have a reasonable way to end the event loop in libuv
20:23:27  <piscisaureus>one that allows us to flush writes
20:23:45  * mraleph1quit (Quit: Leaving.)
20:24:09  <piscisaureus>like, close all handles, then run the event loop until it exits, but make no more callbacks into js-land
20:24:25  <piscisaureus>ryah: bnoordhuis: igorzi: --^
20:25:03  <piscisaureus>also makes more sense if we are serious about multiplicity
20:28:15  <ryah>gc visualizations?
20:32:29  <ryah>piscisaureus: i dont know...
20:32:53  <piscisaureus>ryah: yes at jsconf erik corry showed us awesome gc visualizations
20:33:03  <ryah>what did they look like
20:33:16  <piscisaureus>ehm
20:33:42  <piscisaureus>you could see different types of spaces get filled up and drain
20:34:05  <piscisaureus>also there was a graph of gc pauses vs exectution measured in blocks of 20ms
20:58:37  <bnoordhuis>piscisaureus: why do you need that? the "no callbacks" thing, that is, not the gc visualizer
20:59:13  <piscisaureus>bnoordhuis: if you make writes to stdout or something, and then your process dies
20:59:21  <piscisaureus>you lose that stuff
20:59:27  <piscisaureus>not very helpful for debugging
21:00:23  <bnoordhuis>right, you want a kind of forced flush?
21:00:25  <ryah>piscisaureus: your output is blocking - so why are you worried
21:00:37  <piscisaureus>ryah: not if you redirect it though
21:01:11  <ryah>we cannot drain a file queue without going into js
21:01:21  <ryah>fs.WriteStream is in js...
21:01:21  <piscisaureus>ryah: https://github.com/joyent/node/issues/1669
21:01:28  <piscisaureus>ah
21:01:29  <piscisaureus>too bad
21:07:11  <piscisaureus>seems that we could do a call now - everyone is active
21:07:42  <bnoordhuis>define "active"
21:07:55  <piscisaureus>igorzi just sent me an email
21:08:00  <piscisaureus>and ryah hangs around
21:08:18  <piscisaureus>bnoordhuis is "working"
21:08:32  * bnoordhuisrefreshes slashdot
21:09:28  <ryah>just wait until tomorrow - i dont want to call now
21:09:44  <piscisaureus>omg
21:09:46  <piscisaureus>he hates us
21:09:58  <ryah>trying to finish this binding.. :P
21:10:09  <piscisaureus>ok
21:10:20  <ryah>it's very difficult to work when im on hacker news everyday :/
21:10:40  <bnoordhuis>hey, at least you're responsible for the first HN-worthy topic in a week
21:10:53  <piscisaureus>which?
21:11:32  <bnoordhuis>piscisaureus: https://plus.google.com/115094562986465477143/posts/aEJE2vff4jS
21:11:40  <bnoordhuis>err... http://news.ycombinator.com/item?id=3075355
21:13:02  <piscisaureus>Is Rob Pike important to you guys?
21:14:29  <ryah>piscisaureus: he's one of the unix guys
21:15:33  <piscisaureus>ah he's god's god
21:16:15  <ryah>I learned last night that God runs Solaris 7
21:16:31  <bnoordhuis>then He should upgrade
21:17:15  <bnoordhuis>so why does wireless / openssh suck so bad on os x?
21:17:38  <bnoordhuis>my ssh session regularly locks up for 30 seconds straight but i'm not seeing major packet loss
21:17:49  <bnoordhuis>this is while ssh'ing *into* the macbook btw
21:18:19  <ryah>are you doing benchmarking on the same machine?
21:18:23  <bnoordhuis>seems to correspond with the cpu being pegged
21:18:31  <bnoordhuis>so that's a yes
21:18:55  <ryah>do this for benchmarking (probably unrelated)
21:18:55  <ryah>sudo sysctl -w net.inet.ip.portrange.first=12000
21:18:56  <ryah>sudo sysctl -w net.inet.tcp.msl=1000
21:18:56  <ryah>sudo sysctl -w kern.maxfiles=1000000 kern.maxfilesperproc=1000000
21:19:04  <igorzi>piscisaureus: you want to limit the pending socket (from ipc) to just 1?
21:19:11  <piscisaureus>igorzi: yes
21:19:17  <igorzi>piscisaureus: i had it coded like that at first :)
21:19:49  <piscisaureus>I don't know if ryah and bnoordhuis agree
21:19:53  <bnoordhuis>ryah: that boosts the ephemeral port range and the kernel's fd space?
21:19:59  <igorzi>piscisaureus: and then if a new one comes in before the 1 is accepted? replace? or reject the new one?
21:20:14  <ryah>bnoordhuis: yeah
21:20:26  <bnoordhuis>okay, i'll give it a spin
21:20:48  <piscisaureus>igorzi: should we not just pause when the user doesn't pick it up?
21:20:54  <ryah>bnoordhuis: also you might want to use this: https://github.com/joyent/dtruss-osx
21:21:02  <ryah>bnoordhuis: that's strace equiv
21:21:08  <bnoordhuis>ryah: ah sweet, thanks
21:21:16  <piscisaureus>igorzi: e.g. don't post any more reads until the user picks it up
21:21:28  <ryah>bnoordhuis: also you should checkout Instruments ( open -a Instruments)
21:21:35  <piscisaureus>ryah: what happens on linux when the user doesn't accept the fd that arrives through read2_cb?
21:21:41  <ryah>which is the best profiling program ever
21:22:00  <igorzi>piscisaureus: that means that we'll be missing raw (non-fd) data
21:22:13  <ryah>piscisaureus: leaks fds
21:22:24  <ryah>piscisaureus: (which i should fix)
21:22:31  <piscisaureus>ryah: how are you going to fix it?
21:22:32  <igorzi>piscisaureus: i think it's fine..people will probably not be sending more than one, right?
21:22:44  <piscisaureus>igorzi: not too much anyway :-)
21:22:48  <piscisaureus>maybe a few
21:23:02  <igorzi>but not at the rate that we'll have to queue them..
21:23:07  <ryah>piscisaureus: are you doing process.stderr ?
21:23:30  <piscisaureus>igorzi: the user should just always decide what to do with the socket in read2_cb
21:23:36  <piscisaureus>either use or discard
21:23:45  <piscisaureus>maybe we should just discard (close) it when the user doesn't pick it up
21:24:00  <piscisaureus>ryah: I don't know what to do :-/
21:24:02  <igorzi>piscisaureus: ok.. i'm cool with that if everyone agrees
21:24:18  <igorzi>(i had it working like that originally, but then decided to queue)
21:25:01  <igorzi>piscisaureus: i gtg.. i'll create a new patch (which address your comments) later today.
21:25:19  <piscisaureus>igorzi: ok, cool
21:35:43  <ryah>piscisaureus: needs to be a TTYWrap
21:35:53  <ryah>piscisaureus: in the same way that process.stdout is
21:36:08  <piscisaureus>ryah - sure
21:36:22  <piscisaureus>ryah: but how can I make it blocking on uv-unix?
21:36:52  <ryah>piscisaureus: mm. needs more work..
21:37:34  <piscisaureus>ryah: it must be blocking, otherwise when a crash happens we only get a partial stacktrace and stuff
21:37:42  <piscisaureus>because at some point fwrite is going to return EAGAIN
21:40:11  <ryah>yyes
21:42:56  * brsonjoined
21:46:47  <bnoordhuis>ryah: are we going to do any more 0.4.x releases?
22:01:06  <ryah>bnoordhuis: i dont want to
22:01:52  <bnoordhuis>ryah: roger (i ask because of this -> https://github.com/joyent/node/pull/1828 )
22:05:42  <ryah>hm
22:47:51  <piscisaureus>CMAKE :-(
22:49:08  <bnoordhuis>wtf... glibc's strerror() leaks 1K of memory when you pass it an invalid error number
22:49:44  <rmustacc>...
22:49:44  <piscisaureus>uv-win strerror will also leak memory when you pass a valid errno
22:53:18  <bnoordhuis>piscisaureus: that's not a typo? _valid_ errno?
22:53:35  <piscisaureus>bnoordhuis: yes, no typo
22:53:38  <ryah>glibc :(
23:02:25  <bnoordhuis>ryah piscisaureus: does https://github.com/bnoordhuis/libuv/compare/issue210 look like a sensible solution for https://github.com/joyent/libuv/issues/210 ?
23:03:12  <bnoordhuis>it's kind of nasty in that you have a function that maps system errors to libuv errors and another function that does the reverse
23:03:35  <piscisaureus>bnoordhuis: well uhm... I have no strong opinion about the unix implementation
23:03:43  <piscisaureus>but for windows this is not going to work
23:03:55  <piscisaureus>because there are too many errors that have no CRT equivalent
23:04:20  <piscisaureus>bnoordhuis: honestly I just want to pull error messages for all UV_EXX into libuv
23:04:26  <bnoordhuis>piscisaureus: how does the windows uv_strerror() function work?
23:04:44  <piscisaureus>bnoordhuis: uv_strerror uses the WIN32 error code
23:04:55  <piscisaureus>it makes a syscall that copies the system error message into a user buffer
23:05:07  <bnoordhuis>right, i found it
23:05:19  <bnoordhuis>FormatMessageA( /* lots of arguments */ )
23:05:26  <piscisaureus>yes
23:06:55  <bnoordhuis>i suppose we could pull in the error messages
23:07:17  <bnoordhuis>kind of sucks because you just know there's going to be someone complaining about i18n
23:07:55  <piscisaureus>you mean a node user?
23:07:57  <piscisaureus>or a libuv user?
23:08:05  <bnoordhuis>either
23:08:16  <piscisaureus>node users can go fuck themselves
23:08:23  <piscisaureus>libuv users can have their own strings
23:09:07  * piscisaureus<3 users
23:09:21  <bnoordhuis>ryah, you okay with that?
23:10:46  * AvianFlujoined
23:11:23  * creationixjoined
23:11:33  <creationix>sweet, a room just for libuv!
23:11:47  <ryah>bnoordhuis: kind of hacky
23:12:00  <bnoordhuis>creationix: actually, all we do is discuss the latest HN and slashdot posts
23:12:16  <creationix>well, I'll ask uv questions as I get them
23:12:17  <bnoordhuis>ryah: my patch or pulling in the error messages?
23:12:34  <ryah>bnoordhuis: yeah
23:12:48  <bnoordhuis>i realize it was a boolean question...
23:12:49  <ryah>but sure - i guess it's a fine stop gap
23:12:57  <creationix>bnoordhuis: did you see my issue I filed on github re: error messages
23:13:09  <bnoordhuis>creationix: that's what we were discussing :)
23:13:10  <ryah>bnoordhuis: i kind of think we need to have the error message in libuv
23:13:42  <bnoordhuis>ryah: that's what piscisaureus and i have been talking about the last 10 minutes
23:14:08  <ryah>i18n - meh
23:14:52  <ryah>bnoordhuis: just land your patch - maybe add a /* FIXME should probably pull error messages into libuv */
23:14:59  <bnoordhuis>ryah: cool
23:17:05  <creationix>can you not just translate the uv error codes to the ones that the posix library is expecting? (Forgive my ignorance)
23:17:47  <piscisaureus>posix library and windows are not good friends
23:18:08  <CIA-53>libuv: Ben Noordhuis master * rc787046 / (src/unix/error.c test/test-list.h uv.gyp test/test-error.c): error reporting: return sensible messages for synthetic errors - http://git.io/SKo_jg
23:18:19  <creationix>piscisaureus: good point
23:18:31  * creationixis pulling
23:19:04  <creationix>my entire project including libuv and luajit compiles in 8 seconds :)
23:19:08  <piscisaureus>creationix: piscisaureus.no.de if you want to read up on the discussion we just had
23:20:23  <creationix>nice, "No such file or directory" instead of "Success" for ENOENT
23:20:26  <creationix>that makes more sense
23:20:35  <piscisaureus>yes - we're gonna need this too
23:20:39  <piscisaureus>on windows
23:23:45  <creationix>btw, if you're on windows, luvit is far enough along to write many classes of web apps
23:23:56  <creationix>it has full-ish http, tcp and basic fs stuff
23:24:02  <creationix>err, not windows, linux
23:24:15  <creationix>I haven't tried building on windows yet
23:24:34  <bnoordhuis>did apple deprecate all of openssl in lion? i get warnings like "'BIO_new' is deprecated"
23:40:06  * creationixpart
23:44:25  * isaacsjoined
23:45:47  <ryah> bnoordhuis really?
23:46:04  <bnoordhuis>ryah: pretty much seems like it
23:50:43  <ryah>what are people supposed to use?
23:59:13  * AvianFluquit (Ping timeout: 260 seconds)