00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:10:00  * defunctzombiechanged nick to defunctzombie_zz
01:20:38  <wolfeidau>tjfontaine: Hey how does node-v0.10.16-linux-arm-pi.tar.gz get built? I want to replicate it and package it in a deb package..
01:20:51  <wolfeidau>Or if anyone else knows ^ :)
01:20:57  <tjfontaine>wolfeidau: through the magic work of TooTallNate
01:21:06  <tjfontaine>he does cross compiles on his mac for it
01:21:34  <wolfeidau>tjfontaine: ahh
01:21:50  <wolfeidau>I will hit him up and see if i can get the secret recipe :)
01:22:02  <tjfontaine>heh
01:22:18  <wolfeidau>I am building for arm8 on the beaglebone fine but want to do a build for pi
01:22:32  <tjfontaine>nod
01:22:46  <wolfeidau>But i am doing it all on ubuntu 13.04 with the cross compile tools
01:23:06  <wolfeidau>Can't quite get the combination of flags right for pi :(
01:23:14  <tjfontaine>they at least have functionality for xcompile
01:37:15  <wolfeidau>tjfontaine: Yeah I got damn close but something i am missing, mite be a debian thing with an older gcc
01:45:35  * kenperkinsjoined
01:49:26  * kenperkinsquit (Client Quit)
01:50:12  <wolfeidau>tjfontaine: cheers for the info
01:50:22  <tjfontaine>yup, lemme know if there's anything I can do to help
01:52:06  * amartensjoined
01:52:20  * AvianFluquit (Remote host closed the connection)
01:53:57  * AvianFlujoined
01:54:53  * kenperkinsjoined
01:56:47  * kenperkinsquit (Client Quit)
02:37:18  * AvianFluquit (Remote host closed the connection)
02:38:34  * AvianFlujoined
02:40:19  * mnunbergjoined
02:41:48  <mnunberg>hey, we're trying to use domains with our extension; one test is throwing an exception from within the callback (which is invoked from C++ via node::MakeCallback), however the exception is not being propagated to the domain's error handler
02:42:24  <tjfontaine>I presume you're operating on an object that has a domain property?
02:43:26  * Brett19joined
02:43:33  <mnunberg>Brett19: 19:42 <@tjfontaine> I presume you're operating on an object that has a domain property?
02:43:46  <mnunberg>(brett knows more about node than i do)
02:44:14  <pfox___>what bitmasks are applicable to the flags param to uv_fs_readdir?
02:47:36  <mnunberg>hrm, it works with a 'domain.enter()'
02:49:45  <mnunberg>is there something special we need to do for the objects and such? http://paste.scsys.co.uk/269141
02:55:56  * kenperkinsjoined
03:16:55  * amartensquit (Quit: Leaving.)
03:37:52  * amartensjoined
03:52:50  * AvianFluquit (Remote host closed the connection)
03:54:09  * AvianFlujoined
03:54:45  * defunctzombie_zzchanged nick to defunctzombie
04:02:46  * wwicksquit (Quit: wwicks)
04:38:24  * AvianFluquit (Remote host closed the connection)
04:38:53  * AvianFlujoined
04:53:43  * c4miloquit (Remote host closed the connection)
04:54:58  * amartensquit (Quit: Leaving.)
04:59:08  * amartensjoined
05:15:42  * amartensquit (Quit: Leaving.)
05:51:08  * bajtosjoined
05:53:08  * AvianFluquit (Remote host closed the connection)
05:53:39  * AvianFlujoined
06:05:42  * kenperkinsquit (Quit: Computer has gone to sleep.)
06:06:41  * wwicksjoined
06:23:26  * xakaquit (Ping timeout: 240 seconds)
06:25:08  * luigy_quit (Ping timeout: 260 seconds)
06:29:03  * defunctzombiechanged nick to defunctzombie_zz
06:31:46  * luigy_joined
06:39:00  * luigy_quit (Ping timeout: 260 seconds)
06:41:19  <MI6>nodejs-v0.10-windows: #213 UNSTABLE windows-ia32 (8/600) windows-x64 (7/600) http://jenkins.nodejs.org/job/nodejs-v0.10-windows/213/
06:44:17  * luigy_joined
06:51:52  * mnunbergquit (Quit: leaving)
07:07:12  * rendarjoined
07:08:55  * AvianFluquit (Remote host closed the connection)
07:09:23  * AvianFlujoined
07:14:45  * wwicksquit (Quit: wwicks)
07:26:48  * defunctzombie_zzchanged nick to defunctzombie
07:34:10  * qmxquit (Ping timeout: 245 seconds)
07:34:18  * qmxjoined
07:34:35  * toothrotquit (Ping timeout: 245 seconds)
07:35:50  * ircretaryquit (Ping timeout: 245 seconds)
07:38:58  * toothrjoined
07:53:38  * AvianFluquit (Remote host closed the connection)
07:54:07  * AvianFlujoined
08:09:26  * defunctzombiechanged nick to defunctzombie_zz
08:12:00  * `3Echanged nick to `3E|TATTOOD
08:13:27  * defunctzombie_zzchanged nick to defunctzombie
08:16:11  * bajtosquit (Quit: bajtos)
08:17:25  * defunctzombiechanged nick to defunctzombie_zz
08:22:59  * wolfeidauquit (Remote host closed the connection)
08:23:56  * wolfeidaujoined
08:32:30  * hzjoined
08:53:03  <indutny>hey people
08:53:09  <indutny>howdy?
09:30:13  * piscisaureus_joined
09:39:35  * piscisaureus_quit (Ping timeout: 245 seconds)
09:45:24  * emilsedghquit (Excess Flood)
09:45:43  * tuxie_joined
09:45:51  * emilsedghjoined
09:47:21  * emilsedghquit (Changing host)
09:47:21  * emilsedghjoined
10:00:16  * Kakerajoined
10:45:21  <mmalecki>indutny: hi!
10:45:26  <indutny>hi
10:45:33  <mmalecki>indutny: working on a node binding for a new cool thing I found today
10:45:39  <mmalecki>indutny: http://sphia.org/documentation.html
10:45:48  <indutny>oh, nice
10:46:05  <MI6>nodejs-v0.10: #1485 UNSTABLE linux-x64 (1/600) smartos-x64 (3/600) osx-x64 (1/600) http://jenkins.nodejs.org/job/nodejs-v0.10/1485/
10:46:27  <indutny>hah
10:46:37  <indutny>I wonder why none of you guys was thinking about working with my bplus :)
10:46:44  <indutny>well, it has quite bad name
10:46:51  <indutny>and I haven't worked on it for quite awhile
10:47:14  <indutny>oh
10:47:16  <indutny>well
10:47:18  <indutny>sophia is quite fast
10:47:20  <indutny>ok
10:47:23  <indutny>I take my words back
10:52:15  * dominictarrjoined
11:00:56  * wolfeidauquit (Remote host closed the connection)
11:01:03  * wolfeidaujoined
11:02:47  * bnoordhuisjoined
11:16:26  * bnoordhuisquit (Ping timeout: 264 seconds)
11:19:01  * bnoordhuisjoined
11:37:40  * piscisaureus_joined
11:40:53  * bnoordhuisquit (Ping timeout: 248 seconds)
12:08:44  * toothrchanged nick to toothrot
12:19:04  * piscisaureus_quit (Ping timeout: 264 seconds)
12:33:05  * c4milojoined
12:34:35  * c4miloquit (Remote host closed the connection)
12:35:08  * c4milojoined
12:36:18  * c4milo_joined
12:36:37  * c4miloquit (Read error: Connection reset by peer)
12:41:14  * c4milo_quit (Remote host closed the connection)
12:57:26  * AvianFluquit (Remote host closed the connection)
13:10:01  * dominictarrquit (Quit: dominictarr)
13:18:37  * Kakeraquit (Read error: Connection reset by peer)
13:19:29  * Kakerajoined
13:22:48  * bnoordhuisjoined
13:24:16  * Kakeraquit (Read error: Connection reset by peer)
13:24:34  * dominictarrjoined
13:25:00  * Kakerajoined
13:36:14  * bnoordhuisquit (Ping timeout: 240 seconds)
13:43:20  * dominictarrquit (Quit: dominictarr)
13:46:37  * dominictarrjoined
13:47:56  * migounettejoined
13:50:12  * jmar777joined
13:55:31  * jmar777quit (Read error: Connection reset by peer)
13:56:02  * jmar777joined
14:04:06  * dominictarrquit (Quit: dominictarr)
14:15:46  * dominictarrjoined
14:23:18  * piscisaureus_joined
14:28:32  * kenperkinsjoined
14:29:53  * c4milojoined
14:40:31  <piscisaureus_>echo bla 2>&1 1>&2
14:40:35  <piscisaureus_>^-- that works
14:40:38  <piscisaureus_>:/
14:40:41  <piscisaureus_>but what does it do?
14:42:13  * bnoordhuisjoined
14:44:07  * AvianFlujoined
14:46:29  * bnoordhuisquit (Ping timeout: 248 seconds)
14:47:27  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
14:48:03  * c4miloquit (Remote host closed the connection)
14:50:20  * bradleymeckjoined
14:52:08  * c4milojoined
14:53:46  * julianduquejoined
15:01:29  * julian_duquejoined
15:01:48  * julianduquequit (Ping timeout: 245 seconds)
15:09:20  * piscisaureus_joined
15:11:36  * hzquit (Disconnected by services)
15:11:41  * hzjoined
15:13:47  * kenperkins_joined
15:15:17  * kenperkinsquit (Ping timeout: 240 seconds)
15:15:28  * rjequit (Ping timeout: 240 seconds)
15:15:48  * julian_duquechanged nick to julianduque
15:17:13  <MI6>nodejs-master: #558 UNSTABLE smartos-ia32 (1/640) linux-x64 (1/640) smartos-x64 (6/640) linux-ia32 (1/640) http://jenkins.nodejs.org/job/nodejs-master/558/
15:21:36  * rjejoined
15:22:21  * migounettequit (Quit: Page closed)
15:23:54  * xakajoined
15:27:51  * dapjoined
15:34:59  * bradleymeckquit (Quit: bradleymeck)
15:47:02  * bradleymeckjoined
15:47:27  * tuxie_quit (Read error: Operation timed out)
15:49:53  * groundwaterquit (Quit: groundwater)
15:50:30  * julianduquequit (Ping timeout: 264 seconds)
15:50:57  * paulfryzeljoined
15:54:21  * julianduquejoined
15:57:30  * amartensjoined
15:59:18  * xakaquit (Ping timeout: 245 seconds)
16:03:56  * bajtosjoined
16:06:28  * TooTallNatejoined
16:09:18  * xakajoined
16:12:54  <tjfontaine>piscisaureus_:
16:12:55  <tjfontaine>localhost:~ tjfontaine$ (echo blah 2>&1 1>&2) > stdout 2> stderr
16:12:55  <tjfontaine>localhost:~ tjfontaine$ cat stdout
16:12:55  <tjfontaine>blah
16:12:55  <tjfontaine>localhost:~ tjfontaine$ cat stderr
16:12:57  <tjfontaine>localhost:~ tjfontaine$
16:13:03  * bradleymeckquit (Quit: bradleymeck)
16:14:52  * hzquit (Ping timeout: 264 seconds)
16:26:24  * wwicksjoined
16:28:20  * dominictarrquit (Quit: dominictarr)
16:29:30  * txdv_quit (Ping timeout: 264 seconds)
16:29:50  * kenperkins_quit (Ping timeout: 240 seconds)
16:29:52  * kenperkinsjoined
16:30:58  * Benviejoined
16:31:20  * bradleymeckjoined
16:32:55  * TooTallNatequit (Ping timeout: 245 seconds)
16:33:05  * dominictarrjoined
16:33:07  * txdvjoined
16:39:58  * stagasjoined
16:41:25  * TooTallNatejoined
16:42:56  * AvianFlu_joined
16:45:25  * dominictarrquit (Quit: dominictarr)
16:45:50  * julianduquequit (Ping timeout: 240 seconds)
16:46:23  * AvianFluquit (Ping timeout: 245 seconds)
16:46:48  * TooTallNatequit (Quit: Computer has gone to sleep.)
16:55:29  * dominictarrjoined
16:57:57  <isaacbw>mmalecki: ooh, sophia looks neat. I think I'll make my own binding (for cl)
17:02:12  <mmalecki>isaacbw: do it. it's really awesome
17:03:54  * groundwaterjoined
17:04:19  <piscisaureus_>tjfontaine: so - in other words - the 1>&2 doesn't do anything
17:04:25  <piscisaureus_>?
17:05:15  <tjfontaine>it may actually try to send it to 2, but since 2 is already 1 it probably just soldiers on, I guess one could strace it
17:06:07  * TooTallNatejoined
17:06:13  <piscisaureus_>I'm asking because what should node do in that case
17:06:36  <piscisaureus_>child_process.spawn('bar', [], { stdio: ['pipe', '&2', '&1'] })
17:06:59  <tjfontaine>ya, I'm thinking about it
17:07:17  <piscisaureus_>maybe just disallow numbers that are higher
17:07:37  <piscisaureus_>I mean,
17:07:37  <piscisaureus_>child_process.spawn('bar', [], { stdio: ['pipe', '&2', 'pipe'] })
17:07:54  <piscisaureus_>Could be expressed as:
17:07:54  <piscisaureus_>child_process.spawn('bar', [], { stdio: ['pipe', 'pipe', '&1'] })
17:08:48  * brsonjoined
17:08:50  <tjfontaine>is this something we preflight in js land, or handle at uv?
17:10:26  <piscisaureus_>well we have to add libuv support for it
17:10:43  <tjfontaine>piscisaureus_: sure but node could be picking the fd's to pass to libuv
17:10:44  <tjfontaine>http://wiki.bash-hackers.org/howto/redirection_tutorial#order_of_redirection_ie_file_2_1_vs_2_1_file
17:10:53  <tjfontaine>talks about some of the semantics
17:11:04  <piscisaureus_>tjfontaine: no it couldn't
17:11:16  <piscisaureus_>tjfontaine: libuv creates the pipe fds on the spot just before spawning
17:11:40  <tjfontaine>sure, unless someone is passing in a handle to an existing stream?
17:11:50  <piscisaureus_>tjfontaine: sure - in that case it could work
17:12:01  <piscisaureus_>although node (theoretically) has no access to stream fds
17:15:14  <groundwater>@tjfontaine: is there a way to tell libuv to stop/start reading from a fd?
17:15:32  <tjfontaine>groundwater: can you be more specific?
17:15:45  <groundwater>i am working on doing job-control, which switches processes between foreground/background process groups
17:16:07  <groundwater>and having libuv trying to read from STDIN while in the background is causing problems
17:16:18  <groundwater>not sure how familiar you are with job-control/TTY stuff
17:16:38  <groundwater>basically i pause STDIN from node, but libuv must still try to call read
17:16:53  <groundwater>which casues an error
17:17:57  <tjfontaine>do you have an example you can gist?
17:20:07  <groundwater>nothing that would simplify things, but i can write up a minimal example
17:22:00  <groundwater>for now, can you verify that when i call stdin.pause() on a file, libuv *may* still buffer some content
17:26:24  <tjfontaine>well, when pause is emitted on the stdin, readStop is triggered, but without a test case to really see what you're experiencing I'm not sure what I can verify
17:26:51  * julianduquejoined
17:27:35  <groundwater>okay no problem
17:28:51  * julian_duquejoined
17:29:34  * julianduquequit (Disconnected by services)
17:29:39  * julian_duquechanged nick to julianduque
17:29:52  * hzjoined
17:30:27  <groundwater>okay, new question comes with a gist
17:30:29  <groundwater>https://gist.github.com/jacobgroundwater/02190caec490145cf0e9
17:30:37  <groundwater>related, but different question
17:30:48  <groundwater>i want a child process with the *same* session, but a different *pgid*
17:30:53  * EhevuTovjoined
17:34:41  * TooTallNatequit (Quit: Computer has gone to sleep.)
17:38:31  * dominictarrquit (Ping timeout: 240 seconds)
17:40:12  * TooTallNatejoined
17:45:33  * bajtosquit (Quit: bajtos)
17:45:40  <trevnorris>othiym23: thanks. have you had a chance to use my patch?
17:46:01  <trevnorris>othiym23: there's an issue with tls. for some reason it doesn't return the same object that was originally created. figuring that out now.
17:46:17  <trevnorris>othiym23: other than that, it's pretty much working as expected, and just have to fix domains to use it.
17:50:02  * piscisaureus_quit (Ping timeout: 264 seconds)
17:51:10  * defunctzombie_zzchanged nick to defunctzombie
17:55:41  * hzquit
17:55:50  <MI6>libuv-master: #244 UNSTABLE windows (3/195) smartos (9/194) http://jenkins.nodejs.org/job/libuv-master/244/
17:58:58  * hzjoined
18:02:54  * jmar777quit (Remote host closed the connection)
18:04:12  <isaacbw>mmalecki: wow, sophia is really raw. How did you find it?
18:04:31  <trevnorris>man, next couple seeks are going to be slow. ben is having a kid and isaac is in italy.
18:05:02  <mmalecki>isaacbw: reddit!
18:05:11  <isaacbw>yay for reddit! I just posted a link to it on HN
18:05:23  <mmalecki>isaacbw: I've been happily wasting my time and now I ended up doing something useful!
18:06:10  <mmalecki>oh, hah, comes with a .gyp file now!
18:07:55  * rendarquit (Ping timeout: 245 seconds)
18:08:42  <MI6>libuv-node-integration: #229 UNSTABLE smartos-x64 (6/640) http://jenkins.nodejs.org/job/libuv-node-integration/229/
18:08:52  * st_lukejoined
18:11:30  * st_lukequit (Remote host closed the connection)
18:13:09  * c4miloquit (Remote host closed the connection)
18:14:40  * defunctzombiechanged nick to defunctzombie_zz
18:16:02  * bnoordhuisjoined
18:19:05  * stagasquit (Quit: Bye)
18:19:23  <tjfontaine>trevnorris: that's a GoodThing(tm)
18:19:48  <trevnorris>tjfontaine: heh, guess so. :)
18:20:03  <tjfontaine>allows you to be as anal as you want on perf
18:20:15  <trevnorris>whoot!
18:20:24  <tjfontaine>we can also work on the execSync stuff and the vm2 stuff
18:20:38  <tjfontaine>as we shuffle through the last few pieces before we hit the hard freeze
18:20:54  <trevnorris>i'm going to finish up the asynclistener stuff. what's left with vm2?
18:21:12  <tjfontaine>there's a high cpu regression that bnoordhuis wants investigated
18:21:55  <trevnorris>coolio
18:22:08  <tjfontaine>there's also #6214 I think, which is a http+streams backpressure issue that's pretty gnarly, but affects basically all node versions
18:25:05  * st_lukejoined
18:27:51  * Brett19part
18:30:44  * AvianFlu_changed nick to AvianFlu
18:32:28  * defunctzombie_zzchanged nick to defunctzombie
18:34:01  * defunctzombiechanged nick to defunctzombie_zz
18:39:51  <bnoordhuis>tjfontaine: apropos nothing, my girlfriend gave birth to a boy yesterday :)
18:40:04  <trevnorris>bnoordhuis: whoot!!!! congrats. :)
18:40:08  <bnoordhuis>thanks :)
18:40:10  <wwicks>congrats!
18:41:50  * c4milojoined
18:42:18  <pfox___>bnoordhuis: first child?
18:42:32  <bnoordhuis>pfox___: no, the second one
18:42:56  <bnoordhuis>the first one isn't quite sure yet what to make of #2
18:43:15  <pfox___>big age diff?
18:43:19  <trevnorris>just rebased and tested https://github.com/joyent/node/pull/5854 all tests pass. no problems on my end, anyone else opposed?
18:43:38  <bnoordhuis>pfox___: not really. #1 is almost three years old now
18:43:53  <pfox___>barely lucid!
18:44:02  <pfox___>in any event, congrats. but you've been through this before.
18:44:09  <bnoordhuis>thanks :)
18:44:39  <pfox___>although, as a father of three, i think that childrearing difficulty isn't O(n), more like O(n^2)
18:45:00  <pfox___>good times ahead!
18:46:20  <bnoordhuis>ai, i was hoping for O(log n)
18:46:28  <bnoordhuis>maybe even O(1)
18:47:36  <trevnorris>bnoordhuis: thanks for the pr review (from a little over a week ago :)
18:50:52  <bnoordhuis>i don't remember which one that was but my pleasure
18:51:05  <trevnorris>async listeners.
18:52:25  <trevnorris>bnoordhuis: so you want async_wrap.h and async_wrap-inl.h, how do you handle the #include in that case? and why not just do async_wrap.cc?
18:52:26  <bnoordhuis>oh, that one. i don't think i actually finished reviewing that
18:53:13  <bnoordhuis>trevnorris: depends on what you want. if you want to strongly hint to the compiler that it should inline methods foo() and bar(), you'd put it in a *-inl.h header
18:53:27  <bnoordhuis>s/it/them/
18:53:33  <trevnorris>ah, interesting. ok
18:55:04  <trevnorris>where I get confused is, do you need to include both in every file that requires them? since you can't include async_wrap-inl.h in aysnc_wrap.h. and it seems awkward to just include async_wrap-inl.h
18:56:19  <bnoordhuis>you include them in files that call AsyncWrap methods
18:56:38  <trevnorris>ok, so i'll just include them both. coolio
18:56:40  <bnoordhuis>if you only need the definition, not the implementation, you only include async-wrap.h
18:57:27  <trevnorris>when would you ever need just the definition?
18:57:37  <bnoordhuis>and i'd stick with hyphens if i were you, mixing hyphes and underscores tickles my aesthetic bone
18:57:37  <MI6>nodejs-master-windows: #352 UNSTABLE windows-x64 (25/640) windows-ia32 (24/640) http://jenkins.nodejs.org/job/nodejs-master-windows/352/
18:58:18  * `3E|TATTOODchanged nick to `3rdEden
18:58:18  <tjfontaine>bnoordhuis: CONGRATS ON THE BOUNCING BABY BOY
18:58:38  <bnoordhuis>why, thank you, tj :)
18:58:39  <tjfontaine>LOUDBOT: WE HAVE A NEW MEMBER
18:58:40  <LOUDBOT>tjfontaine: DO YOU KNOW THE WAY TO SAN JOSE?
18:58:48  <tjfontaine>bnoordhuis: :)
19:00:40  * indexzerojoined
19:06:41  <trevnorris>bnoordhuis: overall you cool with the idea of async_wrap? (conditional on proper implementation and everything :)
19:09:36  * luigy_quit (Ping timeout: 276 seconds)
19:10:40  * jmar777joined
19:13:03  * luigy_joined
19:18:49  * groundwaterquit (Quit: groundwater)
19:29:43  <bnoordhuis>trevnorris: i have no strong ideological objections if that is what you mean
19:29:49  <trevnorris>coolio
19:32:36  * indexzeroquit (Quit: indexzero)
19:32:51  * defunctzombie_zzchanged nick to defunctzombie
19:33:51  * xakaquit
19:35:32  * roxlu_quit (Quit: leaving)
19:35:42  * xakajoined
19:36:22  <indutny>bnoordhuis: hey ben
19:36:29  <indutny>have you got your hands on `perf`ing vm2?
19:40:43  <bnoordhuis>indutny: not really, no
19:49:43  * dominictarrjoined
19:54:05  <trevnorris>oy, this -inl.h thing is getting annoying. keep getting a bunch of "multiple definitions of" errors
19:58:58  * julianduquequit (Quit: leaving)
20:01:42  * julianduquejoined
20:10:50  <bnoordhuis>trevnorris: make sure everything is marked inline
20:11:57  <trevnorris>well, that got rid of most of the errors. thanks :)
20:12:21  * TooTallNatequit (Quit: Computer has gone to sleep.)
20:12:23  <bnoordhuis>to give a bit of background, the inline keywords gives things inline rather than default linkage
20:12:52  <bnoordhuis>c++ has this single definition rule which, with default linkage, means it can only be defined in one source only
20:13:09  <bnoordhuis>inline linkage however is, well, inline - it's local to the compilation unit
20:13:35  <bnoordhuis>kind of like static but without the overloaded connotation
20:14:40  <trevnorris>interesting. thanks.
20:15:35  <trevnorris>now, just this strange last one where it keeps telling me a method has an undefined reference.
20:15:53  <trevnorris>so will I need to include the headers wherever any of the class methods are used?
20:15:58  * TooTallNatejoined
20:16:56  <trevnorris>ok, guess so
20:16:58  <trevnorris>that fixed it.
20:17:01  <trevnorris>bnoordhuis: thanks dude
20:21:43  <trevnorris>bnoordhuis: you mentioned adding an AsyncWrap::MakeCallback. i'm not familiar with class instantiation costs, but would it be much cheaper to have the user pass the class instance in and make the method static?
20:29:31  * bnoordhuisquit (Ping timeout: 246 seconds)
20:35:07  * jmar777quit (Remote host closed the connection)
20:38:55  * bnoordhuisjoined
20:45:24  * roxlujoined
20:45:40  <bnoordhuis>trevnorris: doesn't matter, you're passing a `this` pointer in both cases, either explicitly or implicitly
20:46:36  <trevnorris>bnoordhuis: ok. so static inline AsyncWrapMakeCallback(AsyncWrap* ...) won't be any "faster" than inline AsyncWrap::MakeCallback(...) ?
20:46:56  <bnoordhuis>trevnorris: nope
20:47:01  <trevnorris>coolio, thanks
20:57:09  <trevnorris>indutny: ping
20:58:59  <TooTallNate>someone wanna do a quick review? https://github.com/TooTallNate/node/compare/joyent:v0.10...update/tls-ca-docs
20:59:01  <TooTallNate>(doc fixes)
20:59:11  <TooTallNate> /cc bnoordhuis trevnorris
20:59:36  * hzquit
21:00:12  <trevnorris>TooTallNate: lgtm
21:00:23  <TooTallNate>trevnorris: thanks
21:00:28  <trevnorris>:)
21:01:06  <MI6>joyent/node: Nathan Rajlich v0.10 * 5bda2be : doc: fix typos in the tls `NPNProtocols` option (+1 more commits) - http://git.io/NkgHvA
21:01:08  <othiym23>trevnorris: I've been pushing to a code freeze for work while you were in IE, so I haven't had time to play with yr patch yet
21:01:14  <othiym23>this week I'm back on CLS duty
21:01:15  <bnoordhuis>TooTallNate: belated lgtm
21:01:20  <TooTallNate>bnoordhuis: :)
21:01:36  <trevnorris>othiym23: coolio. working out a few kinks on my end.
21:01:49  <trevnorris>ObjectWrap is really making my life hellish.
21:09:01  <MI6>nodejs-v0.10: #1486 UNSTABLE smartos-x64 (2/600) osx-ia32 (1/600) http://jenkins.nodejs.org/job/nodejs-v0.10/1486/
21:10:37  <tjfontaine>bnoordhuis: btw, is there a name yet? and how's the mother?
21:11:22  <bnoordhuis>tjfontaine: the mother is doing well all things considered and we named him luca
21:11:45  <bnoordhuis>he's a pretty big boy, 4800 grams and 54 cm tall
21:12:01  <tjfontaine>ah yes, that is kinda big
21:12:07  <tjfontaine>he'll be as tall as his dad I'm sure :)
21:13:23  <bnoordhuis>no doubt, his mother is over six feet too :)
21:13:49  <tjfontaine>jeepers, you're growing a tribe basketball players over there :P
21:14:02  <bnoordhuis>haha :)
21:16:28  * bradleymeckquit (Quit: bradleymeck)
21:20:57  <trevnorris>... damn you ObjectWrap
21:21:31  <bnoordhuis>trevnorris: what's the problem?
21:22:18  <trevnorris>bnoordhuis: so I moved the Persistent object_; to AsyncWrap, then moved persistent()/object() over also, since they're all basically the same.
21:22:29  <trevnorris>but ObjectWrap also has that implementation.
21:22:42  <trevnorris>and zlib uses it.
21:23:07  <trevnorris>so i'm getting a compiler error about multiple base classes and what not
21:23:16  <bnoordhuis>right
21:23:19  <trevnorris>nothing serious. just an annoyance.
21:23:34  <trevnorris>same with crypto
21:24:22  <trevnorris>bnoordhuis: would it be possible to make ObjectWrap inherit from AsyncWrap? just remember last time I tried it the compiler pooped at me.
21:24:42  <bnoordhuis>trevnorris: no. it's a public and header-only api
21:24:46  <trevnorris>:P
21:25:38  <trevnorris>ok, well. going to punt on that one right now too.
21:25:51  <trevnorris>first get the implementation right, then worry about that crap.
21:28:42  <MI6>nodejs-v0.10-windows: #214 UNSTABLE windows-ia32 (8/600) windows-x64 (7/600) http://jenkins.nodejs.org/job/nodejs-v0.10-windows/214/
21:30:15  <trevnorris>othiym23: ping
21:30:20  <othiym23>trevnorris: yo
21:30:28  <trevnorris>wow, that was fast.
21:32:06  <trevnorris>othiym23: just spit balling here, might be able to remove some of the performance hit if we kept an internal queue of each request, to which you could tie data. this would happen native side.
21:32:26  <trevnorris>othiym23: then you'd have the advantage of being able to transverse the entire queue of all async requests currently out
21:32:33  <othiym23>how would that affect the proposed API?
21:32:39  <trevnorris>not at all
21:32:54  <trevnorris>meaning, it'd be an addition. not a replacement for something
21:32:56  <othiym23>OK -- that's always going to be my first question, just so I know if I need to square up the polyfill ;)
21:33:02  <othiym23>that seems logical to me
21:33:07  * bnoordhuisquit (Ping timeout: 260 seconds)
21:34:34  <trevnorris>othiym23: also, for the moment there's no zlib or tls support. they both use ObjectWrap, and since that's an which is just making life painful. it'll be revisited before long. just fyi more or less.
21:34:59  <trevnorris>*an external api, which
21:35:43  <othiym23>yeah, creationix did some impolite but functional stuff in the polyfill around those two
21:35:51  <trevnorris>hehe
21:35:55  <othiym23>actually, zlib was pretty simple, he just ganked something onto the zlib transform stream
21:36:00  <othiym23>tls was a little gnarlier
21:36:06  <trevnorris>hah, don't doubt it.
21:36:51  * bnoordhuisjoined
21:54:35  * contrahaxquit (Ping timeout: 260 seconds)
21:56:54  * contrahaxjoined
22:02:34  * groundwaterjoined
22:10:12  <indutny>trevnorris: pong
22:11:42  <trevnorris>indutny: ummm. oh yeah. I was just going to bitch an moan about using ObjectWrap in zlib and crypto. since it's external, it's making my AsyncWrap architecture difficult to capture when events are happening internally. but nothing to worry about for now.
22:11:45  <trevnorris>going to revisit it later.
22:11:55  <indutny>haha
22:12:08  <indutny>well, its how it was initially
22:12:18  <indutny>noone to blame
22:13:00  <trevnorris>mainly I wanted your feedback on how to work ObjectWrap out of crypto. so I can make TLSWrap inherit from AsyncWrap.
22:13:06  <trevnorris>or even if it's possible.
22:21:02  * AvianFluquit (Ping timeout: 240 seconds)
22:24:50  * hzjoined
22:35:50  <trevnorris>bnoordhuis: i remember you saying something about public api's like ObjectWrap/using NODE_EXTERN and the 7 levels of hell.
22:35:58  <trevnorris>bnoordhuis: something to do with performance.
22:36:07  * trevnorrischecks his backlog
22:37:08  <trevnorris>ah yes
22:37:09  <trevnorris>Aug 09 09:51:31 <bnoordhuis> trevnorris: as an optimizer fanatic, you should consider node.h the seventh ring of hell
22:38:31  <trevnorris>bnoordhuis: oh, nm. guess they're not directly related.
22:40:04  <indutny>haha
22:40:10  <indutny>what's AsyncWrap?
22:40:40  <indutny>bnoordhuis: ^
22:40:43  <trevnorris>indutny: first, do you know of/about othiym23 CLS stuff?
22:40:50  <indutny> erm
22:40:54  <indutny>nope
22:41:24  <trevnorris>yeah. basically othiym23 wants to attach "data" to each asynchronous request then retrieve it when the returning callback is called.
22:41:26  <trevnorris>or something like that.
22:41:39  <trevnorris>sort of like an abstraction of domains.
22:42:04  <trevnorris>AsyncWrap is my tweak to get around any performance hit when you're not using this functionality.
22:42:44  <trevnorris>other classes like handle/req_wrap inherit from it, and sets a flag on the class whether an callback will be required in MakeCallback
22:42:59  <trevnorris>so instead of checking object properties (like domains do) it just checks the flag.
22:43:02  <trevnorris>much faster.
22:44:38  <trevnorris>indutny: reason why i'm implementing it is because i, honestly, don't trust that many other people to do it w/o hitting core performance.
22:45:18  <trevnorris>indutny: and these hooks should be enough to allow users to do whatever type of crazy cls/trycatch/error handling/long stack trace they're looking for.
22:46:00  <trevnorris>indutny: here's an example generating a freakishly long stack trace: https://gist.github.com/trevnorris/6472965
22:49:10  <trevnorris>anyways, that's the long winded explanation. tjfontaine could probably explain it a lot more simply.
22:50:44  <tjfontaine>hehe
22:50:47  <tjfontaine>not right now I couldn't :P
22:50:55  <trevnorris>hah, ok
22:58:54  * bnoordhuisquit (Ping timeout: 264 seconds)
23:12:39  * AvianFlujoined
23:14:11  * Kakeraquit (Ping timeout: 245 seconds)
23:15:41  * defunctzombiechanged nick to defunctzombie_zz
23:19:45  * dominictarrquit (Quit: dominictarr)
23:25:37  * paulfryzelquit (Remote host closed the connection)
23:26:14  * paulfryzeljoined
23:27:32  <trevnorris>anyone around to bounce some ideas off?
23:27:42  <tjfontaine>what sorts of ideas
23:28:01  * defunctzombie_zzchanged nick to defunctzombie
23:29:00  <trevnorris>the event emitter seems to be a js abstraction for internal happenings like req_wrap/handle_wrap. problem is they're only related by usage, not by any hard mechanics.
23:29:17  <trevnorris>so hypothetically I could de-couple the event emitter and domains if
23:30:43  <trevnorris>we capture the event that's "attached" (i.e. js instance that's inhereted from event emitter) to the async event (e.g. tcp_wrap)
23:30:54  * paulfryzelquit (Ping timeout: 276 seconds)
23:31:41  <trevnorris>... that won't work because event are technically synchronous, and a user could technically create a bunch of event and queue them up. add them to different domains, then cause each one to throw
23:32:36  <trevnorris>freakin... not going to give up, but can't find a way to de-couple domains from events
23:32:49  <trevnorris>well, w/o breaking backwards compatibility.
23:33:27  <tjfontaine>right, I wish you the best of luck
23:33:30  <tjfontaine>:)
23:33:33  <tjfontaine>GOD SPEED GOOD MAN
23:33:34  <LOUDBOT>WHAT DO I DO IF A DOLPHIN WANTS TO MATE WITH ME?
23:33:42  <trevnorris>hah, thanks a lot
23:33:43  <tjfontaine>that's an excellent question LOUDBOT
23:34:19  <trevnorris>guess I could cheat and make the event emitter work like an asynchronous event.
23:34:25  <trevnorris>sort of doing that already with nextTick.
23:34:35  <trevnorris>problem is, the event emitter won't break the stack trace.
23:34:43  <trevnorris>othiym23: you around?
23:35:17  <trevnorris>tjfontaine: how about we just pretend domains never existed. ;)
23:36:23  <tjfontaine>haha
23:36:45  <tjfontaine>we could, but I think we'd both have a lot of unhappy people on our hands :P
23:38:59  * defunctzombiechanged nick to defunctzombie_zz
23:42:19  <othiym23>trevnorris: the thing about EEs is that they're synchronous but used in asynchronous ways
23:42:44  <trevnorris>othiym23: in _core_ they're used that way. who knows what sort of craziness devs are using them for?
23:42:57  <othiym23>sometimes you want async data to follow handlers, sometimes you want them to follow the EE itself, and it's not always clear at execution time which is which
23:43:11  <othiym23>which is why there's so much complexity around EEs when it comes to domains
23:43:29  <tjfontaine>mostly because EEs need ripped out :P
23:43:36  <tjfontaine>what we need is a smaller core :)
23:43:45  <trevnorris>oy, the async request should be one and the same as the event
23:44:07  <trevnorris>it'd all be ok if that assumption were always true
23:44:20  <trevnorris>but, don't think we can do that. could we?
23:44:23  <tjfontaine>and it'd be ok if I were a muppet
23:44:24  * trevnorrislooks around hopefully
23:44:28  <othiym23>nope
23:44:31  <othiym23>connection pools
23:44:32  <trevnorris>:P
23:44:37  <othiym23>also domain.add
23:44:53  <othiym23>some of that is probably higher-level than anything you care about
23:45:05  <othiym23>but the entanglement between EEs and domains exists for logical reasons
23:45:30  <trevnorris>well, say I do a var server = net.createServer(...). then it should be I do domain.add(server)
23:45:34  <trevnorris>or something like that
23:46:28  <trevnorris>or something like that, oh wait. we do! because they all (meaning the *wraps) inherit from the event emitter.
23:46:47  <trevnorris>it's just a stupid abstraction that's been bundled together with bubblegum.
23:47:30  <trevnorris>othiym23: and what do connection pools have to do with this?
23:50:40  <othiym23>so you have a connection pool, created in domain A
23:51:01  <othiym23>if something bad happens in one of its connections (an EE), you want that error to go back to domain A
23:51:20  <othiym23>you have a client, running in domain B, that registers a handle on a connection
23:51:36  <othiym23>errors in the handler shoudl go back to domain B
23:51:51  <othiym23>so the connection itself lives in both worlds
23:52:17  <othiym23>compare with e.g. req and res, which belong to a single async execution chain
23:52:52  <trevnorris>each connection is an abstraction of ReqWrap, passed to a JS object instance that inherits EE
23:53:58  <trevnorris>or, depending on the case HandleWrap
23:54:15  <trevnorris>probably HandleWrap, which is inherited by TCPWrap, etc etc
23:55:09  <othiym23>the tricky part is when the pool *doesn't* belong to a domain at creation
23:55:16  <othiym23>or, one of the tricky parts
23:55:25  <othiym23>pretty much all of domains is tricky parts
23:55:40  <tjfontaine>there's a urmom joke in there
23:55:49  <trevnorris>haha
23:56:47  * paulfryzeljoined
23:56:48  <trevnorris>I just pushed up changes that moved the actual async object to AsyncWrap. so it's totally possible to pass those and have them be handled by something else after the fact.
23:57:09  <trevnorris>just have to set a couple object properties and swap a flag
23:57:23  * defunctzombie_zzchanged nick to defunctzombie
23:57:32  <trevnorris>who is this?!?!?! ^
23:58:12  <tjfontaine>I'm confused
23:58:26  * defunctzombiechanged nick to defunctzombie_zz
23:59:56  <trevnorris>othiym23: except for the ObjectWrap crap i'm working through, there's not a single "event" (in the sense of an asynchronous _something_ happening internally) that you can't get full access to.