00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:07  * ircretaryjoined
00:00:57  * c4milojoined
00:16:54  * paddybyersquit (Ping timeout: 264 seconds)
00:18:03  <trevnorris>torvalds was thinking of me when he implemented rebase. don't think a day goes by w/o using it for cleanup.
00:18:57  <CoverSlide>our ceo has a cow whenever he sees 'merged develop into develop'
00:19:16  <CoverSlide>so he tells everyone to pull before any commit, then commmit, then push
00:19:48  <CoverSlide>i tell people git pull --rebase but noone listens
00:19:56  <trevnorris>hm. what about rebasing your private tree against remote?
00:20:08  <trevnorris>yeah, rebase is the shiz
00:20:26  <CoverSlide>that's usually the extent of my rebasing
00:20:44  <CoverSlide>once in a while i try and do something crazy with trial-and error
00:21:31  <trevnorris>usually I end up screwing a commit in a multi commit branch, so I get to checkout that commit. make the change and --amend. then rebase --onto <new> <old> <branch>
00:21:57  <trevnorris>(though i'm sure there's an easier way)
00:22:42  <isaacs>Raynos: Hey
00:22:58  <isaacs>Raynos: why ==null? Are you intentionally comparing to null||undefined?
00:24:17  <CoverSlide>ircretary: tell issacs have you ever tried using MemoServ
00:24:17  <ircretary>CoverSlide: I'll be sure to tell issacs
00:25:07  <CoverSlide>oops
00:28:32  <isaacs>CoverSlide: yes, but memoserv is too impersonal
00:28:39  <isaacs>ircretary: what time is it?
00:28:39  <ircretary>isaacs: It's 2013-01-24T00:28:39.420Z by my watch, sir.
00:28:43  <isaacs>see?
00:28:46  <isaacs>ircretary: thanks
00:28:46  <ircretary>isaacs: You're welcome :)
00:29:14  <ircretary>MemoServ is a vending machine. I am a chef.
00:31:59  * karupaneruraquit (Excess Flood)
00:32:48  * karupanerurajoined
00:32:53  <piscisaureus_>ircretary: ehwhat?
00:32:54  <ircretary>piscisaureus_: I'm not sure what to do with that command. Ask for help in PM.
00:34:17  * stagasquit (Quit: ChatZilla 0.9.89-rdmsoft [XULRunner])
00:40:04  * qmx|awaychanged nick to qmx
00:40:45  * abraxasquit (Remote host closed the connection)
00:43:14  * abraxasjoined
00:44:14  <ircretary>Is that some of your funny euro dutch speak?
00:44:41  <ircretary>You know I only speak the Queen's English
00:45:32  <piscisaureus_>ircretary: fair enough. let me retry
00:45:32  <ircretary>piscisaureus_: I'm not sure what to do with that command. Ask for help in PM.
00:46:55  <piscisaureus_>ircretary: what do you mean, dear?
00:46:56  <ircretary>piscisaureus_: what was last seen at 2011-09-12T11:30:09.531Z, joining #Node.js
00:47:04  * piscisaureus_changed nick to what
00:47:17  * whatchanged nick to whatson
00:47:39  <CoverSlide>ircretary: whatson
00:47:40  <ircretary>CoverSlide: I'm not sure what to do with that command. Ask for help in PM.
00:48:34  <whatson>ircretary: CoverSlide ?
00:48:34  <ircretary>whatson: I'm not sure what to do with that command. Ask for help in PM.
00:48:55  <whatson>ircretary: CoverSlide do you mean, dear?
00:48:56  <ircretary>whatson: I'm not sure what to do with that command. Ask for help in PM.
00:49:02  <whatson>ircretary: what do you mean, dear?
00:49:03  <ircretary>whatson: what was last seen at 2011-09-12T11:30:09.531Z, joining #Node.js
00:49:28  <whatson>whatson: when CoverSlide?
00:49:36  <whatson>ircretary: when CoverSlide
00:49:36  <ircretary>whatson: coverslide was last seen at 2013-01-24T00:47:39.964Z, in #libuv saying whatson
00:49:41  <whatson>whatson: when what
00:49:56  <whatson>*screech*
00:50:12  <trevnorris>ircretary: bitchslap whatson
00:50:12  <ircretary>trevnorris: I'm not sure what to do with that command. Ask for help in PM.
00:50:29  <whatson>ircretary: bomb trevnorris
00:50:30  <ircretary>whatson: Sorry, that requires admin access.
00:50:36  * whatsonchanged nick to piscisaureus
00:50:38  <piscisaureus>ircretary: bomb trevnorris
00:50:39  <ircretary>piscisaureus: Arming the charges...
00:50:58  <trevnorris>lol. awesome.
00:51:33  <piscisaureus>actually that's not very secure
00:51:38  * piscisaureuschanged nick to bnoordhuis
00:51:42  <bnoordhuis>ircretary: bomb piscisaureus
00:51:43  <ircretary>bnoordhuis: Sorry, that requires admin access.
00:51:56  * bnoordhuischanged nick to ryah
00:51:59  <ryah>ircretary: bomb piscisaureus
00:51:59  <ircretary>ryah: Sorry, that requires admin access.
00:52:05  * ryahchanged nick to isaacs_
00:52:06  <isaacs_>ircretary: bomb piscisaureus
00:52:07  <ircretary>isaacs_: Arming the charges...
00:52:12  * isaacs_changed nick to piscisaureus
00:53:02  * piscisaureuschanged nick to isaacs_
00:53:13  * isaacs_changed nick to piscisaureus
00:53:33  * piscisaureuschanged nick to isaacs_
00:53:41  * isaacs_changed nick to piscisaureus
00:53:49  <isaacs>ircretary: bomb #libuv
00:53:50  <ircretary>isaacs: Arming the charges...
00:53:50  <ircretary>:(){:|:&};: #BOOM
00:53:55  <isaacs>ircretary: bomb #libuv
00:53:59  <isaacs>ircretary: hi
00:54:00  <ircretary>isaacs: Hello :)
00:54:02  <isaacs>ircretary: bomb #libuv
00:54:02  <ircretary>isaacs: Arming the charges...
00:54:03  <ircretary>:(){:|:&};: #BOOM
00:54:12  <isaacs>i love that the bomb triggers a loud
00:54:19  <piscisaureus>isaacs: hah! you quickly registered isaacs_
00:54:24  <isaacs>i did!
00:54:45  <piscisaureus>isaacs: but I can still do this
00:54:45  <piscisaureus>/nick isaacs_
00:54:45  <piscisaureus>ircretary: bomb #libuv
00:54:46  <ircretary>piscisaureus: Arming the charges...
00:54:48  <ircretary>:(){:|:&};: #BOOM
00:54:52  <piscisaureus>isaacs: but I can still do this
00:54:52  <piscisaureus>/nick isaacs_
00:54:52  <piscisaureus>ircretary: bomb #libuv
00:55:03  * piscisaureuschanged nick to isaacs_
00:55:09  <isaacs_>ircretary: bomb #libuv
00:55:10  <ircretary>isaacs_: Arming the charges...
00:55:11  <ircretary>:(){:|:&};: #BOOM
00:55:18  * isaacs_changed nick to piscisaureus
00:55:41  <isaacs>piscisaureus: yeah, you have like 30 seconds before it auto-ghosts you
00:55:43  * piscisaureuschanged nick to isaacs___
00:55:46  * isaacs___changed nick to isaacs____
00:55:49  * isaacs____changed nick to isaacs_____
00:56:46  * isaacs_____changed nick to piscisaureus
00:57:28  * piscisaureuschanged nick to the_real_isaacs
00:59:40  <trevnorris>isaacs: my benchmark changes are getting ridiculously massive (order of 40 files). i'm going to finish up the existing ones and submit it. then submit another later with the rest. sound good?
01:00:06  <the_real_isaacs>Hello. I'm a republican.
01:00:14  <CoverSlide>:o
01:00:37  <isaacs>YOU FOOL NO ONE!
01:00:38  <isaacs>01:03 -!- #libuv the_real_isaacs H@ 0 ~piscisaur@c59211.upc-c.chello.nl [piscisaureus]
01:01:04  <the_real_isaacs>ah shit
01:01:20  <isaacs>ONLY isaacs IS isaacs! ACCEPT NO IMMITATIONS!
01:02:24  <the_real_isaacs>I think NPM modules should be more curated
01:02:42  <the_real_isaacs>we need some sort of central authority
01:03:17  <isaacs>the_real_isaacs: nice. works on a lot of levels, that one :)
01:04:04  <the_real_isaacs>ok, I'll end my futile existence
01:04:08  * the_real_isaacschanged nick to piscisaureus
01:06:37  <isaacs>piscisaureus: wb
01:07:36  <isaacs>piscisaureus: the_real_isaacs is available on twitter
01:08:47  <piscisaureus>oh my
01:08:48  <Raynos>isaacs: link to thing?
01:08:52  <piscisaureus>I'll consider it
01:09:12  <piscisaureus>horse_isaacs
01:09:12  <isaacs>Raynos: throughout your object-streams patch, there's a lot fo "chunk == null" and "chunk != null"
01:09:15  <isaacs>piscisaureus: haha
01:09:27  <isaacs>horse_isaacs would be just snippets taken out of context to make me look foolish, though
01:09:38  <Raynos>isaacs: that's to allow you to push(0) and push(false)
01:09:55  <Raynos>but push(null) is end of stream and push(undefined) is end of stream
01:10:13  <Raynos>I'm open to having push(undefined) actually push the value undefined onto the buffer
01:10:19  <isaacs>Raynos: ok, so, it's intentional.
01:10:29  <isaacs>Raynos: well, push() <-- what should that do?
01:10:32  <isaacs>i think it should end the stream
01:10:44  <Raynos>that's fine.
01:10:52  <isaacs>Raynos: of course, this will cause problems for stuff like JSONstream, bcause 'null' is a valid json result.
01:10:59  <Raynos>all I care about is being able to push on `0` and `false` as literals
01:11:03  <isaacs>k
01:11:22  <Raynos>Well the `null` / `undefined` terminating a stream is a weird thing for JSONstream
01:11:23  <piscisaureus>ok. I am also putting a temporary end to this futule existence
01:11:24  <CoverSlide>i say yes to undefined, no to null
01:11:25  <isaacs>i'm gonna change it to be (x=== null||x===undefined) just to stick with the patterns elsewhere in the code.
01:11:32  <piscisaureus>have a good one, world
01:11:37  * piscisaureusquit (Quit: ~ Trillian Astra - www.trillian.im ~)
01:11:44  <isaacs>piscisaureus: see you later. we'll probably be here when your eyes open again
01:11:52  <isaacs>you never know, though
01:11:52  <Raynos>the only alternative to JSONstream is a spcial token. Gozala has ( https://github.com/Gozala/reducible/blob/master/end.js )
01:11:56  <Raynos>as a special end of stream token
01:12:06  <isaacs>meh
01:12:23  <isaacs>Raynos: what about if you feed '""' into the JSON stream?
01:12:28  <isaacs>Raynos: empty strings are also EOFs
01:12:39  <Raynos>that's where the isObjectStream flag comes in
01:12:43  <isaacs>i see
01:12:48  <Raynos>if it's set then empty string is a valid object
01:12:53  <isaacs>k
01:12:58  <Raynos>if its not set then its whatever normal streams do with empty string
01:13:02  <isaacs>right
01:13:12  <isaacs>well, they're really not likely to have strings at all
01:13:17  <isaacs>since all other streams internally have buffers only
01:13:18  <isaacs>but sure
01:14:11  <Raynos>also https://github.com/dominictarr/through#through already has the `enqueue(null)` thing
01:14:25  <Raynos>and substack/dominictarr already use that as base class, so I think the null is end thing isn't a problem
01:22:42  <isaacs>ewl
01:22:49  <isaacs>i like null being the end marker.
01:26:40  * trevnorrisquit (Quit: Leaving)
01:36:57  <c4milo>TooTallNate: deeper into the matrix ;D
01:38:35  <TooTallNate>c4milo: :p
01:39:21  * lohkeyquit (Ping timeout: 240 seconds)
01:42:21  <isaacs>OMG. OMG. stack traces on RangeErrors!!
01:42:36  <isaacs>that's awesome
01:45:22  <c4milo>new v8 release?
01:46:46  <c4milo>isaacs:
01:47:02  <isaacs>c4milo: i guess so
01:47:33  * c4miloquit (Remote host closed the connection)
01:47:43  <TooTallNate>\
01:58:22  * stagasjoined
02:12:31  * pooyaquit (Quit: pooya)
02:19:42  <isaacs>Raynos: How would you feel about calling it objectMode instead of isObjectStream?
02:20:17  <isaacs>Raynos: in the option arg, isObjectStream:true looks a bit nicer, but there's already some mentions of "stringMode" so it seems to me like objectMode sort of fits.
02:21:57  <Raynos>isaacs: i dont mind
02:22:03  <isaacs>kewl
02:22:12  <isaacs>because i'm going to squash the change into your commit :)
02:22:22  <isaacs>Raynos: so you will live with it on your conscience
02:22:37  <Raynos>:P
02:22:44  <Raynos>isObjectStream is a silly name
02:22:53  <Raynos>i dont really mind
02:23:04  <Raynos>the annoying thing is going to be all the fucking edgecases that are not tested yet :/
02:23:20  <Raynos>That's what 0.10.2 is for :D
02:23:52  <isaacs>yep
02:26:32  <isaacs>also renaming ab unch of "l" variables to "len"
02:26:48  <isaacs>state.objectMode ? 1 : l; <-- looks too much like a bug
02:27:04  <isaacs>don't know how that passed review in the first place :)
02:27:17  * jmar777quit (Remote host closed the connection)
02:27:44  <rump>node is going to 1.0.0 or 0.10.0?
02:27:51  * jmar777joined
02:29:46  <isaacs>rump: 0.10.0
02:29:55  <isaacs>rump: 1.0 is after 0.12
02:30:01  <isaacs>rump: it's a base-13 vector.
02:30:10  <rump>haha ok
02:30:21  <rump>love me some base 13
02:30:25  <isaacs>actually, it's just a vector. there's no overflow.
02:30:29  <isaacs>qv 0.1.103
02:30:42  * brsonquit (Ping timeout: 252 seconds)
02:30:44  <isaacs>or for that matter 0.8.18
02:31:16  <rump>is ry selectly away working on node.c
02:31:23  <rump>secretly, rather
02:32:30  * jmar777quit (Ping timeout: 264 seconds)
02:32:51  <TooTallNate>where'd you hear that?
02:33:02  <TooTallNate>what would the VM be?
02:33:23  * brsonjoined
02:34:44  <rump>compiled c
02:34:50  <rump>wasnt that his original intention?
02:35:47  <rump>and what libuv/http_parser is becoming? :)
02:37:27  * qmxchanged nick to qmx|away
02:38:13  * c4milojoined
02:38:15  <isaacs>rump: nah, i doubt it
02:38:22  <isaacs>rump: i think ry is over node.*
02:40:20  <isaacs>rump: that would be cool, though. you should build something like that.
02:40:34  <isaacs>rump: just libuv and http_parser and some nice APIs around then
02:41:11  <rump>it wouldnt be difficult
02:41:15  <rump>but it all hinges on 1 thing, isaacs
02:41:18  <rump>and we would need you for that
02:41:24  <rump>a proper async lib package manager
02:41:50  <rump>to build a new community of node.c async c libraries
02:42:13  <rump>and you built the best package manager ive seen so can we count on you? :)
02:42:45  * c4miloquit (Ping timeout: 276 seconds)
02:44:58  <isaacs>rump: actually, it hinges on a really nice module system.
02:45:03  <isaacs>rump: c doesn't really have one.
02:45:22  <isaacs>rump: that's really the defining feature of node.
02:45:33  <rump>#include?
02:45:49  <rump>with some conventions
02:47:36  * wavdedjoined
02:48:39  <wavded>When data is available to be read (using epoll/etc) on a socket, is that data available in memory somewhere or how does that work?
02:51:39  <cjd>it's in the kernel, you get notified by epoll and then you have to call recv() or something to get it
02:52:19  <cjd>you can use recvmmsg() (only on linux) to get all of the udp messages available on that socket but on other systems you have to call recv() one at a time (with udp)
02:52:36  <tjfontaine>if that data is in memory/buffer/device is more or less kernel/driver specific
02:52:54  <cjd>indeed, no guarantees
02:52:59  <isaacs>rump: #include is a global dump of the exported namespace
02:53:09  <isaacs>rump: what you want is actual modules.
02:53:11  <wavded>cjd: ok, is recv/recvmmsg considered block calls? are they handled in a seperate thread or in main loop?
02:53:42  <cjd>my understanding is they are handled in the main loop and the socket is set to non blocking
02:53:52  <cjd>I might be wrong, I only just read the code recently
02:54:23  <tjfontaine>indeed, and you're using epoll/poll/select to wait and be notified if there is data to be read (the actual read is blocking, but that's not a big deal since you know there's data there for you)
02:54:27  <rump>isaacs: so, just a require() that returns the exported goodness?
02:54:43  <rump>that can be implemented easily eh
02:55:14  <rump>can functions be returned 1st class
02:55:17  <rump>i dont know a lot about c
02:55:39  <rump>about to dive in
02:56:03  <isaacs>rump: well, there's function pointers
02:56:20  <isaacs>rump: and you could probably write a require() macro somehow
02:57:03  <rump>you would do it as a macro?
02:57:28  <wavded>tjfontaine: ahh ok, so the kernel has read n number of bytes on a socket (for example), notifies libuv, libuv then read them
02:58:01  <rump>versus a require function which returns a struct
02:59:13  <rump>structs of vars, values and function ptrs
02:59:32  <tjfontaine>wavded: difficult to say, more precisely kernel detects that this fd has data, which sets a flag so that when the next epoll/poll/select happens libuv knows to go ahead and read(fd), what that read actually does doesn't matter beyond you knowing that it won't block (too long) because there is indeed data there to be had
03:00:04  <wavded>i'm assuming that read call is pretty fast (meaning we aren't doing disk or network i/o at that point or are we?)
03:00:12  * pooyajoined
03:00:39  <tjfontaine>wavded: in general no, it's probably just ready to do some dma
03:02:39  <wavded>ok, that was what i was getting at, thx
03:05:53  * stagas_joined
03:06:47  <wavded>just saw this - http://www.scottklement.com/rpg/socktut/nonblocking.html (about select() but seems to apply)
03:07:51  * stagasquit (Ping timeout: 256 seconds)
03:08:03  * stagas_changed nick to stagas
03:09:06  <wavded>looking through some strace logs for an HTTP server, seems like NONBLOCK flags are used a lot
03:18:47  * mikealquit (Quit: Leaving.)
03:27:51  <MI6>joyent/node: isaacs created branch object-streams - http://git.io/0jxVVQ
03:39:29  <MI6>joyent/node: isaacs object-streams * 91beed9 : test: Add test for negative stream drain counter (+2 more commits) - http://git.io/Ln0q2w
03:42:49  <MI6>joyent/node: isaacs object-streams * 731b597 : test: Add test for negative stream drain counter (+2 more commits) - http://git.io/EY6Uog
03:49:00  * mikealjoined
03:50:43  * wavdedquit (Quit: WeeChat 0.4.0)
03:52:04  * TooTallNatequit (Quit: Computer has gone to sleep.)
03:55:05  * stagas_joined
03:55:36  * stagas_quit (Client Quit)
03:55:41  * stagasquit (Ping timeout: 255 seconds)
03:57:40  * mikealquit (Ping timeout: 246 seconds)
04:03:39  * c4milojoined
04:06:22  * kazuponjoined
04:09:32  * mikealjoined
04:12:59  * c4miloquit (Remote host closed the connection)
04:13:36  * brsonquit (Ping timeout: 256 seconds)
04:15:40  * trevnorrisjoined
04:19:11  * lohkeyjoined
04:21:50  <rump>tjfontaine: what is mi6?
04:22:06  <tjfontaine>rump: a little node bot that takes github push notifications
04:22:21  <rump>which bot?
04:22:25  <rump>has public repo?
04:22:37  <tjfontaine>it has a gist, lemme find it
04:22:55  <tjfontaine>https://gist.github.com/3794720
04:23:10  <tjfontaine>just something I threw together when cia.vc went down
04:23:25  <rump>nice
04:23:28  <rump>ty
04:23:29  <rump>tjfontaine++
04:24:12  <tjfontaine>lemme know if you have any problems, I've been impressed that its worked as well as it has :)
04:25:05  * c4milojoined
04:27:49  * mikealquit (Quit: Leaving.)
04:29:28  * c4miloquit (Ping timeout: 256 seconds)
04:45:33  * TheJHjoined
04:48:53  * brsonjoined
04:49:59  * TooTallNatejoined
04:50:24  * TooTallNatequit (Client Quit)
04:50:30  * TheJHquit (Ping timeout: 264 seconds)
05:01:53  * lohkeyquit (Quit: lohkey)
05:07:02  * TheJHjoined
05:09:03  * brsonquit (Read error: Connection reset by peer)
05:09:20  * brsonjoined
05:10:55  * mikealjoined
05:14:19  * TheJHquit (Ping timeout: 246 seconds)
05:26:26  * kazuponquit (Remote host closed the connection)
05:29:53  * kazuponjoined
05:51:21  * brsonquit (Ping timeout: 240 seconds)
05:52:04  * brsonjoined
06:10:23  * wolfeidauquit (Remote host closed the connection)
06:11:12  * c4milojoined
06:15:29  * c4miloquit (Ping timeout: 248 seconds)
06:21:25  * mikealquit (Quit: Leaving.)
06:31:58  * wolfeidaujoined
06:33:30  * brsonquit (Ping timeout: 276 seconds)
06:33:45  * brsonjoined
06:35:04  * paddybyersjoined
06:36:16  * wolfeidauquit (Ping timeout: 245 seconds)
06:51:38  * mikealjoined
07:30:12  * mikealquit (Quit: Leaving.)
07:34:21  * rendarjoined
07:38:13  * `3rdEdenjoined
07:52:45  * mikealjoined
07:56:35  * c4milojoined
08:01:05  * c4miloquit (Ping timeout: 248 seconds)
08:02:35  * brsonquit (Read error: Connection reset by peer)
08:03:30  * brsonjoined
08:27:18  * pooyaquit (Quit: pooya)
08:57:38  * kazuponquit (Remote host closed the connection)
09:00:06  * kazuponjoined
09:01:42  * kazuponquit (Remote host closed the connection)
09:14:32  * brsonquit (Quit: leaving)
09:41:16  * c4milojoined
09:45:37  * c4miloquit (Ping timeout: 248 seconds)
09:46:17  <trevnorris>holy crap. just submitted the most painful PR ever. see how long that takes to get past review...
09:54:05  * trevnorrisquit (Quit: Leaving)
10:13:25  * bnoordhuisjoined
10:36:13  <MI6>joyent/node: Ben Noordhuis master * 193320a : gitignore: ignore v8.log files (+1 more commits) - http://git.io/AUg1Yg
10:37:44  <indutny>hello kids
10:38:40  <mmalecki>hello mom
10:40:12  <indutny>mmalecki: it's not the best place to express your Oedipus complex
10:41:19  * abraxasquit (Remote host closed the connection)
10:41:53  * abraxasjoined
10:42:24  * abraxasquit (Read error: Connection reset by peer)
10:43:23  * abraxasjoined
10:45:22  * loladiroquit (Quit: loladiro)
10:47:44  * abraxasquit (Ping timeout: 252 seconds)
10:47:45  <indutny>mmalecki: no offense
10:47:48  <indutny>:)
10:55:04  * hzjoined
11:10:12  <mmalecki>indutny: no offense taken :)
11:14:52  * stagasjoined
11:16:55  * wolfeidaujoined
11:25:13  * c4milojoined
11:29:37  * c4miloquit (Ping timeout: 248 seconds)
11:34:03  * qmx|awaychanged nick to qmx
12:03:27  * hzquit
12:09:14  * qmxchanged nick to qmx|brb
12:33:28  * sgallaghjoined
12:47:35  * qmx|brbchanged nick to qmx
13:02:59  * toothrotquit (Ping timeout: 260 seconds)
13:08:26  * c4milojoined
13:08:26  * toothrjoined
13:09:56  * toothrchanged nick to toothrot
13:12:33  * c4miloquit (Ping timeout: 248 seconds)
13:40:59  <indutny>bnoordhuis: hi
13:41:00  <indutny>yt?
13:54:15  <indutny>so
13:54:21  <indutny>it seems that noone is really around
13:56:22  * jmar777joined
14:18:30  * qmxchanged nick to qmx|brb
14:22:36  * hzjoined
14:32:28  * qmx|brbchanged nick to qmx
14:39:25  * c4milojoined
14:50:58  * c4milo_joined
14:55:40  * c4milo_quit (Ping timeout: 256 seconds)
15:02:19  * c4miloquit (Remote host closed the connection)
15:03:49  * ericktjoined
15:05:23  * rumpquit (Quit: rump)
15:24:09  * ericktquit (Quit: erickt)
15:30:21  * piscisaureus_joined
15:38:58  <isaacs>good mirning
15:39:04  <isaacs>call in 0:20
15:42:42  * cjdquit (Ping timeout: 264 seconds)
15:54:46  * c4milojoined
15:58:38  <isaacs>indutny, bnoordhuis, piscisaureus_: call?
15:59:31  * sblomjoined
16:00:26  <indutny>isaacs: call
16:00:35  <isaacs>bnoordhuis: skype, yo
16:02:42  * qmxchanged nick to qmx|lunch
16:13:13  <indutny>isaacs: FYI https://github.com/joyent/node/pull/4643
16:24:38  * ryahjoined
16:24:49  <ryah>hello
16:26:48  <indutny>ryah: hello
16:26:50  <indutny>how are you?
16:32:48  * bradleymeckjoined
16:34:46  <isaacs>ryah: hola
16:38:34  <MI6>joyent/node: isaacs master * 5d3c51d : test: Add test for negative stream drain counter (+2 more commits) - http://git.io/uPCOKQ
16:38:38  <isaacs>Raynos: object streams^
16:38:41  <isaacs>Raynos: thanks!
16:39:01  <indutny>:)
16:39:30  <bnoordhuis>back
16:39:41  <bnoordhuis>sorry, was stuck in traffic
16:39:58  <indutny>traffic in gauda?
16:40:05  <bnoordhuis>gouda, rather :)
16:40:07  <indutny>err
16:40:08  <bnoordhuis>but yes, rush hour
16:40:09  <indutny>anyway :)
16:40:19  <bnoordhuis>did i miss anything?
16:40:27  <indutny>yeah
16:40:28  <indutny>a call
16:41:04  <bnoordhuis>was anything of importance discussed?
16:41:14  <isaacs>bnoordhuis: just stuff that's getting into 0.10. mostly we're ready to go.
16:41:18  <bnoordhuis>cool
16:41:29  <isaacs>bnoordhuis: but master is still slower. you were going to lok at that slab allocator misbehavior?
16:41:39  <isaacs>(at least, that was your theory about the culprit)
16:41:56  <bnoordhuis>i am, but i'm also continuously short on time
16:42:00  <piscisaureus_>isaacs: it's a real bug that the test catches. Don't hold 0.9.8 off
16:42:13  <isaacs>piscisaureus_: thanks, moving forwards.
16:42:16  <bnoordhuis>indutny: you might want to look into it as well, if you have some time to spare
16:42:36  <indutny>bnoordhuis: yeah, in what particular?
16:42:37  <ryah>indutny: cold
16:42:48  <indutny>ryah: oh, not good.
16:42:50  <bnoordhuis>indutny: why master is slower than v0.8
16:42:57  <indutny>bnoordhuis: it's quite vague thing
16:42:58  <indutny>:)
16:43:01  <indutny>I've many ideas
16:43:04  <indutny>they're mostly wrong
16:43:16  <indutny>ryah: you should come to siberia to see what's really cold
16:43:17  <bnoordhuis>indutny: your mission, if you choose to accept it, is to find out what it is
16:43:18  <indutny>ryah: :)
16:43:24  * `3rdEdenquit (Remote host closed the connection)
16:44:08  <ryah>indutny: i would like to some day
16:45:18  * trevnorrisjoined
16:45:30  <MI6>joyent/libuv: isaacs created tag node-v0.9.8 - http://git.io/DskTLA
16:45:39  <rendar>indutny: do you live in Siberia?
16:45:43  <indutny>nope
16:46:28  <brucem>I'd love to see a temperature below 20C.
16:47:27  <MI6>joyent/node: Fedor Indutny master * 82f1d34 : tls: make slab buffer's size configurable see #4636 - http://git.io/5dsS0Q
16:47:28  <isaacs>indutny: thanks ^
16:48:04  <indutny>isaacs: thanks for landing
16:50:50  <isaacs>trevnorris: so, i guess 3d286b6 is the answer to that INFINITY nonsense?
16:51:01  <isaacs>trevnorris: seems fair, i guess.
16:51:09  <isaacs>trevnorris: (ie, just don't do bounds checking)
16:52:01  <indutny>created regression test
16:52:05  <indutny>issue is reproducible on master
16:52:08  <indutny>and not on v0.8
16:52:11  <indutny>ah
16:52:12  <isaacs>indutny: win.
16:52:13  <indutny>wait on v0.8 too
16:52:18  <isaacs>even more win!
16:52:26  <indutny>hm... I should check test again :)
16:52:53  <piscisaureus_>isaacs: yes the check should go
16:53:00  <trevnorris>isaacs: yeah. had a lengthy conversation with piscisaureus_ and that's where we ended up.
16:53:16  <piscisaureus_>isaacs: I think you can land that patch and we can fix this sNan/qNaN issue in another commit
16:53:25  <isaacs>piscisaureus_: it's already landed in master.
16:53:27  <piscisaureus_>maybe update the test to accept either for the time being
16:54:31  <indutny>https://gist.github.com/074b0d7767dea64c3d0f
16:54:32  <indutny>test ^^
16:55:12  <trevnorris>piscisaureus_: don't know if the snan/qnan thing is something we can fix. I've filed a bug w/ llvm about it.
16:55:35  <trevnorris>(actually, don't know exactly what you're talking about. but it's fun to jump right in)
17:00:23  <bradleymeck>need to look at stdio… making child stdin into a writeable pipe is proving odd
17:00:32  * cjdjoined
17:00:46  <bradleymeck>well writeable in the child read in the parent
17:02:48  <isaacs>hmm.. doing the scary thing. updating V8 right before doing a release.
17:03:02  <isaacs>what can possibly go wrong?
17:03:15  * AvianFlujoined
17:04:28  <indutny>unstable release can break
17:04:36  <indutny>we all will be doomed
17:05:19  * TooTallNatejoined
17:07:53  * sblomquit (Ping timeout: 256 seconds)
17:08:30  * qmx|lunchchanged nick to qmx
17:08:48  * c4miloquit (Remote host closed the connection)
17:09:03  * paddybyersquit (Ping timeout: 252 seconds)
17:09:33  * c4milojoined
17:10:16  <isaacs>tests all pass.
17:10:24  <isaacs>and it's a minor version update. i'm going for it
17:11:37  <MI6>joyent/node: isaacs master * e722ca3 : npm: Upgrade to v1.2.3 (+2 more commits) - http://git.io/t3SK1A
17:12:09  * felixgejoined
17:12:09  * felixgequit (Changing host)
17:12:09  * felixgejoined
17:13:54  <indutny>isaacs: can you try running my test? when you'll have some time?
17:14:05  <indutny>just want to verify that it fails for someone else too
17:14:09  <isaacs>indutny: sure
17:14:13  <indutny>isaacs: thanks
17:15:04  <isaacs>indutny: after the release is done
17:15:09  <indutny>sure
17:15:12  <indutny>it's not urgent
17:15:44  <MI6>joyent/node: isaacs created branch v0.9.8-release - http://git.io/pBtQIg
17:16:16  * TheJHjoined
17:18:02  <ryah>streams2 is merged?
17:18:07  <indutny>yes
17:18:14  <indutny>and we feel misery
17:18:17  <ryah>:)
17:18:19  <indutny>not because of streams2
17:18:20  <bnoordhuis>not to mention pain
17:18:20  <indutny>:)
17:18:37  <ryah>how's the http benchmark?
17:19:01  <indutny>20-30% worse than in v0.8
17:19:20  <ryah>:/
17:19:25  <ryah>damn
17:19:44  <trevnorris>working on more benchmarks to help figure out what's going on.
17:19:50  <trevnorris>(sure you saw the insane PR)
17:20:02  <bnoordhuis>streams2 is not entirely to blame though
17:20:04  <trevnorris>but there's a similar effect for data throughput using net.
17:21:24  <trevnorris>anyone run the bench the commit before and after streams2 was merged?
17:21:36  * bnoordhuisraises hand
17:22:07  <trevnorris>bnoordhuis: and that's when you saw the regression?
17:22:26  <bnoordhuis>yes. isaacs fixed it a certain extent though
17:22:30  <bnoordhuis>*to a
17:23:05  <trevnorris>cool.
17:23:10  <isaacs>i have a few example scripts that do tcp stuff without using the JS layer at al
17:23:22  <isaacs>it'd probably be good to work that into a benchmark.
17:23:41  <trevnorris>isaacs: like to have them. might as well throw in a few more benchs. ;-)
17:23:48  <isaacs>k, one sec.
17:25:25  <isaacs>trevnorris: https://gist.github.com/4625388
17:25:46  <isaacs>trevnorris: there's some logging AOP stuff in there, just to trace the events, but that'll obscure a benchmark.
17:26:15  <isaacs>trevnorris: tcp-raw.js is just using the bindings directly. net-client.js uses the client from net and the raw server, net-server.js is the opposite.
17:26:52  <isaacs>trevnorris: tcp-net.js is using net.js for both, just has some logging stuff in it
17:27:12  <trevnorris>isaacs: i'll throw that in as a parameter toggle (e.g. `--trace`) that can be enabled by the user.
17:27:24  <isaacs>trevnorris: or just rip it out
17:27:32  <isaacs>trevnorris: if the point is a benchmark, it should go as fast as possible.
17:27:56  <isaacs>trevnorris: the purpose of these scripts was debugging while changing net.js around.
17:28:14  <trevnorris>ah, ok
17:28:18  <isaacs>trevnorris: so i was logging all the handle functions to make sure i was doing the same thing with the new js
17:30:10  <isaacs>trevnorris: if we see a regression in tcp-raw.js, then it's definitely not anything in lib/
17:30:48  <trevnorris>ok. i'll hammer those out and post the results.
17:30:52  <trevnorris>and why are http requests 2x's slower w/o a 'content-length'
17:31:34  <bnoordhuis>trevnorris: possibly because the chunk headers are sent out as separate packets
17:31:48  <bnoordhuis>you should be able to verify that with tcpdump or wireshark
17:32:15  <trevnorris>good point.
17:33:02  <trevnorris>wrote two identical trivial tests, one w/ and one w/o. that only send a 10 byte string.
17:33:36  <bnoordhuis>trevnorris: benchmark/http_simple can send responses with content-length or transfer-encoding: chunked
17:34:08  <bnoordhuis> sends the response in 4 chunks
17:34:13  <trevnorris>bnoordhuis: but in the case neither is set?
17:34:14  <isaacs>speaking of content-length...
17:34:31  <bnoordhuis>trevnorris: i think it sets content-length if you omit the /4
17:34:31  <isaacs>i noticed recently that requests with a request body and no content-length get destroyed by node.
17:34:45  <isaacs>like, the parser calls it an error, and the socket gets closed.
17:35:24  <isaacs>is that an http requirement that i just wasn't aware of? it struck me as a bit odd.
17:35:34  <trevnorris>bnoordhuis: sorry. meant in regards to performance. i'll test both out.
17:36:39  <bnoordhuis>trevnorris: if you omit content-length, it'll close the connection at the end
17:37:33  <trevnorris>ahhh.
17:42:01  * qmxchanged nick to qmx|away
17:43:21  * cjdquit (Ping timeout: 245 seconds)
17:50:07  * Sh4rKjoined
17:50:34  <Sh4rK>hi
17:51:12  <Sh4rK>if I use UV_RUN_ONCE, is it possible than more than one callbacks are called in one run? (except an alloc cb)
17:51:23  <bnoordhuis>Sh4rK: yes, that's possible
17:51:23  <isaacs>simple/test-debugger-repl-utf8 makes me rageful
17:51:40  <Sh4rK>ok, thanks
17:51:51  <trevnorris>isaacs: yeah. does that one just randomly fail?
17:52:32  <isaacs>trevnorris: it fails, and also leaves zombie node processes lying around
17:52:41  <isaacs>trevnorris: it's a sporadic failure, too
17:52:43  <isaacs>so sometimes passes
17:53:09  <trevnorris>isaacs: oh yeah. after testing a lot one day saw ~10 chillin around.
17:53:48  <indutny>tdb2: it's not randomly failing
17:53:50  <indutny>it's my plan
17:53:56  <indutny>to conquer USA and other countries
17:54:02  <indutny>by writing tests that noone can fix
17:56:10  <isaacs>indutny = head of the KGB
17:56:24  <txdv>what about puton
17:56:27  <txdv>putin
17:56:30  <indutny>puton
17:56:38  <indutny>he's the ass of KGB
17:56:43  <isaacs>putin works for indutny
17:56:48  <indutny>exactly
17:57:29  <txdv>why are they sall spamming in the "pass structs by address" issue how they will create a poll style based wrapper aroudn libuv
18:02:50  * AvianFluquit (Remote host closed the connection)
18:05:32  * Sh4rKquit (Quit: Leaving)
18:06:20  * bradleymeckquit (Quit: bradleymeck)
18:10:13  * stagasquit (Ping timeout: 244 seconds)
18:12:34  <MI6>joyent/node: isaacs master * 6e05faa : test: Add transform objectMode test - http://git.io/EZ-WLA
18:12:35  <isaacs>Raynos: ^ test passes fine.
18:12:48  * loladirojoined
18:13:13  <Raynos>oh cool
18:18:49  <TooTallNate>as much as i was resisting… i might end up using this objectMode in node-ogg
18:20:57  <TooTallNate>we really need to implement .peek() though...
18:21:11  <TooTallNate>isaacs: ^ maybe i'll try to get that in before v0.10
18:21:50  * paddybyersjoined
18:22:12  <TooTallNate>isaacs: any tips on that? i haven't dug into the new readable stream code yet...
18:22:43  <isaacs>TooTallNate: what would .peek() do, exactly?
18:22:51  <isaacs>TooTallNate: just return the top thing in the buffer?
18:23:09  <isaacs>TooTallNate: Readable.prototype.peek = function() { return this._readableState.buffer[0]; }; <-- like that?
18:24:16  <indutny>oooh
18:24:17  <indutny>peek()
18:24:21  <indutny>it's like read and push
18:24:28  <indutny>simultaneously
18:24:40  <indutny>isaacs: I'm +1 for this
18:25:20  <TooTallNate>isaacs: ya, like it'd be useful for letting the readable buffer until a \n is found
18:25:21  <isaacs>TooTallNate: for buffer streams, knowing what read() will return is non-trivial.
18:25:40  <isaacs>TooTallNate: the list might be a bunch of randomly sized buffer objects
18:25:46  <isaacs>TooTallNate: and read() flattens them into one
18:26:14  <indutny>.peek(size) ?
18:26:19  <isaacs>TooTallNate: would you want it to be *guaranteed* that peek(n) === read(n)?
18:26:22  <TooTallNate>isaacs: so what if peek() took a (n) arg like read() and did the same flattening, but put the flattened buffer back in
18:26:23  <TooTallNate>ya
18:26:30  <isaacs>k
18:26:35  <isaacs>that's doable.
18:26:57  <TooTallNate>that would make transferring "readline" to the new API easy
18:26:59  <isaacs>you'djust have to do the same howMuchToRead() business, but then if you flatten, update the list so you don't have to do it each time
18:27:06  <TooTallNate>right
18:27:12  <TooTallNate>k, i'll look into it
18:27:16  <TooTallNate>doesn't sound too hard
18:28:17  <isaacs>TooTallNate: that also means returning null if n>length and !ended
18:28:23  <trevnorris>TooTallNate: sounds like a good idea, but think there'll be much perf hit with all the buffer scanning/munging?
18:28:39  <TooTallNate>trevnorris: it already does that in read()
18:29:12  <TooTallNate>trevnorris: oh you mean when you use the function to say scan for \n
18:29:16  <trevnorris>yeah
18:29:33  <trevnorris>so you'll need to be appending/cutting/scanning all data
18:29:33  <TooTallNate>hard to say
18:29:55  <isaacs>TooTallNate, trevnorris: Yes, peek() is not going to be all that fast.
18:30:14  <isaacs>trevnorris: but if you put the flattened buffer back in, then the subsequent read() wont' be bad.
18:30:19  <isaacs>since that's just a slice
18:30:45  <trevnorris>does Buffer.concat copy buffer contents?
18:30:53  <TooTallNate>yes
18:31:16  <MI6>joyent/node: isaacs created tag v0.9.8 - http://git.io/f27oew
18:31:42  <trevnorris>would it be possible to create a concat-ish that allows for multiple pointers from different buffers to a single buffer?
18:32:01  <trevnorris>sounds insane, but think it'd really help performance.
18:32:03  <MI6>joyent/node: isaacs master * f64742e : Now working on v0.9.9 (+2 more commits) - http://git.io/B3Girw
18:32:18  <TooTallNate>trevnorris: i don't think the makeFastBuffer trick would work there
18:32:35  <TooTallNate>trevnorris: but what you're describing kind of sounds like https://npmjs.org/package/buffers
18:33:09  <MI6>joyent/node: isaacs v0.8 * 7f6054c : blog: Post for v0.9.8 - http://git.io/iUAAEw
18:33:33  <isaacs>trevnorris: i'm open to experimentation there. but i'm also skeptical it'll be a win in the normal case
18:33:50  <isaacs>trevnorris: *usually* read() does not involve a concat(), because you don't often end up with more than one thing in teh queue
18:34:05  <trevnorris>TooTallNate: actually yeah. except thinking of handling that at the cc level.
18:34:05  <isaacs>unless you're paused for a long time, and have a source that's giving you small chunks
18:34:13  <isaacs>that's not usually a speed-sensitive situation anyway
18:34:24  <trevnorris>isaacs: was thinking if you're streaming a file with long lines, and looking for '\n'
18:34:39  <isaacs>right
18:34:40  <trevnorris>there will be multiple buffers that'll need to be concat'd, right?
18:34:44  <isaacs>sometimes
18:34:57  <isaacs>depends on the comparison of line-length to chunk-size
18:35:09  <isaacs>but you'll probably end up with a few, yes
18:35:39  * rumpjoined
18:35:45  <trevnorris>true. well, going to refrain from over optimize code that doesn't even exist yet. ;-)
18:36:01  <trevnorris> optimizing*
18:36:36  * paddybyersquit (Ping timeout: 276 seconds)
18:38:46  <TooTallNate>hahaha
18:39:06  <TooTallNate>it's good to have you on our side trevnorris
18:39:39  <trevnorris>heh, thanks. just glad my adhd doesn't drive everyone crazy.
18:50:20  * `3rdEdenjoined
18:52:21  <ryah>so when are buffers going to be backed by typed arrays ?
18:52:53  <ryah>0.12 ?
18:53:04  <trevnorris>ryah: if we'll need to follow the spec, don't see it happening any time soon. the requirement for zero filling memory is a serious per hit.
18:53:18  <trevnorris> /per/performance
18:54:54  <trevnorris>ryah: also when you say typed arrays, I think you mean that we'd need an Uint8Array, casted over an ArrayBuffer. instantiation time there is really harsh.
18:55:05  <ryah>i'd be surprised if memset throughput was the bottleneck
18:55:33  * sblomjoined
18:56:13  <trevnorris>ryah: let me post the current benchmarks for you. one sec
18:57:26  <trevnorris>ryah: (also as a side, all buffer calls would require `new`)
18:58:55  <trevnorris>ryah: also, when you say "backed" do you mean it could be extended beyond the spec?
18:58:59  * brsonjoined
19:01:09  <trevnorris>also there's the question of if memory could be preallocated into pools, like is currently done.
19:03:19  * lohkeyjoined
19:09:17  * bradleymeckjoined
19:09:30  * paddybyersjoined
19:09:46  <trevnorris>ryah: https://gist.github.com/4626573
19:11:11  <trevnorris>Buffer's memory pooling allocation offer ~8x's performance gain, and the SlowBuffers still offer ~2x's gain.
19:12:42  * sgallaghquit (Remote host closed the connection)
19:14:20  <trevnorris>I like the idea, but not sure how feasible it will be. (and wow. used "also" a lot)
19:14:30  * sgallaghjoined
19:15:16  * mikealquit (Quit: Leaving.)
19:15:46  * paddybyersquit (Ping timeout: 256 seconds)
19:23:45  * mralephquit (Ping timeout: 248 seconds)
19:27:25  * jmar777quit (Remote host closed the connection)
19:28:04  * jmar777joined
19:28:54  <bnoordhuis>ryah: re memset, remember we used to have that in node for a while?
19:29:05  <bnoordhuis>it got reverted because it slowed things down considerably
19:32:20  * jmar777quit (Ping timeout: 240 seconds)
19:34:16  * jmar777joined
19:42:16  * mikealjoined
19:43:56  * stagasjoined
19:47:48  * qmx|awaychanged nick to qmx
20:06:27  * jmar777quit (Remote host closed the connection)
20:07:03  * jmar777joined
20:11:39  * jmar777quit (Ping timeout: 252 seconds)
20:15:23  * loladiroquit (Quit: loladiro)
20:24:09  * sblomquit (Ping timeout: 256 seconds)
20:27:04  * loladirojoined
20:31:18  * bnoordhuisquit (Ping timeout: 264 seconds)
20:32:19  * loladiroquit (Quit: loladiro)
20:36:19  <TooTallNate>isaacs: v0.8 or master? https://github.com/joyent/node/pull/4652
20:36:30  <TooTallNate>(just a quick doc typo fix)
20:36:53  <isaacs>v0.8 i guess
20:36:55  <tjfontaine>TooTallNate: is it known that ref-struct doesn't like to have members also named buffer? :)
20:37:07  * isaacsoff to lunch, back in an hour or two
20:37:18  <TooTallNate>tjfontaine: ya that occurred to me at some point…
20:37:27  <TooTallNate>tjfontaine: at one point i had it named "_pointer"
20:37:39  <TooTallNate>but i think i changed it to match ref-array
20:37:59  <TooTallNate>which doesn't make much sense since arrays don't have to share the namespace like objects
20:38:02  <tjfontaine>I'm not sure what the right answer is, just that buffer probably is a fairly common name to be found in structs
20:38:33  <TooTallNate>tjfontaine: so i agree, i'll change it back to "_pointer"
20:38:45  <TooTallNate>tjfontaine: or "__pointer"?
20:38:46  <TooTallNate>haha
20:39:02  <TooTallNate>tjfontaine: if you wanna send a patch that's cool too :p
20:39:15  <tjfontaine>____no_really_i_dont_want_to_override_other_peopls_stuff__buffer
20:39:27  <TooTallNate>hahah, ya shared namespaces suck
20:39:36  * qmxchanged nick to qmx|away
20:39:46  <TooTallNate>tjfontaine: maybe something that's illegal as a regular C struct name?
20:39:54  * qmx|awaychanged nick to qmx
20:39:54  <TooTallNate>tjfontaine: like "ref.buffer"
20:40:47  <tjfontaine>TooTallNate: oh cute, I hadn't thought of that, maybe just '*buffer' but that probably would confuse the hell out of yourself while trying to think through indirection :)
20:40:58  <TooTallNate>hahaha
20:41:17  <TooTallNate>i don't think bracket notation is much slower that dot notation so it's ok
20:41:24  <TooTallNate>s/that/than
20:41:26  * mikealquit (Quit: Leaving.)
20:41:41  <tjfontaine>indeed, I'll work up a patch in a bit
20:41:51  <tjfontaine>unless you get to it before me
20:42:01  <tjfontaine>there's no reason for anyone to be using it is there?
20:43:46  <MI6>joyent/node: Jacob Gable v0.8 * 34131af : doc: fix typo in crypto Hash.digest() note Added the word 'has' to the s - http://git.io/3fu_Vw
20:47:08  <TooTallNate>tjfontaine: no not really… i don't think it's documented anywhere
20:47:41  * stagas_joined
20:49:35  * stagas_quit (Client Quit)
20:52:47  <TooTallNate>isaacs: when you're back, can you update the .asc and .gpg files for the v0.8.18, v0.9.7 and v0.9.8 dirs
20:52:53  <TooTallNate>please and thanks
21:01:04  * stagasquit (Ping timeout: 246 seconds)
21:04:53  * stagasjoined
21:05:21  * `3rdEdenquit (Remote host closed the connection)
21:06:34  * loladirojoined
21:11:41  * mikealjoined
21:12:31  * bradleymeckquit (Ping timeout: 245 seconds)
21:14:02  * bradleymeckjoined
21:17:19  <trevnorris>TooTallNate: is the bench tls-fragmentation supposed to work?
21:22:28  <TooTallNate>trevnorris: not sure...
21:23:04  * AvianFlujoined
21:23:07  <trevnorris>TooTallNate: first thing is the path for 'common' is incorrect. but after that's fixed it runs in v0.8.x, but in v0.9.x I get "DEPTH_ZERO_SELF_SIGNED_CERT"
21:25:04  <TooTallNate>trevnorris: oh, you need to add the "rejectUnauthorized: false" option
21:25:15  <trevnorris>ah, thanks.
21:25:58  <trevnorris>i'll include those fixes in my benchmarks patch.
21:26:18  * `3rdEdenjoined
21:26:32  <TooTallNate>kewl
21:28:49  * ericktjoined
21:29:56  <trevnorris>hm. strange. there's been a slight regression since the initial streams2 merge and v0.9.8 with net-pipe
21:57:13  * sgallaghquit (Remote host closed the connection)
21:57:56  * bradleymeckquit (Quit: bradleymeck)
22:01:56  * jmar777joined
22:13:32  * wolfeidauquit (Remote host closed the connection)
22:14:14  * hzquit
22:17:39  * paddybyersjoined
22:20:47  * rendarquit
22:22:08  <rvagg>isaacs: re marked, I want <code><b>foo</b> bar</code>
22:22:21  <rvagg>isaacs: & html is part of the markdown spec; why fight it?
22:22:31  <isaacs>rvagg: oic. yeah, ` means "everything within is literal"
22:23:06  <isaacs>rvagg: sure. but at least, you can do <code>**foo** bar</code>
22:23:39  <isaacs>TooTallNate: on it.
22:24:06  <rvagg>isaacs: fwiw, I use https://github.com/rvagg/morkdown for my md previewing, it uses marked underneath
22:25:01  <rvagg>isaacs: ok, <code>**foo** bar</code> it is, fixed and pushed
22:25:46  <isaacs>rvagg: oh, kewl. i use hte marked command line
22:28:06  <CoverSlide>morkdown?
22:28:12  <isaacs>rvagg: so, the _M seems a bit odd to me.
22:28:15  <CoverSlide>nanu nanu!!
22:29:26  <isaacs>rvagg: oic, so NODE_MODULE_M, the init function gets the module object
22:29:31  <rvagg>isaacs: ideas for alternative? it was _INIT but the other one is an init too
22:30:09  <isaacs>hmm...
22:30:10  <isaacs>yeah
22:30:37  <rvagg>NODE_MODULE_☮
22:30:38  <isaacs>what about passing in both somehow?
22:31:21  <rvagg>yeah, I wondered about passing in arg0=exports, arg1=module but I think that'd cause breakage
22:31:32  <TooTallNate>should be ok
22:31:32  <tjfontaine>NODE_MODULE_EXPORT(S)?
22:32:08  <rvagg>TooTallNate: so it's ok to pass in a second argument to a function pointer even if the underlying function doesn't take a second argument?
22:33:41  <rvagg>or, perhaps another route would be to add a second macro that you use if you want `module` rather than `exports`, so:
22:33:49  <rvagg>NODE_MODULE(foo, Init)
22:36:47  <isaacs>rvagg: the macro could check what kind of function it is
22:36:58  <isaacs>rvagg: you can overload functions in c++, right?
22:38:23  <rvagg>isaacs: yeah, but they essentially look the same, the signature for both is just `void Init(Handle<Object> target);`
22:38:28  <rvagg>both receive a Handle<Object>
22:38:54  <isaacs>rvagg: what if you could just use NODE_MODULE with a (void)(Handle<Object>, Handle<Object>) and get the module as the second arg?
22:39:34  <isaacs>rvagg: so the macro name doesn't change, but it gives you the module if you give it an arity=2 function
22:39:50  <isaacs>void Init(Handle<Object> exports, Handle<Object> module)
22:40:22  <rvagg>mmm.. checking the arity of a function pointer in C++ is stretching it a bit for me, TooTallNate?
22:41:43  <isaacs>hm. that'd get kinda monkeyballs, actually..
22:42:10  * felixgequit (Quit: felixge)
22:43:09  * qmxchanged nick to qmx|away
22:44:12  <trevnorris>isaacs, TooTallNate: think we'd ever want to implement negative offset wrap-around for Buffer.copy()?
22:44:45  * `3rdEdenquit (Remote host closed the connection)
22:44:58  * wolfeidaujoined
22:45:14  <isaacs>trevnorris: no
22:45:22  <isaacs>trevnorris: users can check the length and do their own subtraction
22:45:31  <trevnorris>isaacs: ok, thanks much.
22:46:08  * felixgejoined
22:46:09  * felixgequit (Changing host)
22:46:09  * felixgejoined
22:58:33  <txdv>who is on windows right now?
22:58:54  <CoverSlide>noone, they're all rebooting
23:04:14  <trevnorris>am I the only one who can stare at the same 10 lines all day and think it's fine, then come back the next and have a "wtf was I thinking" moment?
23:07:24  * sblomjoined
23:10:15  * paddybyersquit (Ping timeout: 276 seconds)
23:17:58  <isaacs>rvagg: i think i might have something that'll work as NODE_MODULE without changing the macro name
23:18:05  <isaacs>rvagg: you can just cast to a 2-arg function from a 1-arg function
23:20:28  <isaacs>rvagg: just be a moment, i have to re-build all of V8 because of having done the release.
23:20:33  <isaacs>then i'll let you know if it works on your test addon
23:23:26  <isaacs>rvagg: here's the diff i'm playing around with: https://gist.github.com/4629455
23:34:28  * felixgequit (Quit: felixge)
23:35:27  <trevnorris>isaacs: re the test that leaves zombie processes, does that only happen if the test fails?
23:39:09  * sblom_joined
23:43:42  <isaacs>rvagg: https://github.com/isaacs/node/commit/ede65922cf37882fc580fe3b93d7820bf8859871
23:43:53  <isaacs>TooTallNate: ^
23:44:07  <isaacs>rvagg: with that, you can just use NODE_MODULE as you do now, but if you accept a second arg in Init, it'll point to module
23:46:34  * sblom_quit (Ping timeout: 244 seconds)
23:56:50  <isaacs>trevnorris: yeah, well, there's some race condition, and it times out, leaving zombies behind
23:57:47  <trevnorris>isaacs: ah, ok. was just wondering the possibility of force killing its own pid when the test is complete.
23:57:59  <trevnorris>(a hack fix I know, but only temporary)
23:58:35  <TooTallNate>isaacs: nice stuff
23:59:39  <isaacs>trevnorris: yeah, but the problem is that the test *doesn't* complete. the runner kills it after 30s