00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:09  * ircretaryjoined
00:02:06  * indexzerojoined
00:02:28  * groundwa_quit (Quit: groundwa_)
00:02:57  * papertigersquit (Quit: papertigers)
00:06:44  * qardquit (Quit: Leaving.)
00:07:12  * pachetquit (Quit: leaving)
00:16:49  * st_lukequit (Remote host closed the connection)
00:38:53  * TooTallNatequit (Quit: Computer has gone to sleep.)
00:45:45  * EhevuTovquit (Quit: This computer has gone to sleep)
00:50:49  * dominictarrquit (Quit: dominictarr)
00:52:07  * TooTallNatejoined
00:53:12  * indexzeroquit (Quit: indexzero)
01:00:12  * inolenquit (Quit: Leaving.)
01:05:02  * dapquit (Quit: Leaving.)
01:05:09  * amartensquit (Quit: Leaving.)
01:07:39  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
01:11:27  * sblom_quit (Ping timeout: 256 seconds)
01:13:09  * TooTallNatequit (Ping timeout: 256 seconds)
01:15:31  * indexzerojoined
01:17:03  * TooTallNatejoined
01:17:48  * indexzeroquit (Client Quit)
01:18:18  * dannycoatesquit (Remote host closed the connection)
01:19:33  * rvaggjoined
01:20:25  * HenryRquit (Ping timeout: 246 seconds)
01:24:56  * stagasquit (Read error: Connection reset by peer)
01:25:47  * kazuponjoined
01:27:41  * TooTallNatequit (Read error: No route to host)
01:31:23  * AvianFluquit (Remote host closed the connection)
01:35:27  * amartensjoined
01:36:17  * brsonquit (Read error: Operation timed out)
01:41:40  * kazuponquit (Remote host closed the connection)
01:42:29  * abraxasjoined
01:44:20  * amartensquit (Ping timeout: 256 seconds)
01:44:26  * pooyaquit (Quit: pooya)
01:44:53  * st_lukejoined
01:44:56  * piscisaureus_joined
01:51:59  * st_lukequit (Remote host closed the connection)
01:53:57  * defunctzombiechanged nick to defunctzombie_zz
01:54:58  * dapjoined
02:25:50  * inolenjoined
02:31:25  * papertigersjoined
02:31:37  * AvianFlujoined
02:32:07  * inolenquit (Quit: Leaving.)
02:33:14  * timoxleyjoined
02:34:11  * mikealjoined
02:34:14  * mikealquit (Client Quit)
02:40:11  * amartensjoined
02:40:35  * TooTallNatejoined
02:42:32  * papertigersquit (Quit: papertigers)
02:43:18  * papertigersjoined
02:44:58  * amartensquit (Ping timeout: 256 seconds)
02:47:00  * CAPSLOCKBOTjoined
02:47:01  * ikjoined
02:47:05  * LOUDBOTjoined
02:52:01  * kazuponjoined
02:53:59  * papertigersquit (Quit: papertigers)
02:54:46  * dannycoatesjoined
02:54:47  * brsonjoined
02:54:57  * kazupon_joined
02:55:27  * kazuponquit (Read error: Connection reset by peer)
02:57:28  * inolenjoined
02:57:36  * kazupon_quit (Remote host closed the connection)
03:03:16  * brsonquit (Ping timeout: 256 seconds)
03:05:24  * brsonjoined
03:05:29  * st_lukejoined
03:14:32  * inolenquit (Quit: Leaving.)
03:14:57  * inolenjoined
03:19:41  * brsonquit (Ping timeout: 240 seconds)
03:20:49  * brsonjoined
03:21:20  * st_lukequit (Remote host closed the connection)
03:26:21  * timoxleyquit (Quit: Computer has gone to sleep.)
03:38:36  * AvianFluquit (Remote host closed the connection)
03:51:49  * abraxasquit (Remote host closed the connection)
03:51:49  * dannycoatesquit (Remote host closed the connection)
03:52:59  * kazuponjoined
03:54:56  * TooTallNatequit (Quit: ["Textual IRC Client: www.textualapp.com"])
03:56:11  * amartensjoined
04:08:55  * brsonquit (Ping timeout: 260 seconds)
04:10:48  * brsonjoined
04:16:50  * timoxleyjoined
04:24:38  * AvianFlujoined
04:26:29  * dapquit (Quit: Leaving.)
04:44:46  * normanmjoined
04:44:50  * normanmpart
04:53:34  * brsonquit (Ping timeout: 246 seconds)
04:55:08  * groundwaterjoined
04:55:08  * groundwaterquit (Client Quit)
04:56:39  * loladirojoined
05:05:51  * timoxleyquit (Quit: Computer has gone to sleep.)
05:06:28  * brsonjoined
05:08:45  * pooyajoined
05:11:58  * abraxasjoined
05:14:18  * pooyaquit (Quit: pooya)
05:21:38  * timoxleyjoined
05:35:39  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
05:43:04  * paddybyersjoined
05:43:58  * loladiroquit (Quit: loladiro)
05:48:29  * pooyajoined
05:50:54  * pooyaquit (Client Quit)
05:51:23  * piscisaureus_joined
06:03:31  * piscisaureus_quit (Read error: Operation timed out)
06:08:27  * indexzerojoined
06:15:43  * indexzeroquit (Quit: indexzero)
06:16:30  * bajtosjoined
06:21:02  * brsonquit (Ping timeout: 256 seconds)
06:23:38  * piscisaureus_joined
06:25:51  * AvianFluquit (Remote host closed the connection)
06:30:10  * piscisaureus_quit (Ping timeout: 246 seconds)
06:35:16  * `3rdEdenjoined
06:35:58  * rendarjoined
06:40:47  * indexzerojoined
06:43:48  * amartensquit (Quit: Leaving.)
06:43:48  * indexzeroquit (Client Quit)
06:44:57  * kazuponquit (Remote host closed the connection)
06:50:15  * kazuponjoined
06:51:12  * indexzerojoined
06:57:30  * piscisaureus_joined
06:58:35  * indexzeroquit (Quit: indexzero)
07:14:07  * amartensjoined
07:20:34  * amartensquit (Ping timeout: 246 seconds)
07:30:07  * piscisaureus_quit (Ping timeout: 276 seconds)
07:43:56  * dominictarrjoined
07:49:30  * piscisaureus_joined
07:55:15  * piscisaureus_quit (Ping timeout: 260 seconds)
07:57:56  * toothrotquit (Ping timeout: 256 seconds)
07:59:19  * toothrjoined
08:13:55  * piscisaureus_joined
08:18:44  * amartensjoined
08:19:04  * dominictarrquit (Quit: dominictarr)
08:22:57  * amartensquit (Ping timeout: 248 seconds)
08:31:26  * abraxasquit (Remote host closed the connection)
08:32:05  * dominictarrjoined
08:47:18  <bajtos>piscisaureus_: good morning
08:51:09  * stagasjoined
08:57:40  * dominictarrquit (Quit: dominictarr)
09:12:14  * bnoordhuisjoined
09:18:52  * theColejoined
09:19:05  * amartensjoined
09:22:55  <roxlu>hey guys, I'm porting my code from mac to linux and I'm getting these "accept redefinition different linkage" kind of errors again. I though one could solve those by adding -DWIN32_LEAN_AND_MEAN
09:23:02  <roxlu>but that's not working atm
09:23:54  * amartensquit (Ping timeout: 256 seconds)
09:27:16  <bnoordhuis>roxlu: are you getting them for libuv functions or your own code?
09:29:16  <roxlu>bnoordhuis: I'm using libuv in my own code. But I just found it
09:29:36  <roxlu>I've a class "Twitter.h", which included "HTTP.h". In HTTP.h I included uv.h
09:29:43  <roxlu>so: Twitter.h > HTTP.h > uv.h
09:29:56  <roxlu>I just added #include uv.h, in Twitter.h which solves the issue
09:30:41  * theColequit (Read error: Connection reset by peer)
09:30:44  * theCole_joined
09:36:22  * bajtosquit (Quit: bajtos)
09:37:27  * timoxleyquit (Quit: Computer has gone to sleep.)
09:43:02  <MI6>joyent/libuv: Ben Noordhuis master * c16ed50 : Merge remote-tracking branch 'origin/v0.10' (+7 more commits) - http://git.io/e8v92g
09:43:10  <MI6>joyent/libuv: Ben Noordhuis v0.10 * 3ab3543 : unix: remove overzealous assert - http://git.io/NpgLLA
09:45:51  <MI6>libuv-v0.10: #93 UNSTABLE windows (4/187) smartos (2/186) http://jenkins.nodejs.org/job/libuv-v0.10/93/
09:50:13  <MI6>libuv-master: #114 UNSTABLE windows (3/190) smartos (4/189) http://jenkins.nodejs.org/job/libuv-master/114/
09:55:21  <MI6>libuv-master: #115 UNSTABLE windows (4/190) smartos (2/189) http://jenkins.nodejs.org/job/libuv-master/115/
09:57:26  <MI6>libuv-master-gyp: #52 UNSTABLE windows-ia32 (4/190) smartos-ia32 (2/189) smartos-x64 (2/189) linux-ia32 (1/189) windows-x64 (3/190) http://jenkins.nodejs.org/job/libuv-master-gyp/52/
09:57:30  * abraxasjoined
09:59:33  <MI6>libuv-v0.10-gyp: #56 UNSTABLE windows-ia32 (4/187) smartos-x64 (2/186) smartos-ia32 (2/186) windows-x64 (4/187) http://jenkins.nodejs.org/job/libuv-v0.10-gyp/56/
10:01:55  <MI6>libuv-node-integration: #101 UNSTABLE smartos-ia32 (1/590) smartos-x64 (3/590) http://jenkins.nodejs.org/job/libuv-node-integration/101/
10:12:13  * kazuponquit (Remote host closed the connection)
10:16:29  * `3rdEdenquit (Remote host closed the connection)
10:17:55  <MI6>libuv-node-integration: #102 UNSTABLE smartos-ia32 (1/604) osx-x64 (1/604) smartos-x64 (6/604) http://jenkins.nodejs.org/job/libuv-node-integration/102/
10:19:07  * stagasquit (Read error: Connection reset by peer)
10:19:26  * amartensjoined
10:23:55  * amartensquit (Ping timeout: 264 seconds)
10:24:44  * timoxleyjoined
10:31:10  * wmiljoined
10:32:57  * bajtosjoined
10:33:14  * wmilquit (Remote host closed the connection)
10:33:31  * wmiljoined
10:34:07  * `3rdEdenjoined
10:35:10  * wmilquit (Remote host closed the connection)
10:41:23  * theCole_quit (Quit: theCole_)
10:48:19  * hzjoined
11:19:45  * amartensjoined
11:20:58  * st_lukejoined
11:24:10  * amartensquit (Ping timeout: 246 seconds)
11:24:27  * linus_joined
11:28:06  <MI6>joyent/libuv: Ben Noordhuis master * 43205ed : unix: remove unused function uv_fatal_error() - http://git.io/c8Q0IA
11:29:59  <bnoordhuis>life would be so much easier if UV_EBADF == EBADF...
11:32:46  <MI6>libuv-master: #116 UNSTABLE windows (3/190) smartos (2/189) http://jenkins.nodejs.org/job/libuv-master/116/
11:34:21  <indutny>hey people
11:34:23  <indutny>an I'm back
11:34:24  <indutny>https://github.com/joyent/node/pull/5638
11:34:59  <MI6>libuv-master-gyp: #53 UNSTABLE windows-ia32 (3/190) smartos-ia32 (2/189) smartos-x64 (2/189) windows-x64 (3/190) http://jenkins.nodejs.org/job/libuv-master-gyp/53/
11:35:05  <indutny>bnoordhuis: hi
11:35:10  <indutny>any thoughts on that PR?
11:39:42  <linus_>bnoordhuis: Handled your suggestions in cares & node
11:40:57  * abraxasquit (Remote host closed the connection)
11:41:01  * mralephquit (Ping timeout: 256 seconds)
11:41:14  <linus_>bnoordhuis: Also updated the libuv reference in the node PR so it's reflected at the latest android patch set, to avoid comp. issues
11:45:00  <linus_>paddybyers: Noted a reference appeared to your android compatibility task for node. If you want to discuss it, feel free to send me a ping. :)
11:46:33  <paddybyers>Linus_: hi, yes I saw, not looked in detail to compare yet
11:47:10  <linus_>Alright. I'm available during the day if you want to go over it at some point.
11:48:07  * bnoordhuisquit (Ping timeout: 260 seconds)
11:51:53  <MI6>libuv-node-integration: #103 UNSTABLE smartos-ia32 (1/604) osx-ia32 (1/604) smartos-x64 (9/604) linux-ia32 (2/604) http://jenkins.nodejs.org/job/libuv-node-integration/103/
12:17:36  * bajtosquit (Quit: bajtos)
12:20:01  * amartensjoined
12:23:39  * toothrchanged nick to toothrot
12:24:23  * amartensquit (Ping timeout: 240 seconds)
12:37:02  * st_lukequit
12:54:28  * bnoordhuisjoined
12:59:19  * bnoordhuisquit (Ping timeout: 264 seconds)
13:03:49  * bnoordhuisjoined
13:20:27  * amartensjoined
13:24:27  * AvianFlujoined
13:24:53  * amartensquit (Ping timeout: 240 seconds)
13:47:27  * bajtosjoined
14:07:46  <piscisaureus_>bnoordhuis: hey, thoughts on https://github.com/joyent/libuv/pull/830 ?
14:08:32  <piscisaureus_>bnoordhuis: this is not a great and super pretty API but it will let us fix the stdio issues on windows without too many bad side effects.
14:09:24  <piscisaureus_>bnoordhuis: there are some edge cases where this isn't great - e.g. when people first do an async write and then make the pipe blocking and do a sync write
14:09:40  <piscisaureus_>... everything will go to hell.
14:09:50  <piscisaureus_>but *shrug* we just shouldn't do it in node
14:12:18  * bajtosquit (Quit: bajtos)
14:20:41  * amartensjoined
14:24:19  * kazuponjoined
14:25:04  * amartensquit (Ping timeout: 256 seconds)
14:31:56  <bnoordhuis>piscisaureus_: i don't have any real objections
14:44:11  * dapjoined
14:46:20  * defunctzombie_zzchanged nick to defunctzombie
14:46:52  * theColejoined
14:50:56  <piscisaureus_>bnoordhuis: kewl
14:51:12  * pachetjoined
14:51:12  * pachetquit (Changing host)
14:51:12  * pachetjoined
14:51:30  * theCole_joined
14:52:52  * theColequit (Ping timeout: 245 seconds)
14:52:52  * theCole_changed nick to theCole
14:55:31  <MI6>joyent/node: Ben Noordhuis master * a7858ce : src: unexport node_isolate - http://git.io/DRnp1A
14:57:07  <bnoordhuis>aww, node_object_wrap.h also exports node_isolate...
15:00:25  * theColequit (Quit: theCole)
15:02:00  <MI6>joyent/node: Ben Noordhuis master * 4bb4f73 : src: unexport node_isolate - http://git.io/FbVpMQ
15:02:19  <bnoordhuis>that was a forced push. i'm sorry :(
15:03:12  * timoxleyquit (Quit: Textual IRC Client: www.textualapp.com)
15:05:13  * hij1nxquit (Quit: WeeChat 0.3.2)
15:05:54  * hij1nxjoined
15:07:32  <MI6>joyent/libuv: Ben Noordhuis master * 8974633 : unix, windows: clean up uv_thread_create() - http://git.io/xwn4oQ
15:07:58  <MI6>nodejs-master: #250 UNSTABLE smartos-ia32 (2/604) smartos-x64 (7/604) http://jenkins.nodejs.org/job/nodejs-master/250/
15:09:10  * loladirojoined
15:14:03  * kazuponquit (Remote host closed the connection)
15:15:48  * mbroadst_changed nick to mbroadst
15:15:55  * mbroadstquit (Changing host)
15:15:55  * mbroadstjoined
15:20:15  <MI6>nodejs-master: #251 UNSTABLE smartos-ia32 (2/604) osx-ia32 (1/604) smartos-x64 (5/604) http://jenkins.nodejs.org/job/nodejs-master/251/
15:21:04  * amartensjoined
15:25:54  * amartensquit (Ping timeout: 264 seconds)
15:26:05  * loladiroquit (Quit: loladiro)
15:28:02  * c4milojoined
15:29:38  <MI6>nodejs-master-windows: #58 UNSTABLE windows-x64 (23/604) windows-ia32 (19/604) http://jenkins.nodejs.org/job/nodejs-master-windows/58/
15:34:54  * HenryRjoined
15:37:03  <MI6>libuv-master: #117 UNSTABLE windows (5/190) smartos (2/189) http://jenkins.nodejs.org/job/libuv-master/117/
15:39:38  * leonvvjoined
15:40:30  <MI6>libuv-master-gyp: #54 UNSTABLE windows-ia32 (4/190) smartos-ia32 (2/189) smartos-x64 (2/189) linux-ia32 (2/189) windows-x64 (5/190) http://jenkins.nodejs.org/job/libuv-master-gyp/54/
15:41:44  * pooyajoined
15:44:28  * loladirojoined
15:44:33  * hzquit
15:48:46  * bnoordhuisquit (Ping timeout: 246 seconds)
15:48:59  <isaacs>bnoordhuis: Do you have any strong feelings about the http headers api discussed in https://github.com/joyent/node/issues/1448?
15:49:26  <isaacs>ircretary: when was bnoordhuis last here?
15:49:27  <ircretary>isaacs: bnoordhuis was last seen at 2013-06-07T15:48:47.161Z, quit: Ping timeout: 246 seconds #libuv
15:49:32  * `3rdEdenquit (Remote host closed the connection)
15:49:36  <isaacs>d'oh. too slow :)
15:50:19  * kazuponjoined
15:52:12  * sblomjoined
15:52:45  * mikealjoined
15:53:42  <MI6>libuv-node-integration: #104 UNSTABLE smartos-ia32 (1/604) smartos-x64 (7/604) http://jenkins.nodejs.org/job/libuv-node-integration/104/
16:00:09  <tjfontaine>hello world
16:13:40  * leonvvquit (Remote host closed the connection)
16:15:13  * bnoordhuisjoined
16:15:47  * TooTallNatejoined
16:16:15  <MI6>nodejs-master-windows: #59 UNSTABLE windows-x64 (22/604) windows-ia32 (24/604) http://jenkins.nodejs.org/job/nodejs-master-windows/59/
16:17:13  * mikealquit (Quit: Leaving.)
16:21:25  * amartensjoined
16:25:54  * amartensquit (Ping timeout: 264 seconds)
16:26:10  * kazuponquit (Remote host closed the connection)
16:28:31  * dominictarrjoined
16:31:33  * bnoordhuisquit (Ping timeout: 248 seconds)
16:39:29  * defunctzombiechanged nick to defunctzombie_zz
16:47:15  * TooTallNatequit (Quit: Computer has gone to sleep.)
16:48:35  * inolenquit (Quit: Leaving.)
16:53:56  * qardjoined
16:55:43  * inolenjoined
16:57:04  <trevnorris>ircretary: tell bnoordhuis ping re 4bb4f73
16:57:04  <ircretary>trevnorris: I'll be sure to tell bnoordhuis
16:57:46  <trevnorris>tjfontaine: so are only the things users are supposed to be able to use prepended w/ NODE_EXTERN?
16:58:10  * AvianFluquit (Remote host closed the connection)
16:58:21  <tjfontaine>trevnorris: I presume you mean non-windows users?
16:59:09  <trevnorris>tjfontaine: sure.
17:00:17  * inolenquit (Ping timeout: 248 seconds)
17:01:22  <tjfontaine>I'm not really sure what you're asking, are you trying to flesh out the "official native module" api?
17:01:44  * TooTallNatejoined
17:02:05  <trevnorris>sort of. i'm getting confused by our sad attempts at containing things like node_isolate, when a user can still get at it by #include <req_wrap.h>
17:03:04  <trevnorris>tjfontaine: oh shit. bnoordhuis broke the ability to #include node_crypto.h from 4bb4f73
17:03:37  <tjfontaine>node_crypto is supposed to be a public api?
17:05:45  <tjfontaine>trevnorris: there are going to be things available to people, whether we "want" that or not, what we need to aim for is getting a "node.h" out there that defines just what it is we support
17:05:50  * dominictarrquit (Quit: dominictarr)
17:06:21  <trevnorris>tjfontaine: it is. i'm trying to find one, but there are constantly people asking why we can't export the openssl lib through node_crypto
17:06:35  <tjfontaine>well, those are two separate things really
17:07:00  <tjfontaine>mostly it's people wanting symbols in their module that we don't use in core
17:07:18  <trevnorris>yeah. but that means they #include node_crypto right?
17:07:18  <tjfontaine>which is only related to node_crypto in so far as thats where we consume those symbols
17:07:22  <tjfontaine>no
17:07:32  * dominictarrjoined
17:07:38  <trevnorris>oh, duh
17:07:39  <trevnorris>yeah, ok
17:07:43  <tjfontaine>they #include "node/openssl" or something we come up with
17:08:11  <trevnorris>TooTallNate, isaacs: have you ever considered node_crytpto public api?
17:08:13  <tjfontaine>however, we can't do that necessarily because we support letting people build with system openssl'
17:08:20  <trevnorris>s/node_crytpto/node_crypto
17:08:32  * dominictarrquit (Client Quit)
17:09:31  <tjfontaine>I've never really considered node_crypto an exported api for native modules, more so an implementation detail of 'crypto' and for comparison it's seen major refactoring between versions
17:09:32  <piscisaureus_>HenryR: hey, do you mind if I butcher https://github.com/joyent/libuv/pull/830/files#diff-0 a bit?
17:09:39  <piscisaureus_>HenryR: I have some comments but the genera idea lgtm
17:09:51  <piscisaureus_>HenryR: but I can explain them all or just hack away a bit for myself
17:10:09  <trevnorris>tjfontaine: oy. maybe we need to hammer out the public api sooner rather than later. this is getting confusing.
17:10:38  <tjfontaine>trevnorris: indeed
17:11:26  <trevnorris>tjfontaine: so here https://github.com/trevnorris/node/blob/1beb2b8
17:11:38  <trevnorris>tjfontaine: should I have NODE_EXTERN somewhere for win users?
17:11:56  <trevnorris>it used to be in the class declaration, but since there's no more class not sure if I might have broken something.
17:12:37  * HenryRquit (Ping timeout: 248 seconds)
17:13:30  <tjfontaine>trevnorris: I really don't know, piscisaureus_ would be better at answering, for me to find out I'd have to build your branch on windows and then try and install ffi against it to find out
17:13:34  * brsonjoined
17:13:36  <trevnorris>piscisaureus_: ping
17:13:54  <tjfontaine>fwiw you wanted /commit/ not /blob/ I assume https://github.com/trevnorris/node/commit/1beb2b8e12a8b6c890bf01c5be779727702138c8
17:14:05  <piscisaureus_>trevnorris: what is the question?
17:14:33  <trevnorris>piscisaureus_: so the node Buffer class used to use NODE_EXTERN
17:14:41  <trevnorris>piscisaureus_: but now it looks like https://github.com/trevnorris/node/blob/1beb2b8/src/node_buffer.h
17:15:15  <trevnorris>piscisaureus_: so i'm wondering if i'll need to add NODE_EXTERN somewhere in there
17:15:23  <tjfontaine>it would seem like static methods would probably need to be marked NODE_EXTERN
17:15:33  * HenryRjoined
17:15:53  <piscisaureus_>trevnorris: yes, do it the same as in master
17:15:54  <tjfontaine>https://github.com/trevnorris/node/blob/1beb2b8/src/node_buffer.h#L34-39 is the exported interface?
17:16:16  <trevnorris>tjfontaine: some of it
17:16:19  <tjfontaine>oh it's all of that I guess
17:16:24  <piscisaureus_>trevnorris: https://github.com/joyent/node/blob/4bb4f734b3dc3cd42ffd7c5d128fec2abd6b97dd/src/node_buffer.h#L66
17:16:43  <trevnorris>piscisaureus_: but there is no more "class Buffer"
17:16:55  <trevnorris>piscisaureus_: it's now a namespace, since there's no need to keep track of anything
17:17:26  <piscisaureus_>trevnorris: ok - then you have to put NODE_EXTERN in front of all function names that you want to export
17:17:35  <trevnorris>piscisaureus_: thanks :)
17:18:48  <trevnorris>tjfontaine: also, still don't fully understand internal linkage. in my mind all the methods there are static, but I get an internal linkage error when I add it
17:19:24  <tjfontaine>shouldn't they be marked static?
17:19:57  <tjfontaine>oh ok
17:20:06  <trevnorris>tjfontaine: if I add, say, "static bool HasInstance()" the compiler poops on me
17:21:44  * amartensjoined
17:21:53  <trevnorris>isaacs: fyi, I think StringBytes would be useful for other devs. meaning it'd need to be "class NODE_EXTERN StringBytes"
17:22:03  <trevnorris>(as piscisaureus_ so nicely just taught me :)
17:22:38  <tjfontaine>really only matters on windows of course :)
17:22:52  <tjfontaine>or newer gcc/clang http://gcc.gnu.org/wiki/Visibility
17:23:30  <trevnorris>tjfontaine: hm. i'm compiling w/ clang 3.3
17:24:24  <trevnorris>well, whatever. if all you c++ pros aren't worried than neither am i :)
17:24:58  * mikealjoined
17:25:02  <tjfontaine>basically as it is right now we can break just about anything because the amount of documented native module api is quite tiny :)
17:25:12  <indutny>hey people
17:25:13  <indutny>trevnorris: hi
17:25:19  <trevnorris>indutny: hi :)
17:25:31  * ralquit (Read error: Operation timed out)
17:25:38  <indutny>I remember you complaining about tls memory usage
17:25:49  <indutny>would be cool if you'll find a minute to take a look at https://github.com/joyent/node/pull/5638
17:25:52  <indutny>and probably test it
17:25:57  * amartensquit (Ping timeout: 248 seconds)
17:26:02  <trevnorris>indutny: sure. in a few
17:26:06  <indutny>thanks
17:26:34  * inolenjoined
17:35:31  * raljoined
17:35:32  * ralquit (Changing host)
17:35:32  * raljoined
17:36:38  * kazuponjoined
17:40:14  * bnoordhuisjoined
17:42:25  * kazuponquit (Ping timeout: 276 seconds)
17:45:49  <bnoordhuis>trevnorris: pong re 4bb4f73
17:46:46  <trevnorris>bnoordhuis: was that now a module dev now can't #import node_crypto.h, but tjfontaine mentioned that was never supposed to be public anyways.
17:47:10  <tjfontaine>at least, I was surprised to hear people using node_crypto like that
17:48:24  <trevnorris>bnoordhuis: also, just the slight fact that users can still get at it via #include req_wrap, but all this has to do w/ the fact we don't have an "official" public c++ api
17:55:39  * c4miloquit (Remote host closed the connection)
17:56:55  <bnoordhuis>trevnorris: true
17:57:18  <bnoordhuis>but insofar we have a public api, it's node.h and node_object_wrap.h
17:57:42  <bnoordhuis>and node_version.h but that doesn't contain much that's interesting
17:58:29  <tjfontaine>that's pretty much how I feel as well, except there are plenty of people [ab]using node_buffer.h
17:59:26  <bnoordhuis>oh right. i guess node_buffer.h is official-ish as well
17:59:48  <bnoordhuis>my node-buffertools module uses it so i'm not 100% neutral here :)
17:59:55  <trevnorris>heh
18:01:38  * defunctzombie_zzchanged nick to defunctzombie
18:02:01  <trevnorris>bnoordhuis: and i'm giving a talk next week about how to use it, so hopefully it's supported :)
18:03:48  <bnoordhuis>yeah, it is
18:04:12  <bnoordhuis>in the future, we should just tell people to #include "node.h" and have that include everything people need
18:04:53  * HenryRquit (Ping timeout: 248 seconds)
18:04:57  <trevnorris>was there discussion about moving it to node/node.h, since node.h conflicts w/ other header names?
18:05:07  * defunctzombiechanged nick to defunctzombie_zz
18:05:12  <tjfontaine>openssl presents an interesting hurdle
18:05:40  <tjfontaine>and uv for that matter
18:06:03  <tjfontaine>as we let you compile against system installs of that, we need a mechanism to make sure people are getting the right versions
18:06:11  * defunctzombie_zzchanged nick to defunctzombie
18:06:39  <tjfontaine>and while it's nice of node-gyp to download some headers, that's really not a solution to that
18:07:37  <trevnorris>indutny: fyi, been testing the patch. for some reason --trace_external_memory is halting the process about a minute in.
18:07:46  <bnoordhuis>we can just tell people to compile against the bundled versions
18:07:50  * indexzerojoined
18:07:54  <bnoordhuis>and if they don't, good luck to them
18:08:17  <tjfontaine>that will make fedora,, debian, et al very happy :)
18:09:26  <TooTallNate>trevnorris: the addon's have access to the "node_shared_libuv" variable, etc.
18:09:27  <bnoordhuis>probably not but that's not my problem
18:09:47  <TooTallNate>trevnorris: but we could also spice up the addon.gypi file to have some better defaults there
18:09:49  <tjfontaine>TooTallNate: you mean me.
18:09:57  <TooTallNate>tjfontaine: ^
18:09:58  <TooTallNate>oh
18:09:59  <TooTallNate>ya
18:10:00  <TooTallNate>hahah
18:10:36  * HenryRjoined
18:10:40  * amartensjoined
18:11:04  <TooTallNate>maybe i need to introduce some magic variables
18:11:08  <TooTallNate>that addons can define
18:11:18  <TooTallNate>and it'll "do the right thing" when it comes to linking to openssl
18:11:50  <TooTallNate>i.e. automate this a little more https://github.com/TooTallNate/node-gyp/wiki/Linking-to-OpenSSL
18:11:53  <tjfontaine>openssl is basically an unsolved problem
18:12:10  <TooTallNate>ya :(
18:12:24  <TooTallNate>but it's the same for all the deps
18:12:25  <TooTallNate>really
18:12:30  <TooTallNate>zlib
18:12:32  <TooTallNate>uv
18:12:54  <TooTallNate>if your addon wants to use those, there's not really any guarantee that the node binary will re-export those symbols for you
18:12:57  <tjfontaine>I don't disagree, we don't really have a policy for how modules should use those things
18:13:13  <TooTallNate>but it would be nice if that were the case
18:13:44  <tjfontaine>we could ship our dependencies as dynamic libraries and then this problem is solved :P
18:13:59  <tjfontaine>it's friday, it's troll time
18:14:54  <bnoordhuis>piscisaureus_: ping
18:15:02  <piscisaureus_>hi bnoordhuis
18:15:08  <bnoordhuis>hey bertje
18:15:20  <bnoordhuis>why do we have UV_* error codes for EAI_* errors?
18:15:36  <piscisaureus_>bnoordhuis: al sla je me dood
18:15:42  <bnoordhuis>right :)
18:15:56  <bnoordhuis>it seems kind of pointless. all platforms support the subset we do
18:16:06  <piscisaureus_>bnoordhuis: I think me and ryan never really made a firm decision on whether we want to map these to more generic ones
18:16:27  <piscisaureus_>bnoordhuis: there's also the problem of c-ares
18:16:35  <bnoordhuis>ah. the "let's punt on it" approach to software development
18:16:55  <piscisaureus_>bnoordhuis: it'd be nice if c-ares didn't have it's own scheme for naming errors
18:17:12  <bnoordhuis>right. but that's not a concern for libuv anymore, right?
18:17:39  <piscisaureus_>bnoordhuis: I don't know what the status is actually. For what I know uv-win and/or uv-unix might already map GAI_ errors to generic errors.
18:17:43  <piscisaureus_>bnoordhuis: it is for node
18:17:57  * `3rdEdenjoined
18:18:27  <bnoordhuis>okay. i would move to just report the actual EAI_* errors
18:18:31  <piscisaureus_>bnoordhuis: it's not nice when dns.resolve uses a completely taxonomy than dns.lookup
18:18:40  <piscisaureus_>bnoordhuis: me too
18:18:52  <piscisaureus_>bnoordhuis: but maybe we can also map cares error codes to uv ones :)
18:19:06  <piscisaureus_>bnoordhuis: atleast in the js layer
18:19:22  <bnoordhuis>yeah, that might work
18:19:35  <bnoordhuis>but let's take things one step at a time
18:19:43  <piscisaureus_>sure
18:21:21  * HenryRquit (Ping timeout: 248 seconds)
18:21:28  * st_lukejoined
18:21:40  <`3rdEden>The sun-os binaries on node.js org have dtrace enabled by default ?
18:22:11  <tjfontaine>er what?
18:22:30  * HenryRjoined
18:22:32  * papertigersjoined
18:23:38  <`3rdEden>tjfontaine: http://nodejs.org/dist/v0.10.10/node-v0.10.10-sunos-x64.tar.gz <-- I assume they are compiled with dtrace enabled by default (https://github.com/joyent/node/blob/master/configure#L195-L203) or do they need to be compiled from source?
18:23:55  * defunctzombiechanged nick to defunctzombie_zz
18:24:01  * c4milojoined
18:24:54  <tjfontaine>https://github.com/joyent/node/blob/master/configure#L466
18:25:02  <tjfontaine>but it coudl be there's a bug of course
18:26:55  * amartensquit (Quit: Leaving.)
18:28:56  <trevnorris>indutny: not sure why but benchmark/tls/throughput.js is haulting after a length of time. trying to figure out why.
18:29:14  <trevnorris>indutny: though, in the up side, memory usage looks stable :)
18:29:52  <trevnorris>indutny: honestly, the haulting issue isn't as seriously, nor do we know if it's directly related.
18:29:55  <trevnorris>indutny: so lgtm
18:30:51  <tjfontaine>`3rdEden: https://gist.github.com/tjfontaine/5731347 seems there for me, that's just with `./node -e 'while(1){}'
18:30:54  <tjfontaine>`
18:31:29  <isaacs>trevnorris: yes, in master that's fine
18:31:35  <tjfontaine>node8813 being the interesting provider of course
18:31:37  <isaacs>trevnorris: (externing SringBytes, that is)
18:32:01  <trevnorris>isaacs: coolio
18:32:32  <isaacs>trevnorris: but it's new api, so not in stable
18:32:51  <`3rdEden>tjfontaine: Thanks.
18:37:21  <trevnorris>kk
18:38:01  * indexzeroquit (Quit: indexzero)
18:42:44  * pachet_joined
18:43:00  * qardquit (Ping timeout: 252 seconds)
18:43:57  * qardjoined
18:44:53  * pachetquit (Ping timeout: 248 seconds)
18:45:11  <isaacs>had to resort to NODE_TLS_REJECT_UNAUTHORIZED last night
18:45:23  <isaacs>ie, setting NODE_TLS_REJECT_UNAUTHORIZED=0 in the environment
18:45:31  <isaacs>for npm server stuff. so sad.
18:45:59  <tjfontaine>I don't trust that isaacs guys certificates
18:46:51  * sblomquit
18:49:07  <trevnorris>isaacs: bout 5181. milestone says v0.10. patch is for master, but applies cleanly. you want the check fixed up?
18:52:09  * inolenquit (Quit: Leaving.)
18:55:11  * EhevuTovjoined
18:55:25  * indexzerojoined
18:56:17  <indutny>trevnorris cool
18:56:51  <piscisaureus_>bnoordhuis: can you let your thoughts go over this, esp. about wheter the unix implementation is just a call to uv__nonblock -> https://gist.github.com/piscisaureus/5731532
19:03:08  <isaacs>trevnorris: yeah 5181 should go on v0.10. we need a CLA from jeffbski, and line 179 should be simplified
19:03:24  <trevnorris>isaacs: that's a no go. for some reason that change causes many tests to fail.
19:03:32  <trevnorris>isaacs: i'm takinga quick look no
19:03:33  <trevnorris>w
19:03:56  <isaacs>trevnorris: what change?
19:03:57  <trevnorris>(after rebasing the change to v0.10)
19:04:12  <isaacs>trevnorris: oh, just as-is or with my simplification?
19:04:32  <trevnorris>isaacs: as-is. the PR is on master. so I rebased it on v0.10
19:04:39  <trevnorris>isaacs: that causes tests to fail left and right
19:04:54  * wavdedjoined
19:05:04  * indexzeroquit (Quit: indexzero)
19:06:18  <wavded>does node/libuv due any dns caching internally, e.g. for making repetitive http.request(… ?
19:09:45  <bnoordhuis>piscisaureus_: gnarly. why would you want to implement that on unix?
19:09:49  <isaacs>trevnorris: huh.
19:09:50  <bnoordhuis>wavded: no
19:10:23  <wavded>bnoordhuis: thanks ben, if one were to do that, would they manually lookup the dns and cache it themselves, passing the ip instead of a host name?
19:10:37  <isaacs>trevnorris: that's weird. it doesn't even do that much
19:10:53  <trevnorris>isaacs: if you checkout his changes, then do a "git rebase --onto v0.10 master" it'll rebase just fine
19:11:08  * EhevuTovquit (Quit: This computer has gone to sleep)
19:11:10  <trevnorris>ok. going to double check the changes were actually correct.
19:11:25  <isaacs>trevnorris: i usually use the `curl https://github.com/joyent/node/pull/5181.patch | git am` approach
19:11:35  * EhevuTovjoined
19:11:35  <isaacs>trevnorris: when git changes deps/v8/ make gets confused, and rebuilds the world
19:12:24  <isaacs>there's another trick you can use with git rev-list $one..$two | while read commit; do git cp $commit || break; done
19:12:40  <trevnorris>isaacs: cool. i usually favor the git remote approach.
19:12:42  <isaacs>but the curl |am trick is simpler
19:13:09  <isaacs>ok, off to fuck up npm by changing around /etc/hosts and see what breaks with the new SSL cert :)
19:13:12  <isaacs>maybe nothign will break.
19:13:16  <isaacs>wouldn't that be fun :)
19:13:28  <bnoordhuis>wavded: yep, pretty much
19:13:28  <trevnorris>lol, yeah.
19:14:24  <wavded>bnoordhuis: thx
19:15:38  <trevnorris>isaacs: fwiw, all that type checking of similar-ish types in a type-less language really sucks. :P
19:15:53  <isaacs>trevnorris: yep.
19:16:06  <isaacs>trevnorris: there are benefits to loose typing, but this is the payment we make
19:16:20  <trevnorris>seriously
19:19:55  * bnoordhuisquit (Ping timeout: 276 seconds)
19:27:16  * amartensjoined
19:30:47  * indexzerojoined
19:31:45  * amartensquit (Ping timeout: 248 seconds)
19:46:03  * c4miloquit (Remote host closed the connection)
19:46:50  * c4milojoined
19:51:16  <trevnorris>LOUDBOT: show me some love!
19:51:16  <LOUDBOT>trevnorris: IN THESE HALLS, WE ARE LOUD, IN THE NAME OF OUR BOT WHO MAKES SURE WE GET OUR DAILY LOL.
19:51:42  <tjfontaine>LOUDBOT: SEARCH JAVASCRIPT
19:51:43  <LOUDBOT>tjfontaine: <CarsonLynn:#ncsulug> I HATE HTML/CSS/JAVASCRIPT
19:51:46  <tjfontaine>LOUDBOT: SEARCH JAVASCRIPT
19:51:46  <LOUDBOT>tjfontaine: <Raynos:#stackvm> I HAVE MADE A MODULE THAT IS SINGLETONS IN JAVASCRIPT. IT IS THE BEST
19:51:53  <tjfontaine>LOUDBOT: SEARCH JS
19:51:54  <LOUDBOT>tjfontaine: <simcop2387-lap:##turtles> ALSO HAS JSTIZZLE BEEN RUINING WINE TO BE ABLE TO KNOW THAT A GIRL CAN DO THAT ON HER OWN?
20:03:54  * indexzeroquit (Quit: indexzero)
20:11:10  * wavdedquit (Quit: Nighty night)
20:12:58  <trevnorris>isaacs: re "+- When referring specifically to the binary executable, it's always `node`, capitalized like a normal noun" um. `node` there isn't capitalized.
20:13:16  <trevnorris>oh. nm
20:13:29  <trevnorris>missed the full meaning of "like a _normal_ noun"
20:14:42  * pachet_quit (Quit: leaving)
20:15:53  * wavdedjoined
20:22:06  <Raynos>tjfontaine: ;_;
20:23:10  <tjfontaine>Raynos: because of loudbot or?
20:23:13  <tjfontaine>oh yes you
20:23:15  <tjfontaine>hehe
20:23:16  <Raynos>loudbot.
20:23:33  <tjfontaine>LOUDBOT: YOU KNOW ALL ABOUT RAYNOS DON'T YOU?
20:23:34  <LOUDBOT>tjfontaine: CRITICS ARE TOO FUCKING CRITICAL.
20:23:41  <tjfontaine>so true.
20:23:44  <Raynos>:D
20:23:55  * rendarquit (Ping timeout: 264 seconds)
20:25:07  * leonvvjoined
20:25:57  * bnoordhuisjoined
20:26:19  * indexzerojoined
20:27:33  * amartensjoined
20:30:46  * bnoordhuisquit (Ping timeout: 276 seconds)
20:31:14  * dap1joined
20:32:30  * amartensquit (Ping timeout: 264 seconds)
20:33:23  * dapquit (Ping timeout: 240 seconds)
20:38:00  <isaacs>is it weird that pressing ^C doesn't trigger error listeners?
20:38:03  <isaacs>er, exit listeners
20:38:24  <tjfontaine>node_crypto_bio.h and node_crypto_groups.h need include guards
20:39:00  <tjfontaine>isaacs: hm, you mean process.on('exit') doesn't get hit if you ^C?
20:39:04  * rendarjoined
20:39:05  * rendarquit (Excess Flood)
20:39:12  <isaacs>tjfontaine: yeah
20:39:13  <trevnorris>yeah. you need to process.on('SIGINT')
20:39:23  * rendarjoined
20:39:32  <isaacs>right, but... i don't want to rpevent the normal exit if the user DOES ^C
20:39:34  <trevnorris>i'll usually throw "process.on('SIGINT', process.exit)" in some script-type stuff
20:39:39  <trevnorris>ah, yeah
20:39:48  <isaacs>and i also don't want to CAUSE the exit, if the user adds a SIGINT handler.
20:40:02  <trevnorris>good point.
20:40:04  <tjfontaine>sure but this is the right behavior for beforeExit
20:40:10  <tjfontaine>just not exit
20:40:18  <isaacs>tjfontaine: in this case, i actually only care if we're actually exiting
20:40:33  <tjfontaine>nod
20:40:39  <isaacs>tjfontaine: and beforeExit wont' fire anyway, because there are event loop stuff still happening
20:40:44  <isaacs>setTimeout(fn, 10000) or something
20:40:48  <isaacs>then ^C while it's running
20:42:17  <isaacs>arrrrg, just figured out why npm publish is several seconds longer than it ought to be
20:42:22  <isaacs>i'm double-locking folders
20:42:43  <tjfontaine>I've been in a race a few times with some strange lock's so that probably explains that
20:44:19  <isaacs>yeah
20:44:32  <isaacs>every time it adds a folder to the cache, it locks the folder, and then the tar operation locks the folder *again*
20:44:54  <isaacs>so... i think maybe because tarring is separate from cache-adding i can get around this by just having the tar stuff use a different id.
20:45:03  <tjfontaine>this is probably what dap1 was seeing a few weeks ago
20:45:46  * indexzeroquit (Quit: indexzero)
20:46:44  <isaacs>holy crap this is so much more faster
20:47:42  <trevnorris>oy, can't believe how much slower not identifying your write strings can be. e.g.
20:48:18  <trevnorris>var b = new Buffer(65536); b.write(<long_string>); // 40000ns
20:48:34  <trevnorris>b.write(<long_string>, 'ascii'); // 2900ns
20:48:58  <isaacs>trevnorris: well, sure, because then it's utf8
20:49:22  <trevnorris>isaacs: yeah, I know. Also just think that not enough devs realize it too.
20:50:09  <trevnorris>isaacs: anyways. i'm working in the new String::NewFrom* API to StringBytes
20:50:15  * qard1joined
20:50:18  <trevnorris>see if it offers any perf improv.
20:51:00  * indexzerojoined
20:52:58  * c4miloquit (Remote host closed the connection)
20:53:31  * qardquit (Ping timeout: 276 seconds)
20:56:16  <trevnorris>isaacs: what's w/ the force_ascii stuff? not understanding why that's necessary.
20:56:32  <tjfontaine>heh, so coincidentally, it was pointed out in the office that perhaps `decodeStrings` isn't the most straight forward of a name for what it means :)
20:57:41  <trevnorris>yeah. makes sense. maybe convertStrings
20:57:52  <trevnorris>or gimmeTheBuffers
20:58:17  <tjfontaine>heh, coerceToBuffer
20:58:57  <trevnorris>mother. ok, what's the difference between a char* and uint8_t*?
21:00:05  <isaacs>tjfontaine: yeah, we use the terms "write" and "decode" rather interchangeably
21:00:13  <isaacs>Buffer.writeString writes a string to the buffer
21:00:25  <isaacs>StringDecoder "decodes" strings into a buffer
21:00:49  <trevnorris>makes buffers sounds all cryptic ;-)
21:00:50  <isaacs>write(chunk, 'ascii') writes the bytes in the string into a socket or whatever
21:00:51  * `3rdEdenquit (Remote host closed the connection)
21:01:15  <isaacs>node::Encode() ~= StringDecoder
21:01:16  <tjfontaine>it gets particularly headscratchy when you read: "Will always be a buffer unless the decodeStrings option was set to false."
21:01:28  <tjfontaine>but ya
21:01:30  <isaacs>decodeStrings => use a StringDecoder
21:01:34  <tjfontaine>right
21:01:59  <tjfontaine>I get it, it's just about writing our docs more clearly
21:02:02  <isaacs>anyway, it's taco time here.
21:02:05  <tjfontaine>enjoy
21:02:07  * isaacsoff to xolo
21:02:08  * isaacs&
21:02:08  <LOUDBOT>KANDIT WHAT TAIYAL DOES ON => TRUE, ON,OFF => TRUE, NOT FOR ANY MONEY OR REP
21:04:09  <trevnorris>tjfontaine: is it safe to convert from char* to uint8_t*?
21:08:19  <tjfontaine>trevnorris: I can't think of a platform of ours where that's a problem
21:08:25  <trevnorris>coolio, thanks.
21:08:34  <tjfontaine>but I defer to ben of course :)
21:09:34  <trevnorris>yeah. where is he?
21:09:43  <trevnorris>supposed to be reviewing my patch
21:09:51  <trevnorris>LOUDBOT: curse bnoordhuis for me
21:09:51  <LOUDBOT>trevnorris: WHY CAN'T THEY PAVE A VENT FAIRY
21:09:59  <trevnorris>LOUDBOT: ?
21:10:00  <LOUDBOT>trevnorris: KIDS ON LAWN, ATTACK IMMEDIATELY
21:10:18  * indexzeroquit (Quit: indexzero)
21:11:43  <trevnorris>ok, there's got to be a better way to do this:
21:11:43  <trevnorris>reinterpret_cast<uint8_t*>(const_cast<char*>(out))
21:11:48  * indexzerojoined
21:12:49  <trevnorris>nm. found it
21:14:41  <trevnorris>whoa. makes toString('ascii') 60% faster.
21:24:46  * wavdedquit (Quit: Hasta la pasta)
21:27:39  * papertigersquit (Quit: papertigers)
21:27:52  * amartensjoined
21:31:28  * amartensquit (Read error: Operation timed out)
21:37:12  * dap1quit (Quit: Leaving.)
21:39:37  * AvianFlujoined
21:44:21  * c4milojoined
21:46:33  * dominictarrjoined
21:48:47  * EhevuTov_joined
21:52:01  * EhevuTovquit (Ping timeout: 276 seconds)
21:52:09  * TooTallNatequit (Quit: Computer has gone to sleep.)
21:52:47  * hzjoined
21:54:45  * dominictarrquit (Quit: dominictarr)
21:56:24  * leonvvquit (Remote host closed the connection)
21:56:45  <trevnorris>isaacs: just for you man: https://github.com/joyent/node/pull/5641
21:57:24  <trevnorris>^ for anyone else who feels like reviewing :)
21:58:40  <trevnorris>ircretary: tell bnoordhuis because I like you to only review, and never code, here's another (much smaller though) https://github.com/joyent/node/pull/5641
21:58:40  <ircretary>trevnorris: I'll be sure to tell bnoordhuis
22:02:12  * EhevuTov__joined
22:05:30  * EhevuTov_quit (Ping timeout: 256 seconds)
22:08:56  <trevnorris>tjfontaine: api question. two methods that do basically the same thing (create a "new" external string)
22:09:06  <trevnorris>tjfontaine: but one makes a copy of the data beforehand, while the other uses the original data
22:09:35  <trevnorris>tjfontaine: what kind of naming you think is simplistic but easily understandable?
22:10:00  <tjfontaine>hm
22:10:24  <tjfontaine>::Copy and ::Use make sense to me
22:10:56  <tjfontaine>or maybe ::New and ::NewFromCopy
22:11:08  <trevnorris>lol, that's actually exactly what I have :)
22:11:32  <tjfontaine>the latter?
22:11:35  <trevnorris>yeah.
22:11:42  <trevnorris>did you peak at my PR?
22:11:43  * TooTallNatejoined
22:11:57  <tjfontaine>ya I don't hate it, it's not as obvious as I'd like, I did look at it briefly but got side tracked at work
22:13:04  <trevnorris>ok. well it's completely internal so can easily change later.
22:13:14  <tjfontaine>node
22:13:15  <tjfontaine>*nod
22:13:16  * rendarquit
22:13:17  <tjfontaine>:)
22:13:18  * qardjoined
22:13:30  <trevnorris>coolio.
22:13:43  <trevnorris>i'm super stoked for that. it's like ridiculously faster.
22:13:50  <trevnorris>s/that/this
22:15:09  <tjfontaine>did your pr include the numbers?
22:15:23  * indexzeroquit (Quit: indexzero)
22:15:30  <tjfontaine>hm no, everyone likes pretty numbers :)
22:15:47  <trevnorris>heh, first working on the test cases. then the numbers. :)
22:16:05  * qard1quit (Ping timeout: 248 seconds)
22:17:55  * c4miloquit (Remote host closed the connection)
22:18:08  * EhevuTov__quit (Quit: This computer has gone to sleep)
22:19:24  * piscisaureus__joined
22:19:52  * piscisaureus_quit (Read error: Connection reset by peer)
22:19:57  * hij1nxquit (Ping timeout: 245 seconds)
22:25:26  <trevnorris>tjfontaine: you know of a way to convert a char* of utf8 to uint16_t*?
22:26:31  <tjfontaine>it's probably not a simple cast
22:26:49  <tjfontaine>well clearly not cast, but also not just combining pairs :)
22:26:55  <trevnorris>yeah. :(
22:27:02  <trevnorris>ascii and ucs2 is so freakishly fast though
22:27:13  <tjfontaine>ya well
22:27:40  <tjfontaine>getting char* to uint16 will require interpretation, but the boundaries for doing so may be fairly broad
22:28:11  <trevnorris>yeah. bummer. oh well, guess the utf8 case will just need to remain slow. :(
22:28:14  * amartensjoined
22:32:58  * amartensquit (Ping timeout: 276 seconds)
22:33:32  * hzquit
22:35:03  * AvianFluquit (Remote host closed the connection)
22:37:25  * st_lukequit (Remote host closed the connection)
22:38:42  * Benvie_quit
22:45:28  * hij1nxjoined
22:56:24  <trevnorris>tjfontaine: here are your stinkin number! https://github.com/joyent/node/pull/5641
22:57:03  <tjfontaine>heh
22:57:34  <tjfontaine>bigger is better?
22:57:40  <tjfontaine>or is this in duration
22:58:07  <trevnorris>sorry. time is ns to execute.
22:58:12  <trevnorris>to smaller == better
22:58:16  <trevnorris>s/to/so
22:58:29  <tjfontaine>ok
22:58:50  * udpjoined
22:59:00  <tjfontaine>biggest win of course are binary strings
22:59:13  * piscisaureus__quit (Quit: ~ Trillian Astra - www.trillian.im ~)
22:59:48  <trevnorris>that should help crypto.
23:01:13  <trevnorris>tjfontaine: is this proper:
23:01:14  <trevnorris>uint16_t* new_data = new uint16_t[length];
23:01:21  <trevnorris>memcpy(new_data, data, length);
23:03:57  <TooTallNate>trevnorris: that doesn't look right….
23:04:16  <trevnorris>TooTallNate: yeah. figured.
23:04:21  <TooTallNate>"length" for for uint16_t array will be 2-bytes per entry
23:04:27  <TooTallNate>but the "length" entry in memcpy() is byte
23:04:30  <TooTallNate>bytes
23:04:32  <trevnorris>freakin duh...
23:04:44  <TooTallNate>so length * 2 probably :p
23:04:55  <TooTallNate>(assuming `data` is also a uint16_t*)
23:05:03  <tjfontaine>well it's probably a char*
23:05:06  <trevnorris>data is char*
23:05:13  <trevnorris>yeah so it'd be / 2, right?
23:05:13  <tjfontaine>it's an abuse to be sure
23:05:32  <trevnorris>heh, yeah i'm sure bnoordhuis will have something to say about it
23:05:37  <TooTallNate>trevnorris: are you converting char* to uint16_t*?
23:05:57  <trevnorris>TooTallNate: it's being converted before being passed.
23:06:14  * theColejoined
23:06:16  <TooTallNate>trevnorris: oh, so `data` is already 0-interlaced?
23:06:27  <trevnorris>no idea what that means
23:06:43  <tjfontaine>it's utf8, so not every character is necessarily two bytes
23:06:54  <TooTallNate>well like, "hello" in ascii would be "h\0e\0l\0l\0o" in utf16
23:07:04  <TooTallNate>+ a trailing \0 :p
23:07:07  <trevnorris>tjfontaine: well, if the user passes ucs2 then don't we assume it's a two byte string?
23:07:32  <TooTallNate>trevnorris: ahh i see
23:07:36  <TooTallNate>i mean tjfontaine :p
23:07:58  * dominictarrjoined
23:08:23  <tjfontaine>utf/ucs is all fuzzy to me, but I would be surprised if memcpy would work for what you're wanting to do trevnorris
23:08:44  <trevnorris>poop.
23:08:58  <tjfontaine>I could be wrong and be pleasantly surprised
23:09:00  * notschoolantjoined
23:09:17  * notschoolantpart ("Leaving")
23:09:19  <tjfontaine>but if it were that easy, wouldn't you sort of expect v8 to do the lifting for you?
23:11:14  <trevnorris>tjfontaine: except this is for use on external strings.
23:11:27  <trevnorris>it's faster to memcpy then point to the external data than copy it into the v8 heap.
23:11:34  <trevnorris>if the string is large-ish.
23:12:20  <tjfontaine>right I am all for the perf where we can get it, I just don't know enough around the utf/ucs area to even feel comfortable saying that the memcpy will work in all cases :)
23:13:13  <trevnorris>tjfontaine: well, it does assume a two-byte string. "Buffer('aaa').toString('ucs2') == '慡'"
23:13:50  <trevnorris>what I dont' get is if I do "new uint16_t[length]" the test goes over:
23:13:51  <trevnorris>AssertionError: "привет\u0000\u0000˘Ʃ\u0000\u0000" == "привет"
23:14:16  <trevnorris>but if I do length / 2 then it goes under:
23:14:22  <trevnorris>AssertionError: "при\u0000ʈƘ" == "привет"
23:16:09  * theColequit (Quit: theCole)
23:16:28  * paddybyersquit (Ping timeout: 260 seconds)
23:17:37  * dapjoined
23:18:00  <trevnorris>ah crap. my external two byte class is really borked.
23:18:03  <trevnorris>ok. need to work on that.
23:18:18  <trevnorris>and probably why binary is so much faster :P
23:18:22  * trevnorris&
23:18:23  <LOUDBOT>NOW NOW, YOU'RE JUST CRANKY BECAUSE YOU HAVEN'T HAD YOUR JUICE YET.
23:18:30  <tjfontaine>exactly.
23:18:36  <tjfontaine>enjoy trevnorris
23:27:24  * kazuponjoined
23:28:32  * amartensjoined
23:31:48  * amartensquit (Read error: Connection reset by peer)
23:32:00  * amartensjoined
23:46:13  * brsonquit (Ping timeout: 248 seconds)
23:49:18  * dominictarrquit (Quit: dominictarr)
23:52:53  * brsonjoined
23:58:28  * brsonquit (Read error: Operation timed out)