00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:02:21  * brsonquit (Remote host closed the connection)
00:03:26  * brsonjoined
00:07:19  <wolfeidau>TooTallNate: you around?
00:10:21  <Raynos>tjfontaine: did you mention a findjsobjects exporting tool ?
00:11:44  <tjfontaine>Raynos: I started working on one yes
00:12:06  <tjfontaine>well, I guess the question is on which project you meant
00:12:24  <Raynos>well i'm looking at findjsobjects right now on my smartos from joyent
00:12:40  <Raynos>and having a way to do | json-magic > x.json would be great
00:12:57  <tjfontaine>yup, what information would you want?
00:13:08  <tjfontaine>do you want to see a json blob of *every* object?
00:13:30  * julianduquequit (Ping timeout: 256 seconds)
00:18:48  * st_lukequit (Remote host closed the connection)
00:26:43  * jmar777quit (Remote host closed the connection)
00:27:24  * dshaw_quit (Quit: Leaving.)
00:34:46  * inolenquit (Quit: Leaving.)
00:40:38  * paulfryzelquit (Remote host closed the connection)
00:41:16  * paulfryzeljoined
00:46:03  * paulfryzelquit (Ping timeout: 276 seconds)
00:50:55  <Raynos>tjfontaine: json blob of every object would be nice. failing that maybe json blob of a random 100 instances of each shape / structure
00:51:16  <tjfontaine>Raynos: nod, it's "easiest" to just dump it all
00:51:34  <tjfontaine>Raynos: hopefully I will be able to clean up the example for this weekend or so
00:51:39  <Raynos>preferably as new line seperated json
00:51:49  <tjfontaine>what other way is there? :)
00:51:56  <Raynos>a json array
00:52:01  * dapquit (Quit: Leaving.)
00:52:03  <Raynos>which is a pain to parse :p
00:52:05  <tjfontaine>hehe ya, I was just stating a preference
00:52:17  <tjfontaine>of course it's newline json :)
01:06:05  * TooTallNatequit (Quit: Computer has gone to sleep.)
01:06:22  * jmar777joined
01:12:33  * jmar777quit (Remote host closed the connection)
01:12:56  * kazuponjoined
01:15:13  * wwicksquit (Quit: wwicks)
01:19:16  * inolenjoined
01:24:41  * dshaw_joined
01:30:05  * abraxasjoined
01:31:12  * dshaw_quit (Read error: Connection reset by peer)
01:34:44  * julianduquejoined
01:35:32  * c4milojoined
01:37:16  * julianduquequit (Client Quit)
01:37:46  * julianduquejoined
01:40:08  * inolenquit (Quit: Leaving.)
01:41:45  * paulfryzeljoined
01:43:28  * inolenjoined
01:46:30  * paulfryzelquit (Ping timeout: 276 seconds)
01:46:56  * wolfeidauquit (Remote host closed the connection)
01:54:23  * groundwaterquit (Quit: groundwater)
01:55:10  * inolenquit (Quit: Leaving.)
02:07:46  * inolenjoined
02:26:48  * luigy_quit (Ping timeout: 245 seconds)
02:39:32  * wolfeidaujoined
02:52:12  * luigy_joined
03:04:50  * inolenquit (Quit: Leaving.)
03:08:28  * inolenjoined
03:11:34  <isaacbw>mmalecki: https://github.com/isaacbwagner/cl-sophia
03:13:01  * dominictarrjoined
03:13:35  * joshthecoder_joined
03:14:15  * sindresorhus_joined
03:14:33  * joshthecoderquit (*.net *.split)
03:14:34  * CAPSLOCKBOTquit (*.net *.split)
03:14:35  * blissdevquit (*.net *.split)
03:14:35  * sindresorhusquit (*.net *.split)
03:14:35  * joshthecoder_changed nick to joshthecoder
03:14:35  * sindresorhus_changed nick to sindresorhus
03:16:17  * blissdevjoined
03:18:52  * CAPSLOCKBOTjoined
03:19:31  * sindresorhusquit (Changing host)
03:19:31  * sindresorhusjoined
03:19:43  * sindresorhuschanged nick to Guest21838
03:31:31  * kazuponquit (Remote host closed the connection)
03:47:39  * wwicksjoined
03:56:09  * AvianFluquit (Remote host closed the connection)
03:57:26  * AvianFlujoined
04:06:21  * julianduquequit (Quit: leaving)
04:08:57  * dominictarrquit (Quit: dominictarr)
04:10:39  * AvianFluquit (Remote host closed the connection)
04:11:08  * AvianFlujoined
04:26:08  * kenperkinsquit (Quit: Computer has gone to sleep.)
04:40:52  * defunctzombie_zzchanged nick to defunctzombie
04:41:58  * c4miloquit (Remote host closed the connection)
04:47:25  * c4milojoined
04:47:25  * c4miloquit (Remote host closed the connection)
05:04:51  * AvianFluquit (Remote host closed the connection)
05:07:51  * inolenquit (Quit: Leaving.)
05:11:23  * inolenjoined
06:03:08  * brsonquit (Quit: leaving)
06:15:57  <mmalecki>isaacbw: hah! that's awesome
06:16:22  <mmalecki>isaacbw: lisp code scares me just a little bit
06:19:08  * rendarjoined
06:22:06  * defunctzombiechanged nick to defunctzombie_zz
06:41:41  <MI6>nodejs-v0.10-windows: #216 UNSTABLE windows-ia32 (7/600) windows-x64 (7/600) http://jenkins.nodejs.org/job/nodejs-v0.10-windows/216/
06:59:57  * philipsquit (Excess Flood)
07:16:53  * philipsjoined
07:16:54  * superdeallocjoined
07:17:09  * superdeallocquit (Client Quit)
07:17:59  * wwicksquit (Quit: wwicks)
07:20:29  * hzjoined
08:00:27  * rvaggquit (Ping timeout: 262 seconds)
08:03:33  * abraxasquit (Remote host closed the connection)
08:04:25  * bnoordhuisjoined
08:04:38  * rvaggjoined
08:06:30  * abraxasjoined
08:18:00  * bnoordhuisquit (Ping timeout: 256 seconds)
08:18:01  * defunctzombie_zzchanged nick to defunctzombie
08:28:12  * dominictarrjoined
08:28:40  * amartensquit (Quit: Leaving.)
08:33:09  * felixgejoined
08:33:09  * felixgequit (Client Quit)
08:33:54  * dominictarrquit (Quit: dominictarr)
08:50:33  * skebciojoined
08:55:05  * defunctzombiechanged nick to defunctzombie_zz
09:02:48  * bnoordhuisjoined
09:10:54  * txdvquit (Ping timeout: 264 seconds)
09:26:51  * piscisaureus_joined
09:28:51  <bnoordhuis>piscisaureus_: sup?
09:28:57  * amartensjoined
09:30:27  <piscisaureus_>bnoordhuis: morning
09:30:45  <piscisaureus_>bnoordhuis: long time no see. Is your new kiddo about yet?
09:30:58  <bnoordhuis>piscisaureus_: already here :) born sunday night
09:31:06  <piscisaureus_>bnoordhuis: congrats!
09:31:10  <bnoordhuis>thanks :)
09:31:10  <piscisaureus_>bnoordhuis: name? b/g?
09:31:22  <bnoordhuis>a boy and he's called luca
09:31:37  <bnoordhuis>though in everyday use we'll probably call him 'afblijven'
09:31:37  <piscisaureus_>bnoordhuis: also, how are mom and luca doing?
09:31:42  <piscisaureus_>hehe
09:31:51  <bnoordhuis>yeah, they're doing fine. karlijn is up and about already
09:32:06  <piscisaureus_>the first one is called "stil!" I presume?
09:32:31  <bnoordhuis>no, 'geen grote mond jij'. it's a bit long though
09:32:53  <piscisaureus_>bnoordhuis: so al good news
09:33:05  <piscisaureus_>bnoordhuis: funny though that you picked another gender-questionable name
09:33:15  <piscisaureus_>although a little better than the last one :)
09:33:19  * amartensquit (Ping timeout: 260 seconds)
09:33:35  <bnoordhuis>i'll let them make up their own minds about what they want to be
09:33:51  <bnoordhuis>sons or daughters, it's all good to me
09:33:53  <piscisaureus_>maybe they can swap when they are a little older :)
09:35:09  <piscisaureus_>bnoordhuis: so are you actually working or just checking your email>
09:35:11  * dominictarrjoined
09:35:58  <bnoordhuis>piscisaureus_: mwah, mostly checking email
09:36:19  <bnoordhuis>but if you have questions, now is the time
09:37:58  <piscisaureus_>bnoordhuis: not really. I was going to bug you about readdir thread safety
09:38:18  <piscisaureus_>or how we would implement streaming readdir
09:38:22  <piscisaureus_>but it can wait
09:41:34  <bnoordhuis>you mean readdir as in readdir(3)?
09:41:39  <piscisaureus_>yes
09:41:53  <piscisaureus_>also, very odd that fs.truncate clears a file but fs.ftruncate doesn't
09:42:02  <piscisaureus_>probably it gets opened with the wrong mode
09:42:22  <bnoordhuis>readdir(3) is not un-thread-safe
09:42:42  <bnoordhuis>opendir() gives you this DIR* handle that you can readdir() from
09:42:59  <piscisaureus_>oh hmm
09:43:07  <bnoordhuis>the dirent pointer that readdir() returns is particular to the DIR handle
09:43:09  <piscisaureus_>I though that there was some sort of problem with this
09:43:09  <roxlu_>hi guys, I've got a build script which builds lib uv for m32/m64,gcc,clang,release,debug, but I noticed that the gcc builds don't have an "out/Debug/" but just "Debug/" directory and the clang version -do- have these directories .. why is that?
09:43:34  <bnoordhuis>roxlu_: is that on windows?
09:43:37  <roxlu_>no mac
09:43:54  <bnoordhuis>oh, that's probably gyp's xcode emulation mode
09:44:23  <roxlu_>ok, some have 2 output dirs (out/Release) and just (Release)
09:45:07  <roxlu_>haha oh and there is even a difference between 32 and 64 bit builds :)
09:45:12  <bnoordhuis>roxlu_: how are you executing the actual build?
09:45:45  <roxlu_>with `./gyp_uv -Dtarget_arch=ia32 -Dhost_arch=ia32`
09:46:03  <roxlu_>make -C out BUILDTYPE=Release CC=`gcc` CXX=`g++`
09:46:36  <bnoordhuis>okay, that's fine. 's got to be gyp then
09:47:01  <roxlu_>yeah I'll create some "ifs" to copy the correct file
09:53:58  <piscisaureus_>http://facebook.github.io/libphenom/
09:54:02  <piscisaureus_>^-- competition!
09:54:12  * Kakerajoined
09:55:41  <bnoordhuis>piscisaureus_: yeah, i saw that on HN. it's more libevent-ish than libev/libuv-ish, i think
09:56:10  <bnoordhuis>it's thread-aware by default though. that's nice for some things
09:56:38  * inolenquit (Quit: Leaving.)
09:56:44  <piscisaureus_>bnoordhuis: yeah that's nice
09:56:51  <roxlu_>:)
09:57:00  <piscisaureus_>bnoordhuis: but at a cost
09:57:07  <piscisaureus_>bnoordhuis: what is it that oracle wanted btw?
09:57:41  <roxlu_>hey guys, yesterday I was looking at http://nanomsg.org/ and was wondering if someone in here has experience with it? Or what do you think about that lib?
09:57:53  <piscisaureus_>I don't know it
09:58:22  <roxlu_>it's kinda similar too ZMQ, I think it's a rewrite by one of the authors
09:59:57  <bnoordhuis>piscisaureus_: nothing really. libuv already does what they needed, they just didn't know it yet
10:00:31  <piscisaureus_>bnoordhuis: really? what was that?
10:00:38  <bnoordhuis>piscisaureus_: they wanted to know if 'one event loop per thread' was an acceptable model with libuv
10:00:52  <piscisaureus_>and yes it was
10:01:10  <piscisaureus_>in fact it is the only acceptable model
10:01:40  <brucem>roxlu_: it is a rewrite by one of the zeromq people. New licensing model. Much simpler. Has seemed pretty nice and easy and such in casual usage.
10:01:42  <bnoordhuis>yep. made their day
10:01:54  <roxlu_>nice thing about nanomsg is that you can switch from tcp/ipc/inproc by just change the "socket address" ... I guess that's not possible with libuv is? (I gues I would need to write another layer)
10:02:09  <brucem>roxlu_: There is a #nanomsg on this IRC network as well.
10:02:43  <roxlu_>brucem: yep I hang out there as well : )
10:04:32  * abraxasquit (Remote host closed the connection)
10:05:05  * abraxasjoined
10:09:50  * abraxasquit (Ping timeout: 264 seconds)
10:27:20  * inolenjoined
10:29:18  * amartensjoined
10:30:11  <indutny>hey bnoordhuis
10:30:13  <indutny>how are you?
10:34:18  * amartensquit (Ping timeout: 264 seconds)
10:35:38  * inolenquit (Ping timeout: 264 seconds)
10:44:09  <bnoordhuis>indutny: hey fedor. i'm fine, taking a break this week. what about you?
10:44:18  <indutny>well, I'm good too
10:44:20  <indutny>fighting v8 :)
10:44:41  <bnoordhuis>aim for the chin, it's got a glass chin
10:44:46  <indutny>ok
10:44:56  <indutny>I'll try to :)
10:45:04  <indutny>I think I'm going to take a break in this activity
10:45:09  <indutny>and work on getting vm2 fast
10:45:16  <indutny>and then that strict mode thing
10:45:17  <indutny>and then
10:45:21  <indutny>wrapping tls in tls
10:45:23  <indutny>shit
10:45:26  <indutny>I have a lot of stuff to do :)
10:45:40  <piscisaureus_>indutny: what v8 things are you working on
10:45:42  <piscisaureus_>?
10:45:50  <indutny>ah, performance problem
10:45:57  <indutny>in my friend's code
10:46:04  <indutny>nothing to worry about in node
10:46:07  <MI6>nodejs-v0.10: #1488 UNSTABLE smartos-x64 (2/600) osx-x64 (1/600) http://jenkins.nodejs.org/job/nodejs-v0.10/1488/
10:46:19  <indutny>its just converting all ICs to megamorphic
10:56:52  <piscisaureus_>indutny: well that means that your friend is creating too many object shapes
10:57:02  <indutny>well, not exactly
10:57:04  <indutny>I figured it out
10:57:11  <indutny>the problem was more subtle than this
10:57:28  <piscisaureus_>indutny: he was creating too make shapes in a subtly?
10:57:31  <indutny>he was doing small modifications to input data
10:57:44  <indutny>and benchmarking with the same data over and over again
10:57:53  <indutny>while in production the data is always new and fresh
10:57:55  <indutny>out of JSON.parse
10:58:08  <indutny>with fresh data everything runs smoothly
10:58:11  <piscisaureus_>does JSON.parse always generate a slow object ?
10:58:31  <piscisaureus_>or does it create many different hidden classes?
11:00:04  <indutny>I suppose hidden classes
11:00:16  <indutny>at least by looking at benchmark results after update
11:00:36  <indutny>piscisaureus_: the initial object was a result of JSON.parse anyway
11:00:47  <indutny>it was modified by template
11:00:52  <indutny>and passed again into the template
11:01:09  <indutny>so template was observing new hidden classes at every new call
11:23:03  * bnoordhuisquit (Ping timeout: 276 seconds)
11:26:28  * bnoordhuisjoined
11:29:40  * amartensjoined
11:34:04  * amartensquit (Ping timeout: 256 seconds)
11:38:40  * bajtosjoined
11:41:15  <`3rdEden>bnoordhuis: piscisaureus_: congrats ;)? http://gigaom.com/2013/09/18/strongloops-gets-8m-and-a-ceo-in-isaac-roth/
11:41:33  <piscisaureus_>`3rdEden: thanks :)
11:50:40  <bnoordhuis>yes, thanks :)
11:57:51  <indutny>oh gosh
11:57:53  <indutny>hard to admit
11:58:01  <indutny>but vm2 is a total shit :)
11:58:15  <indutny>its like a vm1 inside-out
11:58:23  <indutny>with fast outer to inter interaction
11:58:31  <indutny>s/inter/inner
11:58:37  <indutny>bnoordhuis: you was right
11:58:41  <indutny>bnoordhuis: lets revert it
12:01:14  <indutny>piscisaureus_: what is your position in strongloop now?
12:01:38  <piscisaureus_>indutny: heh. I get to do nothing
12:01:48  <indutny>oh, finally
12:01:52  <indutny>you lazy boy :)
12:01:59  * bnoordhuisquit (Ping timeout: 256 seconds)
12:19:22  <piscisaureus_>https://github.com/andrewlow/node/compare/joyent:v0.10.18...v0.10.18-release-ppc
12:19:26  <piscisaureus_>^-- doesn't look too complicated
12:22:26  * Kakeraquit (Ping timeout: 264 seconds)
12:30:00  * amartensjoined
12:31:55  * inolenjoined
12:32:49  * Kakerajoined
12:34:23  * amartensquit (Ping timeout: 260 seconds)
12:35:41  <Domenic_>sigh, sad, why is creating lots of contexts a use-case we prioritize the performance of :(
12:36:33  * inolenquit (Ping timeout: 256 seconds)
12:37:19  <piscisaureus_>Domenic_: ?
12:37:36  <piscisaureus_>Also NYC getting up early today?
12:37:56  <piscisaureus_>oh hm maybe not that early
12:38:41  <Domenic_>piscisaureus_: createContext in a loop 1e4 times is slower than it used to be, therefore indutny and bnoordhuis think we should revert vm2 :(
12:38:49  <Domenic_>heh yeah only 8:40am
12:39:00  <indutny>Domenic_: not only this
12:39:09  <indutny>global lookups are very slow too
12:39:13  <indutny>inside your context
12:39:25  <piscisaureus_>indutny: is this fixable?
12:39:31  <indutny>piscisaureus_: I'm afraid its by-design
12:39:34  <Domenic_>indutny: but now they are correct, as opposed to incorrect
12:39:48  <piscisaureus_>indutny: there is not much pint in having the vm module if people only want to use contextify
12:39:58  <indutny>hm...
12:40:02  <indutny>perhaps I should just use eval
12:40:06  <indutny>or new Function
12:40:09  <indutny>well
12:40:10  <piscisaureus_>s/pint/point/
12:40:31  <piscisaureus_>I wouldn't like to let it slide
12:40:47  <indutny>ok, then its your turn to try to poke with it ;)
12:40:59  <Domenic_>yes, if you don't have a custom global, eval (for runInThisContext) or Function (for runInNewContext) are much better.
12:41:32  <Domenic_>Originally I wanted to rewrite some cases to use eval/Function, but you can't fix the stack traces that way, sadly.
12:42:27  <piscisaureus_>indutny: megamorphic IC doesn't exist right?
12:42:34  <piscisaureus_>indutny: megamorphic === no IC
12:42:59  <indutny>not really :)
12:43:04  <indutny>it still caches
12:43:06  <indutny>oh anyway
12:43:12  <indutny>it may be used from v8 internals
12:43:23  <indutny>when doing namedpropertylookup
12:43:23  <piscisaureus_>Domenic_: I see. But it's not just slower
12:43:34  <piscisaureus_>it's 2 orders of magnitude slower
12:44:19  * jmar777joined
12:44:41  <Domenic_>i am not sure how running code inside a virtual machine was ever expected to be fast.
12:45:29  <piscisaureus_>Would it be possible to use a harmony proxy instead?
12:45:42  <Domenic_>also it's only 4x as of latest https://github.com/joyent/node/issues/6115#issuecomment-24459023
12:45:54  <Domenic_>hmm maybe
12:46:23  <Domenic_>i was thinking of harmony weakmap to fix all the makeweak stuff too, although indutny seems to have taken care of that without such things
12:46:26  <piscisaureus_>the relevant question: would it help? :)
12:47:01  <indutny>hehe
12:47:02  <Domenic_>hard to say. would help with boundary-crossing i guess.
12:47:06  <indutny>Domenic_: well, vm is not just a vm
12:47:11  <indutny>its a well-crafted eval
12:47:12  <indutny>:)
12:47:23  <indutny>ideally it should be as fast as eval
12:47:26  <indutny>probably a bit slower
12:47:30  <indutny>but not significantly slower
12:47:37  <indutny>that's my opinion
12:47:42  <piscisaureus_>eval is as fast as anything
12:47:45  <Domenic_>that's now how people expect it to work, i guess
12:47:50  <Domenic_>they expect it to work as a vm
12:47:56  <Domenic_>i.e. with custom globals
12:48:02  <Domenic_>but i see your point
12:49:07  <Domenic_>the old vm was really just eval, i.e. it used those v8 apis
12:49:16  <Domenic_>but, using those apis it is impossible to have vm semantics
12:49:27  <Domenic_>i.e. it is impossible to correctly interface with a custom global object
12:50:21  * AvianFlujoined
12:51:18  <Domenic_>we could make vm.runInThisContext(), and vm.runInNewContext() when sandbox is not passed, use the eval path.
12:51:20  <piscisaureus_>I'm not for reverting this yet, but it would be nice if we could avoid regressions.
12:51:34  <piscisaureus_>I think that'd be nice
12:52:26  * piscisaureus_afk for a bit
12:56:48  * piscisaureus_quit (Ping timeout: 256 seconds)
13:01:59  * inolenjoined
13:06:50  * inolenquit (Ping timeout: 264 seconds)
13:08:39  * bnoordhuisjoined
13:11:38  * kaesojoined
13:13:20  * bnoordhuisquit (Ping timeout: 245 seconds)
13:29:21  * AvianFluquit (Remote host closed the connection)
13:30:20  * amartensjoined
13:31:14  * piscisaureus_joined
13:34:52  * amartensquit (Read error: Operation timed out)
13:38:38  * bajtosquit (Quit: bajtos)
13:39:08  * bajtosjoined
13:49:43  * jmar777quit (Ping timeout: 245 seconds)
13:54:43  * jmar777joined
14:05:23  * luigy_quit (Ping timeout: 260 seconds)
14:06:48  * luigy_joined
14:08:01  * julianduquejoined
14:10:06  * piscisaureus_quit (Ping timeout: 276 seconds)
14:11:45  * luigy_quit (Ping timeout: 256 seconds)
14:19:18  * luigy_joined
14:21:40  * kenperkinsjoined
14:24:50  * piscisaureus_joined
14:28:09  * paulfryzeljoined
14:30:40  * amartensjoined
14:35:07  * amartensquit (Ping timeout: 248 seconds)
14:44:30  * piscisaureus_quit (Ping timeout: 264 seconds)
14:45:12  * luigy_quit (Ping timeout: 276 seconds)
14:46:45  * wwicksjoined
14:59:23  * AvianFlujoined
15:17:13  <MI6>nodejs-master: #560 UNSTABLE smartos-x64 (6/640) http://jenkins.nodejs.org/job/nodejs-master/560/
15:20:23  * jmar777quit (Read error: Connection reset by peer)
15:20:46  * jmar777joined
15:26:52  * luigy_joined
15:28:26  * c4milojoined
15:30:27  <mmalecki>tjfontaine: hey
15:30:42  * paulfryzelquit (Ping timeout: 276 seconds)
15:30:55  <mmalecki>tjfontaine: I heard gossips about a mythical node 0.11 and node 0.10 addon compatibility later
15:30:57  * amartensjoined
15:32:19  <mmalecki>tjfontaine: are you perhaps, involved with those activities?
15:33:39  * paulfryzeljoined
15:34:00  * dapjoined
15:34:26  * luigy_quit (Ping timeout: 264 seconds)
15:35:54  * amartensquit (Ping timeout: 276 seconds)
15:40:36  * bradleymeckjoined
15:45:24  <trevnorris>morning all
15:45:38  * piscisaureus_joined
15:56:25  * luigy_joined
16:03:44  <tjfontaine>mmalecki: I am that is me
16:04:00  <mmalecki>tjfontaine: well, hello then!
16:04:07  <tjfontaine>heya :)
16:04:26  <mmalecki>tjfontaine: anywhere I can take a look at what you did?
16:04:58  <tjfontaine>it's still slightly fresh, but https://github.com/tjfontaine/node-addon-layer is the idea, shim_ is just a place holder namespace
16:05:19  * dshaw_joined
16:05:26  <tjfontaine>I'm going to change how persistents themselves work, but otherwise it's pretty straight forward
16:05:48  <mmalecki>oh man, that's complex
16:06:12  <tjfontaine>mmalecki: if you just want a compatibility header betwixt the two, you can checkout rvagg's nan project
16:10:56  * TooTallNatejoined
16:11:17  * inolenjoined
16:11:46  <mmalecki>tjfontaine: right, looks like this is what I'm going to go with, shim looks kinda too complex
16:12:57  <tjfontaine>nan is for "I love C++/V8 api" or "I already have a module and I want it to work with minimal effort"
16:13:09  <tjfontaine>the addon layer is for people writing new modules to target and work regardless going forward
16:19:32  <indutny>gosh
16:19:49  <indutny>guy was calling russian judges
16:19:54  <indutny>saying he is from the government
16:20:00  <indutny>and asking to do the right decision
16:20:07  <indutny>and they believed him
16:20:12  <indutny>now they're going to sue this guy :)
16:20:23  <indutny>that's total madness
16:23:29  <tjfontaine>hm?
16:24:04  * inolenquit (Quit: Leaving.)
16:24:31  * inolenjoined
16:24:43  * inolenquit (Client Quit)
16:26:17  <indutny>tjfontaine: huh?
16:26:31  <indutny>he asked them to change their mind regarding the trial
16:26:39  <indutny>and do the "right" judgement
16:26:44  <indutny>sorry, if it wasn't correct
16:27:07  * amartensjoined
16:28:54  * brsonjoined
16:29:42  * groundwaterjoined
16:29:46  <tjfontaine>oh
16:29:53  <tjfontaine>I just wasn't clear on what you meant
16:30:03  * TooTallNatequit (Ping timeout: 260 seconds)
16:36:15  <indutny>yeah, I got it :)
16:36:16  <indutny>np
16:36:22  <indutny>wanna review v8 update https://github.com/joyent/node/pull/6241 ?
16:36:23  <indutny>:)
16:36:35  <indutny>I mean does anyone mind if I'll pull it if jenkins is ok with it?
16:36:53  <tjfontaine>if jenkins doesn't complain, yes land it
16:49:47  * piscisaureus_quit (Read error: Connection reset by peer)
16:53:40  * c4miloquit (Remote host closed the connection)
16:56:48  <tjfontaine>indutny: I have a smaller test case if you want for 6235
16:56:59  <indutny>oh, I'm working at it atm :)
16:57:17  <indutny>yeah, just finished
16:57:26  <indutny>that seems to be some stubborn v8 issue
16:57:33  <indutny>rather than a contextify thing
16:58:09  <tjfontaine>nod
16:58:11  <tjfontaine>I agree
16:58:19  <indutny>yeah
16:58:25  <indutny>var makePredicate = function() {}
16:58:26  <indutny>will work
16:58:30  <indutny>hm...
16:58:39  <indutny>I don't really know much about strict mode
16:58:48  <indutny>is it how it should be working?
16:59:08  <tjfontaine>var vm = require('vm');
16:59:11  <tjfontaine>var context = vm.createContext({});
16:59:14  <tjfontaine>vm.runInContext("'use strict'; var KEYWORDS = 'foobar'; KEYWORDS = 'foobaz';", context, 't.js');
17:00:19  <indutny>and
17:00:22  <indutny>isn't it working?
17:00:26  <tjfontaine>nope
17:00:28  <indutny>oh
17:00:30  <indutny>gosh
17:00:36  <tjfontaine>t.js:1
17:00:36  * TooTallNatejoined
17:00:36  <tjfontaine>'use strict'; var KEYWORDS = 'foobar'; KEYWORDS = 'foobaz';
17:00:44  <tjfontaine>ReferenceError: KEYWORDS is not defined
17:00:54  <indutny>aah
17:00:55  <indutny>stupid me
17:00:58  <indutny>I did that too
17:01:01  <indutny>and forgot about it :0
17:01:04  <tjfontaine>:)
17:01:39  <indutny>one-liner
17:01:39  <indutny>0x1018577c0
17:01:45  <indutny>oops
17:01:45  <indutny>require('vm').runInNewContext('"use strict"; var v = 1; v = 2');
17:01:52  <tjfontaine>right
17:02:55  <indutny>oh
17:03:00  <indutny>no, it seems to be vm2 issue
17:03:56  <indutny>or not
17:03:56  <indutny>gosh
17:07:28  * julianduquequit (Quit: leaving)
17:09:34  * bajtosquit (Quit: bajtos)
17:13:03  <indutny>ok, found it
17:15:13  * c4milojoined
17:16:35  <indutny>oh
17:16:37  <indutny>not really
17:16:37  <indutny>shit
17:21:21  * dominictarrquit (Quit: dominictarr)
17:23:13  * bajtosjoined
17:24:14  * bajtosquit (Client Quit)
17:24:44  * kenperkinsquit (Quit: Computer has gone to sleep.)
17:25:51  <MI6>joyent/node: Fedor Indutny master * a1cf3ad : deps: update v8 to - http://git.io/Qhr41Q
17:34:50  <MI6>nodejs-master: #561 UNSTABLE osx-x64 (1/640) smartos-x64 (5/640) http://jenkins.nodejs.org/job/nodejs-master/561/
17:37:08  * inolenjoined
17:40:42  <trevnorris>ping anyone. what does this syntax imply: void StreamWrap::GetFD(Local<String>, const...
17:40:50  <trevnorris>i mean, why doesn't the first argument have a name?
17:46:16  <MI6>nodejs-master-windows: #354 UNSTABLE windows-x64 (21/640) windows-ia32 (21/640) http://jenkins.nodejs.org/job/nodejs-master-windows/354/
17:47:05  * bnoordhuisjoined
17:47:31  <trevnorris>bnoordhuis: sup dude. get any sleep last night?
17:50:29  * EhevuTovjoined
17:53:25  * dominictarrjoined
17:53:55  <MI6>libuv-master: #246 UNSTABLE windows (3/195) smartos (9/194) http://jenkins.nodejs.org/job/libuv-master/246/
17:55:32  <trevnorris>indutny: ping
17:58:01  <bnoordhuis>trevnorris: hey. yeah, some. not nearly enough though :)
17:58:12  <trevnorris>hah, know how that goes :)
17:58:31  <trevnorris>bnoordhuis: in StreamWrap::GetFD i'm successfully unwrapping, but then get:
17:58:32  <trevnorris>wrap->stream()->io_watcher
17:58:40  <trevnorris>Cannot access memory at address 0x9900003fa1a000b1
17:58:44  <trevnorris>and segfault
17:58:54  <trevnorris>it's trying to access io_watcher.fd
18:00:12  <trevnorris>i'm going through gdb on a debug build trying to track down how it's even getting there.
18:02:01  <trevnorris>bnoordhuis: basically i'm trying to print out a socket (I think) but when it tries to access the fd it segfaults
18:03:15  <bnoordhuis>trevnorris: what does *wrap->stream() print in gdb?
18:03:38  <trevnorris>$6 = (uv_stream_t *) 0x9900003fa1a00041
18:03:46  <bnoordhuis>don't forget the star :)
18:03:56  <trevnorris>heh, thanks
18:04:12  <trevnorris>Cannot access memory at address 0x9900003fa1a00041
18:04:21  <bnoordhuis>ah, so it's entirely invalid? okay
18:04:32  <bnoordhuis>what about *wrap?
18:04:46  <trevnorris>$7 = {<node::HandleWrap> = {<node::AsyncWrap> = {object_ = {val_ = 0x490000131cecf041}, .....
18:04:48  <trevnorris>and on
18:05:01  <bnoordhuis>well, the on is what's interesting
18:05:07  <trevnorris>ok
18:05:09  <bnoordhuis>can you `set print pretty` and gist the output?
18:05:21  <trevnorris>ok
18:05:23  <bnoordhuis>oh, and maybe `set pagination off` to make your life easier
18:05:41  <trevnorris>ooh, i like
18:06:10  <trevnorris>https://gist.github.com/trevnorris/6613041
18:06:46  <bnoordhuis>let me guess, that's the default gdb on os x?
18:07:09  <MI6>libuv-node-integration: #231 UNSTABLE smartos-ia32 (1/640) smartos-x64 (5/640) http://jenkins.nodejs.org/job/libuv-node-integration/231/
18:07:21  <trevnorris>nope linux
18:07:27  <trevnorris>just set the two options you just said
18:07:52  * defunctzombie_zzchanged nick to defunctzombie
18:08:13  <bnoordhuis>okay. are you doing static_casts or reintepret_casts anywhere?
18:08:44  <bnoordhuis>i ask because the contents looks like garbage
18:08:49  <trevnorris>not in async_wrap
18:09:00  <bnoordhuis>take the flags fields for example
18:09:19  <bnoordhuis>4278190080 is 0xff000000 which is not a valid combination
18:09:25  <bnoordhuis>same for the async_flags_ field
18:09:29  <trevnorris>ah, yeah. and async_flags should be 0 or 1
18:10:25  <bnoordhuis>so, sounds like a bad pointer. if you have classes with multiple bases, you need to be careful with pointer casts
18:10:54  <trevnorris>the only static_cast is done in NODE_UNWRAP_NO_ABORT
18:11:27  * dshaw_quit (Quit: Leaving.)
18:11:45  <trevnorris>and it's getting wrap from the objects internal field
18:12:14  <bnoordhuis>trevnorris: i assume you're casting from void to T? what type is T?
18:12:29  * defunctzombiechanged nick to defunctzombie_zz
18:12:34  <trevnorris>bnoordhuis: yeah. that's what NODE_UNWRAP does
18:12:46  <bnoordhuis>indutny: what was the reason for the v8 upgrade?
18:12:50  * dshaw_joined
18:13:41  <trevnorris>is it possible for the class to have been cleaned up, but the js object is still around?
18:14:19  <bnoordhuis>trevnorris: sure
18:14:35  <bnoordhuis>but that's a bug of course
18:15:09  <trevnorris>ok yeah. it's for my async listener thing. i'm trying to print out each class, but that's happening when I call .close() on the net server
18:15:53  <trevnorris>wait. close has nothing to do with it
18:17:23  <trevnorris>ok. so TCP has getter for .fd, but when I try to access it, segfault.
18:17:29  <trevnorris>alright. time to dig
18:19:44  <trevnorris>bnoordhuis: ok. looks like a possible race condition. might be passing the object_ to the async listener before the fd has been gotten (maybe)
18:21:02  * dshaw_quit (Quit: Leaving.)
18:21:53  <trevnorris>bnoordhuis: seems to possibly be it. if I delay the print of the fd for 1 sec then it doesn't seg fault.
18:22:16  <bnoordhuis>trevnorris: okay, noted
18:22:30  <trevnorris>thanks for the help
18:22:46  * c4miloquit (Remote host closed the connection)
18:22:56  <trevnorris>now going to figure out the order of operations and see how to fix the async listener impl.
18:23:43  * c4milojoined
18:24:59  <trevnorris>bnoordhuis: ok, just fyi. think AsyncWrap is instantiating before TCPWrap. so it's calling the listeners before uv_tcp_init has a chance to run.
18:43:23  * trevnorris&
18:45:10  <MI6>nodejs-master-windows: #355 UNSTABLE windows-x64 (22/640) windows-ia32 (20/640) http://jenkins.nodejs.org/job/nodejs-master-windows/355/
19:02:45  * mcavagejoined
19:06:47  <Domenic_>tjfontaine: indutny: any idea what's going on with that strict thing? having a hard time imagining that it's anything but a v8 issue...
19:07:46  * dsantiagoquit (Quit: Leaving...)
19:15:27  * inolenquit (Read error: Connection reset by peer)
19:15:27  * inolen1joined
19:19:56  * dsantiagojoined
19:28:54  * TooTallNatequit (Quit: Computer has gone to sleep.)
19:42:31  * EhevuTovquit (Quit: Leaving)
19:46:06  * TooTallNatejoined
19:51:16  * M28quit (Ping timeout: 245 seconds)
19:54:45  <indutny>pong
19:54:51  <indutny>bnoordhuis: well, just stability
19:55:07  <indutny>Domenic_: its probably a v8 issue
19:55:16  <indutny>Domenic_: I'm still quite far from the fix
19:57:37  * trevnorrisfg
20:05:15  <tjfontaine>trevnorris: are you coming tonight? Because then you and othiym23 and dap can talk about the implications of the asyncListener stuff
20:05:24  * kenperkinsjoined
20:13:48  <trevnorris>tjfontaine: checking calendar
20:14:24  <trevnorris>bnoordhuis: is there a magical way of telling an inherited class to run a command after the inheriting class is done constructing?
20:14:42  <tjfontaine>huh?
20:14:52  <tjfontaine>the descendent class or the base class?
20:15:29  <trevnorris>I want the base class to run a command after the descendant is done constructing.
20:17:17  <bnoordhuis>trevnorris: the short answer is 'no'
20:17:22  <trevnorris>bummer
20:17:28  * trevnorrisoff to refactor my code
20:17:50  <bnoordhuis>the longer answer is still 'no' btw but comes with a nice disgression on c++
20:17:52  <tjfontaine>what problem are you actually trying to solve?
20:18:05  * defunctzombie_zzchanged nick to defunctzombie
20:18:58  <trevnorris>the AsyncWrap class calls the async listeners that have been queued on class instantiation
20:19:19  <trevnorris>but the problem is some of the object properties haven't been set until the parent class is done constructing
20:19:26  <trevnorris>namely the fd
20:19:41  <trevnorris>so if you try to access context.fd you segfault
20:19:58  <trevnorris>so I can't run the callbacks until after the parent class is done constructing
20:21:51  <trevnorris>tjfontaine: sorry, won't be going. i'm responsible for the kid tonight.
20:22:33  <tjfontaine>heh ok
20:22:41  <tjfontaine>we'll just have to use your name in vain
20:22:47  <trevnorris>haha, ok
20:24:14  <trevnorris>it just feels ugly/not correct to go scatter the command through all the parent classes. that was the whole point of creating one base class
20:25:11  <trevnorris>hm, maybe I could get around it by just not passing it to the listener, and only the before/after/error callbacks.
20:25:12  <trevnorris>othiym23: ?
20:31:43  <tjfontaine>indutny, Domenic_: a quick tests shows that 3602d4c is fine but 7afdba6 is broken, so while it may be a v8 bug it's certainly something with how vm2 is working
20:31:56  <Domenic_>tjfontaine: woaaaah
20:32:06  <Domenic_>wait i shoudl look up those commits before
20:32:12  <Domenic_>is 3602d4c vm1?
20:32:24  <tjfontaine>yup, 7afbda6 is the first part of vm2
20:32:51  <Domenic_>ah
20:32:52  <Domenic_>well yeah
20:32:59  <Domenic_>so vm2 actually uses the proxy global
20:33:08  <tjfontaine>right
20:33:10  <Domenic_>so my contention is it's a bug in when v8 hits the proxy global's handler
20:33:21  <Domenic_>it obviously shouldn't be doing that for reassignments to locally-declared vars
20:33:35  <Domenic_>if i was at a computer with vs i would be all over this, putting breakpoints in those handlers
20:33:42  <tjfontaine>fear not
20:34:04  <tjfontaine>we'll get a nice reduction in for v8
20:36:56  <othiym23>what's 'it' in this context, trevnorris?
20:37:40  <trevnorris>othiym23: so I did have it so the "context" (e.g. the object attached to the request) was passed to the async listener. but in some cases this will cause a segfault if specific properties are accessed.
20:37:55  <trevnorris>othiym23: so the easiest solution is to only pass the object on the before/after/error callbacks
20:37:57  <othiym23>that's bad
20:38:03  <othiym23>that seems fine to me
20:38:08  <trevnorris>coolio
20:38:11  <othiym23>so e.g. not on the setup handler?
20:38:34  * jmar777quit (Remote host closed the connection)
20:38:38  <trevnorris>yeah. so the request object won't be passed to the callback that's called as the request is being setup.
20:38:44  <trevnorris>but you can still return an object
20:39:04  <trevnorris>i really don't like it. was using it for some testing stuff, and i'll look for a work around.
20:39:10  <trevnorris>but it won't be a trivial fix.
20:40:02  <othiym23>yeah, I agree
20:42:34  <indutny>Domenic_: I'm going to debug generated code
20:42:41  <indutny>Domenic_: but I'm a bit busy now
20:45:14  <trevnorris>bnoordhuis: hey, would you consider it evil if GetFD returned -1 if it hasn't been setup yet?
20:45:55  <tjfontaine>it doesn't do that now anyway?
20:46:07  <tjfontaine>that's generally how we handle it in other places
20:46:19  <trevnorris>tjfontaine: well, there's a case where if you try to access it, it segfaults
20:47:11  <tjfontaine>I presume streamwrap is what we're talking about atm
20:47:28  <Domenic_>indutny: thanks so much for your work, not sure i could have done any of the things you're doing :)
20:47:35  <indutny>haha
20:47:45  <trevnorris>tjfontaine: yeah. StreamWrap::GetFD
20:48:04  <tjfontaine>trevnorris: which part segfaults?
20:48:12  <trevnorris>fd = wrap->stream()->io_watcher.fd;
20:48:21  <tjfontaine>because there's no io_watcher?
20:48:25  <trevnorris>yeah
20:48:31  <trevnorris>tjfontaine: https://gist.github.com/trevnorris/6613041
20:48:37  <trevnorris>^ output from gdb
20:48:39  <tjfontaine>because stream() isn't returning what's needed?
20:49:17  <trevnorris>well, UNWRAP grabs the pointer from the Object, but the pointer just points to random memory
20:49:39  <tjfontaine>is there no way we can set that to null so the checks there work?
20:50:04  <trevnorris>hm. possible. one sec.
20:51:02  <trevnorris>tjfontaine: I think io_watcher is part of uv_handle_t
20:51:33  <tjfontaine>well, can we put a state flag on the streamwrap that we can check against then
20:52:08  <tjfontaine>anyway, -1 is fine that's what we want there in that case, yes
20:52:08  <trevnorris>bnoordhuis: thoughts?
20:52:41  <trevnorris>ok. so basically a state saying that we've created the object but haven't set the pointer to memory yet
20:52:43  <trevnorris>right?
20:53:20  <tjfontaine>lemme look more closely at this
20:55:35  <tjfontaine>trevnorris: stream_ can't be set to null in the constructor initializer?
20:56:18  <trevnorris>tjfontaine: well, stream_ is set to stream
20:56:27  <trevnorris>which is a uv_stream_t*
20:56:48  <tjfontaine>right, ok so this is valid, but we haven't uv_*_init'd the structure yet?
20:56:56  <trevnorris>exactly
20:58:00  <tjfontaine>I wonder if there's a uv_is_* that makes sense here to check against
20:58:40  <trevnorris>problem is UNWRAP get's the internal pointer from object_, but that hasn't been set yet. ooh, maybe we can just set that to nil
20:59:24  <trevnorris>well, it's going to be expensive. nm.
21:00:11  <trevnorris>is there any way to check if the address returned from the fd is a valid pointer to a class?
21:03:13  <tjfontaine>well from what you're describing, the segfault is because stream is invalid, so isn't actually failing on trying to dereference the io_watcher?
21:04:18  <trevnorris>from gdb it's giving me
21:04:18  <trevnorris>(gdb) p *wrap->stream()
21:04:19  <trevnorris>Cannot access memory at address 0x9900003fa1a00041
21:04:30  * kenperkinsquit (Quit: Computer has gone to sleep.)
21:04:56  <tjfontaine>then stream has definitely not been set to something sane, I guess I don't understand why it's not set to null first
21:07:31  <trevnorris>tjfontaine: ok so TCPWrap::New is constructing with args.This(), let me track down where that's getting called.
21:08:13  * kenperkinsjoined
21:10:01  <trevnorris>tjfontaine: ok. so it creates a new instance from the FunctionTemplate. I guess v8 doesn't automatically set the internal pointer to nil ?
21:12:12  <trevnorris>tjfontaine: have any idea? if the memory returned is a random address, then i'm not sure how to check if actually been set or not.
21:12:34  <trevnorris>only thing I can think is set a flag on the class that toggles once the value has been assigned
21:13:19  <tjfontaine>how expensive is it for us to set it to nothing ourselves?
21:13:37  <trevnorris>let me check. I have a benchmark setup.
21:22:16  * paulfryzelquit (Remote host closed the connection)
21:24:07  <trevnorris>tjfontaine: 10 ns to check the internal field count and set to NULL if > 0
21:26:02  <trevnorris>under heavy I/O we can be doing that upwards of 100k/sec. so it'd add ~1ms in execution time
21:26:52  * bradleymeckquit (Quit: bradleymeck)
21:27:45  <trevnorris>tjfontaine: but that does fix the problem
21:27:54  <trevnorris>bnoordhuis: how does that solution sound?
21:28:48  <bnoordhuis>trevnorris: can you give me the executive summary?
21:29:32  <trevnorris>bnoordhuis: instantiating an Object in v8 with an aligned internal pointer doesn't nil the address, so if you retrieve it before it's been set you get a random pointer.
21:30:10  <trevnorris>bnoordhuis: so the possible solution is to check and nil it in AsyncWrap (since it's the first thing to run anyways) then GetFD will return -1 correctly
21:30:27  <trevnorris>but it'll add and extra 10 ns to every instantiation
21:30:58  <bnoordhuis>trevnorris: sorry, check what?
21:32:10  <trevnorris>the async listener runs on AsyncWrap instantiation, and it passes the Object up to JS and is passed to all the async listeners.
21:32:41  <trevnorris>if someone tries to access the fd property then it'll segfault because it retrieves the pointer from the internal aligned memory attached to the instantiated Object
21:32:59  <trevnorris>but since the pointer hasn't been set by that point, it just has a random memory address
21:33:23  * julianduquejoined
21:33:35  <bnoordhuis>trevnorris: that doesn't sound like good design because the async listener will always run before the descendant class gets initialized
21:33:51  <bnoordhuis>you're just working around one issue now, not fixing the real issue
21:34:18  <trevnorris>well, the possibly more appropriate solution is to call the async listeners after the parent class has instantiated
21:34:24  <bnoordhuis>exactly
21:34:50  <trevnorris>I wanted to get around that if possible because it'll require polluting all the other code with the method execution.
21:35:03  <trevnorris>just didn't see that as a "pretty" solution, if you will
21:35:15  <trevnorris>but, if that's the correct way to do it then that's how I will do it :)
21:36:53  <trevnorris>bnoordhuis: hence my previous question if there was a magical way to automatically run something from a child class after it's parent class is done constructing.
21:37:34  <bnoordhuis>trevnorris: the parent always initializes before the child
21:37:53  <bnoordhuis>if you have three classes, A, B and C where B inherits from A and C inherits from B
21:38:03  <bnoordhuis>then the constructor chain looks like A -> B -> C
21:38:16  <bnoordhuis>and the destructor chain like C -> B -> A btw
21:39:12  <bnoordhuis>iow, the base class has been fully constructed by the time the inheriting class's constructor runs
21:39:23  <trevnorris>yeah. and that's straight forward.
21:39:39  <trevnorris>wanted to make sure there wasn't some c++ trick I was missing.
21:40:06  <bnoordhuis>nothing that isn't too brittle to consider
21:41:00  <trevnorris>sounds good. thanks much :)
22:02:47  * luigy_quit (Ping timeout: 260 seconds)
22:05:42  * bnoordhuisquit (Ping timeout: 268 seconds)
22:08:41  * st_lukejoined
22:09:28  * rendarquit
22:15:00  * dominictarrquit (Quit: dominictarr)
22:29:20  * hueniversequit (Read error: Connection reset by peer)
22:30:38  * pfox___quit (Ping timeout: 240 seconds)
22:31:48  * pfox___joined
22:35:46  * hueniversejoined
22:36:27  * AvianFluquit (Ping timeout: 276 seconds)
22:43:14  <trevnorris>tjfontaine: ping
22:43:51  * Kakeraquit (Ping timeout: 260 seconds)
22:44:53  <tjfontaine>pong
22:45:53  <tjfontaine>trevnorris:
22:47:30  <trevnorris>tjfontaine: so can I screw around w/ joyents smartos servers? mozilla just gave me access to their aws. plan on using it for intra-datacenter benchmarking, but could throw my own install up there too.
22:48:19  <tjfontaine>what do you want to benchmark?
22:49:02  <tjfontaine>lemme see which one you should login to first
22:49:29  <trevnorris>just want to simulate real data transfers between servers within the same datacenter.
22:49:36  <trevnorris>instead of just on my laptop.
22:49:44  <trevnorris>then I can leave it running longer and check for mem leaks, etc.
22:49:56  <tjfontaine>there's one that we used for tls stuff that's relatively sane to use, but it's in eu-ams, I can probably put one closer
22:50:18  <trevnorris>eh, no worries. i'll just throw one up on aws and spin it up when needed.
22:50:37  <trevnorris>just want to use it to track down any mem leaks, like how max demonstrated.
22:50:46  <tjfontaine>sure, you can use that just fine
22:50:53  <trevnorris>i'm really wanting to finish this async listener thing so I can play around with that.
22:51:06  <tjfontaine>[email protected] you should already have access to it
22:53:25  <trevnorris>is that smartos.nodejs.org?
22:53:42  <tjfontaine>no, smartos.nodejs.org is a different box
22:53:48  <trevnorris>coolio
22:53:49  <trevnorris>thanks
22:53:54  <tjfontaine>np
22:54:06  <trevnorris>that box actually have a name?
22:54:10  <trevnorris>(just for my ssh config :)
22:54:20  <trevnorris>nm. i'll just login
22:54:32  <tjfontaine>tls-bench I think, but there's no hostname afaik
23:07:31  * c4miloquit (Remote host closed the connection)
23:11:42  * bnoordhuisjoined
23:15:13  <trevnorris>freakin. this implementation feels so fragile.
23:15:43  <tjfontaine>asyncListener?
23:15:50  <trevnorris>just a part of it.
23:15:52  * kenperkinsquit (Quit: Computer has gone to sleep.)
23:16:03  <trevnorris>the part where i'm running a method at the end of the parent constructor
23:16:03  <tjfontaine>which part?
23:16:07  <tjfontaine>ah
23:16:12  <trevnorris>doesn't feel right
23:16:37  * bnoordhuisquit (Ping timeout: 268 seconds)
23:17:02  <tjfontaine>I wouldn't worry too much about it atm
23:17:16  <trevnorris>think i'll just attach the context to the object that's passed to before/after/error by default and not pass it immediately to the listener.
23:17:21  <trevnorris>that should work.
23:17:28  <trevnorris>i'll figure out something else later.
23:18:12  <trevnorris>tjfontaine: problems i'm running into are that the implementations occationally vary just enough to make life a bitch
23:18:30  <tjfontaine>sure
23:18:59  * dshaw_joined
23:33:02  * EhevuTovjoined
23:34:57  * dshaw_quit (Quit: Leaving.)
23:42:33  * dshaw_joined
23:45:58  * jmar777joined
23:54:27  * jmar777quit (Remote host closed the connection)
23:59:31  * AvianFlujoined
23:59:47  <MI6>libuv-master-gyp: #185 UNSTABLE windows-x64 (3/195) smartos-ia32 (2/194) windows-ia32 (3/195) smartos-x64 (2/194) http://jenkins.nodejs.org/job/libuv-master-gyp/185/