00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:07  * ircretaryjoined
00:10:57  <MI6>libuv-master-gyp: #322 UNSTABLE smartos-ia32 (5/198) windows-x64 (6/197) smartos-x64 (6/198) windows-ia32 (6/197) http://jenkins.nodejs.org/job/libuv-master-gyp/322/
00:11:04  * paddybyersquit (Quit: paddybyers)
00:12:20  * mikealquit (Quit: Leaving.)
00:20:02  * Kakeraquit (Ping timeout: 264 seconds)
00:21:59  * dsantiagojoined
00:30:47  * dap_quit (Quit: Leaving.)
00:31:07  * dap_joined
00:55:55  * jmar777joined
01:00:00  * toothrquit (Ping timeout: 245 seconds)
01:01:25  * stagasjoined
01:02:10  * mikealjoined
01:11:16  * c4miloquit (Remote host closed the connection)
01:11:57  * abraxasjoined
01:16:15  * abraxasquit (Ping timeout: 245 seconds)
01:17:16  * mikealquit (Quit: Leaving.)
01:19:33  * kazuponjoined
01:29:24  * abraxasjoined
01:33:51  * bradleymeckquit (Quit: bradleymeck)
01:37:01  * toothrjoined
01:38:28  * dap_quit (Quit: Leaving.)
01:42:22  * mcavagequit
01:43:38  * kazuponquit (Remote host closed the connection)
01:50:49  * bradleymeckjoined
01:57:31  * kevinswiberjoined
02:02:10  * mikolalysenkoquit (Ping timeout: 246 seconds)
02:06:59  * bradleymeckquit (Quit: bradleymeck)
02:18:43  * c4milojoined
02:23:02  * c4miloquit (Ping timeout: 240 seconds)
02:24:48  * TooTallNatequit (Quit: ["Textual IRC Client: www.textualapp.com"])
02:29:59  * bradleymeckjoined
02:43:35  <timoxley>rvagg: I'm sure it's been discussed before, but what's the rationale behind using NotFoundError vs just undefined? to differentiate between value being undefined and no actual value?
02:48:07  * bradleymeckquit (Quit: bradleymeck)
02:48:14  <timoxley>oops #leveldb
02:51:35  * jmar777quit (Remote host closed the connection)
02:54:01  * bradleymeckjoined
02:59:23  * mikolalysenkojoined
03:02:59  * abraxasquit (Remote host closed the connection)
03:05:31  * bradleymeckquit (Quit: bradleymeck)
03:06:47  * bradleymeckjoined
03:07:35  * kazuponjoined
03:27:55  * abraxasjoined
03:31:09  * kevinswiberquit (Remote host closed the connection)
03:48:54  * c4milojoined
03:56:40  * brsonquit (Quit: leaving)
04:04:23  * mikolalysenkoquit (Ping timeout: 240 seconds)
04:07:20  * wavdedjoined
04:16:53  * kazupon_joined
04:16:54  * kazuponquit (Read error: Connection reset by peer)
04:30:22  * AvianFlujoined
04:30:38  * mikolalysenkojoined
04:33:45  * hueniversejoined
04:35:31  * calvinfoquit (Quit: Leaving.)
04:41:06  * kazupon_quit (Remote host closed the connection)
04:48:15  * kazuponjoined
04:55:59  * abraxasquit (Remote host closed the connection)
04:58:20  * kazuponquit (Remote host closed the connection)
05:00:12  * kazuponjoined
05:13:53  * mikealjoined
05:18:47  * mikealquit (Ping timeout: 272 seconds)
05:20:24  * mikealjoined
05:26:07  * defunctzombiechanged nick to defunctzombie_zz
05:27:48  * AvianFluquit (Read error: Connection reset by peer)
05:29:14  * AvianFlujoined
05:31:37  * wavdedquit (Quit: Hasta la pasta)
05:36:04  * calvinfojoined
05:36:58  * calvinfo1joined
05:36:59  * calvinfoquit (Read error: Connection reset by peer)
05:41:02  * calvinfo1quit (Ping timeout: 240 seconds)
05:42:25  * abraxasjoined
06:09:08  * calvinfojoined
06:12:33  * m76joined
06:24:20  * AvianFluquit (Remote host closed the connection)
06:40:57  * paddybyersjoined
06:43:48  * calvinfoquit (Quit: Leaving.)
06:43:52  * c4miloquit (Remote host closed the connection)
06:45:06  * st_lukejoined
06:58:46  * st_lukequit (Remote host closed the connection)
07:03:37  * bajtosjoined
07:42:56  * c4milojoined
07:45:19  * calvinfojoined
07:45:31  * mikolalysenkoquit (Ping timeout: 246 seconds)
07:48:15  * c4miloquit (Ping timeout: 272 seconds)
08:08:56  * otwojoined
08:14:23  * inolen1quit (Quit: Leaving.)
08:14:41  * inolenjoined
08:15:15  * hzjoined
08:19:25  * inolenquit (Client Quit)
08:19:43  * inolenjoined
08:32:14  * calvinfoquit (Quit: Leaving.)
08:32:27  * calvinfojoined
08:32:40  * calvinfoquit (Client Quit)
08:35:13  * rendarjoined
08:39:26  * stagasquit (Ping timeout: 240 seconds)
09:00:25  * kazuponquit (Remote host closed the connection)
09:03:03  * bradleymeckquit (Quit: bradleymeck)
09:05:28  * kazuponjoined
09:10:35  * kazuponquit (Ping timeout: 272 seconds)
09:12:15  * mikolalysenkojoined
09:17:38  * mikolalysenkoquit (Ping timeout: 264 seconds)
09:19:07  * janjongboomjoined
09:21:52  <creationix>trevnorris, do you know if your asyncListener code wraps the onWrite events to stdio streams?
09:22:03  <creationix>the async-listener polyfill does because they are streams
09:22:11  <creationix>but I hear they are actually sync and not a true event source
09:22:30  <creationix>also it would be great to be able to console.log from within one of the hook functions without causing infinite loops
09:22:46  <creationix>(and the fact that it causes a stack overflow just confirms my thought that it's sync)
09:22:54  <creationix>othiym23, ^
09:28:47  * abraxasquit (Remote host closed the connection)
09:30:14  <indutny>hello
09:31:17  * c4milojoined
09:35:51  * c4miloquit (Ping timeout: 250 seconds)
09:42:34  * abraxasjoined
09:46:35  <mmalecki>morning y'all
09:48:20  * otwoquit (Ping timeout: 245 seconds)
09:51:11  <mmalecki>eh, I almost forgot uv used autotools
09:59:59  <indutny>morning
10:08:29  <mmalecki>anyone has any idea for a good first lesson for uv tutorial?
10:08:34  * mmaleckineeds moar blog posts
10:12:16  <janjongboom>mmalecki: I would write something about gender pronouns. That subject never gets any attention.
10:12:55  <mmalecki>janjongboom: hahahaha
10:13:02  * mikolalysenkojoined
10:13:26  <mmalecki>janjongboom: sorry, I don't want to be shamed on some company blog
10:13:59  <mmalecki>I think I'll start with writing a rust binding for uv, actually
10:17:54  * mikolalysenkoquit (Ping timeout: 240 seconds)
10:23:13  <creationix>mmalecki, you know rust already uses libuv
10:23:52  <mmalecki>[maciej@VIGOURs-iMac libuv (master)]$ make test
10:23:53  <mmalecki>make: Nothing to be done for `test'.
10:23:59  <mmalecki>that used to work
10:24:08  <mmalecki>creationix: master doesn't have that binding anymore
10:24:25  <creationix>didn't know
10:24:26  <mmalecki>and it can only do sync I/O, judging from docs
10:24:52  <mmalecki>ALL ASYNC EVERYTHING
10:24:52  <LOUDBOT>DID YOU SEE WHAT I DID THERE WITH MY CLEVER USE OF BOTH MEANINGS OF THE WORD FLOOR?
10:25:31  <mmalecki>indutny: how do you run tests on uv now :o ?
10:25:44  <indutny>./gyp_uv -f ninja
10:25:46  <indutny>ninja -C out/Debug
10:25:50  <indutny>./out/Debug/run-tests
10:26:53  <mmalecki>hm. would it be possible to add a test target to the regular Makefile?
10:35:56  <mmalecki>indutny: added to README: https://github.com/joyent/libuv/pull/1024
10:36:10  <indutny>hey
10:36:14  <indutny>ninja is not required :)
10:36:16  <indutny>you can use makefile
10:36:18  <indutny>./gyp_uv
10:36:23  <indutny>make -C out/
10:36:34  <indutny>its just that I like it more than make
10:36:45  <mmalecki>oh, okay.
10:37:09  <mmalecki>fixing now
10:42:33  <indutny>gush, NSStream is fucking retarded
10:42:40  <indutny>if you receive an hasbytes event
10:42:41  <indutny>aah
10:42:44  <indutny>that's not it :)
10:42:47  <indutny>that's it+GCD
10:42:48  <indutny>ok
10:54:01  <mmalecki>indutny: fixed, thanks for feedback
10:54:33  <rendar>what is GCD?
10:55:32  <indutny>thanks
10:55:37  <indutny>Grand Central Dispatch
10:56:31  <rendar>i see
10:56:59  <MI6>joyent/libuv: Maciej Małecki master * 8094ac2 : doc: document how to run tests - http://git.io/Vm7_Yg
10:57:05  <mmalecki>thanks Fedor.
11:02:45  <mmalecki>oh wow, getcwd returns ERANGE if buffer is too small
11:07:56  * mralephjoined
11:08:14  * mraleph1quit (Read error: Connection reset by peer)
11:13:45  * mikolalysenkojoined
11:18:50  * mikolalysenkoquit (Ping timeout: 264 seconds)
11:19:35  * c4milojoined
11:24:11  * c4miloquit (Ping timeout: 250 seconds)
11:27:24  * bajtosquit (Quit: bajtos)
11:56:33  * Kakerajoined
12:05:31  * bajtosjoined
12:14:33  * mikolalysenkojoined
12:19:57  * mikolalysenkoquit (Ping timeout: 272 seconds)
12:35:14  * m76quit (Read error: Connection reset by peer)
12:37:27  * bajtosquit (Quit: bajtos)
12:44:34  * janjongboomquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:58:06  * timoxleyquit (Remote host closed the connection)
13:08:00  * c4milojoined
13:12:31  * c4miloquit (Ping timeout: 250 seconds)
13:13:05  * abraxasquit (Remote host closed the connection)
13:15:17  * mikolalysenkojoined
13:19:59  * mikolalysenkoquit (Ping timeout: 240 seconds)
13:27:49  * Brett19quit (Ping timeout: 246 seconds)
13:31:41  * janjongboomjoined
13:52:18  * AvianFlujoined
13:52:49  * AvianFlu_joined
13:56:14  * AvianFluquit (Ping timeout: 240 seconds)
13:59:22  * defunctzombie_zzchanged nick to defunctzombie
14:00:59  * jmar777joined
14:01:47  <AlexisMocha>jenkins.nodejs.org seems to be down
14:08:09  * Domenic_quit (Ping timeout: 252 seconds)
14:12:55  * Domenic__joined
14:12:55  * Domenic__changed nick to Domenic_
14:16:06  * mikolalysenkojoined
14:21:02  * mikolalysenkoquit (Ping timeout: 240 seconds)
14:33:29  * bajtosjoined
14:48:40  * Kakeraquit (Ping timeout: 246 seconds)
14:56:06  * c4milojoined
14:57:58  <defunctzombie>I am trying to write js bindings for libuv and am a bit stuck on the timers stuff since it behaves a bit differently than other functions which take a callback
14:58:17  <defunctzombie>It seems that the callback can and will be called multiple times (for repeat timers)
14:58:46  <defunctzombie>but I need to know when there won't be any more calls to it so I can free the resources (handles and persistent functions)
14:59:09  <defunctzombie>is there a specific set of functions or call order that indicates the callback should not fire again?
15:00:21  * m76joined
15:00:38  * c4miloquit (Ping timeout: 240 seconds)
15:03:12  * pachetjoined
15:03:27  * kevinswiberjoined
15:13:26  * Brett19joined
15:14:00  * bradleymeckjoined
15:14:18  * abraxasjoined
15:14:40  * kazuponjoined
15:15:38  * mcavagejoined
15:16:52  * mikolalysenkojoined
15:18:20  * hzquit (Ping timeout: 245 seconds)
15:18:50  * abraxasquit (Ping timeout: 264 seconds)
15:20:19  * jmar777quit (Remote host closed the connection)
15:21:34  * mikolalysenkoquit (Ping timeout: 246 seconds)
15:23:16  * AvianFlu_quit (Remote host closed the connection)
15:24:39  <mmalecki>what was that thing for running benchmarks on 2 node versions and comparing them?
15:25:37  * AvianFlujoined
15:26:58  * Kakerajoined
15:30:23  * jmar777joined
15:44:21  <indutny>mmalecki: its in bench folder
15:44:23  <indutny>in node repo
15:44:35  <indutny>https://github.com/joyent/node/blob/master/benchmark/compare.js
15:45:39  <mmalecki>ah, thanks indutny
15:45:46  <mmalecki>any idea what's the arg order?
15:45:57  <indutny>mmalecki: have you seen file? :)
15:46:46  <mmalecki>yeah, I know how to call it. I just don't know which one should be "old" node and which one should be "new" node
15:47:22  <mmalecki>indutny: I have https://gist.github.com/mmalecki/a060d51d91101812e1f6
15:47:49  <mmalecki>this is ops/s?
15:47:53  <indutny>ah
15:48:02  <indutny>depends on benchmark
15:48:04  <indutny>usually
15:48:06  <indutny>higher = better
15:50:18  * stagasjoined
15:50:59  <mmalecki>thanks
15:57:15  * mikealquit (Quit: Leaving.)
16:00:41  * mikolalysenkojoined
16:07:01  * dap_joined
16:08:55  * mikealjoined
16:10:55  * mmaleckiquit (Quit: leaving)
16:11:07  * mmaleckijoined
16:12:05  * bajtosquit (Quit: bajtos)
16:17:27  * mikealquit (Quit: Leaving.)
16:17:30  * janjongboomquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:22:53  * mmaleckiquit (Quit: leaving)
16:23:56  * mmaleckijoined
16:25:13  * wrljoined
16:28:15  <wrl>hey, so i'm compiling libuv as a static library and linking it in with a few other pieces to yield a dynamic library (an audio plugin, libuv is the event loop for the UI)
16:28:43  <wrl>but, compiling with GCC, UV_EXTERN is always defined to set the visibility to `default`
16:29:22  <indutny>hm...
16:29:24  <indutny>heya
16:29:29  <wrl>i would prefer to have these symbols hidden, and the fix is a pretty simple change to uv.h
16:30:03  <indutny>well
16:30:08  <indutny>if you don't have BUILDING_UV_SHARED
16:30:14  <indutny>it should make them hidden
16:30:31  <indutny>ah wait
16:30:35  <indutny>you are right
16:30:51  <wrl>if you change that line to #elif __GNUC__ >= 4 && defined(BUILDING_UV_SHARED)
16:30:54  <wrl>then yeah, you're right
16:31:07  * bajtosjoined
16:31:11  <indutny>will it work for you this way?
16:31:18  <wrl>yes it will!
16:31:20  <wrl>already tested
16:32:17  <indutny>ok :)
16:32:28  <indutny>let me think about it for a bit
16:33:20  <wrl>okay, much appreciated
16:33:25  <wrl>i'll bug you about it later :)
16:33:37  * bradleymeckquit (Quit: bradleymeck)
16:34:35  * jmar777quit (Ping timeout: 245 seconds)
16:35:11  <indutny>wrl: ok
16:35:29  <indutny>I think it should be another option
16:35:50  <indutny>because it has nothing to do with shared build
16:35:54  <indutny>and will break node.js
16:36:00  <indutny>actually
16:36:04  <indutny>not node itself, but it's addons
16:36:40  <wrl>ah, interesting
16:36:56  <wrl>so you would introduce a new define for that?
16:38:33  <indutny>perhaps, it'd be a good idea to use `visibility` variable from common.gypi
16:38:41  <indutny>and make it `default` instead of `hidden`
16:38:44  <wrl>indutny: what's this USING_UV_SHARED do?
16:38:57  <indutny>it works only for windows
16:39:16  <indutny>I guess it should be true when you're using it from your app
16:39:35  <indutny>when using shared libuv on windows
16:39:45  <wrl>okay
16:39:45  <indutny>so windows would know that functions should be imported from dll
16:40:34  <wrl>currently it looks like you use the common.gypi `visibility` var to conditionally set -fvisibility=hidden
16:40:40  <wrl>which maybe you'd want to change to the default?
16:40:51  <wrl>and then use that var to set how UV_EXTERN is defined
16:42:37  <indutny>well, we are not using it for UV_EXTERN
16:42:40  <indutny>but it would be cool
16:42:59  <indutny>we can introduce UV_HIDDEN_VISIBILITY define
16:43:06  <wrl>yeah
16:43:10  <indutny>that will be set up in gyp
16:43:11  <wrl>well that's what i'm suggesting
16:43:15  <indutny>yeah
16:43:20  <wrl>make -fvisibility=hidden default
16:43:23  <indutny>yep
16:43:24  <wrl>and repurpose the visibility var
16:44:28  * c4milojoined
16:45:10  * calvinfojoined
16:49:45  * calvinfoquit (Ping timeout: 272 seconds)
16:49:45  * c4miloquit (Ping timeout: 272 seconds)
16:50:04  <wrl>indutny: do you want to handle that? i think i have time for it this afternoon, could put together a pull request
16:50:20  <wrl>i don't know what you'd want to do w.r.t. win32, not super familiar with the platform and dllimport/dllexport
16:50:23  <indutny>that would be totally cool
16:50:31  <indutny>well, just don't touch it for now :)
16:50:37  <wrl>okay
16:52:29  * mikealjoined
16:53:26  * mikealquit (Client Quit)
16:55:34  * jmar777joined
16:56:40  * brsonjoined
17:05:31  * bradleymeckjoined
17:11:06  * c4milojoined
17:15:02  * mikolalysenkoquit (Ping timeout: 240 seconds)
17:15:07  * abraxasjoined
17:19:31  * abraxasquit (Ping timeout: 250 seconds)
17:32:29  * inolenquit (Quit: Leaving.)
17:39:54  * mikolalysenkojoined
17:42:44  * mikealjoined
17:43:19  * calvinfojoined
17:50:15  <groundwater>trevnorris: i'm think it would be a great idea to just have addAsyncListener( obj ) vs addAsyncListener( func, obj )
17:55:22  <tjfontaine>rvagg: you around, I can answer linux + mdb questions now
17:55:43  <mmalecki>wait, there's mdb on linux?!
17:56:15  <tjfontaine>mmalecki: no, linux cores on mdb on smartos
17:56:33  <mmalecki>wait, you can do that?!
17:56:38  <tjfontaine>you can now :)
18:01:10  * st_lukejoined
18:04:26  * TooTallNatejoined
18:06:31  * mcavagequit (Remote host closed the connection)
18:10:15  * inolenjoined
18:11:03  * mcavagejoined
18:23:02  <defunctzombie>tjfontaine: what is the proper way to handle uv timers?
18:23:10  <defunctzombie>tjfontaine: when is it safe to delete the uv_timer_t handle?
18:26:28  * kazuponquit (Remote host closed the connection)
18:34:09  * Benviequit
18:37:45  * superjoepart ("WeeChat 0.4.1")
18:42:01  * Benviejoined
18:45:59  * st_lukequit (Remote host closed the connection)
18:48:21  <trevnorris>groundwater: that's going to be the new api
18:48:45  <trevnorris>groundwater: addAsyncListener({ create: fn() { }, before: fn() { }, after: fn() { }, error: ... });
18:48:51  <trevnorris>all of them optional
18:51:43  <trevnorris>creationix: I believe those onWrite calls are accompanied by a ReqWrap. if that's the case then yes.
18:52:10  <groundwater>trevnorris: i like it!
18:52:27  <trevnorris>tjfontaine: fyi - i'm going to be triaging most the day.
19:04:30  <trevnorris>oh. I fear going into the issue tracker...
19:05:21  * indexzerojoined
19:07:31  * jmar777quit (Read error: Connection reset by peer)
19:08:08  * jmar777joined
19:10:10  <trevnorris>where is this orangemocha human?
19:10:50  * bajtosquit (Quit: bajtos)
19:11:40  <tjfontaine>trevnorris: he'll be AlexisMocha :)
19:11:50  <trevnorris>ah, great.
19:11:53  <trevnorris>AlexisMocha: sup?
19:12:48  * jmar777quit (Read error: Connection reset by peer)
19:15:29  * jmar777joined
19:15:41  <trevnorris>tjfontaine: i'm ok with https://github.com/joyent/node/pull/6559, with the addition to the README change. you alright w/ this?
19:15:56  * abraxasjoined
19:20:38  * abraxasquit (Ping timeout: 264 seconds)
19:23:39  <groundwater>trevnorris: i was also thinking about the domain stuff yesterday in the flamegraphs... domains were in play for both tests, but in 0.10.9 they went through asyncListener
19:23:53  <groundwater>s/0.10.9/0.11.9
19:24:15  <groundwater>so there is definitely a performance change that is outside of the agent module
19:24:31  <groundwater>i shall investigate further
19:24:38  <trevnorris>thanks.
19:26:55  * mikolalysenkoquit (Ping timeout: 250 seconds)
19:34:50  * isaacswaves
19:35:12  * mcavagequit (Remote host closed the connection)
19:35:57  * bradleymeckquit (Quit: bradleymeck)
19:36:20  * dshaw_joined
19:36:29  * mcavagejoined
19:36:35  * mcavagequit (Read error: Connection reset by peer)
19:36:57  * mcavagejoined
19:37:23  * kazuponjoined
19:37:32  <trevnorris>isaacs: sup?
19:37:41  <isaacs>trevnorris: not much
19:40:17  <tjfontaine>trevnorris: I'm fine with the patch, I'd like to really be able to do an svn mirror to a git repo for it, but whatever :)
19:40:19  <othiym23>I was so glad I didn't have to get up at the ass crack of dawn and go to Node Summit again today that I nearly wept in gratitude
19:40:27  <othiym23>worthwhile couple of days, but so exhausting
19:41:31  * kazuponquit (Ping timeout: 240 seconds)
19:43:32  <dshaw_>othiym23: +1. slept in. feels amazing.
19:43:36  <trevnorris>indutny / tjfontaine: know of a quick way to check at what point something runs during the uv_run loop?
19:43:36  <trevnorris>uv__run_timers() is straight forward, but I forget when the other stuff runs.
19:43:39  <tjfontaine>othiym23: amen, now I can catch up on shit that's been languishing since this weekend :)
19:43:41  <indutny>heya
19:43:54  <tjfontaine>trevnorris: it depends, basically you want src/unix/core.c uv__run
19:43:54  <indutny>trevnorris: what do you mean?
19:44:02  <indutny>what prevents loop from exiting?
19:46:06  <trevnorris>so timers attached to TimerWrap are executed during uv__run_timers, but at what point is a callback run from a TCP incoming request?
19:46:47  <tjfontaine>uv__io_poll
19:47:08  <tjfontaine>in unix terms anyway
19:47:25  <tjfontaine>see the path of uv__run in src/unix/core.c
19:51:53  * `3rdEdenchanged nick to `3E|GONE
19:51:58  * AvianFlu_joined
19:52:12  * AvianFlu_quit (Read error: Connection reset by peer)
19:52:29  * AvianFluquit (Read error: Connection reset by peer)
19:52:30  * AvianFlu_joined
19:52:44  * mikolalysenkojoined
19:56:35  * AvianFlujoined
19:56:55  * AvianFlu_quit (Read error: Connection reset by peer)
19:57:27  * AvianFlu_joined
20:01:01  * AvianFluquit (Ping timeout: 272 seconds)
20:03:04  <MI6>joyent/node: Alexis Campailla master * 9ba0d90 : lib: child_process spawn handle ENOENT correctly - http://git.io/Ncb5XQ
20:03:19  <trevnorris>tjfontaine: haha, check out the http chunked benchmark:
20:03:19  <trevnorris>read(19, "GET /bytes/1024/4 HTTP/1.1\r\nHost"..., 65536) = 42
20:03:19  <trevnorris>write(19, "100\r\nCCCCCCCCCCCCCCCCCCCCCCCCCCC"..., 263) = 263
20:03:19  <trevnorris>writev(19, [{"100\r\nCCCCCCCCCCCCCCCCCCCCCCCCCCC"..., 263}, {"0\r\n\r\n", 5}], 2) = 268
20:03:40  <tjfontaine>well the last writev makes sense
20:03:42  <trevnorris>it's requested in two chunks. so it uses write() for the first of the two, then writev() for the second.
20:04:07  <tjfontaine>it would be nice to get that into one writev if possible :)
20:04:17  <trevnorris>technically there were 3 write(), but didn't want to clutter irc.
20:04:33  <tjfontaine>really?
20:04:36  <trevnorris>yup
20:04:41  <tjfontaine>where they all queued on the same turn?
20:05:06  <trevnorris>check the url: "GET /bytes/1024/4" so 4 chunks. all 4 queued in the same turn, the first three used write()
20:05:20  <isaacs>trevnorris: that's weird.
20:05:34  <trevnorris>there's a bug in how http uses writev.
20:05:50  <isaacs>trevnorris: oh, wait, right. it's using write() because there's no backpressure.
20:05:55  <isaacs>trevnorris: and there's only one thing
20:06:01  <isaacs>trevnorris: so just write it right now
20:06:19  <isaacs>trevnorris: wait until end of tick maybe and then writev if it's >1 thing?
20:06:53  <trevnorris>isaacs: sounds like a good solution.
20:07:24  <isaacs>trevnorris: but i wonder if the addition of a nextTick call is > the 3 syscalls
20:07:32  <isaacs>considering that, in the real world, not hitting localhost, there WILL be some backpressure.
20:07:50  <isaacs>oh, no, there won't, still. because the chunks are so small.
20:07:55  <trevnorris>yeah
20:08:01  <isaacs>yeah, nextTick
20:08:12  <isaacs>even if the benchmark suffers a little, i'm betting that a non-localhost benchmark will NOT suffer.
20:08:32  <isaacs>there's no backpressure, but there still IS a round-trip
20:09:18  <trevnorris>isaacs: oh, also there's a serious issue wrt writing small http chunks. since the callback is processed synchronously, and node will pretty much successfully write out small chunks, it can enter a loop if you're constantly writing.
20:09:58  <trevnorris>*if the callback is processed synchronously (because the request was written immediately)
20:11:22  <tjfontaine>I mean, why are they writing small chunks in a tight loop? :)
20:11:48  <trevnorris>heh
20:12:21  <trevnorris>regardless, imo it's a bug.
20:12:38  <tjfontaine>a better question might be, isaacs: is it simply an oversight that OutgoingMessage doesn't implement cork/uncork?
20:13:27  * trevnorris&
20:13:27  <LOUDBOT>WARK IS VERY GOOD IANK THANK YOU HOW ARE YOU
20:19:31  * mikolalysenkoquit (Ping timeout: 260 seconds)
20:19:55  * dshaw_quit (Quit: Leaving.)
20:20:57  * hzjoined
20:21:12  * brsonquit (Ping timeout: 240 seconds)
20:23:52  <isaacs>tjfontaine: well, Writable implements cork/uncork
20:24:07  <isaacs>tjfontaine: do you mean, an oversight that OutgoingMessage doesn't cork() on teh first write, and then uncork() on nextTick?
20:25:49  <tjfontaine>isaacs: I mean, res.cork doesn't exist
20:26:01  <isaacs>tjfontaine: wtf?
20:26:04  <isaacs>isn't it a Writable?
20:26:25  <isaacs>ugggg no, it isn't
20:26:37  <isaacs>util.inherits(OutgoingMessage, Stream);
20:26:45  <isaacs>i could've sworn i fixed that already
20:27:50  <isaacs>ohh, now i remember why
20:27:54  <isaacs>because of all the fancy framing bs
20:28:01  <tjfontaine>indeed
20:29:39  <isaacs>tjfontaine, trevnorris, indutny, AlexisMocha, sblom: Would you be ok with moving our weekly call to either Monday or Wednesday (same time) next week?
20:30:16  <tjfontaine>I'd prefer wednesday
20:30:26  <tjfontaine>because I'm going to be implementing WFH-Wednesday I think
20:30:58  <tjfontaine>brb lunching
20:31:31  * isaacssame &
20:34:05  * kevinswiberquit (Remote host closed the connection)
20:36:16  <indutny>isaacs: I don't like it
20:36:18  <indutny>may be friday?
20:36:29  <indutny>oh
20:36:31  <indutny>thursday
20:36:33  <indutny>yeah
20:36:34  <indutny>thursday
20:36:41  <indutny>mon, wed, fri don't work for me at all
20:36:45  <isaacs>gotcha
20:37:05  <isaacs>Thursday works for me
20:37:11  * isaacs&
20:37:11  <LOUDBOT>LEWELLYN TAKES WALKS ON THE WILD SIDE FAR TOO OFTEN
20:37:50  * kevinswiberjoined
20:40:48  * mikolalysenkojoined
20:47:27  * dshaw_joined
20:47:40  * dshaw_quit (Client Quit)
21:01:09  * kenperkinsjoined
21:03:37  * jmar777quit (Remote host closed the connection)
21:04:54  * hzquit (Disconnected by services)
21:04:58  * hzjoined
21:05:25  * rendarquit (Read error: Connection reset by peer)
21:11:03  * brsonjoined
21:13:42  * pachetquit (Quit: leaving)
21:14:56  * otwojoined
21:15:29  * jmar777joined
21:16:48  * abraxasjoined
21:18:20  * rendarjoined
21:20:04  * kenperkinsquit (Quit: Computer has gone to sleep.)
21:21:19  * abraxasquit (Ping timeout: 250 seconds)
21:22:50  * kenperkinsjoined
21:27:11  <wrl>so hm
21:27:24  <wrl>is the `visibility` variable in common.gypi inherited?
21:27:39  <indutny>well
21:27:49  <indutny>it just has a default value
21:27:57  <wrl>well but i mean
21:28:03  <indutny>-Dvisibility=default should override it
21:28:07  <wrl>there's a comment suggesting it's inherited from v8?
21:28:13  <indutny>ah
21:28:14  <indutny>well
21:28:19  <indutny>its copied from it :)
21:28:22  <indutny>the line
21:28:25  <wrl>aha :)
21:28:25  <wrl>okay
21:28:29  <indutny>and was originally in node
21:28:32  <indutny>anyway
21:28:32  <indutny>gtg
21:28:34  <indutny>ttyl
21:28:51  <wrl>okay!
21:31:07  * jmar777quit (Remote host closed the connection)
21:52:07  * kevinswiberquit (Remote host closed the connection)
22:03:12  * kenperkinsquit (Quit: Computer has gone to sleep.)
22:04:07  * Benvie_joined
22:04:51  * paulfryzeljoined
22:07:03  * Benviequit (Ping timeout: 272 seconds)
22:15:14  * bradleymeckjoined
22:16:14  * kenperkinsjoined
22:19:07  <rvagg>tjfontaine: thanks, I kind of gave up on linux+mdb, I uploaded a 70M core file which took quite some time on my 300kbps upload link and then mdb told me it couldn't understand the file
22:19:30  * kenperkinsquit (Client Quit)
22:19:35  <rvagg>tjfontaine: will try again later when I have a proper use case perhaps but I'll ping you first to make sure I can get a usable core file
22:19:54  <defunctzombie>who is experienced enough with libuv uv_timer_t to answer a question?
22:20:02  <defunctzombie>about lifecycles
22:26:09  <trevnorris>defunctzombie: can you rephrase the question that you asked on #stackvm?
22:26:34  <defunctzombie>when using uv_time_t when it is safe to destroy the handle?
22:26:43  <defunctzombie>uv_timer_t
22:27:26  <defunctzombie>it is not clear from any of the docs because the handle needs to stick around for repeating timers
22:27:37  <defunctzombie>but could be destroyed after a single-shot timer
22:27:55  <defunctzombie>so care has to be taken with the handle beyond just knowing when a single callback fired
22:29:36  * stagasquit (Ping timeout: 240 seconds)
22:31:57  * jmar777joined
22:35:58  <trevnorris>defunctzombie: honestly i'm just reading node/src/timer_wrap.cc. it pretty much has all the use cases, and when TimerWrap is destroyed it has to be safe to also destroy the uv_timer_t
22:36:01  * st_lukejoined
22:36:58  <defunctzombie>trevnorris: well, hoping to get some documentation or clarification :) reading the source for another library to figure out the edge cases seems... strange.. but I guess makes sense in this case
22:39:43  <defunctzombie>trevnorris: looking at that code I don't see it managing the lifetime of uv_timer_t
22:40:05  <defunctzombie>it lives as long as the TimeWrap does
22:40:45  <defunctzombie>but does this mean you have to keep TimeWrap around when making repeating timers...
22:43:23  * kevinswiberjoined
22:43:42  * kenperkinsjoined
22:45:57  * rendarquit
22:50:04  * brsonquit (Read error: Connection reset by peer)
22:50:44  * hzquit
22:50:45  * brsonjoined
22:56:25  * bradleymeckquit (Quit: bradleymeck)
22:56:37  * kenperkinsquit (Ping timeout: 240 seconds)
23:08:01  <othiym23>hey V8 experts: does V8 use ropes or some other kind of compact internal representation for JS strings?
23:08:49  <othiym23>i.e. if I have a kabillion identical strings on a kabillion distinct objects, will they all be allocated / GCed separately, or is there some sort of behind-the-scenes caching or interning of strings?
23:11:14  * jmar777quit (Remote host closed the connection)
23:13:13  * kevinswiberquit (Remote host closed the connection)
23:13:41  * AvianFlu_changed nick to AvianFlu
23:14:07  * m76quit (Read error: Connection reset by peer)
23:17:47  * abraxasjoined
23:17:56  * timoxleyjoined
23:22:27  * abraxasquit (Ping timeout: 260 seconds)
23:31:59  * kevinswiberjoined
23:33:51  <trevnorris>defunctzombie: sorry, meeting
23:34:03  <defunctzombie>trevnorris: no worries, creationix helped me out
23:34:16  <defunctzombie>trevnorris: I think I have a solution that will work :)
23:34:32  <trevnorris>defunctzombie: awesome. good to hear. :)
23:36:59  <trevnorris>othiym23: run this:
23:37:00  <trevnorris>> /usr/bin/time ./node -e 'var s="a", r=[]; for (var i=0; i<1e6; i++) r.push(s);'
23:37:10  <trevnorris>and run this:
23:37:11  <trevnorris>> /usr/bin/time ./node -e 'var s="abcdefghijklmnopqrstuvwxyz", r=[]; for (var i=0; i<1e7; i++) r.push(s);'
23:37:53  <trevnorris>othiym23: and finally this:
23:37:54  <trevnorris>> /usr/bin/time ./node -e 'var s={}, r=[]; for (var i=0; i<1e7; i++) r.push(s);'
23:38:20  <othiym23>trevnorris, back once again with the relevant microbenchmarks
23:38:23  <othiym23>good idea, thanks
23:38:34  <trevnorris>othiym23: sorry, that's not for the micro benchmark. that's to show mem usage
23:38:46  <trevnorris>othiym23: notice that memory usage is almost exactly the same in all cases.
23:40:21  <trevnorris>othiym23: take a more extreme case:
23:40:22  <trevnorris>> /usr/bin/time ./node -e 'var s=(new Array(1024 * 10)).join("a"), r=[]; for (var i=0; i<1e7; i++) r.push(s);'
23:40:26  <trevnorris>that's a 10KB string
23:40:33  <trevnorris>but mem usage is the same
23:40:48  <trevnorris>so they'd have to be using a pointer to the string
23:41:08  <othiym23>OK
23:41:12  <othiym23>that makes sense!
23:41:37  <othiym23>the problem is that it rules out a potential improvement I could make to solve a problem a customer is facing
23:41:43  <othiym23>but thanks for the gut check
23:42:14  <trevnorris>yup. np. but shoot any more off me. always in the mood to improve performance :)
23:49:26  * indexzeroquit (Ping timeout: 264 seconds)
23:52:18  <dazld_>trevnorris: potentially silly question, but why does this happen? https://pbs.twimg.com/media/BZ4NydOCMAE3d4u.png:large
23:57:23  <tjfontaine>rvagg: it works on 64bit linux HEAD of master and v0.10, you need to supply both the node binary and the core file,lemme know when you try again
23:57:56  <rvagg>ya, did all of that, I'm pretty sure it was an 0.10.22 binary I uploaded and it was certainly a 64-bit
23:58:13  <tjfontaine>rvagg: interesting
23:59:27  <tjfontaine>rvagg: is your node binary and core file still available in manta in your public?
23:59:58  <rvagg>the node binary is in /rvagg/stor/ I don't think that's public?