00:08:03  * mikealquit (Quit: Leaving.)
00:10:32  * sh1mmerjoined
00:18:46  * sh1mmerquit (Quit: sh1mmer)
00:34:20  <igorzi>ryah: did you figure out how to run benchmarks using the cluster?
00:40:51  * dapquit (Quit: Leaving.)
00:45:48  <erickt>ryah: I pushed my udp-tcp-merge branch if you want to check it out: https://github.com/erickt/libuv/tree/udp-tcp-merge
00:45:55  <erickt>it compiles, but the tests fail
01:02:12  * AvianFluquit (Ping timeout: 255 seconds)
01:26:22  * sh1mmerjoined
01:26:56  <sh1mmer>Anyone around to help me with something?
01:27:46  <sh1mmer>https://github.com/joyent/node/blob/master/src/node.cc#L2409
01:28:24  <sh1mmer>someone debug-brk is lost during symlinks
01:28:55  <sh1mmer>I'm wondering if it's there or https://github.com/joyent/node/blob/master/src/node.cc#L2234
01:35:36  * pieternquit (Quit: pietern)
01:38:05  * brsonquit (Quit: leaving)
01:57:46  * isaacsquit (Quit: isaacs)
01:57:56  * ericktquit (Quit: erickt)
02:06:49  * sh1mmerquit (Quit: sh1mmer)
02:12:32  * luxigojoined
02:54:21  * isaacsjoined
03:52:45  * isaacsquit (Quit: isaacs)
04:06:30  * creationixjoined
04:12:59  * ericktjoined
04:26:48  * creationixpart
04:33:47  * ericktquit (Quit: erickt)
04:56:31  * sh1mmerjoined
05:19:28  * piscisaureusquit (Ping timeout: 258 seconds)
05:31:09  * mikealjoined
05:43:10  <sh1mmer>mikeal: sorry you are dealing with a bunch of hassel
05:43:16  <sh1mmer>good luck with the house
05:43:47  <mikeal>it is what it is
05:43:55  <mikeal>just another thing to deal with, i'll be fine
05:44:33  <sh1mmer>I know. Lemme know if I can help any way though
06:05:17  * bnoordhuisjoined
06:10:12  * sh1mmerquit (Quit: sh1mmer)
07:53:09  <CIA-53>node: Ryan Dahl master * r92f5a5d / (228 files in 17 dirs): Upgrade V8 to 3.7.1 - http://git.io/VbOPJQ
10:07:28  * luxigoquit (Read error: Connection reset by peer)
11:42:31  <bnoordhuis>the gyp honeymoon is over... :/
11:43:02  <bnoordhuis>been wasting hours on something that should be stupid simple
12:12:35  <CIA-53>node: Ben Noordhuis master * rb952954 / deps/v8/src/platform-solaris.cc :
12:12:35  <CIA-53>node: v8: implement VirtualMemory class on SunOS
12:12:35  <CIA-53>node: Unbreaks build on SunOS. Re-applies 4908e5bf7a9c8014eefcf344e958bf0dad95d907. - http://git.io/7E6iLw
12:24:29  <CIA-53>node: koichik master * r173f91c / doc/api/zlib.markdown : docs: add zlib.createXxx() functions - http://git.io/LK_F4g
13:51:06  * ericktjoined
14:08:59  <bnoordhuis>quiet day
14:22:25  * piscisaureusjoined
14:40:42  * Marakquit (Remote host closed the connection)
14:40:42  * indutnyquit (Remote host closed the connection)
14:41:37  * Marakjoined
14:52:03  * isaacsjoined
14:59:08  * ericktquit (Quit: erickt)
15:20:28  * indutnyjoined
15:31:20  * ericktjoined
15:39:08  <erickt>bnoordhuis: Yesterday you said "^ bad idea >:(" when ryah and I were talking about merging the udp/tcp code. What did you mean?
15:39:59  <bnoordhuis>erickt: that it's a bad idea
15:40:11  <bnoordhuis>udp is not a stream
15:41:07  <erickt>well, what if at least it's not exposed to the user?
15:42:01  <rmustacc>Are you getting some useful abstraction internally with it?
15:42:46  <erickt>for unix, it seems like we can strip out most of the libev code from the udp backend
15:43:14  <erickt>I think it'll probably work out the same for windows, but I haven't really investigated that yet
15:43:52  <rmustacc>What's the cost of that?
15:45:34  <rmustacc>I'm not as familiar with the underlying code, but if the abstractions are inherently different, making udp look like tcp or vice versa has to mean that you lose something.
15:46:19  * AvianFlujoined
15:46:30  <erickt>It's more that libuv's imposing the abstraction. My prototype is just exposing the recvfrom and sendto functions
15:47:26  <erickt>and some tricks may have to be done to not increase the size of uv_write_t
15:48:44  <rmustacc>Is there an easy way to see all the diffs on the branch on github?
15:49:08  <erickt>sure! I've got my prototype branch here: https://github.com/erickt/libuv/tree/udp-tcp-merge
15:49:45  <bnoordhuis>even easier: https://github.com/erickt/libuv/compare/udp-tcp-merge
15:49:45  <erickt>it compiles, but udp isn't working yet
15:50:06  * erickt<3s github
15:50:08  <rmustacc>bnoordhuis: Thanks, that was what I was looking for.
15:55:27  <rmustacc>I have to head in to the office and I can give you some feedback, but I feel like I'm agreeing with bnoordhuis.
15:59:15  * ericktquit (Ping timeout: 244 seconds)
16:04:23  * isaacsquit (Quit: isaacs)
16:04:23  * ericktjoined
16:08:37  * ericktquit (Ping timeout: 240 seconds)
16:27:36  * dapjoined
16:40:43  * ericktjoined
16:43:15  * dapquit (Quit: Leaving.)
16:44:53  <erickt>thanks rmustacc. Sorry I was away for a bit, I had to transition off a train :)
16:45:36  * AvianFluquit (Quit: Leaving)
16:47:31  <wankdanker>hey all, I have a node module called node-discover which was making use of the dgram setBroadcast which is not implemented in the current node, nor is there libuv love for that
16:49:06  <wankdanker>so, i changed my code to use multicast with shtylman's patch for node (issue #1873), which works, however
16:49:19  * dapjoined
16:49:32  <wankdanker>i can not bind to the same port
16:50:50  <wankdanker>the old node 4.x code make use of SO_REUSEADDR and SO_REUSEPORT, i don't see any references to this in the uv upd code
16:51:06  <wankdanker>should this be a libuv issue or a node issue?
16:53:10  <pquerna> oz light rum
16:53:10  <pquerna>juice of 1/2 limes
16:53:10  <pquerna>Coca-Cola┬«
16:53:10  <pquerna>Read more: Cuba Libre recipe http://www.drinksmixer.com/recipes/3080/#ixzz1c0BMEiMh
16:53:13  <pquerna>bah
16:53:17  <pquerna>fuuuu paste
16:54:31  <wankdanker>sounds like a rum and coke to me. ;)
16:58:51  * brsonjoined
17:07:54  * dapquit (Quit: Leaving.)
17:30:20  * isaacsjoined
17:46:30  * dapjoined
17:57:32  * sh1mmerjoined
18:06:05  * AvianFlujoined
18:09:33  * pieternjoined
18:11:53  * indutnyquit (Remote host closed the connection)
18:11:53  * Marakquit (Remote host closed the connection)
18:12:04  * Marakjoined
18:40:16  <sh1mmer>anyone feel like helping me with a dumb gdb question?
18:45:03  * CoverSli1ejoined
18:45:42  * CoverSlidequit (Read error: Connection reset by peer)
18:45:55  <rmustacc>sh1mmer: What's up?
18:46:42  <sh1mmer>https://gist.github.com/1320440
18:46:52  <sh1mmer>I just want to break on node.cc:2339
18:46:55  <sh1mmer>is this an inlining hting
18:47:01  <sh1mmer>not sure why I can't set on that line
18:47:20  <sh1mmer>I'm trying to figure out why calling --node-brk when the script is a symlink doesn't work
18:57:20  <rmustacc>Not completely sure, but is houdl still work, no?
18:58:46  <sh1mmer>it doesn't seem to break where I want
18:58:51  <sh1mmer>show you after lunch?
18:58:57  <sh1mmer>I'm just in starbucks near the office
18:59:03  <rmustacc>Sure
19:07:59  * CoverSli1echanged nick to CoverSlide
19:12:00  * sh1mmerquit (Quit: sh1mmer)
19:29:38  * mikealquit (Quit: Leaving.)
19:30:19  * mikealjoined
19:30:40  * isaacsquit (Read error: Connection reset by peer)
19:47:20  * mikealquit (Quit: Leaving.)
19:52:52  <bnoordhuis>i think we skipped the call today?
19:56:11  * sh1mmerjoined
20:05:53  * indutnyjoined
20:11:09  <piscisaureus>yes
20:11:10  <piscisaureus>bnoordhuis: hey, I was thinking about directory watching
20:11:24  <piscisaureus>and how to emulate that
20:11:38  <bnoordhuis>piscisaureus: on sunos? or in general?
20:11:41  <piscisaureus>what about we readdir() it and compute a hash of all filenames and mtimes
20:11:57  <piscisaureus>no, the emulation we'll need for network shares and crappy OSes
20:12:38  <bnoordhuis>doing repeated readdir()s is expensive
20:12:53  <piscisaureus>bnoordhuis: yes but probably less expensive than statting all the files
20:13:30  <bnoordhuis>how does the hash help? you still have to stat the file to get the mtime
20:13:45  <piscisaureus>bnoordhuis: sure but it means we can keep the memory footprint low
20:13:50  <piscisaureus>even for very large directories
20:14:21  <bnoordhuis>how would that work? compute a hash of each filename + mtime?
20:15:20  <bnoordhuis>that should probably be ctime, mtime doesn't pick up attribute changes
20:15:34  <piscisaureus>then hash the attributes too
20:16:30  <bnoordhuis>i don't want to go down that road because that means you have to deal with xattrs as well
20:16:49  <bnoordhuis>ctime is better, it changes whenever mtime changes + whenever attributes change
20:17:26  <bnoordhuis>but that aside, directory traversal is expensive
20:17:44  * isaacsjoined
20:17:50  <bnoordhuis>this only has a chance of not sucking if the OS can keep all dirents for that directory in memory
20:17:57  <piscisaureus>bnoordhuis: that how do we do fs.watch on network share directories?
20:18:11  <piscisaureus>s/that/then/
20:18:25  <bnoordhuis>i'm not saying there's a better solution, just that it sucks performance wise :)
20:18:40  <piscisaureus>you're saying you don't want to go down that road
20:18:48  <piscisaureus>which means that you want to do something else
20:18:57  <bnoordhuis>that was about attr change detection
20:19:03  <piscisaureus>oh ok
20:19:05  <piscisaureus>yeah sure
20:19:07  <piscisaureus>ctime seems fine
20:19:44  <bnoordhuis>okay, say we implement that
20:20:00  <bnoordhuis>we still need to figure out if a file/directory is on a nfs mount
20:20:33  <piscisaureus>bnoordhuis: we may need to use it instead of kqueue as well I'm afraid
20:20:36  <igorzi>piscisaureus: hey, for multiple pending accepts knob.. i'm thinking to only allow going from many to one, and not the other way around. do you have any issues with that?
20:20:48  <piscisaureus>igorzi: no, not atm
20:20:55  <piscisaureus>igorzi: seems fine for now
20:21:00  <igorzi>piscisaureus: k
20:21:09  <piscisaureus>igorzi: I suppose the api is flexible enough to add it, should we need it?
20:21:37  <igorzi>piscisaureus: yep, the api is flexible.. it'll just fail if you try to go 1->many for now
20:23:19  <bnoordhuis>piscisaureus: the only remotely portable way of detecting the mount a file is on, is by parsing /etc/mtab i think
20:23:41  <bnoordhuis>that's going to be very painful, no doubt
20:24:28  <bnoordhuis>no belay that, sunos doesn't have /etc/mtab
20:24:45  * mikealjoined
20:25:01  <rmustacc>You're not going to want to hardcode every FS on every OS to know which are local and which are remote.
20:25:44  <rmustacc>bnoordhuis: Is /etc/mnttab what you're looking for?
20:25:56  <bnoordhuis>rmustacc: yes and /etc/dfs/fstypes
20:26:37  <bnoordhuis>yeah, i don't think we can reasonably do that
20:26:39  <bnoordhuis>piscisaureus: ^
20:26:40  <rmustacc>bnoordhuis: Is that going to catch every random fuse filesystem.
20:27:13  <rmustacc>Or whatever the /etc/dfs/fstypes equivalent on Linux is.
20:28:15  <piscisaureus>hmm
20:28:36  <bnoordhuis>rmustacc: fuse mountpoints show up in /etc/mtab
20:28:46  <bnoordhuis>don't know how that works on darwin
20:30:47  <rmustacc>bnoordhuis: But does that tell you whether they're remote or local?
20:31:59  <bnoordhuis>rmustacc: no, you'd have to interpret the fuse fs type
20:32:02  <bnoordhuis>so yeah, madness
20:32:21  <bnoordhuis>piscisaureus: i don't think your scheme is going to work
20:37:46  <piscisaureus>bnoordhuis: why?
20:38:33  <bnoordhuis>piscisaureus: for the reasons mentioned above, detecting on what fs a file lives (and what type of fs that is) is unreasonably hard
20:38:41  <bnoordhuis>it's a project in its own right
20:40:12  <piscisaureus>bnoordhuis: so what do we do?
20:40:18  <piscisaureus>nothing -> silent failure
20:40:35  <piscisaureus>add a flag that forces libuv to use polling?
20:41:01  <bnoordhuis>i suppose
20:48:52  * indexzerojoined
20:52:39  * mikeal1joined
20:54:08  * mikealquit (Ping timeout: 245 seconds)
21:05:48  <isaacs>hey, is process.stdout.flush() coming back, or should we document its disappearance?
21:06:06  <isaacs>i know it's kind of unnecessary, since the plan is to flush on exit automatically
21:07:12  <isaacs>ryah, bnoordhuis: wha'ts the plan for that?
21:08:43  <bnoordhuis>isaacs: i don't know, stdio is ryah's doing
21:08:48  <isaacs>k
21:08:54  <bnoordhuis>i suppose we could make it a no-op
21:09:04  <isaacs>yeah, it's kind of annoying that it throws
21:09:18  <isaacs>still, automatically flushing on exit is probably best.
21:15:47  * piscisaureus__joined
21:19:15  * bradleymeckjoined
21:19:43  <bradleymeck>igorzi, i heard we will have access to the event loop reference counter in 0.6.* maybe from indexzero?
21:22:44  <igorzi>bradleymeck: it's there in js-land now, but i don't think it's intended to be used by apps (https://github.com/joyent/node/blob/master/src/node.js#L249)
21:22:51  <igorzi>bradleymeck: you should ask ryah
21:23:23  <bradleymeck>i was just wondering since we use in in carapace for leaving open a logging channel without keeping the app alive
21:23:40  <bradleymeck>ryah, are we going to keep access to event loop counters in js-land do you know?
21:25:08  <rmustacc>ryah is on a plane.
21:25:51  <bradleymeck>ah
21:26:13  <piscisaureus>bradleymeck: wrap unref is not intended for users
21:26:26  <bradleymeck>:(
21:26:27  * ericktquit (Quit: erickt)
21:26:33  <piscisaureus>bradleymeck: but I think we should give you something to work with
21:26:43  <piscisaureus>because this problem is real
21:26:56  <bradleymeck>we have a c++ addon doing it for now
21:27:50  <piscisaureus>bradleymeck: there's some issues with this
21:28:06  <piscisaureus>bradleymeck: for example, when the refcount reaches 0 then node will just quit
21:28:13  <piscisaureus>without draining write queues etc
21:28:28  <piscisaureus>to properly support this for sockets we'd have to solve that
21:29:38  <bnoordhuis>was this ryah's idea of ref'ing every write request?
21:29:58  <bnoordhuis>or maybe your idea, piscisaureus? i forgot
21:30:05  <piscisaureus>bnoordhuis: it was ryah's idea
21:30:12  <piscisaureus>ryah though he had already done that
21:30:19  <piscisaureus>maybe that's an easy fix
21:30:50  <piscisaureus>bnoordhuis: but I am still not happy with the libev refcount model
21:31:12  <piscisaureus>bnoordhuis: but we decided to punt on it until node.next-after-0.6
21:31:28  <bnoordhuis>that's the implicit libev ref, right?
21:31:39  <piscisaureus>bnoordhuis: I don't care about the implicit ref
21:31:55  <piscisaureus>bnoordhuis: I don't like that there's no way to tell that a handle was unrefed
21:32:26  <piscisaureus>bnoordhuis: also this makes it very difficult to properly clean up any nontrivial secordary loop
21:32:31  <piscisaureus>*secondary
21:33:19  <piscisaureus>so we can't terminate threads or use an embedded loope tc
21:57:47  <bnoordhuis>test/simple/test-debugger-repl.js is rather non-determinate >:(
21:58:15  <bnoordhuis>sometimes it fails on line this, next time on line that *sigh*
21:58:27  <bnoordhuis>and sometimes it just hangs
22:02:23  <bnoordhuis>[13:01|% 100|+ 605|- 11]: Done <- test-all on linux :(
22:17:40  * mikealjoined
22:19:39  * mikeal1quit (Ping timeout: 260 seconds)
22:55:13  <igorzi>is src/node_io_watcher.cc still needed for anything?
22:55:40  <bnoordhuis>igorzi: what happens when you remove it? :)
22:56:56  <bnoordhuis>node.cc still initializes it but that's about it
22:57:24  <igorzi>bnoordhuis: didn't try yet :) i know it's not used for anything on windows, and i can't find any .js files that depend on that binding.. maybe i missed something
23:05:43  * piscisaureus__quit (Ping timeout: 252 seconds)
23:18:10  * mikeal1joined
23:19:42  * mikealquit (Ping timeout: 258 seconds)
23:24:19  * ericktjoined
23:36:15  * mikeal1quit (Quit: Leaving.)
23:37:59  <piscisaureus>igorzi: I think iowatcher is now completely obsolete
23:38:11  <piscisaureus>it was used for net and dns
23:38:18  <piscisaureus>but all those bindings are gone now
23:38:32  <igorzi>piscisaureus: and apps shouldn't be using those bindings directly, right?
23:38:39  <piscisaureus>nope
23:38:44  <piscisaureus>won't work on windows btw
23:39:02  <igorzi>k, any objections for removing it?
23:39:26  <piscisaureus>not from my side
23:39:37  <piscisaureus>you should check if it still compiles on linux I think
23:40:56  <igorzi>will do
23:41:12  <bnoordhuis>igorzi: link me to the patch and i'll check it for you
23:43:06  * mikealjoined
23:47:41  * mikealquit (Client Quit)
23:48:34  <igorzi>bnoordhuis: https://gist.github.com/1321230
23:50:09  * isaacsquit (Quit: isaacs)
23:51:04  <bnoordhuis>igorzi: applies, compiles, no ill effects
23:51:44  <igorzi>bnoordhuis: thanks
23:57:27  <piscisaureus>https://github.com/williame/hellepoll