00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:01:19  <indutny>bnoordhuis: that emfile trick
00:01:26  <indutny>bnoordhuis: why are you returning errno?
00:01:33  <indutny>in v0.10
00:03:16  * piscisaureus_joined
00:03:20  <bnoordhuis>indutny: look for where that function is called
00:03:25  <piscisaureus_>hello
00:03:31  <piscisaureus_>bnoordhuis: what's up?
00:03:37  <piscisaureus_>bnoordhuis: also why are you still up?
00:03:46  <bnoordhuis>piscisaureus_: i'm fixing all the bugs
00:03:51  <piscisaureus_>al;?
00:03:57  <bnoordhuis>ALL!
00:04:12  <piscisaureus_>bnoordhuis: that was about time. Issue list zero tomorrow at 9?
00:05:29  <bnoordhuis>sure
00:05:46  <bnoordhuis>i'm doing `git rm -rf *` because where there's no code, there's no bugs
00:05:58  <piscisaureus_>depends
00:06:19  <piscisaureus_>not if you treat the docs as a spec
00:06:25  <piscisaureus_>but I agree
00:06:27  <bnoordhuis>what docs?
00:06:32  <piscisaureus_>drown it in a bathtub!
00:06:51  <bnoordhuis>also, lack of perceived functionality is a matter of expectation management
00:07:10  <bnoordhuis>so, how's the US of A?
00:07:40  <piscisaureus_>my lawyer advised me not to speak about that in public
00:08:17  <bnoordhuis>okay, good. wait until you're in canada
00:08:47  <piscisaureus_>StrongLoop's corporate communication department can tell you all you need to know about the US of A
00:09:16  * AvianFlujoined
00:10:00  <piscisaureus_>But, beyond kidding. The microsoft event was fun (and we're getting another windows guy! yay!)
00:10:18  <piscisaureus_>and San Mateo is sunny as it is supposed to be
00:10:25  <piscisaureus_>but it's sunday so not much going on
00:10:51  <bnoordhuis>oh, right. sounds boring
00:11:19  <bnoordhuis>i don't suppose there are any pubs nearby?
00:11:39  <piscisaureus_>There are but 4pm is a bit early for that
00:11:56  <piscisaureus_>although now that you mention it
00:12:03  <piscisaureus_>./part #libuv
00:19:52  * piscisaureus_quit (Read error: Connection reset by peer)
00:20:51  * piscisaureus_joined
00:21:06  * brucemquit (Read error: Operation timed out)
00:21:08  * AvianFluquit (Read error: Connection reset by peer)
00:21:09  * philipsquit (Read error: Operation timed out)
00:22:09  * brucemjoined
00:37:57  * philipsjoined
00:46:15  * dqminhquit (Ping timeout: 245 seconds)
00:54:12  * inolenjoined
00:59:01  * inolenquit (Ping timeout: 272 seconds)
01:01:50  * inolenjoined
01:05:25  * bnoordhuisquit (Ping timeout: 246 seconds)
01:06:22  * inolenquit (Client Quit)
01:12:05  * stagasquit (Ping timeout: 245 seconds)
01:12:20  * kazuponjoined
01:12:48  * AvianFlujoined
01:36:57  * inolenjoined
01:39:34  * paulfryz_quit (Remote host closed the connection)
01:41:52  * inolenquit (Ping timeout: 264 seconds)
01:51:15  * pachetquit (Ping timeout: 245 seconds)
01:51:36  * brsonquit (Ping timeout: 272 seconds)
01:52:48  * brsonjoined
02:02:08  * abraxasjoined
02:05:23  * AvianFluquit (Read error: Connection reset by peer)
02:06:00  * AvianFlujoined
02:10:50  * paulfryzeljoined
02:15:23  * paulfryzelquit (Ping timeout: 272 seconds)
02:22:38  * pachetjoined
02:22:38  * pachetquit (Changing host)
02:22:38  * pachetjoined
02:23:57  * defunctzombie_zzchanged nick to defunctzombie
02:24:28  * AvianFluquit (Ping timeout: 264 seconds)
02:32:30  * inolenjoined
02:34:54  * inolenquit (Read error: Connection reset by peer)
02:35:11  * inolenjoined
02:43:26  * inolenquit (Read error: No route to host)
02:43:40  * inolenjoined
02:48:03  <MI6>libuv-master: #352 UNSTABLE windows (6/197) smartos (3/197) http://jenkins.nodejs.org/job/libuv-master/352/
02:50:19  <MI6>libuv-master-gyp: #304 UNSTABLE smartos-ia32 (3/197) windows-x64 (12/197) smartos-x64 (3/197) windows-ia32 (8/197) http://jenkins.nodejs.org/job/libuv-master-gyp/304/
02:52:58  * AvianFlujoined
02:56:14  <MI6>libuv-master-gyp: #305 UNSTABLE smartos-ia32 (3/197) windows-x64 (6/197) smartos-x64 (3/197) windows-ia32 (5/197) http://jenkins.nodejs.org/job/libuv-master-gyp/305/
03:06:25  <MI6>libuv-node-integration: #318 UNSTABLE osx-x64 (1/679) osx-ia32 (1/679) smartos-x64 (7/679) smartos-ia32 (5/679) http://jenkins.nodejs.org/job/libuv-node-integration/318/
03:10:54  * robonerdjoined
03:20:52  * AvianFluquit (Read error: Connection reset by peer)
03:27:33  * AvianFlujoined
03:29:49  * AvianFluquit (Read error: Connection reset by peer)
03:30:25  * AvianFlujoined
03:34:33  * AvianFluquit (Ping timeout: 252 seconds)
03:37:41  * brsonquit (Ping timeout: 248 seconds)
03:50:29  * m76joined
03:53:27  * dshaw_joined
03:58:58  * kazuponquit (Remote host closed the connection)
04:02:22  * jmar777quit (Remote host closed the connection)
04:02:50  * stagasjoined
04:06:46  * dshaw_quit (Quit: Leaving.)
04:08:25  <piscisaureus_>Why is EventEmitter() called twice when a stream is constructed
04:08:31  <piscisaureus_>recipe for disaster sherlock
04:11:37  * c4miloquit (Remote host closed the connection)
04:16:16  * kazuponjoined
04:29:42  * jmar777joined
04:29:48  * abraxasquit (Remote host closed the connection)
04:43:28  * jmar777quit (Remote host closed the connection)
04:55:45  * dshaw_joined
05:01:12  * indexzeroquit (Quit: indexzero)
05:13:04  * paulfryzeljoined
05:14:24  * paulfryzelquit (Read error: Connection reset by peer)
05:14:49  * paulfryzeljoined
05:19:18  * paulfryzelquit (Ping timeout: 245 seconds)
05:25:40  * wolfeidauquit (Remote host closed the connection)
05:34:35  * c4milojoined
05:39:35  * c4miloquit (Ping timeout: 272 seconds)
05:47:10  * defunctzombiechanged nick to defunctzombie_zz
05:48:49  * abraxasjoined
05:55:48  * stagasquit (Ping timeout: 240 seconds)
05:55:58  * pachetquit (Ping timeout: 245 seconds)
05:58:09  * brsonjoined
05:58:11  * brsonquit (Client Quit)
05:58:38  * brsonjoined
06:01:42  * stagasjoined
06:02:01  * brson_joined
06:04:50  * inolenquit (Quit: Leaving.)
06:05:09  * inolenjoined
06:06:27  * brsonquit (Ping timeout: 272 seconds)
06:09:12  * stagasquit (Remote host closed the connection)
06:14:56  * indexzerojoined
06:15:36  * paulfryzeljoined
06:19:43  * paulfryzelquit (Ping timeout: 245 seconds)
06:20:13  * mikealquit (Quit: Leaving.)
06:22:52  * mikealjoined
06:25:51  * mikealquit (Client Quit)
06:30:18  * wolfeidaujoined
06:33:01  * wolfeidauquit (Remote host closed the connection)
06:41:58  <MI6>nodejs-v0.10-windows: #339 UNSTABLE windows-ia32 (10/604) windows-x64 (11/604) http://jenkins.nodejs.org/job/nodejs-v0.10-windows/339/
06:47:43  * mikealjoined
07:02:01  * vptrquit (Read error: Operation timed out)
07:16:25  * paulfryzeljoined
07:20:33  * paulfryzelquit (Ping timeout: 245 seconds)
07:22:56  * c4milojoined
07:24:28  * bajtosjoined
07:27:13  * c4miloquit (Ping timeout: 245 seconds)
07:29:06  * AvianFlujoined
07:35:39  * dshaw_1joined
07:36:06  * dshaw_quit (Read error: Connection reset by peer)
07:37:18  * AvianFluquit (Read error: Connection reset by peer)
07:39:54  * stagasjoined
07:48:45  <trevnorris>hello all
07:48:56  <brett19>hi revnorris
07:54:52  <trevnorris>i'm trying to find if --trace-opt prints "[disabled optimization ..." does that mean v8 just uses the runtime and not any IC that had been created for that function?
07:54:54  <piscisaureus_>that
07:54:59  <piscisaureus_>'s not me ^
07:55:10  <trevnorris>yeah :)
07:56:07  * AvianFlujoined
07:56:35  * AvianFluquit (Read error: Connection reset by peer)
07:57:03  * AvianFlujoined
08:00:26  <piscisaureus_>https://bitcointalk.org/index.php?topic=337294.0;all
08:00:31  <brett19>trevnorris: that is accurate.
08:01:07  <piscisaureus_>^-- my money on non-thread-safety of darwin fs implementation. Possibly pread/pwrite just like we had in node.
08:04:17  <trevnorris>brett19: ok. so as far as I understand v8, you have the basic runtime, then the IC optimizations, then finally the inliner. so basically when a function is marked as not optimize-able it always hits the runtime. interesting.
08:04:48  <trevnorris>piscisaureus_: hm. interesting. i'll ask a few friends of mine that work at apple about that.
08:05:02  <piscisaureus_>trevnorris: \o/
08:05:08  * brson_quit (Ping timeout: 245 seconds)
08:05:25  <trevnorris>piscisaureus_: oh, btw we've got to find some time to hang out.
08:05:46  <piscisaureus_>trevnorris: yes. We also need to meet up with tjfontaine shortly after node summit
08:05:55  <trevnorris>piscisaureus_: sounds good
08:06:01  <piscisaureus_>trevnorris: to make Big Plans
08:06:05  <trevnorris>heh
08:06:15  <piscisaureus_>also known as roadmap but that sounds like work
08:07:02  <trevnorris>haha, sure.
08:07:25  * brsonjoined
08:09:20  <brett19>trevnorris: I havn't worked a lot with v8, but I don't think that is entirely true. My understanding is that v8 parses your code into an AST, which gets 'runtime' executed as you said. In the case of a block (function level) being executed a lot, v8 will then try to JIT it and perform optimizations on it. In the case of 'disabled optimizations', I believe it means it is forcing all the steps
08:09:20  <brett19>to be avoided, and always use hte runtime without optimizations.
08:10:05  <brett19>Note that 'runtime' execute is still JIT'd, its just JIT'd one-to-one of the AST with no form of optimization performed.
08:10:10  * AvianFluquit (Read error: Connection reset by peer)
08:12:13  * rendarjoined
08:12:52  <trevnorris>brett19: so the IC isn't involved in the JIT step, right? that's only used to produce code after it's done analysis on the functions that've passed through the JIT and determined they are stable.
08:14:34  <trevnorris>man, if only I could take mraleph's brain and do a knowledge swap.
08:17:09  * paulfryzeljoined
08:17:37  * AvianFlujoined
08:18:13  <brett19>trevnorris, I believe that is accurate.
08:18:20  <trevnorris>cool
08:18:29  <brett19>Why do you ask?
08:18:44  <brett19>v8 core compiler internals seems like a strange thing on #libuv :)
08:19:27  <trevnorris>i brain spew a lot when i'm working on performance improvements for core
08:20:07  * saghuljoined
08:20:08  <trevnorris>and when using the v8.log tick processor, function names can start with "*" (function has been optimized) or "~" (function can be optimized, but hasn't yet)
08:20:47  <brett19>fair enough
08:21:23  * paulfryzelquit (Ping timeout: 245 seconds)
08:21:24  <brett19>Node really needs better debugging tools >_<
08:21:35  <trevnorris>hey, i'm working on it. :P
08:21:49  <brett19>Oh? I was about to start playing around with that xD
08:22:20  <trevnorris>there was a design flaw in the first round of asyncListener that i'll be fixing for the next release. overall it works, but there's a few quirks that don't make it as solid as i'd like it to be.
08:22:48  <trevnorris>and I still want to add a c++ api so you can trace stuff from the c++ side.
08:23:16  <trevnorris>and freakin perf probe has a bug that won't let you place a probe on c++ methods.
08:24:49  * abraxasquit (Remote host closed the connection)
08:25:04  * saghulquit (Ping timeout: 264 seconds)
08:31:40  * piscisaureus_quit (Ping timeout: 264 seconds)
08:34:00  * groundwaterquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
08:35:42  * AvianFluquit (Remote host closed the connection)
08:44:21  * stagasquit (Ping timeout: 248 seconds)
08:44:47  * bajtosquit (Quit: bajtos)
08:45:10  * m76quit (Read error: Connection reset by peer)
08:47:03  <indutny>heya
08:48:31  <brett19>indutny: Yo
08:48:36  <indutny>how are you?
08:49:31  <trevnorris>indutny: you know v8 internals. maybe you can solidify how I think v8 optimization works. :)
08:50:16  <indutny>hi
08:50:21  <indutny>let's try
08:53:01  <trevnorris>here goes... v8 has the runtime that first parses the code then executes it using the JIT. While executing the code it collects information and once it's determined the code is stable it'll IC the stable paths.
08:53:19  <trevnorris>then based on other conditions (e.g. code size) it might inline the function.
08:57:26  * bajtosjoined
09:03:40  <trevnorris>oy. so I know what soft and lazy deopts do. but I can't find squat on what eager deopts are
09:05:27  <indutny>sorry, waf afk
09:05:36  <indutny>was
09:06:00  <indutny>I don't know about eager opts, but
09:06:04  <indutny>that's not how it works :)
09:06:07  <indutny>it ICs everything
09:06:20  <indutny>and optimizes once there're enough info in ICs
09:06:26  <indutny>and reoptimizes once this info changes
09:10:40  <trevnorris>indutny: ok, so what's the "optimization" it does if it's already generated IC's? does it do some sort of branch prediction to guess what you'll most likely call next?
09:10:58  <indutny>haha
09:11:05  <indutny>well, lets say that we have function
09:11:08  * c4milojoined
09:11:10  <indutny>function (a, b) { return a + b }
09:11:22  <indutny>and it observes that it accepts only small numbers
09:11:40  <indutny>it'll try to optimize it and inline
09:11:45  <indutny>based on this assumptions
09:12:00  <indutny>without generating code for doubles, strings, undefined
09:12:10  <indutny>and will deopt if assumptions fail
09:12:18  <indutny>or change
09:14:56  <trevnorris>indutny: ok. so I thought ICs were only generated once v8 has determined the function is "stable". but you're saying there're generated before that?
09:15:29  <indutny>indeed
09:15:33  * c4miloquit (Ping timeout: 245 seconds)
09:15:33  <indutny>its the base of the optimization
09:15:46  <indutny>you should be aware that ICs are changing dynamically
09:16:01  <indutny>seriously, talk to mraleph about that :)
09:16:01  <trevnorris>ok
09:16:07  <trevnorris>heh, yeah.
09:17:04  <trevnorris>i'm mainly curious because v8 sometimes prints a message like "disabled optimization for ... reason: optimized too many times"
09:17:17  <trevnorris>and i'm wondering what kind of impact that has on the execution of the function
09:17:56  * paulfryzeljoined
09:17:56  <trevnorris>basically, exactly _what_ is the optimization that v8 has disabled. (e.g. it won't allow the function to be inlined)
09:21:11  <indutny>it disabled optimization at all
09:21:29  <indutny>if it sees something unpredictable
09:21:34  <indutny>it just disables it
09:22:12  <trevnorris>ok, and that includes any IC? meaning, it'll generate the code for the function every time it's executed.
09:22:13  * paulfryzelquit (Ping timeout: 245 seconds)
09:22:40  <brett19>I don't think it generates it for every execution. I'm pretty sure it just JIT's unoptimized code and uses that every time.
09:22:51  <brett19>JITs in a suboptimal way I mean*
09:25:04  <indutny>trevnorris: IC is not an optimization
09:25:32  <indutny>trevnorris: yes it will generate code for every function
09:25:39  <indutny>trevnorris: but full codegen is really cheap and fast
09:25:45  <indutny>its a baseline compiler :)
09:25:53  <indutny>Spidermonkey has it now too
09:26:15  <indutny>before that every js vm was generally interpreting code
09:26:57  <brett19>which is completely bananas that nobody did the work to build a JIT and optimizng compiler
09:27:07  <indutny>well
09:27:28  <indutny>yes
09:27:30  <indutny>:)
09:27:35  <indutny>well
09:27:41  <indutny>many were implementing JIT
09:27:44  <indutny>but not for baseline
09:28:32  <trevnorris>man. is there like a guide that shows the steps js can go through before it's executed by v8?
09:31:22  <indutny>hm...
09:31:29  <indutny>you can write one :)
09:31:50  <trevnorris>hah, just might once I actually figure out how all this fits together. :)
09:31:57  <indutny>yeah
09:32:13  <indutny>all came from Self VM
09:32:18  <indutny>that's very important
09:32:23  <indutny>:)
09:36:13  <trevnorris>like, what other parts does v8 contain (e.g. crankshaft).
09:36:13  <trevnorris>spidermonkey has several (e.g. JaegerMonkey for non-stable code generation, IonMonkey for full JIT compilation and now OdinMonkey for asm.js optimizations)
09:37:35  <indutny>crankshaft is an optimizing compiler
09:37:42  <indutny>trevnorris: seriously, you should give a try to jit.js
09:37:55  * AvianFlujoined
09:37:57  <indutny>trevnorris: you'll understand much more once you'll try it
09:38:06  * dshaw_1quit (Quit: Leaving.)
09:38:07  <trevnorris>indutny: i'll look more seriously into it once nodesummit is over. :)
09:38:37  <brett19>trevnoris: Spidermonkey has Baseline compiler as well now.
09:38:45  <brett19>Just was reading about it
09:39:02  <indutny>yes, that's what I was talking about from start :)
09:39:38  * hzjoined
09:41:33  <trevnorris>ok... I just prodded my hamster. can feel the brain wheels turning.
09:47:26  <trevnorris>indutny: thanks much for the insights. i'm going to brain barf, but don't feel it necessary to answer any of it. :)
09:47:38  <indutny>np
09:51:42  * AvianFluquit (Read error: Connection reset by peer)
09:54:54  * m76joined
09:58:13  * AvianFlujoined
10:02:52  * AvianFluquit (Ping timeout: 264 seconds)
10:08:54  * dshaw_joined
10:09:35  * kazuponquit (Ping timeout: 240 seconds)
10:10:18  * kazuponjoined
10:17:56  * dshaw_quit (Ping timeout: 240 seconds)
10:18:17  * inolenquit (Quit: Leaving.)
10:18:41  * paulfryzeljoined
10:21:00  * kazuponquit (Remote host closed the connection)
10:22:55  <trevnorris>so.. v8 generates the AST of all functions, but doesn't compile a function until it is called. when one is called it's first passed through the full-codegen and generates macroassembly, which is used to execute the function.
10:23:03  * paulfryzelquit (Ping timeout: 245 seconds)
10:23:17  <trevnorris>as function run type info is recorded, which is used to augment the AST about how the functions are being used. once a function is considered hot 'n stable it'll pass the code through the optimizing compiler.
10:23:39  <brett19>I think it actually does the AST on the fly each time. I seem to recall reading something earlier saying that javascript is actually the smallest AST they can create. Lmao.
10:23:49  <brett19>Let me find that.
10:23:53  <trevnorris>have it :)
10:24:05  <brett19>P
10:25:16  <trevnorris>but i'd assume there'd need to be some sort of IR in between the JS and the full-codegen
10:25:30  * abraxasjoined
10:27:27  * abraxasquit (Read error: No route to host)
10:27:30  * abraxas_joined
10:29:46  <trevnorris>so then, code can only deopt once it's been passed through the optimizing compiler.
10:34:58  * bnoordhuisjoined
10:40:55  <trevnorris>FREAK YEAH!
10:40:55  <LOUDBOT>IS THERE A BETTER CRACKER THAN OYSTER CRACKERS?
10:41:05  <trevnorris>figured out what generates an eager deopt
10:41:28  <brett19>Whats that?
10:43:15  <trevnorris>it's for unexpected element transitions
10:43:31  <trevnorris>e.g. expecting an Smi but gets an object
10:49:28  <MI6>nodejs-v0.10: #1620 UNSTABLE smartos-x64 (5/604) smartos-ia32 (4/604) linux-x64 (2/604) osx-x64 (1/604) http://jenkins.nodejs.org/job/nodejs-v0.10/1620/
10:51:44  * brsonquit (Quit: leaving)
10:55:39  * abraxas_quit (Remote host closed the connection)
10:59:26  * c4milojoined
11:03:45  * c4miloquit (Ping timeout: 245 seconds)
11:05:12  <mmalecki>bnoordhuis: so what day works for you for a beer?
11:10:09  * bajtosquit (Quit: bajtos)
11:12:13  <bnoordhuis>mmalecki: pretty much any as long as you're willing to come out to utrecht
11:15:21  <mmalecki>bnoordhuis: yeah, that works for me
11:15:34  <mmalecki>bnoordhuis: you should drop by Vigour office one day tho :-)
11:17:03  <bnoordhuis>mmalecki: i will when i'm in 020 :)
11:18:02  <mmalecki>bnoordhuis: any ETA for that ;) ?
11:18:43  <mmalecki>bnoordhuis: I'll come up with some date for this week in a second
11:18:47  * inolenjoined
11:18:49  <mmalecki>I'm debugging my crashing bitcoin wallet
11:18:55  <mmalecki>that is... not so fun
11:19:22  * paulfryzeljoined
11:19:41  * wolfeidaujoined
11:20:39  * wolfeidauquit (Remote host closed the connection)
11:22:29  * wolfeidaujoined
11:22:58  * inolenquit (Ping timeout: 240 seconds)
11:23:28  * paulfryzelquit (Ping timeout: 245 seconds)
11:26:01  <bnoordhuis>mmalecki: let me know. i'm afk for now but you have my email addy, right?
11:26:10  * bnoordhuissteps away
11:27:41  <indutny>bnoordhuis: heya
11:30:25  * bnoordhuisquit (Ping timeout: 245 seconds)
11:37:31  * c4milojoined
11:40:13  * bajtosjoined
11:47:55  * bnoordhuisjoined
11:53:28  * bajtosquit (Quit: bajtos)
11:57:46  * c4miloquit (Remote host closed the connection)
11:59:59  <MI6>joyent/libuv: Ben Noordhuis v0.10 * a43537e : test: back-port EMFILE test from master branch - http://git.io/h1qeWQ
12:00:01  <MI6>joyent/libuv: Ben Noordhuis master * 27795cf : unix: fix accept() EMFILE error handling - http://git.io/XIpcfw
12:01:33  <MI6>joyent/libuv: Ben Noordhuis master * 93cc7e5 : Merge remote-tracking branch 'origin/v0.10' (+1 more commits) - http://git.io/YOZX9w
12:07:48  * wolfeidauquit (Remote host closed the connection)
12:13:18  <trevnorris>bnoordhuis: morning
12:19:33  * inolenjoined
12:19:41  <bnoordhuis>trevnorris: sup trevor?
12:20:09  * paulfryzeljoined
12:21:11  <trevnorris>bnoordhuis: getting stuff together for a training on tues.
12:21:47  <trevnorris>bnoordhuis: took me a bit, but finally realized I could place a probe on uv_fs_read. much easier than tracing the syscall.
12:22:41  <bnoordhuis>trevnorris: right, that works :)
12:22:56  <bnoordhuis>what kind of training are you giving?
12:23:43  * inolenquit (Ping timeout: 246 seconds)
12:24:03  <trevnorris>node performance analysis basics
12:24:18  * paulfryzelquit (Ping timeout: 245 seconds)
12:24:54  <bnoordhuis>with perf?
12:26:51  <trevnorris>might touch on using perf a little bit.
12:27:15  <bnoordhuis>are you going to post notes or a video?
12:27:27  <trevnorris>yeah. I have a repo on github
12:27:38  <trevnorris>it's a mess right now. hence why I haven't gone to bed yet
12:28:13  <trevnorris>the first part is how to _not_ use node
12:28:25  <trevnorris>e.g. put a freakin cdn in front of your static content
12:30:02  <trevnorris>btw, sure you know this, but perf probe has a dumb bug that prevents placing probes on c++ methods
12:31:48  <bnoordhuis>trevnorris: you mean you need to use the mangled name?
12:33:05  <trevnorris>bnoordhuis: can't. perf internally forces use of the un-mangled name. so if you pass the mangled name it won't recognize the symbol.
12:33:34  * vptrjoined
12:34:07  <trevnorris>bnoordhuis: here, this is pretty much the issue i'm having: https://lkml.org/lkml/2013/11/15/45
12:34:50  <trevnorris>so I manually patched and built perf. but now if I pass the mangled name it just fails with a -7
12:35:14  <bnoordhuis>oh... that's odd
12:35:20  <trevnorris>took me 3 hours to get that far, so just called it quits and decided to trace at the libuv api
12:36:13  <bnoordhuis>trevnorris: you could try building perf with `make NO_DEMANGLE=1`
12:36:49  <bnoordhuis>but yeah, tracing only c symbols works too
12:38:42  <trevnorris>heh, wtf.
12:39:03  <trevnorris>bnoordhuis: so with NO_DEMANGLE=1 when I do perf probe -F -x /path/to/node it just doesn't show the c++ methods
12:39:43  <bnoordhuis>trevnorris: you mean not at all or only in their mangled form?
12:39:48  <trevnorris>not there at all
12:40:55  <bnoordhuis>oh, that's weird. one sec, let me try that
12:41:16  <trevnorris>cool
12:48:09  * AvianFlujoined
12:52:20  <bnoordhuis>trevnorris: okay, took a little longer than initially planned. had to copy over a recent kernel source tree
12:52:37  <trevnorris>heh
12:53:07  <bnoordhuis>at any rate, `perf probe -x out/Debug/node --demangle --line _ZN2v88internal4ZoneD2Ev` is not complaining
12:53:36  <bnoordhuis>otoh, --add won't let me actually add a probe...
12:54:08  <trevnorris>yeah. that's what I had when I manually patched the source and built it myself.
12:54:32  <trevnorris>since i'm using the 3.11 kernel I figured i'd need to stick to a 3.11 perf version
12:54:42  <trevnorris>(hence why I manually patched it myself)
12:54:57  <bnoordhuis>oh, NO_DEMANGLE=1 does the trick for me
12:55:33  <bnoordhuis>that's with a 3.11.8 and the perf from HEAD
12:55:43  <trevnorris>ah, ok. you can do that.
12:56:47  * abraxasjoined
12:58:06  * bajtosjoined
13:00:57  * abraxasquit (Ping timeout: 246 seconds)
13:04:28  <trevnorris>bnoordhuis: do you only get that with the debug build?
13:08:30  * AvianFluquit (Read error: Connection reset by peer)
13:13:34  * inolenjoined
13:14:09  <trevnorris>bnoordhuis: no idea why, but when I compile w/ NO_DEMANGLE even on HEAD no C++ methods show up. eh, whatever.
13:15:31  * dshaw_joined
13:17:32  * AvianFlujoined
13:18:23  * inolenquit (Ping timeout: 272 seconds)
13:20:00  * dshaw_quit (Ping timeout: 245 seconds)
13:20:56  * paulfryzeljoined
13:24:15  <bnoordhuis>trevnorris: wfm with with debug and release builds
13:24:22  <bnoordhuis>-1 with
13:25:08  * paulfryzelquit (Ping timeout: 245 seconds)
13:25:34  <trevnorris>ok. i've screwed w/ it so much i might just have something really strange going on
13:27:04  <trevnorris>bnoordhuis: thanks for helping me clear that up though. glad to know my kernel version doesn't have to match my perf version.
13:27:43  * c4milojoined
13:27:55  <kaeso>is anyone else having test-regression with 0.10.19 udp_open (probably related to the SO_REUSEPORT backport)? https://buildd.debian.org/status/package.php?p=libuv
13:29:23  * jmar777joined
13:32:30  * c4miloquit (Ping timeout: 245 seconds)
13:34:55  <bnoordhuis>kaeso: seems to work for me
13:35:24  <bnoordhuis>kaeso: do you know what kernel / kernel headers those machines have?
13:35:29  <kaeso>bnoordhuis: is there any libuv autobuilder running pre-3.9 kernel? It was ok for me too on my local machine, which is running 3.11
13:36:28  <bnoordhuis>kaeso: i believe our linux buildbot runs 3.5 or 3.7
13:36:44  <kaeso>bnoordhuis: debian's ones are 3.2
13:37:39  <bnoordhuis>kaeso: can you log into them? strace output would help
13:38:13  <kaeso>bnoordhuis: unfortunately not, but I'm trying to reproduce it on another stable machine
13:39:56  <kaeso>bnoordhuis: 0.10.18 + master SO_REUSEPORT patch was fine on the same machines before, however
13:41:30  <bnoordhuis>kaeso: can you do a git bisect somehow?
13:42:07  <kaeso>bnoordhuis: as soon as I get it to fail on a machine that I have access to :)
13:42:25  <bnoordhuis>hah, okay :)
13:43:06  <bnoordhuis>i suspect it's "unix: update events from pevents between polls" but confirmation would be nice
13:47:25  * jmar777quit (Remote host closed the connection)
13:55:01  * c4milojoined
14:06:40  * m76quit (Read error: Connection reset by peer)
14:14:23  * inolenjoined
14:19:11  * inolenquit (Ping timeout: 272 seconds)
14:21:44  * paulfryzeljoined
14:22:55  * kevinswiberjoined
14:23:53  * bnoordhuisquit (Ping timeout: 245 seconds)
14:25:58  * paulfryzelquit (Ping timeout: 245 seconds)
14:39:34  * c4miloquit (Remote host closed the connection)
14:44:36  * jmar777joined
14:55:10  * AvianFluquit (Remote host closed the connection)
14:57:41  * abraxasjoined
15:00:07  * m76joined
15:00:55  * jmar777quit (Read error: Connection reset by peer)
15:01:23  * bnoordhuisjoined
15:01:26  * jmar777joined
15:02:37  * abraxasquit (Ping timeout: 272 seconds)
15:14:34  * pachetjoined
15:14:34  * pachetquit (Changing host)
15:14:34  * pachetjoined
15:15:09  * inolenjoined
15:16:45  * inolenquit (Read error: Connection reset by peer)
15:16:52  * inolenjoined
15:17:27  * dshaw_joined
15:20:53  <MI6>nodejs-master: #726 UNSTABLE osx-x64 (1/679) smartos-ia32 (5/679) smartos-x64 (8/679) osx-ia32 (2/679) linux-ia32 (2/679) http://jenkins.nodejs.org/job/nodejs-master/726/
15:21:05  * inolenquit (Ping timeout: 241 seconds)
15:22:28  * paulfryzeljoined
15:22:31  * dshaw_quit (Ping timeout: 272 seconds)
15:26:48  * paulfryzelquit (Ping timeout: 245 seconds)
15:27:34  * hueniversequit (Quit: Leaving.)
15:28:25  <MI6>joyent/libuv: Marc Schlaich v0.10 * c3e05ba : gitignore: ignore *.pyc files - http://git.io/EDOWNw
15:37:26  <kaeso>bnoordhuis: https://paste.debian.net/67676/ the strace
15:40:48  <bnoordhuis>kaeso: can you run it as `strace run-tests udp_open udp_open`? you're tracing the parent process now
15:42:14  <kaeso>bnoordhuis: isn't line 281 the failing child?
15:42:44  <bnoordhuis>oh, you did strace -f?
15:42:53  <bnoordhuis>right
15:42:58  <kaeso>bnoordhuis: yep
15:44:08  <kaeso>bnoordhuis: https://paste.debian.net/67678/ is the parent only, if you happen to need it
15:44:26  <kaeso>bnoordhuis: I'm currently trying several kernel/libc combination, will bisect in some seconds
15:45:43  <bnoordhuis>[pid 5285] setsockopt(5, SOL_SOCKET, 0xf /* SO_??? */, [1], 4) = -1 ENOPROTOOPT (Protocol not available)
15:45:51  <bnoordhuis>0xf is SO_REUSEPORT
15:46:09  <bnoordhuis>kaeso: is that v0.10.18 or 19?
15:46:19  <kaeso>bnoordhuis: plain .19
15:46:37  <bnoordhuis>ah... seems i botched the back-port...
15:46:38  <kaeso>bnoordhuis: but .18 + backported patch was ok before
15:47:48  <kaeso>bnoordhuis: ok, some more hints:
15:47:58  * c4milojoined
15:48:09  <kaeso>kernel 3.2 + glibc 2.13 is fine
15:48:34  <kaeso>kernel 3.2 + glibc 2.17 fails
15:48:48  <kaeso>kernel 3.11 + glibc 2.17 is fine
15:50:01  <kaeso>but
15:50:42  <kaeso>0.10.18 was building fine before on it
15:50:57  <kaeso>(patched .18, always)
15:52:29  * mikealquit (Quit: Leaving.)
15:53:01  * c4miloquit (Ping timeout: 272 seconds)
15:53:59  * dshaw_joined
15:54:17  * paulfryzeljoined
15:55:37  <MI6>joyent/libuv: Ben Noordhuis v0.10 * 74457d0 : linux: fix up SO_REUSEPORT back-port - http://git.io/prpqNw
15:55:49  <bnoordhuis>kaeso: ^ thanks for investigating
15:58:06  * dshaw_quit (Ping timeout: 240 seconds)
16:04:04  * stagasjoined
16:04:29  <kaeso>bnoordhuis: test ok with the patch, I'll re-try an upload to builders as soon as I have access to my gpg key, maybe tonight. thx :)
16:05:56  <bnoordhuis>cheers :)
16:08:04  * AvianFlujoined
16:17:39  * inolenjoined
16:22:32  * jmar777quit (Read error: Connection reset by peer)
16:22:56  * jmar777joined
16:28:18  <indutny>bnoordhuis: hey
16:28:18  <indutny>yt?
16:33:05  * mcavagejoined
16:41:03  * bnoordhuisquit (Ping timeout: 272 seconds)
16:45:47  * c4milojoined
16:45:48  * octetcloudjoined
16:49:05  * c4miloquit (Remote host closed the connection)
16:51:50  * bajtosquit (Quit: bajtos)
17:02:09  * inolenquit (Quit: Leaving.)
17:03:12  * Benviejoined
17:09:53  * TooTallNatejoined
17:17:26  * groundwaterjoined
17:23:15  * bajtosjoined
17:25:36  * mikealjoined
17:29:25  * mikealquit (Client Quit)
17:30:13  * kevinswiberquit (Remote host closed the connection)
17:30:37  * mikealjoined
17:34:01  * kevinswiberjoined
17:46:11  * bnoordhuisjoined
17:50:18  * inolenjoined
17:50:29  * bnoordhuisquit (Ping timeout: 248 seconds)
17:52:15  * mikealquit (Quit: Leaving.)
17:57:10  * piscisaureus_joined
17:58:55  * dshaw_joined
18:22:16  * paulfryzelquit (Read error: Connection reset by peer)
18:22:55  * paulfryzeljoined
18:33:33  * groundwaterquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
18:35:44  * groundwaterjoined
18:39:34  * mikealjoined
18:47:00  <MI6>libuv-v0.10: #133 UNSTABLE smartos (2/190) windows (8/190) http://jenkins.nodejs.org/job/libuv-v0.10/133/
18:49:11  <MI6>libuv-master: #353 UNSTABLE windows (5/197) smartos (3/198) http://jenkins.nodejs.org/job/libuv-master/353/
18:53:17  * paulfryzelquit (Read error: Connection reset by peer)
18:53:38  * paulfryzeljoined
18:55:03  * c4milojoined
19:02:50  <MI6>libuv-node-integration: #319 UNSTABLE linux-x64 (1/604) smartos-x64 (4/604) smartos-ia32 (4/604) http://jenkins.nodejs.org/job/libuv-node-integration/319/
19:04:44  * c4miloquit (Remote host closed the connection)
19:13:12  * bnoordhuisjoined
19:18:27  * c4milojoined
19:21:19  <MI6>libuv-node-integration: #320 UNSTABLE osx-x64 (1/679) osx-ia32 (1/679) smartos-x64 (7/679) smartos-ia32 (6/679) http://jenkins.nodejs.org/job/libuv-node-integration/320/
19:21:44  * bajtosquit (Quit: bajtos)
19:23:16  * c4miloquit (Ping timeout: 264 seconds)
19:26:21  <MI6>joyent/node: David Chan master * bd4f990 : util: Format negative zero as '-0' - http://git.io/E8Bt5w
19:27:16  <MI6>libuv-v0.10-gyp: #103 FAILURE windows-x64 (7/190) smartos-ia32 (3/190) windows-ia32 (7/190) http://jenkins.nodejs.org/job/libuv-v0.10-gyp/103/
19:28:44  <MI6>joyent/node: David Chan master * b3e4fc6 : util: Format negative zero as '-0' - http://git.io/5DhGMg
19:29:00  <TooTallNate>sorry, force-pushed. needed to fix email address to match CLA
19:29:20  <tjfontaine>jesus.
19:29:29  <tjfontaine>:/
19:29:34  * bajtosjoined
19:30:34  * LeftWingbanshee scream
19:33:32  * indexzeroquit (Quit: indexzero)
19:33:43  * bajtosquit (Read error: Operation timed out)
19:37:09  * stagasquit (Ping timeout: 246 seconds)
19:40:10  <MI6>nodejs-master: #727 UNSTABLE osx-x64 (1/679) smartos-ia32 (5/679) smartos-x64 (8/679) osx-ia32 (1/679) http://jenkins.nodejs.org/job/nodejs-master/727/
19:44:49  <MI6>libuv-v0.10: #134 UNSTABLE linux (1/190) smartos (3/190) windows (7/190) http://jenkins.nodejs.org/job/libuv-v0.10/134/
19:46:38  <MI6>libuv-master: #354 UNSTABLE windows (5/197) smartos (3/198) http://jenkins.nodejs.org/job/libuv-master/354/
19:53:09  <MI6>libuv-master-gyp: #306 FAILURE smartos-ia32 (3/198) windows-x64 (5/197) http://jenkins.nodejs.org/job/libuv-master-gyp/306/
19:55:13  <MI6>libuv-master: #355 UNSTABLE windows (5/197) smartos (5/198) http://jenkins.nodejs.org/job/libuv-master/355/
19:55:32  <MI6>nodejs-master: #728 UNSTABLE osx-x64 (1/679) smartos-ia32 (6/679) smartos-x64 (9/679) osx-ia32 (1/679) http://jenkins.nodejs.org/job/nodejs-master/728/
19:59:08  <MI6>libuv-master-gyp: #307 UNSTABLE smartos-ia32 (3/198) windows-x64 (5/197) smartos-x64 (3/198) windows-ia32 (6/197) http://jenkins.nodejs.org/job/libuv-master-gyp/307/
19:59:12  * c4milojoined
20:02:23  * jmar777quit (Remote host closed the connection)
20:07:31  <MI6>libuv-node-integration: #321 UNSTABLE linux-ia32 (1/604) smartos-x64 (5/604) smartos-ia32 (7/604) http://jenkins.nodejs.org/job/libuv-node-integration/321/
20:08:16  <MI6>libuv-v0.10-gyp: #104 FAILURE windows-x64 (7/190) http://jenkins.nodejs.org/job/libuv-v0.10-gyp/104/
20:17:34  * bradleymeckjoined
20:19:46  * m76quit (Read error: Connection reset by peer)
20:21:56  * mikealquit (Quit: Leaving.)
20:27:14  * mikealjoined
20:29:50  <indutny>hey people
20:29:54  <bnoordhuis>hey fedor
20:29:56  <indutny>why haven't we backported https://github.com/joyent/node/commit/16934d9210546bf19d4af8d98652aa5d636ce693 ?
20:29:59  <indutny>to v0.8
20:30:52  <bnoordhuis>did you check whether v0.8 has the same issue?
20:31:08  <indutny>yes, it has
20:31:13  <indutny>:)
20:31:17  <indutny>patch lands clearly
20:31:29  <indutny>should I just push it?
20:32:05  <indutny>let me try running that test on v0.8
20:32:43  <indutny>ah
20:32:45  <indutny>there're no test
20:33:33  <indutny>ah, wait
20:33:39  <indutny>it seems that MakeCallback has HandleScope
20:35:24  <indutny>bnoordhuis: is it really tied to MakeCallback
20:39:50  <indutny>tests seems to be passing
20:44:44  * wolfeidaujoined
20:46:43  <MI6>libuv-node-integration: #322 UNSTABLE osx-x64 (1/679) smartos-x64 (10/679) smartos-ia32 (6/679) http://jenkins.nodejs.org/job/libuv-node-integration/322/
20:54:18  * mikealquit (Quit: Leaving.)
20:59:18  <bnoordhuis>indutny: yes. MakeCallback() returns whatever the callback returned as a Local
20:59:44  <bnoordhuis>err, a Handle. the point stands though :)
21:00:14  * abraxasjoined
21:05:16  * abraxasquit (Ping timeout: 264 seconds)
21:08:15  * bnoordhuisquit (Ping timeout: 240 seconds)
21:13:01  * bnoordhuisjoined
21:15:57  * stagasjoined
21:21:22  <tjfontaine>indutny: you could run the dtrace script to see if it's actually happening
21:28:26  <tjfontaine>indutny: I'm not seeing any MakeCallback entries without a HandleScope on the stack
21:29:43  <bnoordhuis>if a.b == b and b.c == c and c.a == a, then what is the retained size of a?
21:29:55  <bnoordhuis>sizeof(a) + sizeof(b) + sizeof(c)?
21:31:30  <tjfontaine>I've had a lot of thoughts on this, I think you can only give two numbers
21:31:47  <tjfontaine>a single object size, representing the actual storage of the object itself
21:31:54  * mikealjoined
21:32:00  <tjfontaine>and then an acyclic sum of the reference tree
21:32:16  <tjfontaine>it's the only reasonable way to account
21:32:21  <bnoordhuis>right. the self size and a best-effort retained size
21:32:40  <tjfontaine>which isn't necessarily a representative percentage of the heap
21:32:51  <tjfontaine>just a "this object can see this much information"
21:33:12  <bnoordhuis>yeah. that's the stage where i'm at with my profiler bindings
21:34:50  <tjfontaine>indutny: heap usage is also quite stable on v0.8 wrt walmart test
21:43:02  <indutny>tjfontaine: ok
21:43:08  <indutny>tjfontaine: just good to know
21:44:03  <tjfontaine>indutny: I'll let this run over night, but I'm fairly confident things are ok
22:03:59  * dshaw_quit (Quit: Leaving.)
22:04:24  * wolfeidauquit (Remote host closed the connection)
22:30:40  * rendarquit
22:34:46  * dshaw_joined
22:34:50  * pachetquit (Quit: leaving)
22:35:55  * indexzerojoined
22:36:41  * dshaw_1joined
22:36:51  * dshaw_quit (Read error: Connection reset by peer)
22:37:22  * defunctzombie_zzchanged nick to defunctzombie
22:38:35  * kevinswiberquit (Remote host closed the connection)
22:39:07  <mmalecki>what happened to the plans of making some stream pipes act directly on fd's?
22:39:24  <tjfontaine>can you be more specific?
22:40:09  <mmalecki>yeah, I recall there were plans of making, for example, a pipe between fs.createReadStream and net.Socket work on lower level
22:40:30  <tjfontaine>a stream.sendfile
22:40:31  <mmalecki>well, plans. more like wishful thoughts maybe?
22:41:00  <tjfontaine>it's still a potential, but I don't think we'll be seeing it for 1.0 unless someone bangs out an example we start testing with
22:41:23  <mmalecki>tjfontaine: was it going to be a separate method?
22:41:29  <Domenic_>is there anything in the streams API as stands that would prohibit that?
22:41:46  <tjfontaine>mmalecki: it has to be, .pipe() deals with multiple sources and backpressure on a userland level
22:41:47  * dshaw_1quit (Ping timeout: 272 seconds)
22:41:58  <mmalecki>tjfontaine: you know what'd be great? if it accepted any of "our" streams
22:41:59  <tjfontaine>mmalecki: a sendfile like mechanism would explicitly opt out of that system
22:42:01  <mmalecki>not only file
22:42:05  <mmalecki>right
22:42:14  <mmalecki>yeah, I was just thinking about making that a lot dumber
22:42:28  <tjfontaine>it works with fd's
22:42:31  <mmalecki>like stream.sendHandle or whatever, which'd accept fs, net, etc.
22:42:35  * stagasquit (Ping timeout: 252 seconds)
22:42:40  <tjfontaine>[minus whatever windows needs to accomplish]
22:42:57  <tjfontaine>mmalecki: yes, we're talking about the same thing, but without necessarily being the ones doing the plumbing and instead leaking the OS handle it
22:43:04  <tjfontaine>*letting
22:43:10  <mmalecki>yup
22:43:27  <mmalecki>so when's 1.0?
22:43:50  <tjfontaine>as soon as possible after a 0.12 release
22:44:08  <mmalecki>hmm, I might be able to crack that out before then
22:44:26  <tjfontaine>well there's no new api between 0.12 and 1.0 planned
22:44:28  <mmalecki>not sure how complicated it'd end up being...
22:44:34  <tjfontaine>unless it's to support some critical feature
22:45:42  <mmalecki>tjfontaine: you gotta admit that this would be a nice feature :)
22:45:52  <tjfontaine>I agree it would be
22:47:05  * wolfeidaujoined
22:51:26  * defunctzombiechanged nick to defunctzombie_zz
22:54:30  * hzquit
23:01:07  * abraxasjoined
23:02:00  * bnoordhuisquit (Quit: leaving)
23:05:25  * abraxasquit (Ping timeout: 245 seconds)
23:10:40  * juliangruberquit (Quit: ZNC - http://znc.in)
23:29:55  * `3rdEdenchanged nick to `3E|Zz
23:35:03  * dshaw_joined
23:49:30  * indexzeroquit (Quit: indexzero)
23:49:35  * st_lukejoined
23:53:42  * paulfryzelquit (Read error: Connection reset by peer)
23:54:15  * paulfryzeljoined
23:55:18  * kazuponjoined