00:00:53  <warz>man thats awesome. thanks for that.
00:05:22  * paddybyersquit (Ping timeout: 246 seconds)
00:05:27  <warz>looks like it's calling open several times. also, some interesting thing im seeing is a bunch of open calls failing for shared objects that are failing.
00:06:00  <warz>yet ldd says everythings good, and the code runs and appears to function as expected.
00:06:29  <warz>for has nothing to do with libuv at this point. just some other lib im also using.
00:08:00  <MI6>joyent/libuv: Ben Noordhuis v0.8 * 72955c2 : windows: map WSAESHUTDOWN to UV_EPIPE This is a back-port of commit 4830 - http://git.io/Zsvc9w
00:10:06  * travis-cijoined
00:10:06  <travis-ci>[travis-ci] joyent/libuv#872 (v0.8 - 72955c2 : Ben Noordhuis): The build was fixed.
00:10:06  <travis-ci>[travis-ci] Change view : https://github.com/joyent/libuv/compare/deeec421afed...72955c29c21c
00:10:06  <travis-ci>[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/3188075
00:10:06  * travis-cipart
00:10:37  <bnoordhuis>warz: yeah, strace is awesome. truss and dtruss (the osx/bsd/sunos equivs) don't come close
00:11:12  <bnoordhuis>warz: failing open calls in the prologue are nothing to worry about, that's usually libc probing the system it runs on
00:13:05  <warz>ya thats what it kind of looked like. different versions or the same libs, etc.
00:24:42  * sblomquit (Ping timeout: 264 seconds)
00:28:54  * TooTallNatequit (Ping timeout: 240 seconds)
00:30:05  * EhevuTov_joined
00:31:39  * TooTallNatejoined
00:33:22  * EhevuTovquit (Ping timeout: 246 seconds)
00:37:46  * EhevuTov__joined
00:40:55  * EhevuTov_quit (Ping timeout: 252 seconds)
00:45:18  * kazuponjoined
00:45:19  <bnoordhuis>ircretary: tell piscisaureus https://github.com/bnoordhuis/libuv/commit/919869e
00:45:19  <ircretary>bnoordhuis: I'll be sure to tell piscisaureus
00:50:05  * kazuponquit (Ping timeout: 255 seconds)
00:50:44  * stagas_quit (Ping timeout: 255 seconds)
00:54:56  * benoitcquit (Excess Flood)
00:56:32  * EhevuTov__changed nick to EhevuTov
00:59:01  * benoitcjoined
01:11:07  * loladiroquit (Quit: loladiro)
01:20:15  * loladirojoined
01:23:34  * lohkeyjoined
01:28:01  * abraxasjoined
01:31:43  * lohkeyquit (Quit: lohkey)
01:36:34  * indexzerojoined
01:46:08  * kazuponjoined
01:48:30  * indexzeroquit (Quit: indexzero)
01:50:42  * kazuponquit (Ping timeout: 252 seconds)
01:58:34  * AvianFlujoined
02:06:29  * loladiroquit (Quit: loladiro)
02:08:13  * bradleymeckjoined
02:11:36  * kazuponjoined
02:14:12  * loladirojoined
02:18:47  * kazuponquit (Remote host closed the connection)
02:19:36  * loladiroquit (Quit: loladiro)
02:25:19  * EhevuTovquit (Quit: This computer has gone to sleep)
02:33:53  * AvianFluquit (Remote host closed the connection)
02:37:06  * benoitcquit (Excess Flood)
02:40:55  * joshthecoderquit (Quit: Leaving...)
02:43:47  * kristatequit (Remote host closed the connection)
02:44:03  * benoitcjoined
02:46:37  * rvaggquit (Quit: ta ta)
02:56:06  <TooTallNate>bnoordhuis: hey how can i link to another .node file?
02:56:12  <TooTallNate>this doesn't work: -l../node-ogg/build/Release/binding.node
02:56:50  <bnoordhuis>TooTallNate: hm, just ../path/to/foo.node?
02:56:52  <bnoordhuis>no -l
02:56:59  <TooTallNate>ok lemme try
02:58:32  <bnoordhuis>TooTallNate: don't know how effective that will be in practice
02:58:42  * stagasquit (Ping timeout: 260 seconds)
02:58:48  <bnoordhuis>you'd still have to make sure that foo.node is on the library path
02:59:03  <TooTallNate>bnoordhuis: rpath, right?
02:59:14  <bnoordhuis>TooTallNate: yes, or setting LD_LIBRARY_PATH
02:59:28  <TooTallNate>but ya, i'm mostly just experimenting with the feasibility of this all
03:00:44  * stagasjoined
03:00:45  <TooTallNate>bnoordhuis: ok that seemed to work
03:02:21  <TooTallNate>bnoordhuis: ok next question: so now one binding.node file links to another binding.node file. do the matching names cause a collision of some sort?
03:02:30  <TooTallNate>it *seems* like it's working properly, just want to ask
03:03:03  <bnoordhuis>TooTallNate: possibly. maybe check the output of `ldd binding.node` (the one you require())
03:05:01  <TooTallNate>bnoordhuis: the fruity OS equivalent shows: https://gist.github.com/254455884b30f9d86d71
03:05:16  <TooTallNate>bnoordhuis: looks like there could be a problem, haha
03:05:25  <bnoordhuis>yeah, that looks tricky :)
03:05:31  <TooTallNate>haha
03:05:39  <TooTallNate>probably safest to stick with distinct .node names
03:05:43  <TooTallNate>easy enough
03:06:11  <TooTallNate>bnoordhuis: ok thanks man, that helped a lot!
03:06:13  <TooTallNate>gotta run
03:06:17  * TooTallNatequit (Quit: ["Textual IRC Client: www.textualapp.com"])
03:11:24  * c4milojoined
03:23:41  * kazuponjoined
03:33:35  * brsonquit (Quit: leaving)
03:37:28  * bnoordhuisquit (Ping timeout: 246 seconds)
03:48:05  * indexzerojoined
03:48:14  * indexzeroquit (Client Quit)
03:54:13  * xer0xjoined
03:57:59  * xer0xquit (Client Quit)
04:00:26  * kristatejoined
04:01:22  * kristatequit (Remote host closed the connection)
04:11:43  * joshthecoderjoined
04:13:15  * bradleymeckquit (Quit: bradleymeck)
04:16:37  * LOUDBOTquit (Remote host closed the connection)
04:16:44  * LOUDBOTjoined
04:25:15  * warzquit
04:26:46  * indexzerojoined
04:26:51  * c4miloquit (Remote host closed the connection)
04:30:45  * LOUDBOTquit (Remote host closed the connection)
04:35:18  * LOUDBOTjoined
04:35:38  * AvianFlujoined
04:40:25  * mmaleckichanged nick to mmalecki[zzz]
04:53:54  * brsonjoined
05:03:42  * LOUDBOTquit (Remote host closed the connection)
05:04:16  * LOUDBOTjoined
05:10:04  * LOUDBOTquit (Remote host closed the connection)
05:11:30  * LOUDBOTjoined
05:18:32  * LOUDBOTquit (Remote host closed the connection)
05:19:06  * LOUDBOTjoined
05:19:17  * LOUDBOTquit (Remote host closed the connection)
05:19:51  * LOUDBOTjoined
05:19:57  * LOUDBOTquit (Remote host closed the connection)
05:20:31  * LOUDBOTjoined
05:22:03  * loladirojoined
05:22:05  * LOUDBOTquit (Remote host closed the connection)
05:22:12  * LOUDBOTjoined
05:22:55  * LOUDBOTquit (Remote host closed the connection)
05:23:02  * LOUDBOTjoined
05:25:01  * LOUDBOTquit (Remote host closed the connection)
05:25:35  * LOUDBOTjoined
05:29:17  * LOUDBOTquit (Remote host closed the connection)
05:29:24  * LOUDBOTjoined
05:32:12  * bnoordhuisjoined
05:48:39  * xer0xjoined
05:50:18  * xer0xquit (Client Quit)
05:50:26  * xer0xjoined
05:50:38  * xer0xquit (Client Quit)
05:51:07  * brsonquit (Remote host closed the connection)
05:57:15  * stagas_joined
06:02:06  * xer0xjoined
06:05:26  * xer0xquit (Client Quit)
06:08:24  * LOUDBOTquit (Remote host closed the connection)
06:08:31  * LOUDBOTjoined
06:12:31  * LOUDBOTquit (Remote host closed the connection)
06:12:36  * xer0xjoined
06:13:05  * LOUDBOTjoined
06:14:19  * LOUDBOTquit (Remote host closed the connection)
06:14:53  * LOUDBOTjoined
06:16:57  * LOUDBOTquit (Remote host closed the connection)
06:17:04  * LOUDBOTjoined
06:18:39  * LOUDBOTquit (Remote host closed the connection)
06:18:46  * LOUDBOTjoined
06:30:29  * paddybyersjoined
06:32:49  * bnoordhuisquit (Ping timeout: 246 seconds)
06:37:14  * LOUDBOTquit (Remote host closed the connection)
06:37:20  * LOUDBOTjoined
06:37:21  * LOUDBOTquit (Remote host closed the connection)
06:37:27  * LOUDBOTjoined
06:37:37  * LOUDBOTquit (Remote host closed the connection)
06:37:43  * LOUDBOTjoined
06:37:52  * LOUDBOTquit (Remote host closed the connection)
06:37:59  * LOUDBOTjoined
06:40:04  * xer0xquit (Quit: leaving)
06:40:09  * LOUDBOTquit (Remote host closed the connection)
06:40:12  * xer0xjoined
06:40:15  * LOUDBOT_joined
06:42:49  * LOUDBOT_quit (Remote host closed the connection)
06:42:56  * LOUDBOTjoined
06:44:15  * LOUDBOTquit (Remote host closed the connection)
06:44:49  * LOUDBOTjoined
06:52:46  * xer0xquit (Quit: leaving)
06:52:56  * xer0xjoined
06:56:06  * xer0xquit (Client Quit)
07:00:46  * joshthecoderquit (Quit: Linkinus - http://linkinus.com)
07:02:50  * indexzeroquit (Quit: indexzero)
07:03:31  * indexzerojoined
07:13:46  * rendarjoined
07:20:13  * AvianFluquit (Remote host closed the connection)
07:22:49  * benoitcquit (Excess Flood)
07:30:08  * paddybyersquit (Ping timeout: 245 seconds)
07:32:33  * benoitcjoined
07:33:25  * AndreasMadsenjoined
07:33:33  * AndreasMadsenquit (Remote host closed the connection)
07:44:49  * benoitcquit (Excess Flood)
07:50:03  * paddybyersjoined
07:50:03  * benoitcjoined
08:07:14  * `3rdEdenjoined
08:15:17  * indexzeroquit (Quit: indexzero)
08:17:05  * EhevuTovjoined
08:27:13  * loladiroquit (Quit: loladiro)
08:36:35  * paddybyers_joined
08:39:01  * kazuponquit (Remote host closed the connection)
08:39:43  * paddybyersquit (Ping timeout: 245 seconds)
08:39:43  * paddybyers_changed nick to paddybyers
08:41:47  * janjongboomjoined
08:49:13  * paddybyersquit (Remote host closed the connection)
08:49:32  * paddybyersjoined
08:52:00  * stagas_quit (Ping timeout: 252 seconds)
08:53:59  * paddybyersquit (Ping timeout: 256 seconds)
08:56:44  * wavded_quit (Read error: Connection reset by peer)
08:57:51  * indutnyquit (Remote host closed the connection)
08:57:52  * wavdedjoined
08:58:20  * Raynosquit (Excess Flood)
08:58:58  * dscapequit (Ping timeout: 260 seconds)
08:59:15  * dscapejoined
08:59:58  * Raynosjoined
09:03:25  * wavdedquit (Remote host closed the connection)
09:05:22  * wavdedjoined
09:06:06  * stagasquit (Ping timeout: 276 seconds)
09:07:26  * stagasjoined
09:20:43  * wavdedquit (Remote host closed the connection)
09:45:12  * janjongboomquit (Quit: janjongboom)
09:54:51  * janjongboomjoined
09:59:44  * indutnyjoined
10:22:02  * stagas_joined
10:53:02  <indutny>hoya
11:04:00  * `3rdEdenchanged nick to `3E|AWEH
11:15:52  * abraxasquit (Remote host closed the connection)
11:31:24  * EhevuTovquit (Quit: This computer has gone to sleep)
11:41:19  * `3E|AWEHchanged nick to `3rdEden
11:49:15  * mikealjoined
12:10:31  * mikealquit (Read error: Connection reset by peer)
12:12:33  * mikealjoined
12:25:25  * wavdedjoined
12:26:13  * mikeal1joined
12:28:17  * mikealquit (Read error: Connection reset by peer)
12:36:59  * sgallaghjoined
12:44:43  * mikeal1quit (Ping timeout: 252 seconds)
12:44:58  * mikealjoined
12:45:24  * stagas_quit (Ping timeout: 255 seconds)
12:48:09  * c4milojoined
12:52:06  * c4miloquit (Ping timeout: 240 seconds)
13:03:42  * stagas_joined
13:14:02  * piscisaureus_joined
13:24:24  * paddybyersjoined
13:37:34  * sgallaghquit (Ping timeout: 260 seconds)
13:41:31  * loladirojoined
13:41:32  * loladiroquit (Client Quit)
13:45:48  * mmalecki[zzz]changed nick to mmalecki
13:48:07  * mikealquit (Ping timeout: 260 seconds)
13:49:36  * janjongboomquit (Quit: janjongboom)
13:50:07  * mikealjoined
14:01:28  * stagas_quit (Quit: Bye)
14:05:50  * mikealquit (Read error: Connection reset by peer)
14:07:54  * mikealjoined
14:17:06  * mikeal1joined
14:17:13  * mikealquit (Ping timeout: 245 seconds)
14:23:19  * hzjoined
14:40:23  * c4milojoined
14:41:51  * janjongboomjoined
14:53:00  * bradleymeckjoined
15:03:19  * piscisaureus_quit (Ping timeout: 252 seconds)
15:13:14  <mmalecki>ircretary: ask bnoordhuis if he's going to be in Amsterdam on the first week of December
15:13:15  <ircretary>mmalecki: I'll tell bnoordhuis you asked.
15:16:47  * piscisaureus_joined
15:18:37  * mikeal1quit (Read error: Connection reset by peer)
15:18:55  * mikealjoined
15:25:56  * hzquit (Ping timeout: 272 seconds)
15:28:19  * hzjoined
15:33:59  * philips_quit (Excess Flood)
15:37:41  * mikealquit (Ping timeout: 255 seconds)
15:38:21  * philips_joined
15:38:43  * mikealjoined
15:44:07  * TheJHjoined
15:48:31  * bnoordhuisjoined
15:48:51  <bnoordhuis>mmalecki: yes, probably
15:51:15  <mmalecki>bnoordhuis: word. there's some probability of me dropping by
15:52:59  <saghul>piscisaureus_ hey, do you think there is a possibility that here https://github.com/joyent/libuv/blob/master/src/win/pipe.c#L1374 avail is > 65536 ?
15:53:22  <piscisaureus_>unlikely
15:53:36  * loladirojoined
15:53:39  <piscisaureus_>saghul: but whatever, you can just ignore it and cap at 64k right?
15:54:09  <saghul>piscisaureus_ sure, but I had an assert there and some guy managed to hit it somehow
15:54:23  <saghul>i guess I'll remove the assert and cap to 64k
15:54:37  <piscisaureus_>saghul: it would be possible if you connected to a named pipe that has it's buffer size set higher than 65k
15:54:54  <saghul>piscisaureus_ aha. thanks!
15:55:07  <piscisaureus_>I don't think libuv specifies a size that large but maybe windows sometimes ignores us
15:55:26  <piscisaureus_>From MSDN
15:55:26  <piscisaureus_>Every time a named pipe is created, the system creates the inbound and/or outbound buffers using nonpaged pool, which is the physical memory used by the kernel. The number of pipe instances (as well as objects such as threads and processes) that you can create is limited by the available nonpaged pool. Each read or write request requires space in the buffer for the read or write data, plus additional space for the internal data structures.
15:55:26  <piscisaureus_>The input and output buffer sizes are advisory. The actual buffer size reserved for each end of the named pipe is either the system default, the system minimum or maximum, or the specified size rounded up to the next allocation boundary. The buffer size specified should be small enough that your process will not run out of nonpaged pool, but large enough to accommodate typical requests.
15:56:12  <saghul>so it seems possible if windows decides so
16:00:04  <piscisaureus_>bnoordhuis: do you know if ngx_queue_foreach is supposed to be safe when removing entries at the same time. It doesn't look like it.
16:01:45  * loladiroquit (Quit: loladiro)
16:13:35  * hzquit (Disconnected by services)
16:13:38  * hzjoined
16:28:17  * warzjoined
16:28:52  * loladirojoined
16:32:34  <piscisaureus_>bnoordhuis: what did you this week?
16:33:02  * loladiroquit (Client Quit)
16:34:41  * paddybyersquit (Ping timeout: 256 seconds)
16:44:39  * `3rdEdenquit (Remote host closed the connection)
16:45:41  * janjongboomquit (Quit: janjongboom)
16:48:56  * loladirojoined
16:49:36  * AvianFlujoined
16:50:47  * loladiroquit (Client Quit)
16:57:06  * hzquit
17:08:00  * bradleymeckquit (Quit: bradleymeck)
17:13:05  <indutny>bnoordhuis: autoscaling
17:13:06  <indutny>bnoordhuis: meh
17:13:15  <indutny>bnoordhuis: user's logic in library
17:37:43  * toothrotquit (Ping timeout: 260 seconds)
17:40:03  * toothrjoined
17:47:36  * EhevuTovjoined
18:00:22  * rje`macjoined
18:10:47  * hzjoined
18:12:01  * sgallaghjoined
18:16:08  * loladirojoined
18:22:10  * paddybyersjoined
18:31:16  * TooTallNatejoined
18:35:21  <sgallagh>bnoordhuis: Just as an FYI, the Fedora Packaging Committee granted my exception request for libev bundling, so I'll be building an official Fedora package of libuv shortly. The one catch is that they put a time-limit on it: the remaining unbundling needs to be done within 12 months (either dropping libev entirely or forking the project formally).
18:35:39  <sgallagh>Given that you already have a lot of progress made in the rm-ev branch, I suspect this is not an issue.
18:37:47  <piscisaureus_>sgallagh: so, what does "forking the project formally" mean?
18:37:55  <piscisaureus_>sgallagh: that we "formally" fork libev?
18:38:48  <sgallagh>piscisaureus_: Yeah, create libev_uv or something like that and accept the responsibility of patching it when needed.
18:39:10  <sgallagh>And maintaining a stable public ABI (breaking it only with good cause)
18:39:13  <piscisaureus_>sgallagh: I suppose this is okay
18:39:26  <piscisaureus_>sgallagh: but I mean, what if we said "libuv is not using libev" :-)
18:39:46  <piscisaureus_>there just happens to be the same functions
18:39:50  <piscisaureus_>would we get away with it?
18:39:51  <sgallagh>piscisaureus_: Well, it's not that simple, partly for licensing issues
18:40:08  <piscisaureus_>how so:
18:40:17  <piscisaureus_>I mean, there's also code from freebsd in there
18:40:28  <piscisaureus_>in v8 there's also code that they nicked from other projects
18:40:39  <sgallagh>Depending on the license, it may be plagiarism if you explicitly claim to NOT be using a piece of code
18:40:46  <piscisaureus_>ah ya
18:40:59  <piscisaureus_>well I am probably not talking to the right guy here
18:41:08  <sgallagh>hmm?
18:41:13  <piscisaureus_>but I mean, we practically forked libev
18:41:21  <sgallagh>Right, I realize that.
18:41:28  <piscisaureus_>sgallagh: I mean, you are not responsible for this policy so I should not convince you
18:41:40  <sgallagh>The fact that it's forked so substantially is why they allowed me to get the bundling exception
18:41:41  <piscisaureus_>sgallagh: so effectively, we patch it when needed etc blabla
18:42:16  <sgallagh>It was contingent on me working with upstream to break it out and fork it (or drop the use of it)
18:42:52  * mmaleckichanged nick to mmalecki[brb]
18:42:54  <sgallagh>And actually, I could be considered *partly* responsible for the policy. I've had input into setting it
18:43:16  <piscisaureus_>sgallagh: aha. So I do have to convince you. Good :-)
18:43:27  <sgallagh>The primary reason for it is so that if a security vulnerability comes up in libev, we know where to patch it.
18:43:46  <sgallagh>So lying about including it might lead to you having an exploitable issue
18:44:02  <piscisaureus_>sgallagh: sure... if vulnerabilities come up in libuv you also know where to patch it :-)
18:44:12  <piscisaureus_>sgallagh: sure, I see the purpose of it
18:44:13  <sgallagh>If you were linked against the standard system lib, you'd just get it automatically when we fixed the system lib
18:44:41  <sgallagh>But if you're bundling, we also need to know that we need to rebuild your copy of it with a patch (possibly a modified version of the patch too)
18:45:18  <piscisaureus_>sgallagh: true. This works in theory, but in practice libev bugs don't get fixed ;-)
18:45:25  <sgallagh>hehehehe
18:45:59  <piscisaureus_>sgallagh: it's also kinda sad that you are going to make node use the system openssl so we won't have NPN, false start etc
18:46:04  <piscisaureus_>no spdy for node users on fedora
18:46:21  <piscisaureus_>But I suppose, from a security perspective, this is actually better
18:46:45  <sgallagh>piscisaureus_: Hmm, I didn't realize Node had forked openssl too
18:46:50  <sgallagh>That's... kind of scary
18:47:03  <piscisaureus_>sgallagh: well...
18:47:17  <sgallagh>Could you explain what NPN and false start are? I'm new to Node
18:47:20  <piscisaureus_>sgallagh: the forking is much more shallow, and basically it's all google's patches that we landed
18:47:36  <piscisaureus_>sgallagh: and we added our own gyp build system
18:47:49  <sgallagh>gyp has actually been packaged in Fedora already
18:47:51  <sgallagh>FWIW
18:47:53  <piscisaureus_>sgallagh: so we can compile one big static binary for windows users.
18:48:06  <sgallagh>Who cares about them? ;-)
18:48:34  * bradleymeckjoined
18:49:13  <piscisaureus_>sgallagh: so we started also compiling openssl into node statically on unices, so NPN would work for everyone, and also because we got too many bug reports from users that had an "unexpected" version of openssl on their system
18:49:21  <sgallagh>piscisaureus_: But if they're public patches from Google, we might have a chance to get them into Fedora
18:49:27  <sgallagh>RHEL will be harder, of course
18:49:49  <piscisaureus_>sgallagh: I think some of them actually made it into openssl 1.1.0
18:50:24  <piscisaureus_>sgallagh: http://en.wikipedia.org/wiki/SPDY <-- fyi
18:50:51  <sgallagh>openssl 1.1.0 that hasn't been released yet?
18:50:58  <piscisaureus_>sgallagh: I mean 1.0.1 :-)
18:51:03  <sgallagh>(Though Fedora will have it as soon as it is, so that's good)
18:51:07  <sgallagh>Oh, then we have that already
18:51:35  * loladiroquit (Quit: loladiro)
18:51:51  <piscisaureus_>False start (aka handshake cutthrough) is not so important - it affects performance only afaik
18:52:42  <sgallagh>piscisaureus_: If someone could point me at a set of patches that you need for full SPDY support, I have the right set of contacts to get them reviewed for inclusion
18:52:54  <sgallagh>It sounds like something we'll want to have in general
18:57:16  <TooTallNate>piscisaureus_: so i'm seeing symbols being stripped from the .node file on OS X, any tips?
18:57:28  <sgallagh>piscisaureus_: I'll catch you later. Time for a meeting.
18:57:46  <tjfontaine>TooTallNate: on master?
18:58:02  <TooTallNate>tjfontaine: no, against v0.8.14
18:58:22  <TooTallNate>tjfontaine: i've been making progress on my little linking a .node to another .node experiment
18:58:41  <TooTallNate>but I need to make sure the first one exports all of its symbols
18:58:55  <tjfontaine>TooTallNate: well I wonder whats different when compared with node linking against openssl, as those symbols are reexported without anything special
18:59:31  <TooTallNate>we're passing -Dvisibility=default to gyp...
18:59:32  * sgallaghquit (Write error: Connection reset by peer)
18:59:51  <tjfontaine>TooTallNate: can you check to see if DEAD_CODE_STRIPPING is enabled and if it is having an effect?
18:59:59  * loladirojoined
19:00:10  <TooTallNate>tjfontaine: do you know what gcc flag that enables?
19:00:24  <tjfontaine>TooTallNate: not off hand, it should be a linker flag though
19:00:47  <TooTallNate>ahh
19:00:54  <TooTallNate> -Wl,-dead_strip
19:00:55  <tjfontaine>-dead_srip more than likely
19:01:39  <piscisaureus_>sgallagh: If you're going to make it use openssl-1.0.1 you don't need anything for SPDY support. These are the other patches we are floating: https://github.com/joyent/node/compare/b61ae54e18c9f6ada7e746052ef6b39272b18a15...988a164cd8820974753ba6a9fc1827d2832c59d4
19:01:47  <TooTallNate>tjfontaine: i mean it's not enabled when building addons
19:01:58  <tjfontaine>piscisaureus_: he quit
19:02:10  <TooTallNate>tjfontaine: you put it in the node.gyp file rather than the common.gyp file anyways, so addons won't be affected even on master
19:02:17  <tjfontaine>TooTallNate: ok well, that's good then, I was worried a change I introduced might be effecting it
19:02:21  <tjfontaine>nod
19:02:31  <TooTallNate>but now wtf
19:02:37  <TooTallNate>why is it stripping them?
19:03:05  <tjfontaine>what flags are used when building addons?
19:03:27  <TooTallNate>tjfontaine: just set V=1 env variable when compiling one
19:03:34  <TooTallNate>on unix that is
19:03:40  * lohkeyjoined
19:03:47  <tjfontaine>I was just curious if you had a list handy
19:03:51  <piscisaureus_>irctretary: tell sgallagh If you're going to make it use openssl-1.0.1 you don't need anything for SPDY support. These are the other patches we are floating: https://github.com/joyent/node/compare/b61ae54e18c9f6ada7e746052ef6b39272b18a15...988a164cd8820974753ba6a9fc1827d2832c59d4
19:05:07  * sgallaghjoined
19:06:17  <TooTallNate>tjfontaine: well here's my linking step:
19:06:19  <TooTallNate>c++ -shared -Wl,-search_paths_first -mmacosx-version-min=10.5 -arch x86_64 -L./Release -install_name @rpath/vorbis.node -o Release/vorbis.node Release/obj.target/vorbis/src/binding.o Release/libvorbis.a -undefined dynamic_lookup /Users/nrajlich/node-ogg/build/Release/ogg.node -Wl,-rpath,/Users/nrajlich/node-ogg/build/Release
19:07:15  <tjfontaine>nothing particularly scary there
19:07:24  <TooTallNate>nope
19:07:43  <TooTallNate>other than some unconventional rpath hacking
19:08:00  <tjfontaine>sure but that wouldn't necessarily muck with exported symbols
19:08:09  <TooTallNate>no i wouldn't think so
19:08:12  * sgallaghquit (Remote host closed the connection)
19:08:12  <TooTallNate>is bnoordhuis around?
19:08:59  * brsonjoined
19:09:13  <tjfontaine>TooTallNate: so is the issue here vorbis.node isn't exporting ogg.node's symbols, or that ogg.node symbols are coming back as undefined for vorbis.node?
19:10:26  <TooTallNate>tjfontaine: ogg.node isn't re-exporting some of the symbols from libogg.a, it's only exporting the ones that I actually use in the ogg.node code
19:10:40  <TooTallNate>tjfontaine: so when node-vorbis tries to load one of the undefined symbols, shit blows up
19:12:10  <tjfontaine>TooTallNate: right ok, can you hack in a -reexport-library <pathto>/libogg.a and see if that helps your situation?
19:12:31  <TooTallNate>tjfontaine: ok i'll try it. is that osx-specific?
19:12:37  <tjfontaine>TooTallNate: yes
19:16:05  * Ralt_joined
19:18:19  <TooTallNate>tjfontaine: wow wtf, even that doesn't help
19:18:31  <TooTallNate>with -Wl,-reexport_library,/Users/nrajlich/node-ogg/build/Release/libogg.a
19:19:13  <tjfontaine>TooTallNate: when you nm the ogg.node you can verify the symbols aren't there?
19:19:19  <TooTallNate>tjfontaine: i think it doesn't work with .a files maybe?
19:19:21  <TooTallNate>tjfontaine: correct
19:19:38  <TooTallNate>tjfontaine: though they are present when nm'ing the libogg.a file
19:19:56  <tjfontaine>I wonder what's different about how openssl is handled
19:20:21  <TooTallNate>what about:
19:20:22  <TooTallNate> -all_load Loads all members of static archive libraries.
19:20:54  <tjfontaine>go for it, what do you have to lose :)
19:21:12  <TooTallNate>:p
19:22:01  <tjfontaine>all_load does seem to be specified in the openssl makefile.shared, and in v8.gyp
19:22:22  <TooTallNate>tjfontaine: that's promising
19:22:23  * Ralt_quit (Remote host closed the connection)
19:22:30  <TooTallNate>tjfontaine: and yup, that worked :)
19:23:08  <tjfontaine>I'm still a little perplexed what's making openssl+node work right now
19:23:26  <tjfontaine>but it's good to know if I'm crazy we can always just enable -all_load on the node target
19:23:31  <TooTallNate>tjfontaine: didn't you say -all_load is in there for openssl?
19:23:47  <tjfontaine>TooTallNate: not in the gyp though, only the distributed makefile
19:24:06  <TooTallNate>tjfontaine: hmm, it's probably inheriting it from the v8.gyp file then
19:24:13  <TooTallNate>tjfontaine: linking only happens once after all
19:24:14  <tjfontaine>-force_load might be a bit safer on the node target
19:24:43  <TooTallNate>tjfontaine: ahh i see, indeed
19:24:44  <tjfontaine>TooTallNate: well node links against v8.a? interesting if node inherits it because of htat
19:26:02  <TooTallNate>tjfontaine: do you know the gyp variable for the build dir?
19:26:14  * Ralt_joined
19:26:31  <tjfontaine>when testing for the openssl stuff I used the SHARED_IMMEDIATE_OUTPUT and then a relative path
19:26:48  <TooTallNate>oh
19:26:50  <TooTallNate>PRODUCT_DIR
19:26:51  <TooTallNate>i think
19:27:26  <TooTallNate>sweet, works :)
19:27:34  <tjfontaine>:P
19:30:37  * `3rdEdenjoined
19:34:16  <TooTallNate>at least i'm learning a lot about linking in the process
19:34:16  <TooTallNate>and OS X is essentially nailed at this point
19:34:16  * Ralt_quit (Remote host closed the connection)
19:36:45  * AvianFluquit (Remote host closed the connection)
19:41:47  * bradleymeckquit (Quit: bradleymeck)
19:43:25  * perezdjoined
19:49:38  * mmalecki[brb]changed nick to mmalecki
19:54:45  * loladiroquit (Quit: loladiro)
20:00:43  * Ralt_joined
20:03:46  * bradleymeckjoined
20:12:58  <TooTallNate>damn, same missing symbols problem on linux now
20:21:27  * EhevuTovquit (Quit: This computer has gone to sleep)
20:21:46  * LOUDBOTquit (Remote host closed the connection)
20:21:52  * LOUDBOTjoined
20:22:46  * LOUDBOTquit (Remote host closed the connection)
20:22:52  * LOUDBOT_joined
20:23:43  * LOUDBOT_quit (Remote host closed the connection)
20:23:50  * LOUDBOTjoined
20:24:08  * othiym23quit (Ping timeout: 244 seconds)
20:25:07  * othiym23joined
20:28:59  <TooTallNate>piscisaureus_: those gyp guys are ignoring my patch :(
20:31:01  <piscisaureus_>TooTallNate: which one was that again? and why?
20:31:22  <TooTallNate>http://codereview.chromium.org/11361103/
20:31:42  <TooTallNate>tjfontaine: -force_load equivalent for linux?
20:32:00  <piscisaureus_>TooTallNate: did you try "publish + mail comments"
20:32:00  <piscisaureus_>?
20:32:32  <TooTallNate>piscisaureus_: no not yet, i wasn't sure if there was something else I should do first
20:33:04  <piscisaureus_>actually, I think it should have gone to bradn already because you commented
20:33:11  <piscisaureus_>https://groups.google.com/forum/?fromgroups=#!topic/gyp-developer/IHZI8zbLEvg
20:34:02  <tjfontaine>TooTallNate: theoretically it's --whole-archive but I'm told it making gyp happy with it is annoying
20:34:23  * LOUDBOTquit (Remote host closed the connection)
20:34:27  <piscisaureus_>maybe not : http://codereview.chromium.org/user/bradn
20:34:30  * LOUDBOTjoined
20:34:39  <tjfontaine>TooTallNate: mostly because you have to specify --no-whole-archive after
20:36:18  <piscisaureus_>TooTallNate: you could try to join #chromium and see if there are any gyp guys there
20:38:21  * AvianFlujoined
20:40:06  <TooTallNate>tjfontaine: indeed, it looks like some gyp work would be required :(
20:40:06  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
20:40:32  <tjfontaine>TooTallNate: good news such work is needed for openssl-exports and linux :)
20:40:44  <tjfontaine>TooTallNate: the alternative is an exports file similar to what is used on windows
20:40:52  <TooTallNate>tjfontaine: what option is that?
20:40:58  * EhevuTovjoined
20:41:35  <tjfontaine>--dynamic-list
20:41:58  <tjfontaine>I think
20:46:15  * loladirojoined
20:50:40  * loladiroquit (Client Quit)
20:53:37  * loladirojoined
21:05:46  * paddybyersquit (Remote host closed the connection)
21:06:00  * paddybyersjoined
21:09:36  * piscisaureus_joined
21:09:47  * mikealquit (Quit: Leaving.)
21:16:58  * joshthecoderjoined
21:21:44  * `3rdEdenquit (Remote host closed the connection)
21:27:02  * TooTallNatequit (Quit: Computer has gone to sleep.)
21:28:46  * sgallaghjoined
21:32:26  * Ralt_quit (Remote host closed the connection)
21:37:29  * EhevuTovquit (Quit: This computer has gone to sleep)
21:43:48  * Ralt_joined
21:44:56  * TooTallNatejoined
21:51:49  * EhevuTovjoined
21:52:25  * bradleymeckquit (Quit: bradleymeck)
21:52:44  * dapjoined
21:53:15  * AvianFluquit (Remote host closed the connection)
21:55:51  * rendarquit (Quit: yeah! :-))
22:04:38  <TooTallNate>tjfontaine: damn, i can't seem to get --dynamic-list working
22:06:45  <indutny>bnoordhuis: I'm bad at C
22:06:49  <indutny>bnoordhuis: my code is slow :(
22:07:38  <tjfontaine>TooTallNate: what's your list file look like?
22:08:13  <TooTallNate>tjfontaine: https://gist.github.com/0e3b178a8e6c13a69357
22:08:34  <TooTallNate>tjfontaine: notably, no "oggpack" prefixed symbols get exported
22:09:16  <tjfontaine>should be at least theoretically possible to ogg*; and make your life easier, but hmm
22:10:03  <TooTallNate>tjfontaine: ya if there's a way to specify ^ogg* then that'd rule
22:10:13  <tjfontaine>that isn't implicit?
22:10:24  <tjfontaine>I mean that's just the way globbing works now
22:10:49  <TooTallNate>i don't really get what you mean i guess :p
22:11:04  <tjfontaine>if you ls foo* that implies starts with foo :P
22:11:22  <TooTallNate>i was thinking like a --export="^ogg*" flag or something
22:11:38  <TooTallNate>tjfontaine: oh you mean in general, ya, i thought you mean specific to ld
22:11:39  <tjfontaine>oh I just mean: { global: ogg*; }
22:11:59  <TooTallNate>like in the gyp?
22:12:05  <tjfontaine>no, in the list file
22:12:11  <TooTallNate>ohohohoho
22:12:12  <TooTallNate>i see
22:12:24  <TooTallNate>i haven't found a reference for the symbols file syntax yet
22:12:28  <tjfontaine>I'm missing a trailing ; but, I am not sure if the extern is necessary
22:12:32  <tjfontaine>http://sourceware.org/binutils/docs-2.20/ld/VERSION.html#VERSION
22:14:47  <tjfontaine>ya I'm wondering if you could just do { ogg*; };
22:17:27  <indutny>bnoordhuis: yt?
22:20:47  <TooTallNate>tjfontaine: i seems like it's accepting it, but do difference it the resulting file
22:21:33  <TooTallNate>tjfontaine: { global: ogg*; }; is apparently a syntax error
22:21:49  <TooTallNate>tjfontaine: but { ogg*; }; seemed to go through ok
22:21:49  <tjfontaine>ya that seems to do with versioning, scoping isn't necessary for the linking portion
22:22:34  <tjfontaine>my last iteration to try is { extern "C++" { "ogg*"; }; };
22:23:12  * indexzerojoined
22:23:33  <TooTallNate>tjfontaine: builds, but same missing symbols :\
22:23:51  <tjfontaine>TooTallNate: unfortunately we're beyond my paygrade :)
22:24:40  <tjfontaine>I'll defer to bnoordhuis now
22:25:06  <TooTallNate>tjfontaine: thanks for the help so far, at least we got osx nailed
22:25:23  <tjfontaine>TooTallNate: ya, the only other flag I see being helpful to you is --export-dynamic
22:30:39  * loladiroquit (Quit: loladiro)
22:30:52  <tjfontaine>maybe the issue at hand here is that you are in fact not actually using a dynamic sublibrary
22:33:02  * loladirojoined
22:33:29  <tjfontaine>TooTallNate: ok, one last thing to try, --version-script=list.txt where list.txt is { global: ogg*; };
22:36:40  <TooTallNate>tjfontaine: damn, seems to compile but again no symbols :(
22:36:55  <tjfontaine>ok, am really really out of ideas
22:37:02  <tjfontaine>glad osx works though :)
22:39:01  * loladiroquit (Quit: loladiro)
22:40:28  <TooTallNate>well we wait for bnoordhuis now I guess :p
22:41:27  <tjfontaine>I'm sure there are people here or on oftc that could give you clues
22:41:48  <tjfontaine>for instance, #gcc on oftc has probably quite a few knowledgable people on the topic
22:42:20  * piscisaureus_quit (Ping timeout: 246 seconds)
22:42:59  <TooTallNate>what's oftc?
22:43:44  <tjfontaine>another irc network with a focus on open source, it was created years ago when freenode was still called OpenProjects
22:44:13  <TooTallNate>well it seems that gyp supports --whole-archive already
22:44:27  <TooTallNate>but for "shared_library" targets only, not "loadable_module" targets
22:44:36  <mmalecki>bnoordhuis: hey
22:44:53  <mmalecki>bnoordhuis: what version of node are you guys running on your proxy servers?
22:45:05  <TooTallNate>tjfontaine: https://github.com/joyent/node/blob/master/tools/gyp/pylib/gyp/generator/make.py#L130-156
22:46:31  <tjfontaine>TooTallNate: hrm
22:48:39  <tjfontaine>TooTallNate: I didn't realize there were two paths for this
22:48:39  <TooTallNate>tjfontaine: a little unfortunate really :\
22:48:49  <tjfontaine>TooTallNate: what other differences are there in this case?
22:49:17  <TooTallNate>tjfontaine: this might be the only difference AFAIK
22:49:32  * warzquit
22:49:37  <tjfontaine>TooTallNate: so is there a reason you can't switch the target type to shared instead?
22:49:57  <TooTallNate>tjfontaine: i'm just trying to think of the implications
22:50:07  <tjfontaine>me too
22:50:11  <TooTallNate>tjfontaine: i.e. do i do it just for node-ogg? or in node-gyp's addon.gypi?
22:50:27  <TooTallNate>probably keeping it contained is a good idea
22:50:31  <TooTallNate>to just node-ogg
22:50:36  * sgallaghquit (Remote host closed the connection)
22:50:51  <tjfontaine>probably sane for now, lest other people get more surprises than they anticipate
22:50:54  * benoitcquit (Excess Flood)
22:50:57  <TooTallNate>tjfontaine: lol https://github.com/joyent/node/blob/master/tools/gyp/pylib/gyp/generator/make.py#L166-167
22:51:14  <TooTallNate>tjfontaine: looks like there's really not much of a difference between the two
22:51:20  <tjfontaine>indeed
22:51:39  <tjfontaine>probably a config option added early on in gyp that didnt end up having much distinction, aside from this point
22:53:12  * benoitcjoined
22:53:44  * ArmyOfBrucequit (Excess Flood)
22:53:59  <TooTallNate>well it's a little hacky, but it could work…
22:54:13  * ArmyOfBrucejoined
22:58:14  * indexzeroquit (Quit: indexzero)
23:00:19  <bnoordhuis>back
23:00:30  <bnoordhuis>TooTallNate: linker problems?
23:00:37  <tjfontaine>linker fun!
23:00:40  * Ralt_quit (Remote host closed the connection)
23:00:45  <TooTallNate>bnoordhuis: oh boy, my head hurts
23:01:27  <TooTallNate>i don't even really know where to start…
23:01:45  <TooTallNate>bnoordhuis: basically i can't get --version-script to work
23:01:55  <TooTallNate>or --dynamic-list or whatever i'm supposed to be using
23:02:03  <bnoordhuis>TooTallNate: what are you trying to do?
23:02:21  <TooTallNate>bnoordhuis: make my ogg.node file re-export all the libogg.a symbols
23:02:24  * EhevuTov_joined
23:02:42  <bnoordhuis>TooTallNate: --whole-archive, however...
23:02:48  <bnoordhuis>it's kind of icky with gyp
23:03:05  <TooTallNate>bnoordhuis: right, so we discovered that --whole-archive is implemented in gyp if you use "shared_library"
23:03:10  <TooTallNate>instead of "loadable_module"
23:03:14  <bnoordhuis>yes, correct
23:03:52  * c4miloquit (Remote host closed the connection)
23:04:01  <TooTallNate>so i started experimenting with making node-ogg be a 'shared_library' instead, which *kinda* makes linux work, but breaks osx for some reason
23:04:33  <bnoordhuis>TooTallNate: break in what respect?
23:04:56  <TooTallNate>bnoordhuis: the unused ogg symbols stop being re-exported
23:05:04  * EhevuTovquit (Ping timeout: 246 seconds)
23:05:21  <TooTallNate>which is strange because the linker output is almost identical
23:05:23  <TooTallNate>https://raw.github.com/gist/6eb6c9d6d62c7a6309c7/2453f9f1f9f41028222f9656ec54f2d2974009b9/gistfile1.txt
23:05:33  <bnoordhuis>TooTallNate: what visibility do those symbols have?
23:05:34  <TooTallNate>^ top is 'loadable_module', bottom is 'shared_library'
23:05:47  <TooTallNate>bnoordhuis: ogg.h simply defines them as "extern"
23:06:13  * TheJHquit (Ping timeout: 252 seconds)
23:06:51  <bnoordhuis>TooTallNate: what happens when you tag them with __attribute__((visibility("public"))?
23:07:02  * bnoordhuisgets a cup of earl grey
23:07:39  <mmalecki>bnoordhuis: any idea about proxy node version?
23:09:50  <TooTallNate>bnoordhuis: warning: unknown visibility 'public'
23:11:19  * AvianFlujoined
23:15:10  <bnoordhuis>mmalecki: c9's? i think it's 0.8 now. why?
23:15:18  <bnoordhuis>TooTallNate: what gcc/clang is that?
23:15:41  <TooTallNate>bnoordhuis: gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)
23:15:58  <bnoordhuis>TooTallNate: oh sorry, it's "default", not "public"
23:16:08  <mmalecki>bnoordhuis: https://github.com/nodejitsu/node-http-proxy/issues/334
23:16:24  <indutny>bnoordhuis: can I ask you for an optimisation hint?
23:16:31  <bnoordhuis>indutny: sure. -O3
23:16:37  <TooTallNate>bnoordhuis: doesn't seem to help
23:16:37  <mmalecki>lol
23:16:43  <indutny>bnoordhuis: doesn't seem to help
23:16:44  <indutny>bnoordhuis: https://github.com/indutny/candor/blob/master/src/utils.h#L562
23:16:46  <TooTallNate>i.e. still missing symbols
23:17:10  * hzquit
23:17:24  <bnoordhuis>TooTallNate: do you see the symbols in the .so/.node? btw, are the functions or variables?
23:17:41  <bnoordhuis>indutny: go on
23:17:50  <indutny>bnoordhuis: so this class is very slow
23:18:17  <TooTallNate>bnoordhuis: if i do `nm libogg.a | grep ogg`, i see all the symbols, if i do `nm ogg.node | grep ogg`, there's about half of them missing (the ones not used in my binding code)
23:18:37  <mmalecki>bnoordhuis: been wondering if you guys are seeing that too
23:18:37  <indutny>bnoordhuis: and it's basically an AVL tree
23:18:46  <bnoordhuis>mmalecki: no idea what's causing that. i don't think we had any issues when we upgraded
23:18:46  <indutny>bnoordhuis: whilch should give me O(log(N)) performance
23:18:56  <bnoordhuis>well, we had issues but nothing related to node or node-proxy :)
23:19:01  <indutny>bnoordhuis: but it doesn't :)
23:19:27  * indexzerojoined
23:19:28  <mmalecki>bnoordhuis: yeah, neither did we. cool, just wanted to check up. thanks :)
23:19:28  <indutny>bnoordhuis: and I see odd functions in profile https://github.com/indutny/candor/blob/master/src/utils.h#L592
23:19:33  <bnoordhuis>indutny: big-O notation is treacherous when it comes to real-world performance
23:19:40  <indutny>bnoordhuis: I understand
23:19:49  <indutny>bnoordhuis: but functions in profile are really interesting
23:20:04  <TooTallNate>bnoordhuis: ok, changing -force_load to use an absolute path helped
23:20:54  <bnoordhuis>indutny: you're using recursion, it seems?
23:21:09  <bnoordhuis>btw, what does the profile graph looklike?
23:22:34  <TooTallNate>new annoying gyp thing: 'loadable_modules' get ln -s'd to the Release dir… 'shared_library's do not
23:22:40  <TooTallNate>however that's only on linux
23:22:48  <TooTallNate>on osx, the ln -s always happens
23:23:53  <TooTallNate>oh no nvm, linux also does an ln -s, but to the "lib.target" dir… wtf
23:34:18  <Raynos>are there any unofficial docs for lib/module.js ?
23:35:14  <TooTallNate>Raynos: the source cod
23:35:16  <TooTallNate>code
23:35:39  <Raynos>i was hoping something more like https://github.com/dominictarr/stream-spec/blob/master/stream_spec.md
23:36:15  * indexzeroquit (Quit: indexzero)
23:43:14  <mmalecki>Raynos: lib/module.js ;)
23:44:11  <Raynos>its too much pain in the ass for me to do something like implement an async require that complies with node's module functionality without a human readable document.
23:44:52  <Raynos>i would have hoped someone in the community wrote something by now :P
23:44:59  <mmalecki>why'd you even...?
23:45:01  * warzjoined
23:45:01  * warzquit (Changing host)
23:45:02  * warzjoined
23:45:17  <mmalecki>I mean
23:45:28  <mmalecki>why do you need an async require?
23:46:41  * loladirojoined
23:49:11  * indexzerojoined
23:50:41  <Raynos>mmalecki: it's not about needing an async require, it's about a dynamic non-cached require
23:50:50  <CoverSlide|TPFR>you mean like AMD?
23:50:55  <Raynos>use case is hot swapping the implementation of a module after the source code changes on disk.
23:51:07  <CoverSlide|TPFR>wasn't AMD in node 0.4.x for like 2 weeks before they removed it?
23:51:27  <Raynos>which is fancy pants bullshit for "I want to be able to hot swap a small subset of my app without restarting the server in development"
23:51:59  <Raynos>I could use child processes or workers for this but it'd be nice to be able to hot swap out a module
23:52:46  * loladiroquit (Quit: loladiro)
23:52:48  * mikealjoined
23:54:14  * EhevuTov_changed nick to EhevuTov
23:59:39  <mmalecki>Raynos: module._cache cleaning should do it
23:59:46  <mmalecki>let me put together an example