00:12:35  * piscisaureus_quit (Ping timeout: 260 seconds)
00:31:50  * orlandovftwquit (Ping timeout: 260 seconds)
00:32:26  * erickt_joined
00:33:44  * erickt_quit (Client Quit)
00:34:45  * ericktquit (Ping timeout: 246 seconds)
00:36:22  * piscisaureus_joined
01:15:51  * mrb_bkquit (Remote host closed the connection)
01:16:24  * Raynosquit (Remote host closed the connection)
01:18:47  <piscisaureus_>bnoordhuis: hey
01:19:26  <piscisaureus_>bnoordhuis: if a select timeout is not specified, does it report a readable event after RCVTIMEO ?
01:21:45  <piscisaureus_>bnoordhuis: I think there might be a bug in run.js
01:31:54  * dapquit (Quit: Leaving.)
01:34:22  * dapjoined
01:34:44  * dapquit (Client Quit)
01:35:04  * dapjoined
01:35:04  * dapquit (Client Quit)
01:38:55  * brsonquit (Quit: leaving)
01:46:07  * abraxasjoined
01:48:17  * Raynosjoined
01:57:55  * mrb_bkjoined
01:58:49  <bnoordhuis>piscisaureus_: i don't think so
01:59:05  <piscisaureus_>bnoordhuis: ok so you are running pselect without timeout
01:59:26  <bnoordhuis>piscisaureus_: yes. that's easily fixed though
01:59:33  <piscisaureus_>bnoordhuis: yeah really easy
01:59:46  <bnoordhuis>i even trust you to do it :)
01:59:46  <piscisaureus_>bnoordhuis: I will tell rik what to do, he's hacksawing in there
01:59:51  <piscisaureus_>bnoordhuis: lol
02:00:02  <piscisaureus_>bnoordhuis: remember, there is one serious bug in there and you made it
02:00:09  <piscisaureus_>:-)
02:00:21  <bnoordhuis>nah, i swapped one serious bug with another
02:00:26  <piscisaureus_>haha
02:00:50  <piscisaureus_>I made it resiliient enough to survive an unblocked signal :-)
02:01:06  <piscisaureus_>although admittedly it could have caused a 10 second delay before restarting a proces
02:01:08  <piscisaureus_>s
02:01:12  <bnoordhuis>yeah, it works well enough
02:01:23  <bnoordhuis>but it's the kind of thing that silently breaks when you change later on
02:01:38  <bnoordhuis>better to fix it now
02:02:10  <piscisaureus_>yeah
02:02:15  <piscisaureus_>we have time
02:02:21  <piscisaureus_>won't go live until next week anyway
02:03:15  <bnoordhuis>i can look at it tomorrow if rik wants
02:03:26  <bnoordhuis>anything to postpone the windows side of the refcount refactor
02:03:30  <piscisaureus_>haha
02:03:32  <piscisaureus_>nooo
02:03:40  <piscisaureus_>how far is it, anyway?
02:03:49  <bnoordhuis>done on unix, wip on windows
02:03:58  <bnoordhuis>it's in my fork, branch issue347
02:03:58  <piscisaureus_>it's not that hard isit?
02:04:03  <piscisaureus_>have you been coding at all?
02:04:10  <bnoordhuis>no, it's just well out of my comfort zone :)
02:04:49  <piscisaureus_>bnoordhuis: hehe
02:04:54  <piscisaureus_>bnoordhuis: ok here's the deal
02:05:00  <piscisaureus_>you write an uv_poll_t test :-)
02:05:03  <bnoordhuis>haha
02:05:06  <piscisaureus_>bnoordhuis: I do the windows stuff
02:05:06  * ericktjoined
02:05:11  <bnoordhuis>i'll consider it :)
02:05:25  <piscisaureus_>bnoordhuis: but the poll test should be extensive
02:05:28  <bnoordhuis>wasn't i going to swap the read/write watchers with a single watcher?
02:05:41  <piscisaureus_>oh yeah but that's easy
02:05:46  <piscisaureus_>I can do that in 20 minutes
02:06:27  <bnoordhuis>i suspect you'll run into one or two edge cases
02:06:37  <piscisaureus_>huh, which?
02:06:42  <piscisaureus_>I don't think so
02:06:50  <piscisaureus_>it's pretty trivial
02:06:55  <bnoordhuis>gotta go, seems mees is up
02:07:00  <piscisaureus_>ok
02:07:04  <piscisaureus_>I am going to sleep
02:07:11  <piscisaureus_>bnoordhuis: tty tomorrow
02:07:13  <bnoordhuis>yeah, me too (after mees that is)
02:07:16  <bnoordhuis>sleep tight, bertje
02:08:13  * ericktquit (Client Quit)
02:09:46  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
02:12:10  * bnoordhuisquit (Ping timeout: 260 seconds)
02:13:48  * mikealquit (Quit: Leaving.)
02:14:15  * mikealjoined
02:16:23  * mikealquit (Client Quit)
02:17:58  * mikealjoined
02:21:23  * mikealquit (Client Quit)
02:22:36  * mikealjoined
02:52:23  * orlandovftwjoined
02:57:43  * mikealquit (Quit: Leaving.)
03:11:05  * mikealjoined
03:12:00  <CIA-155>node: Nathan Rajlich master * r98b4596 / src/node.js : process: lint - http://git.io/QfxqSw
03:17:51  * orlandovftwquit (Ping timeout: 246 seconds)
03:18:06  <TooTallNate>isaacs: review? https://github.com/TooTallNate/node/commit/tab-completion-global-proto
03:22:21  * TooTallNatequit (Quit: Linkinus - http://linkinus.com)
03:23:20  * c4miloquit (Ping timeout: 260 seconds)
03:35:27  <CIA-155>node: Nathan Rajlich master * rf405daa / (lib/repl.js test/simple/test-repl-tab-complete.js):
03:35:27  <CIA-155>node: repl: make tab completion read up the prototype of "global"
03:35:27  <CIA-155>node: For example, there's a global "toString()" function, so the REPL's
03:35:27  <CIA-155>node: tab completion should pick that up. - http://git.io/lgIrBg
03:39:37  * pfox___quit (Ping timeout: 265 seconds)
03:51:55  * mikealquit (Quit: Leaving.)
04:23:00  * ericktjoined
04:53:18  * ericktquit (Quit: erickt)
04:57:37  * benviejoined
06:08:00  * orlandovftwjoined
07:04:25  * mralephjoined
07:08:01  * rendarjoined
07:46:31  * paddybyers_joined
07:48:33  * paddybyersquit (Ping timeout: 245 seconds)
07:48:33  * paddybyers_changed nick to paddybyers
07:52:47  * mralephquit (Quit: Leaving.)
08:19:12  * pquerna_joined
08:19:14  * AngryParsleyjoined
08:20:37  * \toothrotjoined
08:21:31  * ggreerquit (Ping timeout: 246 seconds)
08:21:31  * pquernaquit (Ping timeout: 246 seconds)
08:21:31  * toothrquit (Ping timeout: 246 seconds)
09:13:23  * isaacsquit (Remote host closed the connection)
09:14:17  * isaacsjoined
09:25:28  * orlandovftwquit (Ping timeout: 244 seconds)
10:48:39  * abraxasquit (Remote host closed the connection)
10:49:14  * abraxasjoined
10:53:55  * abraxasquit (Ping timeout: 265 seconds)
11:54:06  * bnoordhuisjoined
12:09:19  * c4milojoined
12:37:07  * mjr_quit (Read error: Connection reset by peer)
13:36:16  * mjr__joined
13:43:57  * mmalecki[off]changed nick to mmalecki[ft]
14:26:47  * piscisaureus_joined
14:26:53  <piscisaureus_>hello
14:32:58  * pfox___joined
14:59:03  <creationix>piscisaureus_, hi!
14:59:12  <piscisaureus_>creationix: hi
14:59:25  <creationix>piscisaureus_, so you finished my libuv wishlist already? ;)
14:59:32  <piscisaureus_>huh
14:59:34  <piscisaureus_>not even started
14:59:49  <piscisaureus_>creationix: will take a while to be honest
14:59:52  <creationix>yeah, these things take time
15:00:06  <creationix>though fixing uid/gid for spawn should be quick
15:01:32  <piscisaureus_>creationix: well, we have to be careful not to break the interface
15:01:36  <creationix>all I need for vfs is a streaming readdir and uid/gid for spawn. My other ideas just make using libuv a lot easier
15:02:00  <piscisaureus_>creationix: we we'd have to add use_spawn2, uv_process_options2_t, uv_init_process_options2
15:02:24  <piscisaureus_>creationix: well a streaming readdir is not on the roadmap
15:02:27  <creationix>yeah, duplicate it
15:02:50  <piscisaureus_>creationix: that is - it is sort of planned but no milestone
15:03:04  <creationix>I'm not even sure what streaming readdir would look like
15:03:46  <creationix>what is the C interface to readdir like? Is the directory listing a char* buffer of newline separated file names? or is it more structured
15:03:55  <piscisaureus_>creationix: well, maybe
15:03:55  <piscisaureus_>var d = fs.createDirStream('/dev');
15:03:55  <piscisaureus_>d.on('entry', function(name) {
15:03:55  <piscisaureus_>});
15:04:21  <piscisaureus_>creationix: well, posix readdir_r returns one filename at a time
15:04:55  <creationix>I'm also trying to plan how to map HTTP range requests to a directory listing
15:04:59  <creationix>so clients can paginate
15:05:07  <creationix>but http range is byte based
15:05:11  <piscisaureus_>creationix: linux and windows can report multiple names per syscall, with another call
15:05:46  <piscisaureus_>creationix: well, seeking in the directory listing is not possible on any platform I know
15:06:00  <piscisaureus_>creationix: so it'd always be restart and skip over N entries
15:06:05  <creationix>really? so a directory with a million files is just plain bad
15:06:12  * theColejoined
15:06:18  <piscisaureus_>creationix: yes
15:06:36  <piscisaureus_>creationix: you ever wondered why git creates this nested structure in .git/objects/
15:06:38  <piscisaureus_>:-)
15:07:00  <piscisaureus_>creationix: also, modern operating system obviously use a hashmap to look up filenames in a directory
15:07:28  <piscisaureus_>but older filesystems do not support this, so a filename lookup has O(n) complexity wrt the number of files in the directory
15:07:30  <creationix>hmm, so the only real danger in node's readdir is creating the large array in on ego
15:07:38  <creationix>*one go
15:07:42  <piscisaureus_>creationix: yeah
15:07:50  <creationix>and buffering till all results are read
15:08:00  <piscisaureus_>creationix: but you should be aware that it is probably faster in general
15:08:03  * isaacsquit (Remote host closed the connection)
15:08:09  <piscisaureus_>unless the number if files is really big
15:08:24  <creationix>yeah, my test folder has 100,001 files in it
15:08:33  <creationix>it pauses for a bit when doing readdir, but not too much
15:08:37  * isaacsjoined
15:08:38  <piscisaureus_>because enumerating 1M files one at a time also means 1M synchronizations between the thread pool and the main thread
15:08:42  <creationix>and my vfs has proper etags for directory listings
15:09:06  <creationix>ok, so it's not super important
15:09:16  <creationix>I am streaming the 100,000 lstat calls and the resultant json
15:09:26  <creationix>ends up being about 30mb
15:09:29  <piscisaureus_>creationix: the solaris machines we're using can't even have more that 100.000 files in a directory
15:09:48  <creationix>ok, so we can punt on streaming readdir for now
15:09:54  <piscisaureus_>creationix: our 100.000th user had a very pleasant surprise :-)
15:10:07  <piscisaureus_>creationix: but yeah, long term, we should do this.
15:10:19  <creationix>sftp, for example has a streaming readdir
15:10:27  <creationix>when I implemented it in node I had to fake the streaming
15:11:04  <creationix>also an fd based readdir would be nice
15:11:22  <creationix>I can open the file, fstat it to see if it's a dir or file and then reuse the fd to read it
15:12:22  <creationix>anyway, all that's pressing is fixing the gid/uid for spawn regression
15:24:11  <piscisaureus_>creationix: I don't know whether that is possible in unix (in windows it definitely works that way)
15:24:38  <piscisaureus_>creationix: but I am not sure whether you can enumerate a dirfd. I think you have to opendir() it
15:24:59  <piscisaureus_>ah wait there is fdopendir :-)
15:25:18  <creationix>not a big deal, just something we should probably add eventually for completeness
15:25:30  <piscisaureus_>I agree it would be nice
15:25:56  <creationix>I try to keep things as atomic as possible and using the same fd throughout an operation makes me feel safer
15:26:27  <creationix>http servers very often do readstream with stat
15:26:29  <piscisaureus_>and rightly so
15:26:37  <creationix>luckilly createReadStream allows passing in an fd
15:26:47  <piscisaureus_>it would be nice to integrate streams and fds
15:28:30  <creationix>of course libuv doesn't have streams at all
15:28:35  <creationix>for fs
15:29:00  <creationix>will libuv get uv_file_t that inherits from uv_stream_t?
15:31:52  <piscisaureus_>creationix: I would like that, yes
15:32:25  <piscisaureus_>creationix: what I would like to do in the long run is queue fs operations in node
15:32:40  <piscisaureus_>fs operations on the same uv_file_t, that is
15:32:55  <piscisaureus_>creationix: because right now it's quite easy to create horrible race conditions and worse
15:32:57  <piscisaureus_>e.g.
15:33:24  <piscisaureus_>fd = fs.open(...)
15:33:24  <piscisaureus_>fs.write(fd, "hello")
15:33:24  <piscisaureus_>fs.close(fd)
15:33:24  <piscisaureus_>fd2 = fs.open(...)
15:34:05  <piscisaureus_>creationix: you realize that fs.write can succeed here
15:34:09  <piscisaureus_>or fail with EBADF
15:34:18  <piscisaureus_>... or write to the wrong file!
15:34:54  <creationix>fd is just a number right?
15:35:37  <piscisaureus_>yes
15:35:49  <piscisaureus_>creationix: but what's stopping us from making that something else ?
15:35:57  <piscisaureus_>creationix: 99% of the code will just keep working
15:36:07  <piscisaureus_>creationix: and people who do arithmetic on FDs should be punished
15:36:19  <creationix>indeed
15:36:19  <tjfontaine>those people are quite evil
15:36:35  <creationix>the only time I use numbers for fds is 0,1, and 2
15:36:43  <piscisaureus_>yeah
15:36:48  <piscisaureus_>that could just keep on working
15:37:42  <creationix>would having streams in libuv make os level optimizations possible?
15:37:42  * pquerna_quit (Changing host)
15:37:42  * pquerna_joined
15:37:49  <creationix>*fs streams
15:37:55  * pquerna_changed nick to pquerna
15:38:14  <creationix>or do all operating systems treat files the same using fd handles and discrete operations?
15:38:41  <creationix>the higher abstraction of a file data stream gives libuv flexibility in how to implement it
15:38:42  <piscisaureus_>creationix: well, all operating systems have a concept similar to an FD
15:39:02  <creationix>right, that's how libuv works today
15:39:09  <creationix>you get an "fd" in windows
15:39:10  <piscisaureus_>yeah
15:39:28  <piscisaureus_>creationix: a handle, actually. But file i/o on windows uses actual FDs today
15:39:34  <piscisaureus_>so, human readable number
15:39:42  <piscisaureus_>but we have to get rid of that at some point
15:39:48  <creationix>yeah, the actual value isn't important
15:39:58  <creationix>I noticed that node timers don't return numbers like they to in browsers
15:40:09  <creationix>but most people don't even notice because it just works
15:40:12  <piscisaureus_>yeah, they return a TimerWrap handle
15:40:26  <creationix>I do the same in luvit
15:40:32  <creationix>userdata wrapping uv_timer_t
15:48:09  <isaacs>piscisaureus_: bnoordhuis, igorzi TooTallNate: skype in 15
15:49:07  <piscisaureus_>yeah
15:49:14  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
15:51:15  <bnoordhuis>yep
15:57:56  * piscisaureus_joined
16:02:23  <piscisaureus_>bnoordhuis: heeeeee
16:02:28  <piscisaureus_>bnoordhuis: calllll
16:02:45  <bnoordhuis>let me log into skype again...
16:05:04  * pfox___changed nick to patientfox
16:10:31  * AngryParsleyquit (Changing host)
16:10:31  * AngryParsleyjoined
16:14:27  * benviequit
16:18:45  * AngryParsleychanged nick to ggreer
16:26:09  * orlandovftwjoined
16:30:10  * dapjoined
16:38:15  <piscisaureus_>isaacs: how you doin' ?
16:38:19  * isaacsquit (Read error: Operation timed out)
16:38:55  * theColequit (Quit: theCole)
16:41:49  * isaacs_mobilejoined
16:42:11  <isaacs_mobile>Sorry for the abrupt end.
16:42:28  <piscisaureus_>np
16:42:42  <isaacs_mobile>Comcast decided to not give me DNS any more, apparently.
16:43:03  <tjfontaine>I keep everything in /etc/hosts myself
16:43:06  <piscisaureus_>I think they decided not to give you anything
16:43:16  <piscisaureus_>skype needs only UDP
16:45:05  <isaacs_mobile>Piscisaureus_ oh yeah, it's like one of their routers blew up or something
16:45:42  <isaacs_mobile>Even reqs for ip addresses fail.
16:46:00  <isaacs_mobile>Oh well. Time to head into the office I guess. :)
16:46:51  <piscisaureus_>> Object.keys(process)
16:46:51  <piscisaureus_>[ 'title', 'EventEmitter', 'version', 'assert', '_tickCallback',
16:46:51  <piscisaureus_> 'moduleLoadList', 'nextTick', 'versions', 'stdout', 'arch', 'stderr',
16:46:51  <piscisaureus_> 'platform', 'stdin', 'argv', 'env', 'openStdin', 'exit', 'pid',
16:46:51  <piscisaureus_> 'features', 'kill', 'addListener', 'execPath', '_needTickCallback',
16:46:52  <piscisaureus_> 'on', 'reallyExit', 'removeListener', 'chdir', 'debug', 'error', 'cwd',
16:46:52  <piscisaureus_> 'umask', 'watchFile', 'unwatchFile', '_kill', '_debugProcess', 'mixin',
16:46:53  <piscisaureus_> 'dlopen', 'createChildProcess', 'inherits', 'uptime', '_byteLength',
16:46:53  <piscisaureus_> 'memoryUsage', '_events', 'uvCounters', 'binding' ]
16:47:01  <creationix>node doesn't expose the ChildProcess constructor does it?
16:47:07  <piscisaureus_>nope
16:47:11  <creationix>on purpose
16:47:11  <creationix>?
16:47:16  <piscisaureus_>yeah kind of
16:47:39  <piscisaureus_>Obviously (spawn()).constructor gives it to you :-)
16:47:49  <isaacs_mobile>A lot of those are deprecated
16:48:04  <isaacs_mobile>Process things
16:48:22  <creationix>well, EventEmitter is exposed, maybe I'll just check for that and then serialize the own properties
16:48:27  <isaacs_mobile>But it's worth some pruning, for sure.
16:48:31  <creationix>I'm creating a proxy child-process
16:49:05  <piscisaureus_>creationix: well if it exposes the right interface you're probably fine
16:49:17  <creationix> ahh, .pid
16:49:36  <creationix>ok, event emitter instance with .pid, good enough :)
16:50:12  <creationix>(the pid conveniently is an integer id that's unique within the remote system)
16:51:09  * bnoordhuisis off to dinner
16:51:46  <piscisaureus_>isaacs_mobile: we should also deprecate process.watchFile. It belongs in the fs module
16:52:49  <piscisaureus_>ah nevermind
16:52:50  <piscisaureus_>it has
16:55:29  * bnoordhuisquit (Ping timeout: 244 seconds)
16:58:54  * isaacs_mobilequit (Remote host closed the connection)
17:02:18  * mikealjoined
17:13:30  * mikealquit (Quit: Leaving.)
17:14:23  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
17:19:15  * orlandovftwquit (Ping timeout: 246 seconds)
17:22:52  * piscisaureus_joined
17:27:17  * piscisaureus__joined
17:27:26  * piscisaureus_quit (Ping timeout: 252 seconds)
17:29:32  * piscisaureus__quit (Client Quit)
17:32:05  * mikealjoined
17:34:06  * piscisaureus_joined
17:43:11  * ericktjoined
17:50:27  * isaacsjoined
17:50:55  <isaacs>piscisaureus_: Yes, process.watchFile needs to be moved to fs.
17:50:56  * TooTallNatejoined
17:50:59  <isaacs>piscisaureus_: (isn't it already?)
17:52:33  <piscisaureus_>isaacs: yeah, nevermind
17:52:41  <piscisaureus_>isaacs: maybe we can remove them in 0.8
17:52:47  <piscisaureus_>they throw already in 0.6
17:53:03  <isaacs>piscisaureus_: I think the pattern should be: [warn, throw, gone]
17:53:10  <isaacs>each stable release moves a deprecated things up one level
17:53:10  <piscisaureus_>yea
17:53:26  <isaacs>*stable branch
17:57:10  * mikealquit (Ping timeout: 260 seconds)
17:58:11  * mikealjoined
18:01:41  <piscisaureus_><3 9x16 VGA font
18:02:08  <piscisaureus_>I wish it supported unicode
18:08:54  * c4milochanged nick to c4milo|lunch
18:14:28  * orlandovftwjoined
18:16:39  * brsonjoined
18:47:11  <piscisaureus_>nice <-- ./bdf2psf.pl -s UniCyrX.sfm u_vga16.bd
18:47:13  <piscisaureus_>sorry I am geeking
18:47:27  <piscisaureus_>I meant that: http://www.inp.nsk.su./~bolkhov/files/fonts/univga/
19:01:12  * mikealquit (Quit: Leaving.)
19:03:34  * isaacsquit (Remote host closed the connection)
19:12:20  * mjr__changed nick to mjr_
19:32:11  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
19:48:38  * c4milo|lunchchanged nick to c4milo
19:50:56  * mikealjoined
19:51:03  * mikealquit (Client Quit)
20:18:52  * mikealjoined
20:26:12  <mjr_>friends, this no idle GC timer fix is a substantial win
20:26:23  <mjr_>https://skitch.com/mranney/8sf1d/voxer-metrics
20:27:00  <mjr_>We've been running with it in production for a few days, and it lets the heaps grow without crushing the CPU.
20:28:19  <tjfontaine>cute
20:29:37  <mjr_>Still need to fix these memory leaks, but now at least we can restart at night when traffic is lowest.
20:32:28  * piscisaureus_joined
20:38:12  <tjfontaine>piscisaureus_: http://piscisaureus.no.de/libuv/latest#20:26:12.906 thought you might be interested in that
20:41:26  <piscisaureus_>yeah, that looks good
20:42:03  <piscisaureus_>mjr_: how come that it goes down from 2s to 200ms
20:42:05  <piscisaureus_>?
20:42:27  <piscisaureus_>mjr_: the p95 value
20:45:21  <mjr_>That's the no-idle
20:45:34  <piscisaureus_>oh
20:45:37  <mjr_>The heap grows all day long, and after a while, the idle timer starts hammering us
20:45:45  <piscisaureus_>well yeah that's very nice then
20:45:46  <mjr_>Now the heap is still growing all day long, but the latency is still good.
20:46:01  <piscisaureus_>mjr_: did you also try taking out just the 128M barrier?
20:46:17  <mjr_>nope, just disabled the whole thing with ryah_'s patch.
21:22:31  * mralephjoined
21:36:20  * isaacsjoined
21:40:26  * isaacs_joined
21:40:31  * isaacsquit (Read error: Connection reset by peer)
21:44:53  <piscisaureus_>igorzi: hey, just curious: why are you guys doing these crazy tricks to support background serialization of the redis heap?
21:44:53  <piscisaureus_>I would have expected something that duplicates the memory mappings.
21:48:45  * rendarquit
21:52:34  * felixgejoined
21:52:34  * felixgequit (Changing host)
21:52:35  * felixgejoined
22:09:50  * orlandovftwquit (Read error: Connection reset by peer)
22:11:53  * orlandovftwjoined
22:33:54  * isaacs_changed nick to isaacs
22:34:45  * irajoined
22:36:16  <ira>The thing I am working on is the fs.watch API underpinnings for Illumos/OpenSolaris ;)
22:36:58  <ira>They currently burn a port per file. That means they don't scale. With a bit of hackery, you can make them consume just one I suspect.
22:37:05  <ira>(I'll know when I finish this attempt.)
22:39:36  <piscisaureus_>ira: just one, or just one per directory?
22:39:41  <ira>One.
22:39:44  <ira>Period.
22:39:47  <piscisaureus_>ira: but yeah, that's welcome
22:40:11  <ira>All you do is replumb things and pass handle as the user data.
22:41:13  <piscisaureus_>ira: I don't really know what you mean by that, but I'll let your code speak :-)
22:41:18  <ira>:)
22:41:40  <ira>Well, I'm hacking on node 0.6.xx at the moment. I'll have to forward port it.
22:41:55  <ira>But it should go forwards.
22:41:57  <piscisaureus_>ira: you mean, libuv or node
22:42:12  <piscisaureus_>ira: I can't really imagine you'd have to change node for this
22:42:19  <ira>No. You don't.
22:42:31  <ira>I'm hacking in the uv subdir in there.
22:44:23  * patientfoxquit (Ping timeout: 245 seconds)
22:44:30  <piscisaureus_>ah, k right
22:45:55  * mikealquit (Quit: Leaving.)
22:57:25  * mikealjoined
23:03:21  * paddybyersquit (Quit: paddybyers)
23:05:57  <creationix>piscisaureus_, isaacs what's the status of fixing uid/gid in childProcess.spawn? Will it go into 0.6.16? Can I help in any way?
23:06:15  <creationix>fyi, here is the hacks I had to do in my code to workaround it: https://github.com/c9/vfs/blob/master/local/localfs.js#L36-66 https://github.com/c9/vfs/blob/master/local/localfs.js#L233-258
23:06:58  * \toothrotchanged nick to toothr
23:07:01  <piscisaureus_>creationix: the status is: not started
23:07:41  <piscisaureus_>creationix: I want to finish what I'm doing first. If you want to do something, you're welcome.
23:08:38  <creationix>it's more process than code, I don't know if I'll actually save anyone time. Also I wasn't sure if isaacs was still working on it
23:09:45  <piscisaureus_>isaacs: is a 0.6.16 planned?
23:09:45  <igorzi>piscisaureus_: the redis objects are versioned
23:10:19  <igorzi>piscisaureus_: while the serialization is going on
23:10:54  <piscisaureus_>igorzi: so updating an object while serializing creates a new one?
23:12:57  <igorzi>piscisaureus_: a new version of the same object
23:14:51  <igorzi>piscisaureus_: so, it's copy-on-write.. it's just instead of the OS doing the copy.. the application is maintaining the copy (which gets more expensive in some cases)
23:18:57  * mikealquit (Quit: Leaving.)
23:28:25  <isaacs>piscisaureus_: yes.
23:28:34  <isaacs>piscisaureus_: let's get this uid/gid in for that.
23:28:42  <isaacs>i'll release it tomorrow
23:28:52  <mjr_>isaacs: will that include the back port of the slab allocator?
23:29:07  <isaacs>mjr_: not likely
23:29:10  <isaacs>mjr_: that was a lot of changes
23:29:35  <mjr_>I'm running it on my busy UDP process, seems OK.
23:29:50  <isaacs>mjr_: yeah, but it changes ABI, doesn't it?
23:29:54  <mjr_>Oh, I dunno
23:30:00  * mikealjoined
23:30:03  <isaacs>i mean, i agree, it's *good* :)
23:30:16  <mjr_>I just did "make install" over our previous version, and it worked.
23:30:18  <isaacs>but we have to give you some reasons to upgrade to 0.8, don't et? ;)
23:30:19  * mikealquit (Client Quit)
23:30:34  <mjr_>As long as dtrace works on 0.8, I'm in.
23:30:44  <isaacs>mjr_: it does, and it's enabled by default on sunos now.
23:31:07  <isaacs>mjr_: i think 0.7.9 will be the one that i start trying to get you guys to test out
23:31:22  <mjr_>Great, we'll do it.
23:31:24  <isaacs>i remember there was some reason why 0.7.8 was still a bit lacking, but i don't remember what it was. maybe dtrace.
23:31:42  <mjr_>Yeah, I think dtrace was messed up, that's the last thing I remember.
23:31:49  <mjr_>Other than you guys all seem nervous about it.
23:32:26  <mjr_>Does this impact the rumors I hear from bmc and crew about some tech to help with memory leaks?
23:34:18  <ira>I'll see what I can do about getting it upstream pisci. Is there a standard code review process here?
23:34:56  <ira>I've got it all running, and it seems sane, but well, it is my 1st time doing this hackery.
23:42:01  * mikealjoined
23:43:50  <piscisaureus_>ira: the standard code review process is code review
23:44:09  <piscisaureus_>ira: submit a pull request, preferrably to libuv
23:44:23  <ira>Will do. I need to remember my github credentials etc...
23:44:41  <ira>Actually patch against tip instead of 0.6.15.
23:46:08  * iraquit (Quit: Textual IRC Client: http://www.textualapp.com/)
23:46:58  <isaacs>mjr_: the stuff that bmc and crew are doing is somewhat outside of node itself.
23:47:19  <isaacs>mjr_: it's pretty cool stuff.
23:47:42  <mjr_>Oh, exciting
23:47:50  <mjr_>I've only heard rumors.
23:48:19  <creationix>isaacs, v8 level or smartos level? (memory leak tools)
23:48:49  <isaacs>creationix: ustack + v8 stuff, i believe.
23:48:54  <creationix>cool
23:49:11  <creationix>I worked on v8 tools as palm, it was very hard to make a tool that was actually useful
23:49:20  <creationix>of course we were on a phone with older linux too
23:49:27  <isaacs>yeah, good luck there :)
23:51:54  * mralephquit (Quit: Leaving.)
23:53:38  * perezdjoined
23:54:54  <perezd>TooTallNate: can I bother you about a native extension question?
23:56:16  * mikealquit (Quit: Leaving.)
23:57:44  <TooTallNate>perezd: ya, shoot