00:02:13  <CIA-155>libuv: Ira Cooper v0.6 * rde64959 / (5 files in 3 dirs):
00:02:13  <CIA-155>libuv: sunos: make fs.watch scale better
00:02:13  <CIA-155>libuv: Instead of using one port per watch, use one port for all the watches. - http://git.io/raqrDQ
00:13:26  <CIA-155>libuv: Ben Noordhuis master * r6865464 / (5 files in 3 dirs): (log message trimmed)
00:13:26  <CIA-155>libuv: sunos: make fs.watch scale better
00:13:26  <CIA-155>libuv: Instead of using one port per watch, use one port for all the watches.
00:13:26  <CIA-155>libuv: This is a cherry-pick of commit de64959 from v0.6 into master.
00:13:26  <CIA-155>libuv: Conflicts:
00:13:26  <CIA-155>libuv: include/uv.h
00:13:26  <CIA-155>libuv: src/unix/core.c
00:16:37  <bnoordhuis>ffs, i broke the build
00:17:09  <isaacs>bnoordhuis: ?
00:17:19  <isaacs>bnoordhuis: oh, libuv build?
00:18:06  <bnoordhuis>yeah
00:18:18  <bnoordhuis>the good news is: it compiles on sunos
00:18:28  <bnoordhuis>the bad news: it doesn't on all other unices
00:22:44  <isaacs>haha
00:22:47  <isaacs>joyent thanks you
00:23:00  <isaacs>everyone else is pissed
00:32:24  <CIA-155>node: J. Lee Coltrane master * ra62dd44 / (6 files in 3 dirs): (log message trimmed)
00:32:24  <CIA-155>node: cluster: worker exit event to match child_process
00:32:24  <CIA-155>node: test: fixes due to new cluster api.
00:32:24  <CIA-155>node: - changed worker `death` to `exit`.
00:32:24  <CIA-155>node: - corrected argument type expected by worker `exit` handler.
00:32:24  <CIA-155>node: test: more tests of cluster.worker death
00:32:25  <CIA-155>node: cluster: fixed arguments on worker 'exit' event
00:33:23  <isaacs>there's also a 'merge v0.6' commit...
00:33:54  <isaacs>100% tests passing on master again. love it.
00:36:22  * loladiroquit (Quit: loladiro)
00:52:26  * mmaleckichanged nick to mmalecki[zzz]
00:53:29  <CIA-155>libuv: Ben Noordhuis master * rb5f9bc8 / (3 files in 2 dirs): (log message trimmed)
00:53:29  <CIA-155>libuv: sunos: make fs.watch scale better
00:53:29  <CIA-155>libuv: Instead of using one port per watch, use one port for all the watches.
00:53:29  <CIA-155>libuv: This is a cherry-pick of commit 7326962 from v0.6 into master.
00:53:29  <CIA-155>libuv: Conflicts:
00:53:29  <CIA-155>libuv: include/uv-private/uv-unix.h
00:53:30  <CIA-155>libuv: src/unix/core.c
00:53:30  <CIA-155>libuv: Ira Cooper v0.6 * r7326962 / (3 files in 2 dirs):
00:53:31  <CIA-155>libuv: sunos: make fs.watch scale better
00:53:32  <CIA-155>libuv: Instead of using one port per watch, use one port for all the watches. - http://git.io/PkEbtg
00:56:53  <bnoordhuis>isaacs: where do you see a merge v0.6 commit?
00:58:06  * c4milojoined
00:59:37  <isaacs>bnoordhuis: i made it, that's how i know :)
00:59:40  <isaacs>bnoordhuis: on node master
00:59:51  <isaacs>https://github.com/joyent/node/commits/master
01:00:04  <isaacs>it's just that CIA only showed the top one
01:00:10  <bnoordhuis>oh, right
01:00:22  <bnoordhuis>what's your opinion on this? https://github.com/joyent/node/pull/3217
01:01:03  * loladirojoined
01:01:23  <isaacs>meh. if we're gonna do it, we have UTF16 be and le, and UCS2, and UTF8.
01:01:29  <isaacs>cesu-8 kinda fits in with that bunch
01:01:47  <isaacs>not quite exactly, but in a way, cesu-8 : utf8 :: ucs2 : utf16
01:02:22  <isaacs>and, it's a pretty common way to handle high-order chars across platforms.
01:02:30  <isaacs>+0.2 i guess :)
01:02:56  <bnoordhuis>people actually use it?
01:03:01  * bnoordhuisis baffled
01:04:45  <isaacs>bnoordhuis: yeah
01:04:47  * mikealjoined
01:05:04  <isaacs>bnoordhuis: voxer explored using it for emoji before bert and the erik fixed it properly
01:05:30  <isaacs>bnoordhuis: also there are some databases from the 90s that don't speak utf8, but you can talk to them in cesu8
01:05:41  <bnoordhuis>yeah, that i know
01:05:49  <isaacs>it's only relevant if there are chars in the astral plane
01:05:56  <bnoordhuis>the astral plane :)
01:06:03  <bnoordhuis>i'm going to use that one
01:06:07  <bnoordhuis>okay, i guess i'll give koichi the green light
01:06:54  <isaacs>yeah, lgtm
01:08:19  * pieternquit (Quit: pietern)
01:10:11  * mmalecki[zzz]changed nick to mmalecki
01:11:10  * xaqquit (Remote host closed the connection)
01:11:57  <mmalecki>ooc, why doesn't koichi hang out here?
01:12:03  * xaqjoined
01:12:22  <bnoordhuis>mmalecki: he thinks his english is not good enough
01:12:56  <mmalecki>bnoordhuis: it totally is!
01:13:54  <mmalecki>also, ugh, it's 3 AM, what are we even doing here
01:14:02  <bnoordhuis>i was about to sign off :)
01:14:23  <mmalecki>I can't
01:14:29  <mmalecki>I still have a bottle of vodka to finish
01:14:57  <isaacs>bnoordhuis: i'm going to pull in https://github.com/mcavage/node/commit/dba8dfd1f66ed5367379d5cf7b0e5cd144360f9e
01:14:58  <bnoordhuis>alcohol is harmful to the youthful mind and body, you know that, maciej
01:15:15  <isaacs>bnoordhuis: but update the links to the rfc, not mark's thing
01:15:15  <mmalecki>also, if you guys recall that bikeshedding about passing command to child_process.fork
01:15:22  <mmalecki>walked around, https://github.com/nodejitsu/forever/compare/remove-node-fork
01:15:29  <mmalecki>bnoordhuis: I lol'd
01:15:34  <bnoordhuis>isaacs: meh, it's still a draft right?
01:15:51  <isaacs>bnoordhuis: yeah, but it's gonna be approved.
01:15:56  <isaacs>bnoordhuis: we have "I am a teapot" in there.
01:16:04  <bnoordhuis>isaacs: hah. guess who added that? :)
01:16:09  <isaacs>ryah, i think
01:16:21  <bnoordhuis>guess again :)
01:16:27  <isaacs>orly? you did?
01:16:36  <bnoordhuis>yeah, one of my first patches
01:16:42  <mmalecki>hah, knew that!
01:16:42  <isaacs>indeed!
01:16:43  <isaacs>b58db3cd lib/http.js (Ben Noordhuis 2010-05-23 22:48:50 +0200 218) 418 : 'I\'m a teapot', // RFC 2324
01:16:44  <isaacs>nice
01:16:51  <isaacs>i knew it was around a long time
01:17:48  <bnoordhuis>re that patch, okay if the draft is going to get approved unchanged
01:18:00  <bnoordhuis>would be kind of silly to have to patch that up later on
01:18:13  <bnoordhuis>mmalecki: what bikeshed is that?
01:18:17  <bnoordhuis>also, green
01:18:46  * mikealquit (Quit: Leaving.)
01:19:03  <mmalecki>bnoordhuis: I don't think I follow
01:19:22  <mmalecki>is http://bikeshed.com/ related
01:19:23  <mmalecki>?
01:19:26  <bnoordhuis><mmalecki> also, if you guys recall that bikeshedding about passing command to child_process.fork
01:20:03  <mmalecki>yeah
01:20:05  <mmalecki>ah
01:20:08  <mmalecki>I can find the issue
01:21:32  <mmalecki>https://github.com/joyent/node/pull/2454
01:22:41  <bnoordhuis>ah, that one
01:22:51  * mikealjoined
01:22:52  <mmalecki>ugh, this hotel wifi is weird
01:23:05  <mmalecki>sometimes it sucks really bad, sometimes it works like a dream
01:23:32  <bnoordhuis>so it works in plain node now?
01:23:39  <bnoordhuis>fork, i mean, not your hotel's wifi
01:24:00  <mmalecki>bnoordhuis: yeah, there's this shim right there
01:24:13  <mmalecki>https://github.com/nodejitsu/forever/blob/ce3755e9a8e31c375f41af43773fde29b4bb1d12/bin/fork-shim
01:24:29  <bnoordhuis>well done
01:29:33  * orlandovftwquit (Ping timeout: 256 seconds)
01:29:39  * dapquit (Quit: Leaving.)
01:30:06  * dapjoined
01:30:07  * dapquit (Client Quit)
01:30:49  <CIA-155>node: isaacs v0.6 * r8cd2b0e / Makefile : test: No need for weak in 'make test' - http://git.io/UoBxgw
01:31:29  <CIA-155>node: isaacs master * reaf607e / Makefile : test: No need for weak in 'make test' - http://git.io/41YTgA
01:34:41  * TheJHquit (Read error: Operation timed out)
01:47:35  * isaacsquit (Remote host closed the connection)
01:54:45  * benvie_quit (Ping timeout: 240 seconds)
01:55:12  <benvie>oh hey TooTallNate, i see some good stuff happening over at node-ffi
01:55:48  <TooTallNate>benvie: ;)
01:55:58  <TooTallNate>benvie: i finally got sick of the Pointer class
01:56:13  <TooTallNate>benvie: i have a new module that essentially treats Buffers the same way
01:56:25  <TooTallNate>but since buffers are fast, it's gonna be a lot faster now
01:57:10  <benvie>yeah. I tried to do stuff but I'm just not confident in my C/C++ experience normally, let alone this completely unmanaged clusterfuck that ffi is
01:57:56  <tjfontaine>managed is for weenies
01:58:00  <benvie>and I didn't have a clear idea of where to go with it, in terms of managing pointers
01:58:25  <TooTallNate>well essentially i'm living by the golden rule that node-ffi will never allocate it's own data
01:58:32  <TooTallNate>since Buffers do that now
01:58:37  <benvie>like I did all the fun stuff with making usable interfaces in JS for managing buffers but I just didn't have a clear vision of how that process was to get bridged
01:59:12  <TooTallNate>benvie: well i made up an easy "type" interface, that maybe you can adhere to
01:59:19  <TooTallNate>on sec, i'm gonna OS `ref`
01:59:58  <TooTallNate>benvie: https://github.com/TooTallNate/ref
01:59:58  <benvie>that's the missing link I was struggling with, trying to capture that semantic in JS is difficult
02:00:11  <benvie>without a memory space to work in
02:00:54  <benvie>this is awesome
02:01:06  <benvie>and it fits perfectly with how everything else in node works
02:01:36  <benvie>for any ffi project I can just load up reified on top of this and it just works
02:02:10  <benvie>and it let's people also do it however they wish
02:02:33  <benvie>like streaming data over ffi
02:02:57  <TooTallNate>ya this "types" thing is cool, cause you could write a type that returns reified instances
02:03:10  <TooTallNate>and then you could directly pass in reified instances to node-ffi functions
02:03:14  <TooTallNate>and vice-vers
02:03:15  <TooTallNate>a
02:04:01  <benvie>yeah basically they just need to implement provide the ability to deref them and that's all that's needed
02:04:19  <benvie>objects that represent the refs, with functions to deref their data
02:04:39  <benvie>it is beautifully simple
02:04:55  <TooTallNate>thanks :)
02:05:20  <TooTallNate>i'm still undecided as to whether Struct, Array, Union, BitField, etc. classes belong in here
02:05:28  <TooTallNate>probably yes though...
02:05:48  <benvie>yeah if the performance can be gotten
02:06:10  <benvie>to make it faster than the js wrapper version
02:06:20  <benvie>also a cool idea I just had it
02:06:28  <TooTallNate>no, i mean they'd be implemented in JS
02:06:32  <benvie>oh yeah
02:06:45  <benvie>well never mind on my whole shadow fake world theory =D
02:07:12  * mmaleckichanged nick to mmalecki[zzz]
02:07:48  <benvie>the es6 binary data is in the process of being updated right now
02:08:04  <benvie>by dherman
02:08:54  <benvie>this already is a pretty close fit to what it was before, just missing th structs and arrays
02:09:08  <TooTallNate>omg they're adding String#repeat()
02:09:13  <TooTallNate>\o/
02:09:38  <benvie>yeah spidermonkey has all the String and Array methods as static functions right now, so i guess they're codiftying it
02:09:50  <TooTallNate>no more `Array.apply(null, Array(5)).map(function () { return 'a' })
02:10:11  <TooTallNate>Array.apply(null, Array(5)).map(function () { return 'a' }).join('') rather
02:10:15  <benvie>lol
02:10:26  <benvie>well Array.apply still lives, but the rest won't be needeed =D
02:12:02  * bnoordhuisquit (Ping timeout: 265 seconds)
02:12:25  <TooTallNate>"Added arrow functions (13.2) and concise methods (13.3)"
02:12:33  <TooTallNate>whatever that is... i don't like the sound of it...
02:12:48  <benvie>arrow functions have a hard lexical binding
02:12:51  <benvie>so you can do
02:12:55  <TooTallNate>this
02:13:10  <benvie>[1,2,3].map(x->x*2)
02:13:12  <benvie>er
02:13:13  <benvie>=>
02:13:36  <benvie>so if you have only one param, you can skip parenthesis
02:13:47  <benvie>otherwise it's (x,y)=>stuff
02:13:50  <TooTallNate>lol
02:13:57  <TooTallNate>coffeescript FTL!!
02:14:06  <benvie>if you only have one statement, you don't need to put return
02:14:09  <benvie>iotherwise you do
02:14:27  <benvie>and there is *no* non-bound version
02:14:44  <benvie>all arrow functions are automatically bound to whatever the current binding is
02:15:20  <benvie>and then the concise methods are just good syntax
02:15:24  <benvie>it's like how you can do
02:15:26  <TooTallNate>that was mostly to get rid of the `var self = this` dance right?
02:15:37  <benvie>{ get x(){ }, set x(v){} }
02:15:39  <benvie>except it's
02:15:43  <benvie>{ method(){ } }
02:16:13  <benvie>yeah exactly
02:16:26  <benvie>so there was some study done of a bunch of real world code
02:16:39  <benvie>and something like 90% of functions fell into three groups
02:17:00  <benvie>methods on classes that used dynamic this as part of being a method
02:17:22  <benvie>functions that needed to use the current binding, aka self = this
02:17:26  <benvie>for all the reasons that's used
02:17:34  <benvie>or simlpy didn't use `this` at all
02:17:50  <benvie>so there really isn't much actual use for a non-bound arrow function
02:18:51  <TooTallNate>ok gotta run
02:18:52  <benvie>you will use a method if you need a non-bound method function, and if you have a non-method, non-lexical use of `this` then you're probably just doing bad code anyway
02:18:54  <benvie>adios
02:19:04  <TooTallNate>benvie: play around with `ref`, lemme know what you think ;)
02:19:09  <benvie>I will =D
02:19:13  * TooTallNatequit (Quit: Linkinus - http://linkinus.com)
02:19:18  <benvie>I'm going to start working it into reified actually
02:24:35  * avalanche123joined
02:25:21  <avalanche123>hello folks, any objections to making individual fs callbacks for each event instead of generic uv_fs_cb to make it more consistent with the rest of the api?
02:26:24  <avalanche123>or rather any particular reason the existing api is different other than it was probably faster to implement it the way it is
02:26:25  <avalanche123>?
02:40:32  * mjr_quit (Quit: mjr_)
02:40:39  * kohaiquit (Ping timeout: 250 seconds)
02:44:07  * mikealquit (Quit: Leaving.)
02:44:40  * xaqquit (Remote host closed the connection)
02:48:52  * avalanche123quit (Ping timeout: 260 seconds)
02:48:57  * mikealjoined
02:50:04  * avalanche123joined
02:54:20  * mikealquit (Quit: Leaving.)
03:00:20  <benvie>this library is amazing
03:00:28  <benvie>it is the missing piece
03:06:37  * avalanche123quit (Quit: Computer has gone to sleep.)
03:07:30  * avalanche123joined
03:08:25  * isaacsjoined
03:08:25  * avalanche123quit (Client Quit)
03:08:26  <txdv>benvie: of what?
03:08:51  <benvie>all the dara stuff
03:08:56  <benvie>data
03:09:22  <benvie>it integrates the key pieces that allow it all to be animated into a terrible monster of doom
03:12:28  <benvie>did you see it?
03:12:35  <benvie>here's what you can do, a short list
03:12:49  <benvie>write references to JS objects to buffers
03:12:52  <benvie>their pointer
03:12:56  <benvie>and then later retrieve them
03:13:18  <benvie>write and read Int64s from buffers
03:13:34  <benvie>create a new reference object from a buffer that derefs back to that buffer
03:14:15  <benvie>create a reference object of all the main numeric types and string types that derefs back to it
03:14:21  <benvie>all backed by buffers
03:15:24  <benvie>that puts almost all the tools for any kind of esternal data interface into jsland
03:15:30  <txdv>you are talking about node-ffi?
03:15:34  <benvie>nono
03:15:54  <benvie>this will be used to replace most of the internals of node-ffi I'm sure
03:16:01  <benvie>https://github.com/TooTallNate/ref
03:16:53  * ericktjoined
03:17:13  <benvie>the only thing still left provided by ffi is the communication interface itself, which is good
03:17:21  <benvie>that's what it does well, the rest is slow
03:17:52  <benvie>this replaces all the ways the data is actually moved, but it has implications beyond ffi
03:31:44  <CIA-155>node: koichik master * rceb51dd / (lib/string_decoder.js test/simple/test-string-decoder.js):
03:31:44  <CIA-155>node: string_decoder: add support for CESU-8
03:31:44  <CIA-155>node: Fixes #3217. - http://git.io/QDwYOg
03:34:49  * c4miloquit (Read error: Connection reset by peer)
03:40:30  * c4milojoined
04:00:51  * ljacksonquit (Read error: Operation timed out)
04:16:19  * ljacksonjoined
04:45:14  * c4miloquit (Ping timeout: 248 seconds)
04:52:18  <CIA-155>node: Mark Cavage master * r5871c81 / lib/http.js :
04:52:18  <CIA-155>node: Add HTTP Status codes from RFC 6585
04:52:18  <CIA-155>node: See: http://tools.ietf.org/html/rfc6585 - http://git.io/gqUhgQ
05:06:32  * loladiroquit (Quit: loladiro)
05:09:42  * ericktquit (Quit: erickt)
05:12:36  * isaacsquit (Remote host closed the connection)
05:13:59  * benviequit
05:51:20  * avalanche123joined
06:49:04  * mikealjoined
07:13:44  * AvianFluquit (Remote host closed the connection)
07:16:23  * pfox___quit (Ping timeout: 276 seconds)
07:18:48  * rendarjoined
07:23:34  * paddybyersjoined
07:35:03  * mikealquit (Quit: Leaving.)
07:46:04  * mikealjoined
08:25:53  * paddybyersquit (Quit: paddybyers)
09:13:04  * TheJHjoined
09:57:17  * TheJHquit (Ping timeout: 252 seconds)
10:23:28  * theColejoined
10:43:48  * theColepart
11:24:13  * theCole_joined
11:25:20  * txdvquit (Read error: Connection reset by peer)
11:25:30  * txdvjoined
11:27:44  * theCole__joined
11:30:21  * theCole_quit (Ping timeout: 245 seconds)
11:53:22  * paddybyersjoined
12:06:26  <txdv>O my god
12:06:36  <txdv>who is responsible for uv_poll_* ?
12:11:33  * paddybyersquit (Quit: paddybyers)
12:14:46  <txdv>good old pisci, I'm starting to have a nerdcrush
12:26:08  * theColejoined
12:28:06  * theCole__quit (Ping timeout: 252 seconds)
12:32:27  * rendarquit (Read error: Connection reset by peer)
12:32:42  * rendarjoined
13:13:44  * bnoordhuisjoined
13:36:31  * theColequit (Quit: theCole)
13:49:05  * piscisaureus_joined
13:50:57  <piscisaureus_>txdv: hey
13:51:05  <txdv>hey
13:51:07  <piscisaureus_>txdv: I doubt that the poll watcher will be usable for you on windows
13:51:16  <piscisaureus_>txdv: so far I only support sockets.
13:51:25  <txdv>no stdin?
13:51:36  <piscisaureus_>txdv: stdin is something we could add - but I didn't so far.
13:51:46  <CIA-155>node: koichik master * r40c4bee / (lib/string_decoder.js test/simple/test-string-decoder.js):
13:51:46  <CIA-155>node: string_decoder: added support for UTF-16LE
13:51:46  <CIA-155>node: Fixes #3223. - http://git.io/YCCMWw
13:51:56  <txdv>I once bitched about how to support ncurses with libuv
13:51:59  <piscisaureus_>txdv: stdin is kind of an oddball. I think it's the only pollable thing windows has besides sockets. But the polling mechanism is completely different
13:52:04  <piscisaureus_>txdv: I know
13:52:14  <piscisaureus_>txdv: but I wonder, does ncurses work on windows at all.
13:52:21  <txdv>it does
13:52:42  <piscisaureus_>txdv: does it have a github repo somewhere? I'd like to see what it does.
13:53:13  <txdv>it is developed in the one and only true way
13:53:16  <txdv>tarballs and patches
13:53:28  <piscisaureus_>txdv: the true way from the 90s
13:53:39  <piscisaureus_>txdv: I would take a patch for stdin support :-p
13:54:03  <piscisaureus_>txdv: It's not that hard, just a lot of work.
13:55:02  <piscisaureus_>txdv: but uv_tty_t basically uses that (when in raw mode) so you could probably just get the idea from it
13:55:27  <txdv>http://ftp.gnu.org/pub/gnu/ncurses/
13:55:47  <txdv>Man they are seriously using only tarballs and patches
13:55:59  <txdv>ncurses is so ancient
13:58:31  <txdv>why do you want to see the source?
13:58:55  <txdv>the way I have been doing it until now: watch if stdin has something to read => read it with ncurses getch function
14:01:43  <piscisaureus_>txdv: because I wanted to see whether windows implementation was insane or useful
14:02:02  <piscisaureus_>txdv: but it seems same at a first glance
14:12:29  <CIA-155>node: koichik master * r9f3c639 / (3 files):
14:12:29  <CIA-155>node: doc: fix setEncoding()
14:12:29  <CIA-155>node: Fixes #3209. - http://git.io/S48vFg
14:16:37  <txdv>piscisaureus_: you sure that uv_poll with fd on unix doesn't work on stdin fd?
14:16:53  <piscisaureus_>txdv: it works on unix
14:16:58  <txdv>but not on windows?
14:17:05  <piscisaureus_>txdv: no
14:17:14  <piscisaureus_>txdv: on windows it groks only sockets atm
14:17:16  <txdv>good enough for me for the time being
14:17:32  <piscisaureus_>txdv: ok
14:17:41  <txdv>man this makes libuv the perfect lib
14:18:08  <piscisaureus_>txdv: as I said, we could add support for stdin on windows. But anything else (e.g. pipe, file) will never work
14:18:42  * irajoined
14:19:08  <piscisaureus_>txdv: I suppose we could add that but it's not a very high priority atm
14:21:41  <txdv>you made me happy already, now I have to port my C# ncurses wrapper to libuvsharp
14:21:43  <txdv>tis will be amazing
14:23:38  <txdv>whats the next version of node that will have this libuv from master?
14:26:28  <piscisaureus_>txdv: 0.8
14:26:38  <piscisaureus_>txdv: we will fork off libuv 0.8 when node 0.8 releases
14:27:06  <txdv>will the poll functionality be exposed as a js api?
14:27:16  <piscisaureus_>txdv: I dont think so
14:27:22  <txdv>doesn't matter actually, if it is available in the module
14:27:30  <txdv>the node-ncurses guy will be happy
14:27:49  <piscisaureus_>txdv: it's there to help compiled addon writers.
14:28:01  <txdv>yeah I figured
14:28:17  <piscisaureus_>txdv: we will probaby also rework the cares stuff to use uv_poll, or maybe rip it out of libuv completely
14:29:12  <piscisaureus_>txdv: if integration with libuv is easy, then libuv users can decide for themselves whether they want to use cares.
14:29:22  <piscisaureus_>and if it takes only 50 lines of glue code then probably it's fine for them
14:31:41  <txdv>that is nice
14:33:20  <CIA-155>node: Javier Hernández master * r792d9a9 / configure :
14:33:20  <CIA-155>node: build: print error message if no compiler found
14:33:20  <CIA-155>node: Make the configure script warn the user about the lack of an acceptable
14:33:20  <CIA-155>node: C compiler on the system. - http://git.io/hdjubg
14:33:55  <piscisaureus_>bnoordhuis: uv-unix is too big
14:34:18  <bnoordhuis>piscisaureus_: so is your momma
14:34:39  <piscisaureus_>bnoordhuis: it's 80k lines. uv-win is only 18k lines
14:34:48  <piscisaureus_>bnoordhuis: you have to get some exercise man
14:35:23  <txdv>well it contains libev?
14:35:30  <bnoordhuis>piscisaureus_: where do you get that 80k from?
14:35:41  <bnoordhuis>ansic: 13200 (56.96%)
14:35:41  <bnoordhuis>sh: 9976 (43.04%)
14:35:59  <piscisaureus_>bnoordhuis: find src/unix -type f | xargs wc -l
14:36:08  <txdv>yeah
14:36:22  <bnoordhuis>piscisaureus_: add -name \*.[ch] to your find
14:36:37  <bnoordhuis>even better, use sloccount
14:36:51  <txdv>configure is 13k lines big
14:36:59  <txdv>and it is file type f
14:37:14  <ira>piscisaureus_: This happens when you support more than one platform. ;)
14:37:28  <txdv>its 13k and 13k
14:37:30  <txdv>it is just as big
14:37:35  <bnoordhuis>and it's not even used
14:37:48  <bnoordhuis>guess i'll remove it
14:38:01  <piscisaureus_>just remove libev :-)
14:38:11  <piscisaureus_>it's not invented here
14:38:50  <bnoordhuis>soon!
14:39:22  <piscisaureus_>btw we are very irrational
14:39:32  <piscisaureus_>s/we/oss developers/
14:39:44  <piscisaureus_>in the java world, more lines of code means more salary
14:39:54  <piscisaureus_>here *less* lines of code means more upvotes
14:39:56  <bnoordhuis>the language is conducive to that
14:40:06  <txdv>whats the sizeof(SOCKET) ?
14:40:15  <piscisaureus_>txdv: sizeof(void*)
14:40:31  <piscisaureus_>txdv: e.g. architecture dependent
14:41:02  <txdv>so sizeof(uv_os_sock_t) == sizeof(void *) on lin and win?
14:41:23  <piscisaureus_>txdv: on unix it's sizeof(int)
14:41:34  <txdv>damn
14:41:46  <piscisaureus_>txdv: what's up?
14:42:42  <txdv>https://github.com/txdv/LibuvSharp/blob/master/LibuvSharp/Udp.cs#L10-14
14:42:53  <txdv>this is what I have to do when the definitions are different
14:45:36  <txdv>not a big deal, just a lot of work to write
14:46:01  <piscisaureus_>txdv: why not just make it intptr_t ?
14:46:05  <bnoordhuis>txdv: can't you do the c# equiv of (uv_os_sock_t *) malloc(sizeof(void*))?
14:46:27  <piscisaureus_>or use an union
14:47:05  <txdv>well I'll try it out
14:47:45  <bnoordhuis>c# has value types, right? the c language spec guarantees that sizeof(void*) is always >= sizeof(int)
14:48:04  <bnoordhuis>so just stuff it in a value type and cast with wild abundance
14:49:43  <tjfontaine>well actually nearly everything in native interop is a by value operation, it's usually copied across the managed/unmanaged layer
14:50:35  <piscisaureus_>it must suck like this
14:50:36  <tjfontaine>for this operation it does suck that the uv types are of different sizes, it would be easier for him if everything were opaque types with accessor methods
14:51:21  <txdv>what tjfontaine said
14:52:05  <tjfontaine>I've done a fair amount of c# interop, when you have to do the struct packing and everything yourself it can get painful quick
14:52:13  <piscisaureus_>txdv: so the problem here is that the function signatures effectively have different sizes?
14:52:21  <txdv>yeah
14:52:36  <bnoordhuis>tjfontaine: does a hypothetical uv_sizeof_os_sock_t() function help?
14:52:50  <bnoordhuis>or do you have to declare the type size at compile time?
14:52:58  <tjfontaine>the
14:53:15  <piscisaureus_>well I think that compiled c# code is platform independent
14:53:21  <txdv>the problem is that os_sock_t is 32 bit on linux32/64 and 32/64 on win32/64
14:53:25  <piscisaureus_>so it needs to be able to deal with uv-win and uv-unix
14:53:25  <tjfontaine>well, it could help it depends on who is allocing it, and how it needs to be used
14:53:40  <tjfontaine>if it's always just a pointer type, then having uv make it is the best way
14:53:53  <piscisaureus_>txdv: bnoordhuis: I think "int" is 64 bit on unix right?
14:54:00  <txdv>is it?
14:54:19  <txdv>then I have no problem with os_sock_t
14:54:20  <txdv>xD
14:54:22  <bnoordhuis>piscisaureus_: no, it's 32 bits
14:54:25  <piscisaureus_>oh
14:54:36  <bnoordhuis>except on cray supercomputers
14:54:59  <bnoordhuis>but even chars are 64 bits on cray
14:55:15  <tjfontaine>txdv: you could just always use the size of the larger struct and then malloc and pass that, then on return pointertostructure
14:55:28  <tjfontaine>txdv: so you could get the right struct at runtime
14:55:40  <piscisaureus_>anyway... it seems that when you write c# you would also have to deal with ILP64 plaforms :-p
14:59:25  <tjfontaine>fwiw you have less to worry about abi if everything were opaque pointers :P
14:59:47  <bnoordhuis>agreed
14:59:52  <tjfontaine>there would still be some places it makes sense like in the process options stuff
15:00:01  <bnoordhuis>but the great thing is that it's not *us* that have to worry about abi compatibility :)
15:00:06  <tjfontaine>hehe
15:00:35  <tjfontaine>I mean, anyone who writes this stuff could also write a glue layer to handle it
15:00:57  * mmalecki[zzz]changed nick to mmalecki
15:01:10  <tjfontaine>I guess it could be even passed upstream for your guys approval
15:01:11  <piscisaureus_>Yeah maybe you guys should collaborate and write a glue layer
15:01:33  <tjfontaine>I really dont' care that much, but I bet the lua/py/ruby folk care :)
15:01:36  * paddybyersjoined
15:01:42  <piscisaureus_>well... for that it would have to be general purpose enough
15:01:51  <txdv>if you write the module in C, you don't need a glue layer
15:01:51  <piscisaureus_>I don't think the lua and py folk care
15:02:00  <piscisaureus_>the rust guys would I think
15:02:11  <txdv>in C# you can do interop in pure CLR
15:02:15  <piscisaureus_>don't know about ruby folk
15:02:36  <txdv>piscisaureus_: uv_handle_size doesn't inclue UV_POLL and UV_FILE
15:02:53  <piscisaureus_>txdv: UV_FILE is just int atm
15:03:05  <piscisaureus_>txdv: it's not really a handle type atm
15:03:19  <piscisaureus_>txdv: I take patches for POLL
15:03:33  <tjfontaine>oh ya, man I bet the private field stuff is really a pain on the C# side, blech, man this is why libclang makes it easy
15:03:40  <txdv>well, hv_handle_size can return a sizeof(nit) for UV_FILE, doesn't make anything worse
15:03:52  <piscisaureus_>sure
15:04:02  <txdv>ok, let me do that patch
15:04:21  <piscisaureus_>txdv: it's just that there are no actual handle types with type UV_FILE :-)
15:05:00  <txdv>o
15:05:03  <txdv>then it doesn't make sense
15:05:23  <piscisaureus_>txdv: uv_fs_open etc just gives you a file descriptor. It's an int
15:05:51  <piscisaureus_>txdv: that will change at some point tho. I want to make uv_fs_t a proper handle and queue fs operations etc
15:06:19  <piscisaureus_>so you can properly enqueue multiple writes and they will be kept in order, like you can now with sockets
15:07:58  * ericktjoined
15:10:51  <txdv>https://github.com/joyent/libuv/pull/405
15:10:56  <txdv>2 lines of contribution
15:11:00  <txdv>yeaaaaaaah
15:11:16  <piscisaureus_>txdv: did you sign the cla?
15:11:30  <txdv>not yet I guess
15:11:51  <txdv>don't you dare to merge or ill sue you over those 2 lines of IP
15:14:02  <txdv>I just did
15:14:14  <txdv>Node.js Contributor License Agreement ("Agreement")
15:14:14  <txdv>Thank you.
15:14:49  <piscisaureus_>Hainbuchenstrasse
15:14:49  <piscisaureus_>aha
15:14:54  <piscisaureus_>:-p
15:16:05  <piscisaureus_>txdv: hmm
15:16:11  <piscisaureus_>txdv: the patch is not good.
15:16:24  <piscisaureus_>txdv: you should add UV_POLL to the map list
15:16:34  <txdv>I see
15:16:36  <txdv>let me fix it
15:16:46  <txdv>I thought you have thought about it once you appended it afterwards
15:18:47  <piscisaureus_>txdv: ^-- I am sure there is a deep philosophical meanin in that sentence. Unfortunately I am just a illiterate peasant.
15:19:08  <txdv>hoho sarcasm
15:20:11  <piscisaureus_>txdv: mildl
15:20:13  <piscisaureus_>er
15:20:17  <piscisaureus_>mild sarcasm only
15:20:42  * loladirojoined
15:24:15  <txdv>https://github.com/joyent/libuv/pull/405
15:25:35  <bnoordhuis>you know, i'm 95% sure i found an invalid free() inside glibc
15:25:42  <bnoordhuis>it's trying to free a stack address
15:25:53  <bnoordhuis>anyone wants to buy a 0-day exploit?
15:26:29  <mmalecki>bnoordhuis: how much?
15:26:43  <bnoordhuis>mmalecki: you go first
15:26:57  <mmalecki>bnoordhuis: $ 10
15:27:19  <bnoordhuis>mmalecki: i think you forgot to append the letter k
15:27:22  <piscisaureus_>bnoordhuis: which projct
15:27:26  <bnoordhuis>piscisaureus_: glibc
15:27:47  <piscisaureus_>bnoordhuis: is it exploitable
15:27:50  <piscisaureus_>bnoordhuis: I a
15:28:01  <piscisaureus_>I am sure some companies will pay you for that
15:28:07  <mmalecki>bnoordhuis: I can't afford $ 10k :(
15:28:15  <bnoordhuis>yeah. mostly russian companies
15:28:22  <mmalecki>or NSA
15:28:28  <piscisaureus_>big g?
15:29:30  <piscisaureus_>bnoordhuis: i bet android uses glibc
15:29:38  <bnoordhuis>no, it uses bionic
15:30:15  <txdv>man this is so awesome
15:30:22  * AlbireoXjoined
15:30:29  <txdv>i wanted to learn today, but Ill just code on my stuff with Poll
15:30:58  <mmalecki>bnoordhuis: go and find bionic exploit :)
15:31:13  <mmalecki>does it actually compile on x86?
15:32:05  <CIA-155>libuv: Andrius Bentkus master * r985b961 / include/uv.h : Put POLL into the handle_map, so handle_size returns the size of it correctly. - http://git.io/fyGPgA
15:32:33  <txdv>Damn right, +1 -1, best contributor of all times
15:32:56  <piscisaureus_>txdv: this is just the beginning
15:33:18  <bnoordhuis>sigh, building glibc is pretty annoying... ***BUG in Autoconf--please report*** AC_FD_MSG
15:33:31  <piscisaureus_>txdv: now I want you to refactor the fs layer on windows so that is does async file io whenever possible
15:33:38  <piscisaureus_>(and safe)
15:34:00  * travis-cijoined
15:34:00  <travis-ci>[travis-ci] joyent/libuv#269 (master - 985b961 : Andrius Bentkus): The build is still failing.
15:34:00  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/b5f9bc8...985b961
15:34:00  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1253158
15:34:00  * travis-cipart
15:34:14  <txdv>why is the build failing
15:34:15  <txdv>:(
15:34:44  <piscisaureus_>txdv: test failures
15:34:47  <mmalecki>txdv: linux regressions
15:34:53  <piscisaureus_>txdv: they are awaiting refcount refactors
15:35:30  <piscisaureus_>Although I am surprised... tcp_ref2 and ref3 used to work on unix
15:35:36  <piscisaureus_>Someone broke them
15:36:05  <piscisaureus_>I suspect the guy that claims he just found a zeroday in glib
15:36:08  <mmalecki>git bisect it
15:36:28  <piscisaureus_>umm
15:36:36  <piscisaureus_>why can't travis do that for me?
15:36:41  <mmalecki>also, I might've just found a place which isn't a hotel, I'm happy
15:36:53  <piscisaureus_>a cardboard box?
15:36:53  <bnoordhuis>mmalecki: the salvation army?
15:37:01  <mmalecki>piscisaureus_: why can't Travis fix them by himself?
15:37:07  <piscisaureus_>yeah, so annoying
15:37:14  <mmalecki>bnoordhuis: yes!
15:37:24  <mmalecki>I always wanted to be a soldier
15:37:44  <mmalecki>then I got to know how computers work
15:39:18  <txdv>why didn't libuv participate in gsoc?
15:41:06  <bnoordhuis>txdv: you're volunteering?
15:41:40  <txdv>well it is too late
15:42:01  <mmalecki>I personally find GSOC idea quite silly
15:42:13  <mmalecki>you have to be over 18 to participate
15:42:39  <mmalecki>and there are some silly tasks mentors choos
15:42:42  <mmalecki>*choose
15:45:24  <bnoordhuis>../misc/syslog.c:119: sorry, unimplemented: inlining failed in call to ‘syslog’: function body not available
15:45:28  * bnoordhuisbangs head against table
15:45:49  * iraquit (Quit: Computer has gone to sleep.)
15:49:33  <bnoordhuis>yay, found a buglet in eio.c
15:49:57  <bnoordhuis>https://github.com/joyent/libuv/blob/master/src/unix/eio/eio.c#L1894 <- it also dereferences names if the realloc fails
15:58:22  * elijah-mbpquit (Remote host closed the connection)
16:06:11  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
16:07:42  * ericktquit (Quit: erickt)
16:16:12  * pfox___joined
16:17:09  * isaacsjoined
16:29:39  <txdv>where is piscisaureus
16:29:40  <txdv>xD
16:30:42  <mmalecki>isaacs: 0.6.17 is a great win
16:31:07  <isaacs>mmalecki: that's [email protected]
16:32:20  <mmalecki>yup! balancers use approx half the memory they used before
16:36:58  <indutny>woot
16:37:03  <indutny>memory leaks are so leaky
16:40:17  * paddybyersquit (Quit: paddybyers)
16:57:24  * mikealquit (Quit: Leaving.)
17:23:42  * c4milojoined
17:35:34  * orlandovftwjoined
17:42:40  * mikealjoined
17:46:58  * mikealquit (Client Quit)
17:50:11  * mikealjoined
17:56:19  * orlandovftwquit (Ping timeout: 255 seconds)
17:58:37  * orlandovftwjoined
18:13:30  * pfox___quit (Ping timeout: 252 seconds)
18:16:25  * mikealquit (Quit: Leaving.)
18:23:37  * brsonjoined
18:26:12  * mikealjoined
18:27:30  * mikealquit (Client Quit)
18:38:31  * mikealjoined
19:00:33  * mikealquit (Quit: Leaving.)
19:07:26  * mikealjoined
19:08:38  * mikealquit (Client Quit)
19:11:38  * mikealjoined
19:22:08  * loladiroquit (Quit: loladiro)
19:27:45  * pieternjoined
19:28:29  * pieternquit (Client Quit)
19:41:49  * mikealquit (Quit: Leaving.)
19:53:28  * TheJHjoined
20:34:32  * mikealjoined
20:35:15  * mikealquit (Client Quit)
20:36:36  * mjr_joined
20:43:24  * mikealjoined
20:55:44  * mattstevensjoined
20:56:01  * mjr_quit (Quit: mjr_)
21:01:24  * benviejoined
21:09:21  * mikealquit (Quit: Leaving.)
21:11:02  * mikealjoined
21:11:54  * irajoined
21:23:21  <CIA-155>libuv: Ben Noordhuis v0.6 * rcb58a56 / include/uv-private/uv-unix.h : sunos: remove unused uv_fs_event_t field - http://git.io/KBe-DQ
21:25:13  * travis-cijoined
21:25:13  <travis-ci>[travis-ci] joyent/libuv#270 (v0.6 - cb58a56 : Ben Noordhuis): The build is still failing.
21:25:13  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/7326962...cb58a56
21:25:13  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/1254815
21:25:13  * travis-cipart
21:28:08  * iraquit (Quit: Leaving...)
21:36:51  * mikealquit (Quit: Leaving.)
21:53:39  * luvit-irc-botquit (Ping timeout: 246 seconds)
21:53:44  * luvit-irc-botjoined
21:53:54  * AvianFlujoined
22:00:19  * piscisaureus_joined
22:03:44  <isaacs>bnoordhuis: you ok with moving test/simple/test-fs-largefile.js into test/pummel/?
22:05:05  <bnoordhuis>isaacs: sure
22:06:07  <CIA-155>node: isaacs master * r1930772 / (2 files in 2 dirs):
22:06:07  <CIA-155>node: Move test-fs-largefile into pummel
22:06:07  <CIA-155>node: It's too slow. - http://git.io/0uKNmA
22:09:12  <piscisaureus_>bnoordhuis: go have some quality time w/ yr family
22:10:31  <isaacs>bnoordhuis: i agree with piscisaureus_. but first, can haz review? https://github.com/isaacs/node/commit/fba93f8c04c010e65fd85b00a2218b8fa7383d8e
22:13:57  <piscisaureus_>isaacs: so, if I understand this correctly, all the events that cluster emits *do* receive the worker as their first argument?
22:13:57  <piscisaureus_>But events emitted by individual workers never do?
22:14:40  <isaacs>piscisaureus_: correct.
22:14:54  <piscisaureus_>isaacs: ok. makes sense
22:14:54  <isaacs>worker.emit('foo', x, y) ==> cluster.emit('foo', worker, x, y)
22:15:07  <piscisaureus_>isaacs: the patch lgtm but one thing (nit)
22:15:19  <piscisaureus_>how to write do anonymous functions?
22:15:24  <piscisaureus_>function (foo, bar) {
22:15:30  <piscisaureus_>or function(foo,bar) {
22:15:37  <piscisaureus_>that's not really consistent in these docs
22:15:43  <isaacs>oh, yeah.
22:15:50  <piscisaureus_>isaacs: but that's a nit - the patch looks good to me
22:15:52  <isaacs>node style is no space between name (or 'function') and the opening (
22:15:55  <isaacs>i'll fix.
22:16:14  <piscisaureus_>isaacs: nice
22:16:25  <isaacs>and var x = function <-- ugh, hate, don't know why, but hate.
22:16:43  <isaacs>function x(..) <-- makes me feel warm and fuzzy inside for reasons.
22:16:59  * isaacsknows this is irrational.
22:17:04  * isaacsdoesn't care.
22:18:42  <piscisaureus_>isaacs: agreed
22:18:54  <piscisaureus_>isaacs: I know the feeling
22:19:02  <isaacs>we need a way to lint the docs.
22:19:06  * c4miloquit (Ping timeout: 248 seconds)
22:19:08  <piscisaureus_>isaacs: unfortunately the warm fuzzy feeling is not in the spec
22:19:17  <piscisaureus_>isaacs: atleast it wasn't until recently
22:19:55  <isaacs>piscisaureus_: nits squashed: https://github.com/isaacs/node/commit/master
22:20:26  <isaacs>arg!! syntax error in the doc.
22:20:28  <isaacs>hate that.
22:20:29  <isaacs>omg
22:20:54  <isaacs>ok fixed
22:20:58  <bnoordhuis>piscisaureus_, isaacs: the family are all asleep
22:22:03  <isaacs>ok, i'mma land it
22:22:12  <bnoordhuis>isaacs: rename code and signal to exitCode and signalCode
22:22:14  <CIA-155>node: isaacs master * r3d84c3d / (3 files in 3 dirs):
22:22:14  <CIA-155>node: More cluster event consistency
22:22:14  <CIA-155>node: Regarding discussion in #3198. Passing the worker as an argument
22:22:14  <CIA-155>node: to an event emitted on the worker is redundant, and an unnecessary
22:22:14  <CIA-155>node: break in consistency vs the events on the ChildProcess objects.
22:22:14  <piscisaureus_>isaacs: I didn't find the syntax error but lgtm
22:22:14  <CIA-155>node: It was removed from 'exit', but 'listening' and others were
22:22:15  <CIA-155>node: overlooked. This corrects that oversight. - http://git.io/N5c03A
22:22:19  <bnoordhuis>that's what child_process calls it
22:22:23  <bnoordhuis>oh, too late
22:22:27  <isaacs>bnoordhuis: in the docs?
22:22:28  <piscisaureus_>bnoordhuis: you mean, exitSignal ?
22:22:34  <bnoordhuis>yeah
22:22:38  <piscisaureus_>signalCode strikes me as odd
22:22:49  <bnoordhuis>oh wait
22:22:50  <isaacs>it's called signalCode in the code, which is indeed weird.
22:23:14  <bnoordhuis>yeah, it's signalCode and exitCode in the code
22:23:28  <bnoordhuis>but signal and code in the docs
22:23:30  <bnoordhuis>okay, nm then
22:23:41  <bnoordhuis>i should read the docs more often :)
22:23:45  <isaacs>heh :)
22:23:56  <isaacs>it's good to call them all codes in the code, so that you remember that it's the code.
22:23:58  <piscisaureus_>yeah me too
22:24:02  <isaacs>otherwise you might get confused, and think your'e reading the docs.
22:24:30  <isaacs>function fooFunctionCode (argumentZeroArg, argumentOneArg) { return returnValue }
22:24:52  <bnoordhuis>there is a java programmer inside of you, isaac, and it's trying to get out
22:24:59  <piscisaureus_>hehe
22:25:45  <piscisaureus_>we should buy him a copy of K&R
22:27:03  <piscisaureus_>Or "The Sun(tm) JAVA(r) programming language - job security edition"
22:27:29  <piscisaureus_>anyway, I am going to slack off
22:27:29  <bnoordhuis>damn, compiling gcc 4.7.0 is serious business
22:27:31  <piscisaureus_>bnoordhuis: get to work
22:27:38  <bnoordhuis>i am!
22:27:44  <piscisaureus_>bnoordhuis: work harder
22:27:53  <bnoordhuis>i'm not allowed to, doctor's orders
22:28:47  * piscisaureus_leaves
22:28:50  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
22:39:26  * mattstevensquit (Quit: mattstevens)
22:41:29  * mmaleckichanged nick to mmalecki[zzz]
22:50:19  * rendarquit
23:09:36  * pfox___joined
23:56:08  * isaacsquit (Remote host closed the connection)
23:57:47  * piscisaureus_joined
23:57:49  * piscisaureus_quit (Client Quit)
23:59:42  * isaacsjoined
23:59:58  * isaacsquit (Remote host closed the connection)