00:01:08  <mmalecki>actually, I think this is how ircretary works
00:01:18  <mmalecki>check out the code
00:01:19  <Raynos>mmalecki: but then you do sync fs when you hot swap
00:02:42  <MI6>joyent/libuv: Ben Noordhuis master * c252bcb : bench: fix loop starvation bug Don't keep writing until the write queue - http://git.io/0Y29_Q
00:04:04  * mikealquit (Ping timeout: 248 seconds)
00:04:25  * travis-cijoined
00:04:25  <travis-ci>[travis-ci] joyent/libuv#873 (master - c252bcb : Ben Noordhuis): The build passed.
00:04:25  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/09b022232aad...c252bcb3f02d
00:04:25  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/3205155
00:04:25  * travis-cipart
00:07:18  * indexzeroquit (Quit: indexzero)
00:08:10  * indexzerojoined
00:08:41  <indutny>bnoordhuis: yes, but not in that place
00:09:19  <bnoordhuis>indutny: okay. so what makes you think it's slow?
00:09:34  <indutny>bnoordhuis: it takes minutes to store million entries
00:09:52  <indutny>hm...
00:09:55  <indutny>probably not a million
00:09:55  * indexzeroquit (Client Quit)
00:09:59  <indutny>let me doublecheck
00:11:21  <indutny>even worse
00:11:22  <indutny>bnoordhuis: 95000
00:11:40  <bnoordhuis>indutny: okay. so what does the profile graph look like?
00:11:40  <indutny>1000 inserts/sec
00:11:48  <indutny>sec
00:12:26  <indutny>starting virtualbox
00:12:32  <bnoordhuis>1,000 inserts/sec is pretty bad, yes - unless you're testing it on a 386, of course :)
00:12:37  <indutny>:)
00:14:02  <indutny>running callgrind in VM
00:14:09  <indutny>what can go wrong
00:14:10  <indutny>:)
00:14:16  * ArmyOfBrucequit (Excess Flood)
00:14:44  * ArmyOfBrucejoined
00:16:04  * warzquit
00:16:40  <indutny>bnoordhuis: so obviously AVLTree::Insert and AVLTree::Search on first places
00:17:08  <bnoordhuis>indutny: are you doing something like: if (!search(value)) insert(value)?
00:17:23  * sblomjoined
00:18:57  <indutny>yeah
00:23:01  * stagasquit (Ping timeout: 268 seconds)
00:23:59  <indutny>bnoordhuis: that was debug build
00:24:06  <indutny>bnoordhuis: this explains inline functions in profile
00:24:16  <bnoordhuis>indutny: yes
00:24:25  <bnoordhuis>but search+insert is rather inefficient
00:24:30  <indutny>bnoordhuis: running it again with -O3
00:24:33  <indutny>huh?
00:24:37  * stagasjoined
00:24:46  <indutny>well, it's search for a place to insert item :)
00:24:51  <bnoordhuis>oh, okay
00:25:00  <indutny>it's just generic method
00:25:03  <bnoordhuis>so you insert in-place?
00:25:05  <indutny>using in both Insert and Find
00:25:21  <indutny>bnoordhuis: please rephrase
00:25:44  <indutny>I don't understand it this way
00:26:22  <TooTallNate>damn you gyp
00:26:24  <bnoordhuis>indutny: do you do something like node** n = search(value); if (n == NULL) *n = new node(value); else return "value already in tree";
00:26:33  <bnoordhuis>(pseudo-code obviously)
00:26:39  <indutny>yes, sort of
00:26:50  <bnoordhuis>okay, good
00:27:00  <bnoordhuis>traversing the tree twice is a waste of perfectly good cpu cyles
00:27:03  <bnoordhuis>*cycles
00:27:05  <indutny>bnoordhuis: yeah, I understand
00:28:43  <indutny>bnoordhuis: probably I should just use splay tree
00:28:46  <indutny>bnoordhuis: but anyway
00:28:48  <indutny>10000 insertions
00:29:26  <bnoordhuis>indutny: maybe try `perf record` and drill into the code
00:30:21  <bnoordhuis>indutny: if i clone the repo, what benchmark should i run?
00:31:01  <indutny>bnoordhuis: checkout into feature-adaptive-compiler branch
00:31:13  <indutny>bnoordhuis: and create file full of "if (true) { return false}" lines
00:31:18  <indutny>bnoordhuis: more - better
00:31:22  <indutny>that's all
00:31:26  <indutny>ah
00:31:32  <bnoordhuis>indutny: do you have a gist of such a file?
00:31:35  <indutny>bnoordhuis: and run BUILDTYPE=Release make JOBS=4 test
00:31:37  <TooTallNate>bnoordhuis: is your gyp fork on github up-to-date?
00:31:40  <bnoordhuis>probably easiest if we're benchmarking the same thing
00:31:40  <indutny>bnoordhuis: I can do it
00:31:50  <bnoordhuis>TooTallNate: yes, pretty much
00:31:52  <indutny>bnoordhuis: this doesn't matter much
00:32:03  <indutny>bnoordhuis: it's just inserting instructions into sourcemap
00:32:13  <indutny>bnoordhuis: i.e. maps JIT code address to ast node's offset
00:32:28  <indutny>bnoordhuis: so you just need a lot of instructions
00:32:45  <bnoordhuis>indutny: that's awfully imprecise - how much is 'a lot'?
00:32:58  <bnoordhuis>four quite-a-fews?
00:33:15  <indutny>bnoordhuis: 40000 LoC should be enough to make it hang
00:33:21  <bnoordhuis>okay
00:33:34  * indexzerojoined
00:33:43  <indutny>bnoordhuis: so it spends time here https://github.com/indutny/candor/blob/master/src/utils.h#L642
00:33:46  <indutny>bnoordhuis: according to callgrind
00:35:16  <indutny>bnoordhuis: hm....
00:35:21  <indutny>bnoordhuis: may be I really need splay tree
00:35:48  * loladirojoined
00:36:14  <indutny>bnoordhuis: it should take O(n) to inserted sorted data into it
00:36:23  <indutny>bnoordhuis: and sourcemaps are almost sorted
00:36:58  <bnoordhuis>indutny: according to perf, 81% of cpu time is spent inside candor::internal::HIRGen::FindLCA(candor::internal::HIRBlock*, candor::internal::HIRBlock*)
00:37:09  <indutny>bnoordhuis: have you checked out that branch?
00:37:14  <indutny>bnoordhuis: adaptive compiler
00:37:25  <bnoordhuis>oh wait, branch you say?
00:37:29  <indutny>bnoordhuis: yeah
00:37:39  <indutny>bnoordhuis: feature-adaptive-compilation
00:37:45  <bnoordhuis>ah, feature-adaptive-compiler
00:37:50  <indutny>bnoordhuis: HIR/LIR compiler sucks
00:37:58  <indutny>bnoordhuis: for now
00:38:05  <indutny>bnoordhuis: but that's because of big-O
00:38:11  <indutny>at least I know what to fix
00:39:07  * indexzeroquit (Quit: indexzero)
00:39:23  <indutny>oh shit
00:39:23  <bnoordhuis>indutny: 95% in candor::internal::SourceMap::Commit(char const*, char const*, unsigned int, char*)
00:39:27  <indutny>indeed
00:39:31  <bnoordhuis>40.35 │ cmp $0x2,%edx
00:39:33  <indutny>you know where it's spending time
00:39:54  <indutny>bnoordhuis: https://github.com/indutny/candor/blob/master/src/utils.h#L556
00:39:55  <indutny>there
00:39:59  <indutny>much more than in tree
00:40:04  <indutny>shit
00:40:20  <bnoordhuis>indutny: yeah, if (match->balance() == 2) {
00:40:29  <indutny>no, not this line
00:40:33  <indutny>look at NumberKey::Compare
00:40:41  <bnoordhuis>that's the line according to perf
00:40:46  <bnoordhuis>and perf is always right
00:40:49  <indutny>a
00:40:50  <indutny>ah
00:40:51  <indutny>ok
00:40:59  <bnoordhuis>do you have perf installed in your vm?
00:41:00  <indutny>I see it too in callgrind
00:41:21  <indutny>not yet
00:41:36  <bnoordhuis>static inline int Compare(NumberKey* left, NumberKey* right) { <- expensive too, about 35%
00:41:44  <indutny>indeed
00:41:45  <indutny>why?
00:41:53  <indutny>is it called too often?
00:42:01  <indutny>or is it just slow
00:42:27  * indexzerojoined
00:42:31  <bnoordhuis>indutny: return l == r ? 0 : l > r ? 1 : - 1; -> 31.13 │ cmp %rcx,%rdx
00:42:45  <indutny>what about reinterpret_casts
00:42:50  <indutny>are they compiled-out away?
00:42:55  <bnoordhuis>you should give perf a spin, it's easy -> perf record -c 1000 -i out/Release/can tmp/test.can
00:42:59  <bnoordhuis>then `perf report`
00:43:10  <bnoordhuis>yeah, the reinterpret_casts are compiled anyway
00:43:10  <indutny>-c 1000 ?
00:43:22  <bnoordhuis>1000 samples
00:43:30  <bnoordhuis>i.e. a lot higher than the default
00:43:49  <indutny>ok
00:43:54  <indutny>running
00:44:02  <indutny>why is it better than callgrind?
00:44:20  <indutny>brb
00:44:28  <bnoordhuis>indutny: it's a *lot* faster :)
00:44:42  <bnoordhuis>and not that much less exact if you tune it right
00:45:06  <bnoordhuis>it's basically a profiler that uses the hardware performance counters
00:45:17  <bnoordhuis>kind of like oprofile but a lot better
00:45:30  <bnoordhuis>and it lets you trace kernel code
00:46:16  <indutny>ah
00:46:18  <indutny>ok
00:46:25  <indutny>so if it's just my implementation
00:46:28  <indutny>- it's ok
00:46:39  <indutny>but if it's a compiler doing wrong job, because of me
00:46:47  <indutny>that's what I'm trying to figure out
00:47:00  <indutny>bnoordhuis: should I kill perf?
00:47:05  <indutny>bnoordhuis: or will it quit itself?
00:47:06  <bnoordhuis>indutny: yes, c-c it
00:47:25  <bnoordhuis>well, eventually - but you may not want to wait for that
00:49:31  <indutny>bnoordhuis: reinterpret_cast seems to compiled in some odd thing
00:49:40  <indutny>bnoordhuis: mov (0x10)ecx, edx
00:49:56  <indutny>have you seen it?
00:49:57  <bnoordhuis>what's odd about that?
00:50:24  * indexzeroquit (Quit: indexzero)
00:51:15  <indutny>bnoordhuis: it should just receive two arguments
00:51:24  <indutny>bnoordhuis: and compare them :)
00:51:25  <indutny>ok
00:51:28  <indutny>thanks for spending time on this
00:51:31  <indutny>it's 5 am
00:51:37  <indutny>and I can't really hold on too much anymore
00:51:44  <indutny>and my wife is asking me to go sleeping
00:51:48  <indutny>ttyl man :)
00:51:49  <indutny>thank you
00:51:53  <bnoordhuis>sleep tight fedor :)
00:52:03  <indutny>you too man
00:52:05  <indutny>it's really time :)
00:52:22  * bnoordhuisgoes back to working in libuv
00:52:30  <bnoordhuis>in, on, with
01:07:35  * ArmyOfBrucequit (Excess Flood)
01:08:02  * ArmyOfBrucejoined
01:12:17  * c4milojoined
01:19:51  * EhevuTovquit (Quit: This computer has gone to sleep)
01:20:16  * kristatejoined
01:23:47  * jmar777joined
01:23:56  * c4miloquit (Remote host closed the connection)
01:24:39  * c4milojoined
01:28:51  * abraxasjoined
01:29:03  * lohkey_joined
01:30:59  * bradleymeckjoined
01:32:23  * lohkeyquit (Ping timeout: 265 seconds)
01:33:23  * lohkey_quit (Ping timeout: 255 seconds)
01:34:03  * perezdquit (Quit: perezd)
01:36:11  * abraxasquit (Remote host closed the connection)
01:36:25  * abraxasjoined
01:45:09  * c4miloquit (Remote host closed the connection)
01:48:20  * paddybyersquit (Ping timeout: 265 seconds)
01:49:57  * c4milojoined
01:51:36  * jmar777quit (Remote host closed the connection)
01:52:12  * jmar777joined
01:56:14  * jmar777quit (Ping timeout: 240 seconds)
01:57:16  * AvianFluquit (Remote host closed the connection)
02:01:15  * c4miloquit (Remote host closed the connection)
02:05:09  * brsonquit (Ping timeout: 252 seconds)
02:12:40  * brsonjoined
02:18:09  * c4milojoined
02:23:32  * xaqjoined
02:29:46  * loladiroquit (Quit: loladiro)
02:53:55  * loladirojoined
02:54:48  * TooTallNatequit (Read error: Operation timed out)
03:04:35  * bnoordhuisquit (Ping timeout: 268 seconds)
03:16:21  * AvianFlujoined
03:27:14  * stagasquit (Ping timeout: 240 seconds)
03:28:24  * stagasjoined
03:39:12  * ArmyOfBrucequit (Excess Flood)
03:39:40  * ArmyOfBrucejoined
03:42:03  * brsonquit (Quit: leaving)
03:42:14  * ryahjoined
03:42:20  * ryahwaves
03:42:31  * kristatewaves back
03:54:51  * TooTallNatejoined
03:55:24  * benoitcquit (Excess Flood)
03:56:16  * TooTallNatequit (Client Quit)
04:03:46  * benoitcjoined
04:44:38  * mmaleckichanged nick to mmalecki[zzz]
04:48:16  * AvianFluquit (Remote host closed the connection)
04:52:18  * kazuponjoined
04:59:39  * brsonjoined
05:00:46  * TheJHjoined
05:10:14  * kristatequit (Ping timeout: 240 seconds)
05:17:46  * xaqquit (Remote host closed the connection)
05:20:41  * c4miloquit (Remote host closed the connection)
05:23:55  * perezdjoined
05:36:05  * btraskjoined
05:49:55  * TheJHquit (Ping timeout: 260 seconds)
06:04:23  * LOUDBOTquit (Remote host closed the connection)
06:04:30  * LOUDBOTjoined
06:04:30  * brsonquit (Quit: leaving)
06:12:15  * LOUDBOTquit (Remote host closed the connection)
06:12:23  * LOUDBOTjoined
06:29:31  * stagasquit (Ping timeout: 252 seconds)
06:31:33  * stagasjoined
06:48:52  * Benviequit
06:55:31  * Benviejoined
07:07:59  * hij1nxquit (Quit: WeeChat 0.3.2)
07:09:21  * hij1nxjoined
07:09:37  * hij1nxquit (Client Quit)
07:11:36  * stagas_joined
07:13:16  * hij1nxjoined
07:40:36  * rjejoined
07:44:57  * rendarjoined
08:24:18  * paddybyersjoined
08:28:30  * joshthecoderquit (Quit: Linkinus - http://linkinus.com)
08:45:15  * janjongboomjoined
08:56:02  <indutny>ryah: howdy?
09:47:29  * ArmyOfBrucequit (Excess Flood)
09:47:58  * ArmyOfBrucejoined
09:51:12  * janjongboomquit (Quit: janjongboom)
10:25:33  * kazuponquit (Remote host closed the connection)
10:30:53  * stagasquit (Quit: ChatZilla 0.9.89-rdmsoft [XULRunner 1.9.0.17/2009122204])
10:36:06  * stagas_quit (Ping timeout: 264 seconds)
10:39:15  * felixgejoined
10:39:16  * felixgequit (Changing host)
10:39:16  * felixgejoined
10:47:35  * `3rdEdenjoined
10:51:50  * janjongboomjoined
10:51:53  * loladiroquit (Quit: loladiro)
11:16:28  * loladirojoined
11:21:08  * `3rdEdenquit (Remote host closed the connection)
11:21:39  * loladiroquit (Quit: loladiro)
11:32:07  * ArmyOfBrucequit (Excess Flood)
11:32:39  * ArmyOfBrucejoined
11:39:45  * `3rdEdenjoined
11:41:49  * hzjoined
11:58:06  * kristatejoined
12:06:08  * kazuponjoined
12:19:51  * kazuponquit (Remote host closed the connection)
12:28:17  * sgallaghjoined
12:42:23  * benoitcquit (Excess Flood)
12:42:27  * c4milojoined
12:44:38  * hzquit (Ping timeout: 272 seconds)
12:47:22  * benoitcjoined
13:14:32  * ArmyOfBrucequit (Excess Flood)
13:15:04  * ArmyOfBrucejoined
13:25:20  * hzjoined
13:39:53  * c4miloquit (Remote host closed the connection)
13:41:47  * bnoordhuisjoined
13:48:27  * jmar777joined
13:50:15  * TheJHjoined
13:51:27  * piscisaureus_joined
13:57:36  * abraxasquit (Remote host closed the connection)
14:03:18  * mmalecki[zzz]changed nick to mmalecki
14:32:56  * hzquit (Ping timeout: 272 seconds)
14:41:16  * c4milojoined
14:55:55  * TheJHquit (Ping timeout: 246 seconds)
15:00:39  * hzjoined
15:02:33  * dapquit (Quit: Leaving.)
15:47:11  * loladirojoined
15:51:48  * loladiroquit (Client Quit)
15:53:26  * ArmyOfBrucequit (Excess Flood)
15:53:54  * ArmyOfBrucejoined
15:56:10  * stagasjoined
15:57:35  * sgallaghchanged nick to sgallagh_mtg
16:08:31  * dapjoined
16:08:48  * dapquit (Client Quit)
16:09:14  * dapjoined
16:10:14  * paddybyersquit (Ping timeout: 240 seconds)
16:11:24  * loladirojoined
16:17:58  * benoitcquit (Excess Flood)
16:22:52  * benoitcjoined
16:30:45  * loladiroquit (Quit: loladiro)
16:37:56  * paddybyersjoined
16:39:34  * xaqjoined
16:40:07  * AvianFlujoined
16:41:16  * loladirojoined
16:44:07  * sgallagh_mtgchanged nick to sgallagh
16:54:24  * perezdquit (Quit: perezd)
17:01:07  * TheJHjoined
17:16:28  <piscisaureus_>I am slowly turning into this grumpy-type maintainer
17:16:34  <piscisaureus_>https://github.com/joyent/node/issues/4283
17:17:41  <piscisaureus_>I have a hard time controlling myself and not posting an angry response
17:18:18  * benoitcquit (Excess Flood)
17:18:25  * benoitcjoined
17:25:05  * xaqquit (Remote host closed the connection)
17:25:56  * joshthecoderjoined
17:28:38  <sblom>piscisaureus_: Refer him to stack overflow?
17:28:49  <piscisaureus_>ya, or to the mailing list :-)
17:29:25  <piscisaureus_>sblom: this is sort of an issue on linux I think, but the guy doesn't even bother to mention what OS he is using or the node.js version
17:29:51  <piscisaureus_>and then his colleague came and commented "+1" on the issue, as if that is going to make any difference
17:30:05  <tjfontaine>it's important, don't you see?!
17:30:11  <piscisaureus_>hahaha
17:34:49  * perezdjoined
17:35:25  * stagas_joined
17:37:31  * stagasquit (Ping timeout: 252 seconds)
17:37:34  * stagas_changed nick to stagas
17:39:44  * AvianFluquit (Remote host closed the connection)
17:42:31  * TooTallNatejoined
17:45:27  * Smothjoined
17:46:43  * TheJHquit (Ping timeout: 260 seconds)
17:47:20  <Smoth>is ok to initialize a uv_stream_t using uv_pipe_init()? or it will write somewhere when it should not?
17:48:08  * xaqjoined
17:48:31  <piscisaureus_>Smoth: as of now, uv_stream_t is only a base class. You should always allocate and initalize specializations.
17:48:48  <piscisaureus_>Smoth: so uv_pipe_t* pipe = malloc(sizeof *pipe); uv_pipe_init(pipe);
17:49:35  * xaqquit (Remote host closed the connection)
17:49:46  <piscisaureus_>sgallagh: did you get my message from ircretary yesterday?
17:50:28  <Smoth>as I thought, thx
17:51:09  * felixgequit (Quit: felixge)
17:58:07  * stagas_joined
17:58:51  * stagasquit (Ping timeout: 276 seconds)
17:59:02  * stagas_changed nick to stagas
18:00:40  * loladiroquit (Quit: loladiro)
18:00:56  * joshthecoderquit (Quit: Leaving...)
18:01:00  * felixgejoined
18:01:00  * felixgequit (Changing host)
18:01:00  * felixgejoined
18:06:09  * perezdquit (Quit: perezd)
18:06:41  * hzquit
18:12:51  * felixgequit (Quit: felixge)
18:18:41  * benoitcquit (Excess Flood)
18:25:11  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
18:25:52  * perezdjoined
18:25:53  * benoitcjoined
18:26:36  * perezdquit (Client Quit)
18:27:33  * perezdjoined
18:28:53  * AvianFlujoined
18:30:59  * joshthecoderjoined
18:31:34  * perezdquit (Client Quit)
18:32:20  * perezdjoined
18:33:19  * perezdquit (Read error: Connection reset by peer)
18:33:30  * perezdjoined
18:44:19  <TooTallNate>tjfontaine: leveraging node's module algorith for rpath ftw! https://gist.github.com/9968cb16c84c67d3a784
18:46:11  <TooTallNate>i'm rather amazed at myself that it works
18:46:21  <TooTallNate>still haven't tackled windows yet
18:47:57  <mmalecki>TooTallNate: I'm amused
18:48:18  <TooTallNate>mmalecki: just doing some crazy experiments, that's all :p
18:48:53  <mmalecki>I like crazy experiments
18:49:08  <mmalecki>and have been wishing that C libs were as easy as node modules for months
18:51:04  * kuebk^joined
18:52:40  * loladirojoined
18:55:18  <kuebk^>hi
18:55:49  <kuebk^>why the possibility to close process.stdout has been removed in this commit https://github.com/joyent/node/commit/f84d86b66054273fb6a31346f0dd957078b58c1c ?
18:55:59  * loladiroquit (Client Quit)
18:56:24  <TooTallNate>^ ya know, i've kinda always been curious of the same thing…
18:58:37  <kuebk^>can we bring it back?
18:58:38  <kuebk^>:)
18:59:05  * janjongboomquit (Quit: janjongboom)
18:59:57  * felixgejoined
19:04:06  * felixgequit (Ping timeout: 240 seconds)
19:05:51  * loladirojoined
19:08:38  * Ralt_joined
19:13:07  <tjfontaine>TooTallNate: that just looks like more proof that libogg shoudl be it's own "module" :P
19:13:18  * loladiroquit (Quit: loladiro)
19:13:34  <TooTallNate>tjfontaine: i still don't see why
19:14:00  <tjfontaine>TooTallNate: it's a practice that could be effective for other modules that might need to share dependencies
19:14:22  <TooTallNate>tjfontaine: sure, but they're presumably gonna already depend on node-ogg
19:14:25  <TooTallNate>like node-vorbis does
19:14:40  <TooTallNate>do node-vorbis simply gets its libogg headers and symbols from the ogg.node binding
19:14:42  <tjfontaine>in this particular case yes, but in others maybe, maybe not
19:15:15  <TooTallNate>perhaps
19:15:37  * perezdquit (Quit: perezd)
19:16:29  * Ralt_quit (Remote host closed the connection)
19:16:43  * perezdjoined
19:17:44  * mmaleckichanged nick to mmalecki[food]
19:18:59  * benoitcquit (Excess Flood)
19:20:02  * brsonjoined
19:21:09  * loladirojoined
19:25:23  * benoitcjoined
19:25:35  * warzjoined
19:25:35  * warzquit (Changing host)
19:25:35  * warzjoined
19:26:27  <indutny>bnoordhuis: hoya
19:26:34  <indutny>bnoordhuis: I did splay tree
19:26:44  <indutny>bnoordhuis: and it's quite fast
19:28:57  * xaqjoined
19:29:40  * loladiroquit (Quit: loladiro)
19:33:37  * xaqquit (Remote host closed the connection)
19:37:02  * Ralt_joined
19:44:06  * Ralt_quit (Remote host closed the connection)
19:49:21  * xaqjoined
19:49:38  * janjongboomjoined
19:50:18  * Ralt_joined
19:52:12  * Ralt_quit (Remote host closed the connection)
19:57:56  * paddybyersquit (Ping timeout: 245 seconds)
20:02:25  * mbalhojoined
20:02:35  * mbalhopart
20:03:11  * xaqquit (Remote host closed the connection)
20:06:39  * AndreasMadsenjoined
20:10:03  <TooTallNate>isaacs: for _read(), am I allowed to call the callback with a Buffer with less than the requested amount?
20:10:13  <TooTallNate>of bytes
20:13:35  <rje>has anyone experienced a permissions error while using fs__ftruncate? if would seem that when using the open call the CreateFileW access parameter also needs GENERIC_WRITE in some cases.
20:17:48  * perezdquit (Quit: perezd)
20:19:21  * benoitcquit (Excess Flood)
20:21:53  * benoitcjoined
20:23:25  * stagas_joined
20:26:52  * Ralt_joined
20:29:37  * `3rdEdenquit (Quit: brb, switching to different device, out of battery...)
20:30:40  * EhevuTovjoined
20:32:41  * jmar777quit (Remote host closed the connection)
20:36:49  <bnoordhuis>indutny: nice
20:38:14  * `3rdEdenjoined
20:43:44  * hzjoined
20:49:07  <MI6>joyent/libuv: Stephen Gallagher master * 05aac92 : include: export uv_inet_* functions - http://git.io/OGCNTA
20:49:49  * mmalecki[food]changed nick to mmalecki
20:51:05  * travis-cijoined
20:51:05  <travis-ci>[travis-ci] joyent/libuv#875 (master - 05aac92 : Stephen Gallagher): The build passed.
20:51:05  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/c252bcb3f02d...05aac92913dd
20:51:05  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/3218438
20:51:05  * travis-cipart
20:52:09  * sgallaghquit (Remote host closed the connection)
20:57:58  * felixgejoined
20:58:00  * felixgequit (Changing host)
20:58:00  * felixgejoined
20:59:19  * felixgequit (Client Quit)
21:12:30  * hzquit (Disconnected by services)
21:12:33  * AndreasMadsenquit (Remote host closed the connection)
21:12:34  * hzjoined
21:13:32  * hzquit (Disconnected by services)
21:13:35  * hzjoined
21:14:58  * loladirojoined
21:15:04  * EhevuTovquit (Quit: This computer has gone to sleep)
21:15:35  * EhevuTovjoined
21:17:56  * hzquit (Disconnected by services)
21:17:59  * hzjoined
21:18:20  * stagas_quit (Ping timeout: 255 seconds)
21:18:38  * `3rdEdenquit (Remote host closed the connection)
21:20:27  * perezdjoined
21:26:21  * jmar777joined
21:36:07  * jmar777quit (Remote host closed the connection)
21:36:40  * jmar777joined
21:41:22  * jmar777quit (Ping timeout: 268 seconds)
21:49:36  * perezdquit (Quit: perezd)
21:50:57  * perezdjoined
21:51:19  * xaqjoined
21:51:39  * Smothquit (Remote host closed the connection)
21:52:23  <TooTallNate>where's bert :\
21:55:07  * paddybyersjoined
22:01:10  * xaqquit (Remote host closed the connection)
22:01:58  <mmalecki>TooTallNate: it's 11 pm here yo
22:02:47  <mmalecki>also, almost monday
22:02:53  <mmalecki>er, friday.
22:04:30  <TooTallNate>but i need the windows guru
22:05:39  * jmar777joined
22:06:43  <sblom>TooTallNate, Windows generically or Node on Windows? I'm not yet a Node expert but I have quite a long history with Windows.
22:07:25  * janjongboomquit (Quit: janjongboom)
22:07:27  <TooTallNate>sblom: indeed :) i almost forgot
22:07:53  <TooTallNate>sblom: well i'm experimenting with linking node native addons (i.e. dlls) to one another
22:08:12  <TooTallNate>sblom: the problem is that normal linking rules don't play well with node's module system layout
22:08:28  <TooTallNate>sblom: for unix, i've been able to get it working by setting the rpath
22:08:48  <TooTallNate>sblom: for windows, i'm not sure what i'm gonna do yet, but i think it involved AddDllDirectory()
22:10:32  <TooTallNate>sblom: so node-ogg builds ogg.node, which exports all of libogg. then node-vorbis gets compiled and is linked to the ogg.node file, and the rpath set
22:10:45  <sblom>TooTallNate: I see.
22:11:08  <TooTallNate>sblom: so i'm thinking that ogg.node, when loaded, would bootstrap itself to the Windows dll lookup dirs
22:11:14  <TooTallNate>i'm just not sure how to do that…
22:11:45  <TooTallNate>that way when vorbis.node gets loaded, the ogg.node dll will be able to be found
22:11:55  <TooTallNate>or maybe that's not even necessary, if ogg.node has already been loaded?
22:12:12  <TooTallNate>frankly i haven't started messing with this on windows yet so i'm mostly just thinking out-loud
22:15:47  <sblom>I think Windows searches the PATH for DLLs. But there's no LIB-specific PATH, so that might not be awesome.
22:15:58  <sblom>I'll have to look at how we're doing DLL loading at present.
22:16:51  <sblom>If we're doing LoadLibrary/GetProcAddress, I think node-vorbis would have to explicitly load ogg.
22:17:08  <sblom>Lemme look at what we do.
22:17:13  <TooTallNate>sblom: we use LoadLibraryEx()
22:17:27  <TooTallNate>other than that i'm not too sure :p
22:18:00  <sblom>Okay--downstream from that, then, we'll call GetProcAddress and stash some addresses somewhere.
22:18:17  <bnoordhuis>TooTallNate: it's in deps/uv/src/win/dl.c
22:18:37  <TooTallNate>sblom: ^
22:20:31  * EhevuTovquit (Quit: This computer has gone to sleep)
22:21:27  <sblom>TooTallNate: This is from a super-quick read of the code, but it looks like all of the exports for ogg.node in your example would be stored in binding_cache already. Do other Modules have access to the binding_cache?
22:21:48  * EhevuTovjoined
22:22:05  <sblom>(line 1845 of node.cc)
22:22:24  <sblom>(I think this is current master.)
22:23:51  <bnoordhuis>sblom: that's for built-in modules, not external add-ons
22:24:06  <bnoordhuis>sblom: the relevant code for add-ons is in DLOpen in src/node.cc
22:33:26  * Ralt_quit (Remote host closed the connection)
22:34:54  * rendarquit
22:36:22  * loladiroquit (Quit: loladiro)
22:37:37  <sblom>bnoordhuis: I see.
22:38:20  <bnoordhuis>sblom: let me know if you want some pointers, i'll be happy to help you out
22:41:59  * benoitcquit (Excess Flood)
22:42:32  * lohkeyjoined
22:42:57  * loladirojoined
22:43:29  * jmar777quit (Remote host closed the connection)
22:44:05  * jmar777joined
22:44:27  * jmar777quit (Read error: Connection reset by peer)
22:44:36  <sblom>bnoordhuis, TooTallNate: Looks like a module essentially exports one function that's repsonsible for initializing a v8 object?
22:44:48  <bnoordhuis>sblom: that's correct
22:45:02  <sblom>TooTallNate: in your ogg/vorbis example how would vorbis consume ogg? through that v8 object?
22:45:03  * jmar777joined
22:45:31  <sblom>Or are you looking for more native linking..
22:46:04  <tjfontaine>he's more on the native linking, because portions of vorbis will need access to libogg symbols
22:46:33  <tjfontaine>those symbols are re-exported through ogg.node
22:47:44  <sblom>ahhh, I think I'm starting to understand. So ogg.node needed libogg.so already, but we don't want vorbis.node to take a direct dependency on libogg.so
22:48:15  <sblom>So ogg.node is reëxporting the entire symbol table from libogg?
22:48:17  <tjfontaine>yes, he wants to just rely on ogg.node which he's using a .def to make sure the symbols are re-exported
22:48:21  <sblom>Okay.
22:48:25  * benoitcjoined
22:48:45  * AvianFluquit (Remote host closed the connection)
22:50:34  * warzquit
22:51:37  * benoitcquit (Excess Flood)
22:51:37  <sblom>I've never done this reëxport thing before.
22:51:47  * piscisaureus_joined
22:52:18  <sblom>TooTallNate: piscisaureus_ is here now.
22:52:54  <tjfontaine>he may regret it though :P
22:53:25  * jmar777quit (Remote host closed the connection)
22:53:48  <sblom>(btw, piscisaureus_ and bnoordhuis, I've opened a pull request for the NT Perf Counters change that I mentioned a while back--I've still got one gyp fix to make.)
22:53:57  * jmar777joined
22:53:59  <sblom>https://github.com/joyent/node/pull/4285
22:54:10  * jmar777quit (Read error: Connection reset by peer)
22:54:13  * piscisaureus_regrets :-p
22:54:31  <bnoordhuis>sblom: i vote that piscisaureus_ reviews it
22:54:43  * jmar777joined
22:54:44  <sblom>piscisaureus_: that's not even what we expected you to regret. :)
22:54:46  <piscisaureus_>TooTallNate: just link vorbis to the .lib file that gets produced when you compile ogg
22:54:52  <sblom>Oh, whew.
22:54:54  <bnoordhuis>piscisaureus_: btw, i saw guido van rossum on het klokhuis tonight
22:55:03  <piscisaureus_>bnoordhuis: so ?
22:55:14  <bnoordhuis>piscisaureus_: just wanted to share that with you
22:55:21  <piscisaureus_>bnoordhuis: kthnkx
22:55:22  <bnoordhuis>because i'm the sharing kind
22:55:25  * benoitcjoined
22:55:35  <piscisaureus_>bnoordhuis: maybe you can share some of your savings as well
22:56:18  <bnoordhuis>piscisaureus_: not until our stock pays out, gotta keep you motivated
22:56:23  * jmar777quit (Remote host closed the connection)
22:56:56  * jmar777joined
22:57:02  <piscisaureus_>sblom: how much overhead do perf counters add when the user is not using perf counters?
22:57:03  <bnoordhuis>you can tell guido's been living in the states for a long time, he speaks dutch with an english accent now
22:57:06  <piscisaureus_>sblom: did you benchmark?
22:57:27  <piscisaureus_>e.g. http_simple
23:00:38  <bnoordhuis>piscisaureus_: feel like reviewing the rm-ev work?
23:00:45  <piscisaureus_>oh god
23:00:47  <bnoordhuis>if you say no, i'll just merge it
23:00:48  <piscisaureus_>I will do it
23:00:55  <piscisaureus_>bnoordhuis: tomorrow?
23:00:59  <CoverSlide|TPFR>where's a dutch guy get an italian first name?
23:01:07  <bnoordhuis>piscisaureus_: okay, sure
23:01:16  <piscisaureus_>bnoordhuis: unlike you, I have been working today :-p
23:01:24  * paddybyersquit (Ping timeout: 265 seconds)
23:01:54  * jmar777quit (Ping timeout: 264 seconds)
23:01:56  <bnoordhuis>CoverSlide|TPFR: it's a popular name in the dutch deep south
23:02:04  <CoverSlide|TPFR>o rly?
23:02:10  <bnoordhuis>probably because they've been invaded by the spaniards ten times over
23:02:20  <piscisaureus_>It's quite common overall I'd say
23:02:31  <bnoordhuis>mostly brabos, i wager
23:02:53  <bnoordhuis>all the guidos i know are from brabant
23:03:10  <bnoordhuis>and jersey shore
23:03:27  * paddybyersjoined
23:08:04  <bnoordhuis>piscisaureus_: so what have you been up to today?
23:08:12  <bnoordhuis>you mention 'work'. is that a code word?
23:08:16  <piscisaureus_>bnoordhuis: the thing that shall not be discussed
23:08:26  <piscisaureus_>and other chores
23:08:27  <bnoordhuis>hah, still working on it?
23:08:42  <piscisaureus_>yeah when I don't get distracted by even more urgent things
23:08:50  <bnoordhuis>i told you, you should've left it to the professionals
23:09:04  <piscisaureus_>bnoordhuis: I told you to do it, but never got a PR
23:09:22  <bnoordhuis>i planned to, but my memory isn't what it used to be
23:10:23  * loladiroquit (Quit: loladiro)
23:11:08  <bnoordhuis>i guess i should test freebsd and netbsd as well
23:11:22  <bnoordhuis>but that means fixing the build in master first...
23:11:27  * paddybyersquit (Ping timeout: 246 seconds)
23:13:12  * stagasquit (Ping timeout: 246 seconds)
23:14:18  <CoverSlide|TPFR>and plan 9!
23:16:04  <piscisaureus_>sblom: another question - what was the reason to use run-time module loading instead of linking to advapi32.lib ?
23:16:27  <piscisaureus_>nvm - added it as a comment
23:25:35  * perezdquit (Quit: perezd)
23:26:05  * c4miloquit (Remote host closed the connection)
23:27:49  <bnoordhuis>piscisaureus_: how do you feel about removing cygwin.c? it's probably incredibly broken by now
23:28:00  <piscisaureus_>bnoordhuis: from libuv?
23:28:04  <bnoordhuis>wyes
23:28:14  <piscisaureus_>bnoordhuis: ya I suppose there is no alternative
23:28:16  <bnoordhuis>no one's reporting bugs so apparently no one uses it
23:28:23  <piscisaureus_>there's only poll() and select() on windows
23:28:26  <piscisaureus_>er, cygwin
23:28:31  <piscisaureus_>theres only select() on windows
23:30:07  * warzjoined
23:35:59  <piscisaureus_>alright
23:36:05  <piscisaureus_>I am not here anymore
23:36:09  <piscisaureus_>I wasn't planning to anyway
23:36:19  <piscisaureus_>bnoordhuis: will review rm-ev tomorrow; it is still in bnoordhuis/libuv?
23:36:24  <piscisaureus_>bnoordhuis: maybe push it to joyent?
23:36:33  <bnoordhuis>piscisaureus_: sure
23:36:53  <piscisaureus_>bnoordhuis: and maybe stop working these ungodly hours. I did, as you noticed :-)
23:37:06  <bnoordhuis>i'm working on it
23:37:16  <piscisaureus_>bnoordhuis: how?
23:37:35  <bnoordhuis>by trying to go to bed early
23:37:41  <bnoordhuis>where early < 5 am
23:38:03  <piscisaureus_>hahah
23:38:05  <piscisaureus_>okay
23:38:07  <piscisaureus_>goodbye folks
23:38:18  <piscisaureus_>you have my email address if you need me.
23:38:22  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
23:45:48  * AvianFlujoined
23:52:40  <indutny>:)
23:53:45  <TooTallNate>sblom: tjfontaine: so i got windows working it looks like :)
23:53:50  <TooTallNate>no dll path hacking required
23:54:10  <TooTallNate>i just need to be sure that ogg.node has been LoadLibrary()'d before vorbis.node
23:55:17  * kuebk^quit