00:06:39  * brsonquit (Ping timeout: 252 seconds)
00:09:53  * isaacsquit (Ping timeout: 258 seconds)
00:10:58  * sh1mmerquit (Ping timeout: 244 seconds)
01:16:33  * mikealquit (Quit: Leaving.)
01:20:54  * isaacsjoined
02:47:59  * bnoordhuisjoined
03:22:53  <CIA-53>libuv: Ben Noordhuis master * rbd82d02 / src/unix/ev/ev_epoll.c :
03:22:53  <CIA-53>libuv: ev: fix epoll_init file descriptor leak
03:22:53  <CIA-53>libuv: Fix the edge case where epoll_init() leaks a file descriptor when it is called
03:22:53  <CIA-53>libuv: when the process has no open file descriptors. - http://git.io/IG-vew
03:29:49  * isaacsquit (Quit: isaacs)
04:50:32  * isaacsjoined
05:10:30  * AvianFluquit (Ping timeout: 260 seconds)
05:25:13  * mikealjoined
05:37:00  * isaacsquit (Quit: isaacs)
07:08:05  <bnoordhuis>epoll_ctl() makes me sad... ~25% of total syscall time for programs with lots of active fds :(
07:32:28  * mralephjoined
07:53:32  * mralephquit (Quit: Leaving.)
09:45:12  <CIA-53>node: koichik master * rf53d092 / (9 files in 5 dirs):
09:45:12  <CIA-53>node: tls, https: add passphrase option
09:45:12  <CIA-53>node: Fixes #1925. - http://git.io/rLjB9g
09:48:36  * mikealquit (Ping timeout: 276 seconds)
09:54:26  * piscisaureus_joined
09:54:37  <piscisaureus_>bnoordhuis: hey
09:54:44  * mikealjoined
09:54:47  <bnoordhuis>piscisaureus_: ho
09:55:18  <piscisaureus_>bnoordhuis: is het voor jou zondag of maandag?
09:55:30  <piscisaureus_>bnoordhuis: to the point: extensions werken niet meer op unix?
09:55:40  <bnoordhuis>maandag :)
09:55:43  <bnoordhuis>en ze werken alweer
09:55:47  <piscisaureus_>:-)
09:56:57  <bnoordhuis>was alleen een probleem met extensies die NODE_MODULE gebruikten
09:57:36  <piscisaureus_>bnoordhuis: hmm, vreend
09:57:52  <piscisaureus_>bnoordhuis: ik heb het eigenlijk alleen getest met NODE_MODULE extensies
09:58:03  <bnoordhuis>maar waarschijnlijk niet op unix
09:58:16  <piscisaureus_>bnoordhuis: heb je wel de nieuwe header geinstalleerd?
09:58:30  <bnoordhuis>off-by-one error, je zocht naar "/foo_module" i.p.v. "foo_module"
09:58:49  <piscisaureus_>hmm
09:58:49  <piscisaureus_>ouch
09:59:10  <bnoordhuis>piscisaureus_: https://github.com/joyent/node/commit/a1fa3ef
09:59:14  <piscisaureus_>bnoordhuis: heb je al een fix daarvoor geland?
09:59:42  <bnoordhuis>piscisaureus_: zie link :)
09:59:47  <piscisaureus_>bnoordhuis: ik ga proberen de stat poller te porten naar windows
10:00:02  <piscisaureus_>zodat mensen voorlopig nog watchFile kunnen gebruiken
10:00:07  <piscisaureus_>hmm github seems down
10:05:00  * piscisaureus__joined
10:08:24  * piscisaureus_quit (Ping timeout: 240 seconds)
10:12:06  <bnoordhuis>piscisaureus__: at any rate, don't panic - it's fixed
10:12:16  <piscisaureus__>bnoordhuis: you should have told me
10:12:32  <bnoordhuis>piscisaureus__: i have
10:12:33  <piscisaureus__>I just strangled a puppy
10:12:40  <piscisaureus__>because I was freaking out
10:12:45  <bnoordhuis>that puppy probably had it coming anyway
10:13:09  <piscisaureus__>I tried to tell the judge
10:13:16  <piscisaureus__>That girl had it coming anyway
10:13:30  <piscisaureus__>Didn't work
10:23:42  <piscisaureus__>bnoordhuis: uv_stat_poller_t?
10:25:38  <bnoordhuis>piscisaureus__: from an api viewpoint it'd be nicer if it was just uv_fs_event_t
10:26:08  <piscisaureus__>bnoordhuis: I agree
10:26:28  <piscisaureus__>bnoordhuis: but it's going to be more difficult to port fs.watchFile then
10:28:32  <bnoordhuis>i suppose so
10:28:46  <bnoordhuis>it should at the very least be uv_fs_stat_poller_t
10:28:55  <piscisaureus__>so long
10:28:58  <bnoordhuis>or maybe uv_fs_poll_t
10:29:04  <piscisaureus__>but yeah
10:29:17  <bnoordhuis>that's what she said btw
10:29:25  <piscisaureus__>bnoordhuis: let's do this temporarily
10:29:38  <piscisaureus__>bnoordhuis: until fs.watch is awesome and super reliable etc
10:39:33  <bnoordhuis>hrm, either epoll_ctl() got a hell of a lot faster in linux 3.1
10:39:42  <bnoordhuis>or read() / sendto() have regressed
10:40:33  <bnoordhuis>on 2.6.32, 25% of syscall time is spent in epoll_ctl()
10:40:40  <bnoordhuis>on 3.1, it's <2%
10:41:07  <bnoordhuis>implausible...
10:41:59  <bnoordhuis>piscisaureus__: what kernel do you run?
10:42:10  <piscisaureus__>bnoordhuis: mac os
10:42:21  <bnoordhuis>piscisaureus__: poor soul
10:42:28  <bnoordhuis>you only run linux in a vm?
10:42:52  <piscisaureus__>bnoordhuis: yes
10:43:23  <bnoordhuis>piscisaureus__: want to try something?
10:43:44  <piscisaureus__>bnoordhuis: sure. Maar wacht ff want ik moet die shit eerst booten
10:43:55  * AvianFlujoined
10:45:10  <bnoordhuis>piscisaureus__: https://github.com/bnoordhuis/epoll-bench
10:45:34  <bnoordhuis>compile with make, then run `strace -c ./bench`
10:45:55  <bnoordhuis>that'll give you syscall stats when you exit
10:46:28  <piscisaureus__>bnoordhuis: how do I get my kernel version btw?
10:46:33  <bnoordhuis>piscisaureus__: uname -a
10:46:50  <piscisaureus__>Linux piscisaureus2 2.6.38-11-generic #48-Ubuntu SMP Fri Jul 29 19:05:14 UTC 2011 i686 i686 i386 GNU/Linux
10:46:58  <bnoordhuis>good, smack in the middle
10:47:28  <piscisaureus__>Should I upgrade to unbuntu 11.10?
10:47:56  <bnoordhuis>meh
10:48:05  <piscisaureus__>no?
10:48:06  <piscisaureus__>fine
10:48:19  <piscisaureus__>bench is running btw
10:49:19  <bnoordhuis>what do the top 3 or 4 syscalls look like when you ctrl-c?
10:49:23  <piscisaureus__>bnoordhuis: how long should this bench run?
10:49:28  <piscisaureus__>oh, I have to break it
10:49:36  <piscisaureus__>epoll_ctl
10:49:53  <bnoordhuis>what %?
10:50:02  <piscisaureus__>I resized my terminal, now it's all gone. wtf
10:50:07  <bnoordhuis>haha, run it again
10:50:09  <piscisaureus__>^C% time seconds usecs/call calls errors syscall
10:50:09  <piscisaureus__>------ ----------- ----------- --------- --------- ----------------
10:50:09  <piscisaureus__> 43.73 0.352652 1 248825 epoll_ctl
10:50:09  <piscisaureus__> 30.09 0.242673 2 124446 read
10:50:28  <bnoordhuis>hrm, that's pretty bad
10:50:46  <bnoordhuis>what happens if you run `strace -c ./bench 1000`?
10:51:08  <bnoordhuis>let the bench run for 15-20s
10:52:10  <piscisaureus__>bnoordhuis: https://gist.github.com/1327270
10:52:24  <bnoordhuis>it's wildly irregular on 3.1 btw
10:52:25  <bnoordhuis> 92.47 0.013112 1 21819 epoll_ctl
10:52:25  <bnoordhuis> 4.91 0.000696 33 21 epoll_wait
10:52:25  <bnoordhuis> 2.62 0.000372 0 11000 sendto
10:52:30  <bnoordhuis>seriously...
10:52:30  <piscisaureus__>wut
10:52:40  <piscisaureus__>92%
10:52:43  <bnoordhuis>but on the next run it's like 2 or 3%
10:52:49  <bnoordhuis>doesn't make sense
10:52:51  <piscisaureus__>hmm
10:53:03  <piscisaureus__>are you sure that strace is not fucking up?
10:53:16  <bnoordhuis>yeah, strace has impact
10:53:31  <bnoordhuis>but it should still give a reasonably accurate picture
10:53:39  <piscisaureus__>I wonder why it makes so many calls to epoll_ctl anyway
10:54:06  <bnoordhuis>to switch a socket from POLLIN to POLLOUT mode and vice versa
10:54:13  <bnoordhuis>i.e. poll for readibility vs writability
10:54:21  <bnoordhuis>*readability
10:54:35  <piscisaureus__>bnoordhuis: are you ping-ponging?
10:54:39  <bnoordhuis>yeah
10:54:45  <piscisaureus__>ah
10:55:24  <piscisaureus__>is it not possible to use edge-triggered epoll?
10:55:31  <bnoordhuis>it is edge triggered
10:55:44  <piscisaureus__>and keep both the readable and writable watchers alive?
10:55:49  <piscisaureus__>it's not but that aside
10:55:56  <piscisaureus__>*fight*
10:56:26  <piscisaureus__>mauyybe in your benchmark it is, but not in libev
10:56:33  <bnoordhuis>is too - the sockets are added to the epoll set with EPOLLET set
10:56:39  <bnoordhuis>oh right, not in libev no
10:57:00  <bnoordhuis>but edge-triggered or not doesn't matter
10:57:14  <bnoordhuis>you still have to modify the event flags on the socket
10:57:19  <piscisaureus__>bnoordhuis: it could matter if you could keep both writable and readable in the set
10:57:55  <piscisaureus__>bnoordhuis: because you then would not need to call epoll_ctl all the time ...
10:58:09  <piscisaureus__>bnoordhuis: you'd just have to remember yourself whether a socket was readable / writable
10:58:14  <bnoordhuis>i don't believe it works that way but let's try it
10:58:29  <piscisaureus__>I'm just being naive
10:58:35  <piscisaureus__>but you should try it
10:59:18  * bnoordhuistries it
11:02:15  <piscisaureus__>The question is how much syscalls it would save on http_simple
11:02:21  <piscisaureus__>probably 1 per request
11:16:20  <bnoordhuis>that could still make a considerable difference
11:16:51  <bnoordhuis>most requests consist of read / epoll_ctl / write / epoll_ctl, in that order
11:26:57  * AvianFluquit (Quit: Leaving)
11:44:28  <piscisaureus__>bnoordhuis: the nice thing is, libev can't really use epollet because it guarantees level-triggered semantics
11:44:54  <piscisaureus__>bnoordhuis: but in uv all io is sufficiently encapsulated that we could actually use epollet
11:47:20  <bnoordhuis>piscisaureus__: you're never going to sidestep epoll_ctl() though
11:47:31  <piscisaureus__>bnoordhuis: not completely, no
11:47:54  <piscisaureus__>bnoordhuis: you just have to call it once after you accept a socket
11:48:15  <bnoordhuis>that doesn't work because then the kernel will nearly always report that the socket is writable
11:48:22  <piscisaureus__>bnoordhuis: doesn't matter
11:48:42  <bnoordhuis>yes it does because epoll_wait() will always immediately wake up
11:48:52  <bnoordhuis>you're essentially busy looping
11:49:00  <piscisaureus__>bnoordhuis: nonono
11:49:11  <bnoordhuis>yesyesyes
11:49:34  <piscisaureus__>bnoordhuis: as soon as the kernel says that it's writable, just set a flag on the uv_tcp struct
11:50:02  <piscisaureus__>bnoordhuis: also, can't epoll report readability and writability in a single call?
11:50:23  <bnoordhuis>yes
11:50:26  <bnoordhuis>but
11:50:37  <bnoordhuis>you'll be calling epoll_ctl() one way or the other
11:50:43  <piscisaureus__>bnoordhuis: but only once
11:51:05  <bnoordhuis>either because you switch from read to write polling or vice versa
11:51:10  <piscisaureus__>naah
11:51:11  <piscisaureus__>no
11:51:34  <bnoordhuis>or because you remove the socket from the epoll set since you don't want to get superfluous 'socket writable' messages
11:51:53  <piscisaureus__>bnoordhuis: you don't get superfluous messages
11:51:58  <piscisaureus__>bnoordhuis: because it's edge-triggered
11:52:18  <bnoordhuis>maybe i'm not explaining it very well but i think you have the wrong idea about how epoll works
11:52:20  <piscisaureus__>it only reports writable after a write() call returned EAGAIN
11:54:29  <bnoordhuis>is that how edge-triggered mode works on windows?
12:03:48  * CoverSlidequit (Read error: Connection reset by peer)
12:03:52  * CoverSlidejoined
12:04:24  <bnoordhuis>piscisaureus__: i can't see how that would work
12:04:39  <bnoordhuis>for example, write() never returns EAGAIN for udp sockets
12:04:39  <piscisaureus__>bnoordhuis: on windows there's no usable edge-triggered mode
12:04:48  <piscisaureus__>bnoordhuis: so what?
12:04:58  <piscisaureus__>bnoordhuis: that means that you can always write()
12:05:24  <bnoordhuis>but not that the socket is actually writable :)
12:05:47  <bnoordhuis>the kernel simply discards the data
12:07:25  <piscisaureus__>bnoordhuis: we don't care about UDP
12:07:34  <bnoordhuis>i care about udp :(
12:07:42  * indutnyquit (Ping timeout: 256 seconds)
12:07:45  <piscisaureus__>bnoordhuis: besides. then don't use EPOLLET for udp FDs
12:08:06  <piscisaureus__>bnoordhuis: windows has rather extensive special casing for UDP too
12:08:57  <piscisaureus__>bnoordhuis: but when udp never returns EAGAIN then I kind of assume that epoll always immediately reports writable for udp FDs as well
12:09:04  <piscisaureus__>or it would be seriously fucked up
12:13:23  <bnoordhuis>well, epoll reports when you can write a datagram safely
12:13:53  <piscisaureus__>bnoordhuis: just try it
12:14:06  <piscisaureus__>it'd be awesome if we could get another 20% on http_simple right :-)
12:15:34  <bnoordhuis>i'll play around with it
12:24:12  * indutnyjoined
13:29:25  <indutny>bnoordhuis: ping/
13:29:38  <bnoordhuis>indutny: pong
13:29:52  <indutny>bnoordhuis: any luck with my libuv process title/uptime requests?
13:30:21  <bnoordhuis>i don't think luck has much to do with it =)
13:30:33  <bnoordhuis>actually i got kind of sidetracked by some optimization thing
13:30:39  <bnoordhuis>but i'll get to it
13:31:53  <indutny>ok, cool :)
13:31:56  <indutny>optimizations are neat
13:32:14  <indutny>better have faster libuv than some odd title/uptime hacks :D
13:46:50  <piscisaureus__>bnoordhuis: are you getting there w/ EPOLLET
13:46:52  <piscisaureus__>?
13:47:11  <bnoordhuis>piscisaureus__: i think so, call back in 30 mins and i can tell you more
13:47:23  <piscisaureus__>bnoordhuis: kewl
14:41:31  * pfox___joined
14:45:25  * wankdankerjoined
14:49:33  * bnoordhuisquit (Ping timeout: 276 seconds)
15:03:14  * isaacsjoined
15:22:48  * piscisaureus__quit (Ping timeout: 240 seconds)
15:24:57  * piscisaureus__joined
15:44:59  <indutny>isaacs: heya
15:45:01  <indutny>yt
15:45:03  <isaacs>yo
15:46:50  <indutny>isaacs: one week ago...
15:46:51  <indutny>:)
15:47:07  <indutny>I was doing git bisect on one big node.js project
15:47:27  <indutny>and I found that doing npm install after each bisection step is quite hard
15:47:35  <indutny>and won't work for mixed dependencies
15:47:41  <indutny>and one more point
15:47:51  <indutny>I tried to find problem in dependency
15:48:02  <indutny>and I wasn't able to select one version for whole project
15:48:12  <indutny>because of nested dependencies
15:48:21  <indutny>what do you think about npm bisect
15:48:23  <indutny>isaacs: ^
15:48:50  <isaacs>ugh... what would that do?
15:48:57  <indutny>many things :D
15:49:02  <isaacs>hmm....
15:49:05  <indutny>for example - just wrap git bisect
15:49:10  <indutny>and do npm install after each step
15:49:21  <indutny>or npm bisect --module %name%
15:49:24  <isaacs>why not just specify "npm install" as the command to git bisect?
15:49:33  <indutny>isaacs: ok, you're right about this one
15:49:38  <indutny>but what about npm bisect --module
15:49:45  <indutny>it's not possible to handle this on git level
15:49:46  <isaacs>what would that do?
15:49:53  <indutny>bisect module versions
15:49:58  <isaacs>what is it that your'e trying to find out? the version that introduced a bug?
15:50:01  <indutny>to find which release broken build
15:50:04  <indutny>yep
15:50:26  <isaacs>hm. the problem is that it's a pretty big complicated bit of logic
15:50:31  <isaacs>and you have to track a lot of state
15:51:15  <indutny>hm...
15:51:16  <indutny>yes
15:51:23  <indutny>probably we need a package.json option
15:51:36  <indutny>that'll allow us to select exact version of module for all dependencies
15:51:44  <indutny>I mean developer option
15:52:04  * dapjoined
15:52:11  <indutny>because often we declare dependency as "colors": "0.2.x"
15:52:27  <indutny>and if we're going to bisect from 0.2.64 to 0.2.1
15:52:36  <indutny>we're going to enter a dependency hell
15:52:44  <indutny>am I clear?
16:06:38  * creationix|workjoined
16:32:05  * sh1mmerjoined
16:42:06  * sh1mmerquit (Quit: sh1mmer)
16:43:34  * sh1mmerjoined
16:59:34  * mikealquit (Quit: Leaving.)
17:00:18  * mikealjoined
17:19:21  * isaacsquit (Quit: isaacs)
17:34:55  * brsonjoined
17:51:14  * bnoordhuisjoined
17:51:38  <piscisaureus__>bnoordhuis: igorzi: call in 10
17:51:38  <piscisaureus__>?
17:52:29  <bnoordhuis>piscisaureus__: the USA isn't on DST?
17:52:39  <piscisaureus__>bnoordhuis: no I don't think so
17:53:00  <piscisaureus__>bnoordhuis: actually, I think they're still on dst
17:53:13  <piscisaureus__>is ryah back already btw?
17:53:27  <bnoordhuis>dunno, haven't spoken to him
17:53:40  <bnoordhuis>but yeah, it's -8 hours over there now
17:55:16  <piscisaureus__>I bet rmustacc knows whether ryah is back
17:55:41  <igorzi>piscisaureus__: yep
17:55:49  <piscisaureus__>okay
17:56:01  <piscisaureus__>in 5
17:57:53  <rmustacc>ryah isn't back yet.
17:57:58  <rmustacc>He gets back tomorrow.
17:58:13  <rmustacc>Though what time zone he'll be in, I dunno.
17:59:38  <piscisaureus__>It's night there I think
17:59:44  <piscisaureus__>We should not expect him to be tere
18:01:09  <piscisaureus__>bnoordhuis: y r u not online?
18:01:33  <bnoordhuis>piscisaureus__: am too
18:01:49  <bnoordhuis>but i blocked you after that unfortunate webcam incident
18:03:18  <piscisaureus__>igorzi: crashed again?
18:03:34  * isaacsjoined
18:04:03  <igorzi>piscisaureus__: no, i should be on-line? i'm not?
18:04:13  <piscisaureus__>igorzi: you are not reachable
18:04:28  <piscisaureus__>igorzi: you are online though
18:04:54  <piscisaureus__>igorzi: you call us
18:04:59  <piscisaureus__>igorzi: maybe that works :-)
18:08:01  <piscisaureus__>bnoordhuis: pick up
18:08:28  <bnoordhuis>piscisaureus__: no one is calling me
18:09:04  <piscisaureus__>bnoordhuis: doesn't work :-(
18:09:08  <piscisaureus__>bnoordhuis: you don't pick up
18:09:17  <bnoordhuis>i'll try to call igorzi
18:09:21  <piscisaureus__>bnoordhuis: yeah
18:09:40  <piscisaureus__>bnoordhuis; now add me
18:09:46  <bnoordhuis>call dropped :/
18:09:52  <piscisaureus__>LOL
18:09:56  <piscisaureus__>okay
18:10:05  <piscisaureus__>igorzi, can you PM me a landline number?
18:10:53  * mikealquit (Quit: Leaving.)
18:23:39  * AvianFlujoined
18:35:33  <piscisaureus__>https://gist.github.com/1328344
18:45:31  <bnoordhuis>does pulling from github work for you guys?
18:45:42  <bnoordhuis>oh, it works again
18:45:51  * AvianFlu_joined
18:46:18  * AvianFluquit (Disconnected by services)
18:46:24  * AvianFlu_changed nick to AvianFlu
18:51:38  * piscisaureus__quit (Ping timeout: 245 seconds)
18:59:01  * ericktjoined
19:35:15  * igorziquit (Ping timeout: 265 seconds)
20:02:10  * mikealjoined
20:37:17  * creationix|workquit (Remote host closed the connection)
20:45:01  * ericktquit (Ping timeout: 240 seconds)
20:52:52  * CoverSlidequit (Read error: Connection reset by peer)
20:52:57  * CoverSlidejoined
21:03:15  <CIA-53>node: Ben Noordhuis master * r5fee1ff / benchmark/next-tick.js : bench: add process.nextTick() benchmark - http://git.io/zaXQaA
21:03:30  <bnoordhuis>^ we should optimize process.nextTick()
21:18:20  * pfox___quit (Ping timeout: 258 seconds)
21:20:28  * igorzijoined
21:23:05  * piscisaureus___joined
21:23:52  * mikealquit (Quit: Leaving.)
21:34:12  <bnoordhuis>is test/message/undefined_reference_in_new_context.js broken for you guys too?
21:34:34  <bnoordhuis>it wasn't yesterday...
21:34:58  * mikealjoined
21:36:33  <bnoordhuis>igorzi piscisaureus___: https://github.com/bnoordhuis/node/compare/optimize-next-tick <- review?
21:40:09  * mikealquit (Quit: Leaving.)
21:42:49  * sh1mmerquit (Ping timeout: 252 seconds)
21:44:07  <piscisaureus___>bnoordhuis: why is it better? because of removing splice?
21:45:18  <bnoordhuis>piscisaureus___: yeah - it's only the first step though
21:45:44  <bnoordhuis>i want to get rid of the N calls to process._needTickCallback()
21:45:51  <bnoordhuis>calls into c++ land, expensive!
21:48:19  <piscisaureus___>bnoordhuis: okay, lgtm
21:48:23  <piscisaureus___>bnoordhuis: although - focus :-)
21:49:06  * bnoordhuisfocuses
21:49:54  <CIA-53>node: Ben Noordhuis master * r4d4900f / src/node.js :
21:49:55  <CIA-53>node: process: optimize process.nextTick()
21:49:55  <CIA-53>node: 33% performance boost on large nextTick queues. - http://git.io/3YpwIA
21:51:40  <bnoordhuis>edge-triggered i/o is kind of tricky to get right...
21:54:14  <bnoordhuis>ryah: cleaned out your mail queue, didn't you?
21:54:49  * sh1mmerjoined
22:03:12  * piscisaureus___quit (Ping timeout: 240 seconds)
22:03:57  * piscisaureus___joined
22:05:01  <igorzi>isaacs: will git be required on windows to install npm?
22:09:54  * mralephjoined
22:18:36  <piscisaureus___>I would hope not
22:42:13  <isaacs>igorzi: no
22:42:32  <isaacs>igorzi: at least, once we have *some* way to get the npm code onto the machine, that is
22:42:39  <isaacs>igorzi: but i assume that the msi will just include it
22:43:08  <isaacs>igorzi: or i can write a WSH javascript program to fetch the zipball from github, unpack that, and install it
22:44:43  * ericktjoined
22:59:05  * piscisaureus____joined
23:01:12  * piscisaureus___quit (Ping timeout: 240 seconds)
23:03:40  <igorzi>isaacs: k, thanks
23:33:40  <isaacs>anyone care to review? https://github.com/joyent/node/pull/1978
23:43:28  <piscisaureus____>isaacs:
23:43:28  <piscisaureus____>+ Change file timestamps of the file referenced by the supplied path
23:43:36  <piscisaureus____>isaacs: that seems incorrect
23:43:48  * piscisaureus____changed nick to piscisaureus_
23:44:00  <isaacs>piscisaureus: utimes(path, atime, mtime, cb)
23:44:07  <isaacs>piscisaureus: futimes(fd, atime, mtime, cb)
23:44:10  <isaacs>?
23:44:21  <piscisaureus_>oh heh
23:44:22  <piscisaureus_>yes
23:44:39  <piscisaureus_>I interpreted that as a heading
23:44:42  <isaacs>hehe
23:44:49  <isaacs>yeah, the futimes doc is way wrong
23:44:57  <isaacs>it's like, F-U, buddy!
23:45:56  <isaacs>How often did the unix user change timestamps of file descriptors? a futimes.
23:46:03  <isaacs>sorry.
23:46:11  <isaacs>i'll stop now