00:00:08  * loladiroquit (Quit: loladiro)
00:01:09  * benoitcjoined
00:06:01  * dapquit (Quit: Leaving.)
00:08:19  * joeandaverdejoined
00:09:52  * loladirojoined
00:28:26  * EhevuTovquit (Quit: This computer has gone to sleep)
00:33:24  * AvianFlujoined
00:35:49  * xer0xjoined
00:50:54  * pooyaquit (Quit: pooya)
00:51:42  * xer0xquit (Ping timeout: 276 seconds)
00:58:07  * TheJHquit (Ping timeout: 260 seconds)
01:02:31  * ericktjoined
01:09:13  * lohkey_joined
01:09:13  * lohkey_quit (Client Quit)
01:11:59  * lohkeyquit (Ping timeout: 260 seconds)
01:14:09  * pooyajoined
01:19:19  * loladiroquit (Quit: loladiro)
01:25:48  * TooTallNatequit (Quit: ["Textual IRC Client: www.textualapp.com"])
01:26:57  * kazuponquit (Remote host closed the connection)
01:35:28  * abraxasjoined
01:35:41  * abraxasquit (Read error: Connection reset by peer)
01:36:16  * abraxasjoined
01:36:29  * `3rdEdenjoined
01:41:09  * `3rdEdenquit (Ping timeout: 260 seconds)
01:48:11  <bnoordhuis>silly question: function F() {} var g = new F; g(42)
01:48:46  <bnoordhuis>is it possible to make v8 somehow turn g(42) into a call-as-function?
01:48:52  <bnoordhuis>instead of this -> TypeError: Property 'g' of object #<Object> is not a function
01:49:10  <bnoordhuis>it's possible through the c++ api but is there a pure js solution?
01:57:00  * loladirojoined
01:57:03  * loladiroquit (Client Quit)
02:04:50  * brsonquit (Quit: leaving)
02:13:26  * xer0xjoined
02:22:42  * AvianFluquit (Remote host closed the connection)
02:30:13  * AvianFlujoined
02:32:55  <bnoordhuis>in case anyone's interested, i managed to make it work (more or less): https://gist.github.com/259caead871bcc42d8bc
02:33:35  <bnoordhuis>it's kind a franken-object though, this !== obj
02:36:16  * kazuponjoined
02:36:22  * kazuponquit (Remote host closed the connection)
02:53:50  * brsonjoined
03:02:32  <bradleymeck>bnoordhuis: through proxies yes, through C++ yes, otherwise, no
03:04:14  * joshthecoderjoined
03:06:01  <bradleymeck>bnoordhuis: why do that ?
03:07:08  <bnoordhuis>bradleymeck: so i can write a nice assembler in js
03:07:22  <bradleymeck>bnoordhuis: but why does it need to be a function?
03:08:21  <bnoordhuis>bradleymeck: because it needs to be either 'das ding an sich' or it needs to create an indirection object
03:08:40  <bnoordhuis>bradleymeck: mov(eax, ebx) cf. mov(eax(esi, 8), ebx)
03:09:11  <bnoordhuis>i could've settled for mov(eax(), ebx()) but that would mean lots of extra parens
03:12:59  <bnoordhuis>oh, and also that reg === eax wouldn't have worked
03:14:27  <bradleymeck>i would have gone for a pool that generates functions rather than objects that could be invoked
03:14:35  <bradleymeck>but thats kinda odd
03:14:53  * c4milojoined
03:17:11  * lohkeyjoined
03:17:54  * joeandaverdequit (Quit: joeandaverde)
03:53:55  * kazuponjoined
04:01:34  * loladirojoined
04:01:46  * loladiroquit (Client Quit)
04:18:37  * lohkeyquit (Quit: lohkey)
04:19:59  * ericktquit (Quit: erickt)
04:37:43  * c4miloquit (Remote host closed the connection)
04:42:20  * rphillipsjoined
04:50:04  * pooyaquit (Quit: pooya)
04:51:32  * bradleymeckquit (Quit: bradleymeck)
04:52:32  <bnoordhuis>ircretary: tell bradleymeck in case you're wondering what that object-as-function thing was about: https://gist.github.com/5e2422c8dea2c8579379
04:52:32  <ircretary>bnoordhuis: I'll be sure to tell bradleymeck
04:57:24  * bnoordhuisquit (Ping timeout: 248 seconds)
05:41:36  * xer0xquit (Ping timeout: 276 seconds)
06:16:54  * brsonquit (Ping timeout: 264 seconds)
06:23:46  * brsonjoined
06:44:46  <isaacs>ircretary: tell bnoordhuis Nice license https://gist.github.com/5e2422c8dea2c8579379 I like the "with or without fee" bit :)
06:44:46  <ircretary>isaacs: I'll be sure to tell bnoordhuis
06:57:19  * benoitcquit (Excess Flood)
06:59:23  * rendarjoined
07:03:06  * benoitcjoined
07:16:19  * AvianFluquit (Remote host closed the connection)
07:27:38  * `3rdEdenjoined
07:28:01  * `3rdEdenquit (Remote host closed the connection)
07:29:27  * joshthecoderquit (Quit: Leaving...)
07:31:40  * AvianFlujoined
07:38:46  * `3rdEdenjoined
07:40:33  * AvianFluquit (Remote host closed the connection)
07:52:19  * paddybyersjoined
08:12:02  * stagasjoined
08:19:08  * brsonquit (Quit: leaving)
08:38:08  * `3rdEdenquit (Read error: Connection reset by peer)
08:38:34  * `3rdEdenjoined
08:40:03  * ArmyOfBrucequit (Excess Flood)
08:40:35  * ArmyOfBrucejoined
08:41:48  * kazuponquit (Remote host closed the connection)
10:07:07  * abraxasquit (Remote host closed the connection)
10:14:40  * mralephjoined
11:08:09  * janjongboomjoined
11:12:52  * TheJHjoined
11:15:16  * sergimjoined
11:22:45  * sgallaghjoined
11:58:45  * piscisaureus_joined
12:08:00  * AvianFlujoined
12:14:23  * `3rdEdenquit (Remote host closed the connection)
12:14:24  * `3rdEden_joined
12:14:31  * TheJHquit (Ping timeout: 244 seconds)
12:14:39  * stagasquit (Ping timeout: 260 seconds)
12:14:48  * `3rdEden_changed nick to `3rdEden
12:39:18  * sergimquit
12:39:40  * sergimjoined
12:58:40  * bradleymeckjoined
13:01:46  * bradleymeckquit (Client Quit)
13:13:36  * TheJHjoined
13:22:25  * TheJHquit (Ping timeout: 256 seconds)
13:34:43  * bnoordhuisjoined
13:35:00  * TheJHjoined
13:35:09  * Benviequit (Read error: Connection reset by peer)
13:36:06  * Benviejoined
13:36:37  * continuumjoined
13:41:27  <bnoordhuis>man, lots of bogus bug reports today
13:42:02  <indutny>:)
13:42:42  <saghul>bugception
13:45:30  <bnoordhuis>indutny: where are you today? russia, NL, somewhere else?
13:45:38  <indutny>russia
13:45:42  <bnoordhuis>ah okay, nvm then
13:46:00  <indutny>I hope I'll get to NL soon
13:55:10  * kazuponjoined
13:55:28  <saghul>indutny are you moving to NL?
13:56:03  <indutny>who told ya so?
13:57:03  <saghul>your previous message xD
13:57:52  <tjfontaine>ircretary: tell TooTallNate currently tucked away in a gist mostly, I can put into a proper repo
13:57:52  <ircretary>tjfontaine: I'll be sure to tell tootallnate
13:58:31  <indutny>saghul: are you from Spain?
13:58:44  <indutny>oh no
13:58:48  <indutny>you're from NL
13:58:53  <saghul>saghul originally yes, but I live in Amsterdam since 3 years ago
13:59:02  <indutny>ok
14:00:37  <janjongboom>Holland is taking over node
14:01:07  <sergim>brace yourselves
14:01:26  <tjfontaine>bnoordhuis: oh man that assembler, oh man ...
14:01:34  * ericktjoined
14:01:51  <bnoordhuis>tjfontaine: is that a good or bad "oh man"? :)
14:02:07  <tjfontaine>bnoordhuis: both :)
14:03:13  * bradleymeckjoined
14:04:39  <tjfontaine>re #4220, reminds me that http.Agent should probably not .close but .unref
14:04:42  <saghul>bnoordhuis how are your courage levels? with regards to faio, that is ;-)
14:05:08  <bnoordhuis>saghul: you know, i tried it on os x last week and it worked. that was with 10.8 though
14:05:33  <saghul>with current faio master?
14:05:52  <bnoordhuis>saghul: yes
14:06:17  <saghul>bnoordhuis I have another 10.6 and 10.8 around, I'll try again later then
14:06:54  * TheJHquit (Ping timeout: 268 seconds)
14:07:00  <bnoordhuis>okay, neat. i guess there may some issues with 10.6, kqueue used to be pretty buggy on os x
14:07:37  <bnoordhuis>*may be
14:08:04  <saghul>poll was totally broken on 10.5 IIRC, so I wouldn't be surprised
14:19:53  * philips_quit (Excess Flood)
14:22:14  * ericktquit (Quit: erickt)
14:22:27  * ki9ajoined
14:23:03  <ki9a>If I get "Assertion failed: (!uv__is_active(handle)), function uv__finish_close, file src/unix/core.c, line 139."with this callstack http://pastebin.com/gYAFHTnK what should I be looking for that I'm doing wrong?
14:23:39  * philips_joined
14:31:36  * ericktjoined
14:32:38  <bnoordhuis>ki9a: what libuv version/commit is that?
14:33:57  * joeandaverdejoined
14:34:46  <ki9a>bnoordhuis: 36b1e1a ; this could just as well be my own bug tw. I don't know where to look though
14:35:27  <bradleymeck>so im using uv_spawn and gdb is showing options.env to be null but the environment is completely empty in the child
14:37:08  <bnoordhuis>ki9a: apparently a handle that was in the process of closing became active again
14:37:18  <bnoordhuis>ki9a: can you attach gdb and inspect the handle?
14:37:34  <ki9a>bnoordhuis: this only happens randomly and never when looking
14:37:37  <ki9a>what could do this?
14:38:21  <bnoordhuis>ki9a: something like uv_close(handle), followed by a uv_read_start(handle) later on
14:38:41  <ki9a>thanks
14:38:47  <ki9a>i'll get back if I figure it out
14:38:55  <bnoordhuis>ki9a: turn on core dumps (ulimit -c unlimited) and inspect the core dump
14:39:02  <bnoordhuis>that should hopefully point you in the right direction
14:39:26  <bnoordhuis>on os x, they're written to /cores or something i believe
14:39:27  <ki9a>oh a cordump is useful?
14:39:48  <roxlu>what does a status of 0 in the uv_write callback mean?
14:40:05  * ericktquit (Quit: erickt)
14:40:06  <bnoordhuis>ki9a: yeah, you can inspect the call stack, drop down to uv__finish_close and inspect the handle (p *handle)
14:40:21  <bnoordhuis>roxlu: that the write went okay :)
14:40:30  <roxlu>ah not good : )
14:41:54  <joeandaverde>Is there a simple way to set the env flag in node to production while using npm start? I've tried SET NODE_ENV=production&npm start but that didn't apply to the node process.
14:42:27  <joeandaverde>Maybe i'm missing a way to start node w/ an environment variable set from the node arguments
14:44:18  * felixgejoined
14:44:18  * felixgequit (Changing host)
14:44:18  * felixgejoined
14:47:29  * kazuponquit (Remote host closed the connection)
14:49:16  <bradleymeck>shouldn't https://github.com/joyent/libuv/blob/master/src/unix/process.c#L343 be behind an if statement?
14:51:14  * continuumquit
14:53:39  <saghul>bradleymeck that's the child, so it's ok AFAIK
14:54:04  <bradleymeck>saghul no, it clears child env on CentOS 6.3 at least if it is set to null
14:54:24  <bradleymeck>needs to test null and only override if it is actually set
14:54:33  <saghul>hum
14:54:45  <saghul>actually, maybe it should never be null
14:55:00  <saghul>it should contain the parent environ, shouldn't it
14:55:23  <saghul>https://github.com/joyent/libuv/blob/master/include/uv.h#L1256
14:55:30  <saghul>bnoordhuis ^
14:59:32  * felixgequit (Quit: http://www.debuggable.com/)
15:02:02  <indutny>bnoordhuis: how is your masm.js stuff going?
15:02:06  <bnoordhuis>saghul, bradleymeck: yes, that's a bug
15:02:09  <indutny>bnoordhuis: is it public?
15:02:17  <bradleymeck>bnoordhuis: pr coming
15:02:22  <bnoordhuis>indutny: yeah somewhat, it's in a gist
15:02:26  <bnoordhuis>indutny: still early days
15:02:34  <bnoordhuis>bradleymeck: please include a regression test :)
15:02:39  <indutny>bnoordhuis: oh, I would be really glad if you'll show me url once again
15:02:46  <bradleymeck>bnoordhuis: Avians on it not me lol
15:03:08  <bnoordhuis>indutny: https://gist.github.com/5e2422c8dea2c8579379
15:04:27  * ki9apart
15:04:46  <indutny>nice
15:06:45  <indutny>actually
15:06:53  <indutny>it could be possible to implement inlined assembly in JIT language
15:06:56  <indutny>not really hard
15:07:06  <indutny>though, it's unsafe
15:07:08  <indutny>a bit
15:10:37  * kazuponjoined
15:11:15  <piscisaureus_>test
15:11:22  <tjfontaine>failed
15:11:38  * piscisaureus_part
15:12:40  <indutny>tjfontaine: you kicked him!
15:12:42  <indutny>I saw it
15:12:53  <tjfontaine>I have magical irc operator powers!
15:12:58  <tjfontaine>or telekinesis
15:21:33  * piscisaureus_joined
15:21:42  <piscisaureus_>bnoordhuis: hey, what have you been working on in the past week?
15:21:46  <piscisaureus_>:-)
15:21:55  <piscisaureus_>(recurring theme on wednesdays)
15:22:18  <mmalecki>piscisaureus_: standups, eh?
15:22:40  <piscisaureus_>mmalecki: no, I have to evaluate ben's performance every week
15:22:44  <piscisaureus_>otherwise he doesn't get paid
15:22:58  <bnoordhuis>piscisaureus_: bug fixing, js assembler/ffi, rm-ev, http parser optimizations, core heap profiling
15:23:04  <bnoordhuis>probably some other things as well
15:23:07  <bnoordhuis>what about you?
15:24:38  <piscisaureus_>bnoordhuis: runjs. integrating indutny's openssl work. firefighting
15:25:03  <bnoordhuis>$ sudo strace -c $HOME/opt/systemtap/bin/stap -e 'probe process("out/Release/node").mark("gc__start") { printf("gc:start"); }'
15:25:06  <bnoordhuis>% time seconds usecs/call calls errors syscall
15:25:09  <bnoordhuis>------ ----------- ----------- --------- --------- ---------------- 74.49 0.001285 0 54172 6 stat 11.71 0.000202 0 11409 getdents
15:25:12  <bnoordhuis>^ what the hell is it doing?
15:25:29  <bnoordhuis>stat-ing the world, it would seem
15:25:57  <piscisaureus_>bnoordhuis: searching modules
15:26:16  <bnoordhuis>yeah, it's scanning all of /lib/modules/$(uname -r)
15:26:44  <bnoordhuis>interestingly though, it also scans for .c files
15:29:52  * benoitcquit (Excess Flood)
15:29:53  <bnoordhuis>now for something odd....
15:29:55  <bnoordhuis>$ du -sh /lib/modules/3.6.0/build/*
15:29:55  <bnoordhuis>279M /lib/modules/3.6.0/build/arch
15:29:55  <bnoordhuis>24M /lib/modules/3.6.0/build/block
15:29:55  <bnoordhuis>20K /lib/modules/3.6.0/build/COPYING
15:29:57  <bnoordhuis>96K /lib/modules/3.6.0/build/CREDITS
15:30:00  <bnoordhuis>16M /lib/modules/3.6.0/build/crypto
15:30:03  <bnoordhuis>72M /lib/modules/3.6.0/build/debian
15:30:05  <bnoordhuis>22M /lib/modules/3.6.0/build/Documentation
15:30:08  <bnoordhuis>Killed
15:30:18  <bnoordhuis>my kernel insists on killing everything that tries to read /lib/modules/$(uname -r)/build...
15:31:23  <tjfontaine>kernel or apparmour/selinux?
15:31:29  <bnoordhuis>tjfontaine: probably apparmour
15:32:29  <bnoordhuis>it's writing all kinds of scary stack traces to the syslog
15:33:18  <indutny>omg
15:33:59  <bnoordhuis>gah, apparmor is such a pain to disable
15:34:02  <tjfontaine>yes
15:35:44  <piscisaureus_>bnoordhuis: js assembler/ffi? what for?
15:36:09  * benoitcjoined
15:36:13  <bnoordhuis>piscisaureus_: because i can
15:36:14  <piscisaureus_>bnoordhuis: also, how do you manage to call these functions?
15:36:25  <piscisaureus_>is it fast?
15:36:27  <bradleymeck>hes going to have to wrap mmap /virtualalloc
15:36:56  <bnoordhuis>piscisaureus_: what bradleymeck said, mmap some executable memory, assemble a thunk and go
15:37:12  <bradleymeck>piscisaureus_: given the source i saw assembling should be fairly fast
15:37:16  <piscisaureus_>bnoordhuis: you probably want to talk to mraleph. It looks quite similar to what he was showing at jsconfeu
15:37:18  <bradleymeck>execution is execution
15:37:49  <piscisaureus_>maybe you can write jsjs :-)
15:38:14  <tjfontaine>jsjs++
15:38:27  <bnoordhuis>piscisaureus_: yeah, i was thinking of writing my own js - but with blackjack
15:38:30  <bnoordhuis>hookers optional
15:38:40  <bnoordhuis>s/js/v8/
15:39:09  <piscisaureus_>I think mraleph used a llvm binding
15:39:26  <bnoordhuis>so apparently you can't disable apparmor on ubuntu 12.04 without rebooting with apparmor=0
15:49:02  * bnoordhuisquit (Remote host closed the connection)
15:53:39  * bnoordhuisjoined
15:58:20  <bnoordhuis>okay, the systemtap patch still needs some work
15:58:33  <bnoordhuis>ReferenceError: DTRACE_HTTP_CLIENT_REQUEST is not defined at ClientRequest.OutgoingMessage._finish (http.js:846:5)
15:59:20  * AvianFluquit (Remote host closed the connection)
15:59:57  * c4milojoined
16:01:29  <indutny>piscisaureus_: I can do it
16:01:36  <indutny>piscisaureus_: I even have HIR generator for JS
16:01:55  <indutny>but god thanks I've stuff to work on
16:02:12  * joshthecoderjoined
16:04:47  <piscisaureus_>indutny: really? were you that bored?
16:05:04  <indutny>piscisaureus_: what do you mean?
16:05:07  <indutny>piscisaureus_: HIR?
16:05:13  <indutny>yes, https://github.com/indutny/spoon
16:05:16  <piscisaureus_>indutny: [17:01] <@indutny> but god thanks I've stuff to work on
16:05:20  <indutny>ah
16:05:40  <indutny>not that bored, I'm just afraid that JS in JS will consume a lot of time
16:05:45  <piscisaureus_>haha
16:05:46  <indutny>which I can probably spend on candor
16:05:49  <indutny>or libuv
16:05:57  <indutny>which reminds me about async race condition
16:06:01  <piscisaureus_>or maybe smithio :-p
16:06:30  <indutny>haha
16:06:38  <indutny>well, not in free time :P
16:07:32  <piscisaureus_>haha
16:08:00  <piscisaureus_>indutny: you don't have any free time
16:08:07  <piscisaureus_>did bnoordhuis forget to mention that?
16:08:35  <indutny>noone can steal that
16:08:39  <indutny>not even ben
16:09:53  <piscisaureus_>bnoordhuis: when is rm-ev done btw?
16:10:00  <piscisaureus_>bnoordhuis: I'm waiting for it :-)
16:11:18  <piscisaureus_>ok, bbiab, making a run to the office
16:13:30  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
16:16:26  * `3rdEdenchanged nick to `3E|COOKIN
16:25:24  * mmaleckichanged nick to mmalecki[party]
16:27:12  * bradleymeckquit (Quit: bradleymeck)
16:27:46  * AvianFlujoined
16:30:15  * TheJHjoined
16:32:24  * benoitcquit (Excess Flood)
16:34:10  * piscisaureus_joined
16:34:41  <piscisaureus_>aaaand... back :-)
16:36:38  * xer0xjoined
16:37:09  * benoitcjoined
16:37:16  <indutny>:)
16:37:22  * `3E|COOKINquit (Remote host closed the connection)
16:37:42  <indutny>piscisaureus_: so I suppose ...
16:37:47  <indutny>what really happens here
16:37:58  <indutny>is out-of-order memory operations
16:38:03  <indutny>I mean that async bug
16:38:05  <piscisaureus_>indutny: ... where?
16:38:12  <indutny>async pipe
16:38:19  <piscisaureus_>indutny: no
16:38:27  * `3E|COOKINjoined
16:38:29  <piscisaureus_>indutny: what happens is
16:39:15  <isaacs>good morning
16:39:33  <piscisaureus_>indutny:
16:39:33  <piscisaureus_>1 thread writes pointer to async handle
16:39:33  <piscisaureus_>2. main thread calls uv_close() and calls the close callback. async handle is freed
16:39:33  <piscisaureus_>3. main thread reads the pointer from the async pipe, and accesses freed memory
16:39:44  <piscisaureus_>indutny: or is that not what you're referring to?
16:40:08  * stagasjoined
16:40:20  <piscisaureus_>indutny: if memory model is to blame, just insert a barrier after setting "pending" and before reading it
16:41:35  <indutny>yeah
16:41:39  <indutny>saghul: I need your help
16:41:45  <indutny>saghul: to test this thing once again
16:42:02  <saghul>indutny what thing, the async?
16:42:07  <indutny>yes
16:42:38  <saghul>shoot
16:42:46  <indutny>piscisaureus_: well... in your case handle will have pending=1
16:42:51  <saghul>I may not test it right now, but I will definitely do tonight
16:43:16  <indutny>saghul: oh, ping me back then
16:43:34  * `3E|COOKINquit (Ping timeout: 260 seconds)
16:44:09  <saghul>indutny throw the link to a patch when you have it, I'll be on-and-off :-)
16:44:56  <indutny>piscisaureus_: https://github.com/indutny/libuv/commit/605c82c6a2e30c816c2bf7c0bbf2fb0b0e7263de
16:45:31  <piscisaureus_>indutny: what's up with that?
16:45:40  <indutny>piscisaureus_: that's the latest version
16:45:48  <indutny>piscisaureus_: it should not be vulnerable to your sequence
16:45:54  <indutny>bert's sequence
16:46:00  <indutny>sounds like a film
16:47:54  <piscisaureus_>aha
16:48:04  <piscisaureus_>indutny: yes looks like you did it right this time... does it still happen?
16:48:09  <indutny>yes
16:48:15  <piscisaureus_>ok, then I don't know
16:48:18  <piscisaureus_>try inserting a barrier
16:50:09  * Raltjoined
16:51:16  <indutny>piscisaureus_: yeah, but where?
16:51:17  <indutny>:)
16:51:48  <indutny>I thought it might be async_sweep_needed
16:52:43  <indutny>oh
16:52:47  <indutny>may be it's another thing...
16:52:55  <indutny>what if:
16:53:01  <indutny>ah
16:53:05  <indutny>oh
16:53:26  <indutny>I thought the handle might be in pipe twice
16:53:33  <isaacs>piscisaureus_: Hey, in TCPWrap and PipeWrap, we call uv_read_start (or uv_read2_start) and then that calls our OnData function, right?
16:53:50  <piscisaureus_>isaacs: yup
16:53:52  <isaacs>piscisaureus_: if you call uv_read_stop in the OnData callback, is it possible that youu'll get more chunks?
16:54:02  <piscisaureus_>indutny: ah that could also be true
16:54:03  <isaacs>piscisaureus_: ie, is the pause()/resume() there advisory, or reliable?
16:54:13  <indutny>piscisaureus_: but it should not be possible, right?
16:54:36  <piscisaureus_>isaacs: in practice it's reliable.
16:54:45  <piscisaureus_>isaacs: if done from the onread callback
16:54:46  <isaacs>piscisaureus_: what about in theory?
16:54:58  <piscisaureus_>isaacs: it's not defined :-)
16:55:09  <isaacs>i see
16:55:13  <piscisaureus_>isaacs: in practice read_stop() is always reliable atm... that's the theory
16:55:24  <isaacs>ok
16:55:33  <isaacs>i can be defensive about it
16:55:43  <isaacs>but it'd be nice if i didn't have to be
16:55:44  <piscisaureus_>isaacs: but I think we could specify that if it's done from the read callback it's also reliable as per the spec :-)
16:55:51  <isaacs>that'd be good
16:56:11  <isaacs>it seems that way, but i was wondering if i'm just not hitting it hard enough
16:56:24  <piscisaureus_>isaacs: there is an optimization in libuv where read_stop is not always reliable, but the optimization is off because it didn't play nice with the slab allocator
16:56:42  <piscisaureus_>isaacs: but even if it would be on, read_stop from the read callback would always be reliable
16:56:48  <isaacs>ok
16:56:50  <piscisaureus_>isaacs: aah-
16:57:06  <piscisaureus_>isaacs: there is one situation where it isn't reliable, which is in case of tty handles
16:57:15  <isaacs>interesting
16:57:16  <piscisaureus_>isaacs: but there it's also reliable if stopped immediately in the callback
16:58:30  <isaacs>so, once the read callback returns, all bets are off, then?
16:59:08  <piscisaureus_>isaacs: well, sort of yes
16:59:15  <piscisaureus_>isaacs: if you stop, do it from the callback
16:59:19  <piscisaureus_>or you might get more data :-)
17:00:20  * xer0xquit (Ping timeout: 252 seconds)
17:01:15  <isaacs>it might actually be better to handle it defensively, and just pretend that readSTop and readStart are advisory
17:01:48  <piscisaureus_>yeah i think so
17:01:53  <isaacs>piscisaureus_: really, it would be nice if libuv had a read(n, cb) interface for this.
17:02:02  <isaacs>piscisaureus_: rather than readStart and readStop
17:02:24  <isaacs>piscisaureus_: it doesn't, does it?
17:05:46  * mikealjoined
17:05:58  * xer0xjoined
17:07:18  * sergimquit (Quit: Computer has gone to sleep.)
17:08:47  * TooTallNatejoined
17:09:50  * pooyajoined
17:12:28  <piscisaureus_>isaacs: it doesn't
17:12:49  <piscisaureus_>isaacs: maybe you can send an email to Steve Ballmer to make this workable on windows
17:12:49  <tjfontaine>TooTallNate: did you need something from mi6 in particular?
17:12:49  * sergimjoined
17:13:02  <TooTallNate>tjfontaine: i found it btw
17:13:05  <tjfontaine>k
17:13:10  <TooTallNate>tjfontaine: i was just looking to see how you were doing it
17:13:15  <piscisaureus_>isaacs: but my opinion is still that, although the api is nice, there is no technical merit :-)
17:13:17  <tjfontaine>I'm not sure how accurate it is anymore
17:13:24  <tjfontaine>I can synchronize it
17:13:59  <TooTallNate>tjfontaine: we (learnboost) have a similar IRC bot, but it just polls the "feed" XML feed for the organization
17:15:10  <tjfontaine>TooTallNate: ya, and initially I was using the firehose, but decided it was easier to work from the push side of things, the one frustrating point is that the default permission on a webhook via the web interface don't give you anything other than tree operations
17:15:37  <TooTallNate>tjfontaine: so you have to do it programatically?
17:16:07  <tjfontaine>TooTallNate: ya, you can update the webhook permission via the api and get the full set
17:16:25  <TooTallNate>tjfontaine: ya i like the web hook approach a lot better, but the only downside is we would have to set it up for each repo, right/
17:16:26  <TooTallNate>?
17:16:32  <TooTallNate>is there a way to automate that you thing?
17:16:34  <TooTallNate>think?
17:16:57  <tjfontaine>TooTallNate: sure if you're a admin of the repos it's pretty trivial
17:17:38  <tjfontaine>TooTallNate: an example of what I did for my own repos is https://gist.github.com/3794720#file_createhooks.js
17:18:31  <tjfontaine>TooTallNate: instead of predefining the repo you can just pull all repos the user has access to
17:18:54  <TooTallNate>tjfontaine: good idea
17:19:07  <piscisaureus_>sblom: hey
17:19:27  <piscisaureus_>sblom: you should write a blog post about how to use the different ETW "things" we support
17:19:37  <sblom>piscisaureus_: great idea
17:19:47  <piscisaureus_>sblom: because I think that nobody will know how to use it or even what it is good for
17:19:57  <tjfontaine>TooTallNate: when you're playing around with things if you use octoauth be sure to cache the token otherwise when you look at your github account you'll see a ton of authorizations :)
17:20:20  <piscisaureus_>sblom: btw - if I land your etw patch in node now, does it work? or do we need another v8 upgrade for it?
17:22:11  <TooTallNate>tjfontaine: good to know
17:23:25  <isaacs>piscisaureus_: i thought it was just teh read() -> (bytes | null) api that Windows couldn't do
17:23:37  <piscisaureus_>isaacs: yup, that's trye
17:23:39  <piscisaureus_>*true
17:23:39  * EhevuTovjoined
17:23:43  <sblom>piscisaureus_: It works now. If we can coax v8 into doing the symbol filtering on their side so that our event handler doesn't get kicked nearly so often, we could simplify this patch. But there's nothing really wrong with the current approach.
17:23:44  <piscisaureus_>isaacs: so you want overlapped read
17:23:47  <isaacs>piscisaureus_: but it prevents read(n, callback) as well?
17:23:56  <piscisaureus_>like uv_read(read_req, allocator, callback) ?
17:24:01  <isaacs>piscisaureus_: yes.
17:24:03  <piscisaureus_>isaacs: no it doesn't
17:24:04  <piscisaureus_>ah
17:24:06  <piscisaureus_>yeah
17:24:14  <piscisaureus_>we could do that - I think we discussed this
17:24:17  <isaacs>yeah
17:24:29  <isaacs>i can make it work with readStart and readStop, but it's a bit clunky
17:24:47  <piscisaureus_>ah yeah
17:24:54  <piscisaureus_>I am fine with that.
17:25:08  <piscisaureus_>but you know it's $work :-)
17:25:11  <isaacs>sure
17:25:23  <piscisaureus_>but it would be very nice for file streams i think
17:25:33  <isaacs>piscisaureus_: well, we already do that for file streams :)
17:25:45  <piscisaureus_>yeah but the apis are totally separated
17:25:45  * bradleymeckjoined
17:25:57  <isaacs>piscisaureus_: oh, i see
17:26:11  <piscisaureus_>but with overlapped read we could add an optional offset argument and it would all come together
17:26:16  <piscisaureus_>so I would be okay with that
17:26:19  <isaacs>kewl
17:26:28  <piscisaureus_>is it really hard to make it work with read_stop/read_start atm
17:26:44  * janjongboomquit (Quit: janjongboom)
17:26:50  <piscisaureus_>isaacs: if you assume that calling read_stop from the read callback always takes immediate effect then it shouldn't be a big deal right?
17:26:54  <isaacs>no, it's not terrible. just a little inelegant. so, how about this plan: i'll make it work now with readStart/Stop, and we can optimize it later. if that gets in 0.10, great, if not, it'll be an 0.12 thing
17:26:59  <piscisaureus_>yeah
17:27:04  <piscisaureus_>isaacs: ++
17:27:10  <indutny>saghul: still there?
17:27:42  <isaacs>also, there's a bug in st that is really annoying... i'm trying to be too clever and it's biting me :)
17:27:45  <indutny>saghul: I suppose this will fix your issue https://github.com/indutny/libuv/commit/2f9b89f9d6b4f7df22fcc729a8e61a4e2c436999
17:27:46  <indutny>piscisaureus_: ^
17:28:06  <piscisaureus_>saghul: let me know if it works
17:28:08  <piscisaureus_>isaacs: st ?
17:28:15  <indutny>piscisaureus_: I've forced sweep after close
17:28:27  <indutny>piscisaureus_: and checking sweep after calling async's callback
17:28:50  <piscisaureus_>I see
17:28:55  <piscisaureus_>complicated :-)
17:28:58  <saghul>indutny thanks, i'll test it asap
17:29:07  <indutny>piscisaureus_: rather
17:29:18  <indutny>piscisaureus_: but it'll anyway be faster
17:29:26  <indutny>piscisaureus_: on systems with a lot of handles
17:29:31  <piscisaureus_>nice
17:29:39  <indutny>now
17:29:45  <indutny>how can I be helpful for node.js?
17:29:56  <isaacs>piscisaureus_: the static file thingie
17:30:12  <isaacs>i'm closing files while they're still in use, apparently.
17:30:16  <indutny>http://www.blogcdn.com//media/2012/10/ballmerhaztehcrazeeeyes.jpg
17:30:50  * joeandaverdequit (Quit: Page closed)
17:31:02  <indutny>piscisaureus_: how could you work on him
17:31:31  * kazuponquit (Remote host closed the connection)
17:32:17  <TooTallNate>indutny: hahahaha
17:33:09  * stagasquit (Ping timeout: 260 seconds)
17:41:02  * kazuponjoined
17:43:14  * sergimquit (Quit: Computer has gone to sleep.)
17:44:22  * brsonjoined
17:44:39  <piscisaureus_>indutny: you can make node faster :-)
17:44:51  <piscisaureus_>indutny: or you can fix runjs :-p
17:44:54  <piscisaureus_>so i don't have to
17:45:37  * EhevuTov_joined
17:45:43  <indutny>hehe
17:45:44  <indutny>no
17:45:47  <indutny>I leave this hell to you
17:45:56  <piscisaureus_>I wouldn't recommend it either
17:46:55  * EhevuTovquit (Ping timeout: 246 seconds)
17:50:44  <indutny>ok
17:50:49  <indutny>I'll make candor work on ia32 then
17:50:53  <indutny>bradleymeck: heya
17:50:54  <indutny>btw
17:51:00  <bradleymeck>indutny: sup
17:51:03  <indutny>bradleymeck: I still wasn't able to reproduce your issue
17:51:11  <indutny>well, I seen it with your binary
17:51:11  <bradleymeck>fun
17:51:19  <indutny>but I can't get the same binary
17:51:33  <indutny>I suppose apple did something to CXX
17:51:43  <indutny>bradleymeck: can you install latest gcc?
17:51:43  <piscisaureus_>This annoys me
17:51:44  <piscisaureus_>C:\Users\Bert Belder>node
17:51:45  <piscisaureus_>> buffer = new Buffer(1);
17:51:45  <piscisaureus_><Buffer a0>
17:51:45  <piscisaureus_>> buffer
17:51:45  <piscisaureus_>A different "buffer" already exists globally
17:51:45  <piscisaureus_>>
17:52:04  <indutny>haha
17:52:17  <indutny>I think we should bind curse words too
17:52:23  <indutny>C:\Users\Bert Belder>node
17:52:30  <indutny>> fuck = new Buffer(1)
17:52:33  <indutny><Buffer a0>
17:52:34  <indutny>> fuck
17:52:37  <indutny>Go fuck yourself
17:52:39  <indutny>>
17:52:42  <piscisaureus_>haha
17:53:20  * dapjoined
17:53:22  <sblom>bnoordhuis: I pushed changes based on your review feedback on pull 4219 (cc: piscisaureus_). I'm working on a change for your "don't call wcslen() needlessly" perf suggestion.
17:53:54  <piscisaureus_>sblom: so the current v8 in master is already new enough for this etw stuff to work?
17:56:43  * `3E|COOKINjoined
17:56:43  * `3E|COOKINchanged nick to `3rdEden
17:58:39  <sblom>piscisaureus_: it sure looks like it. Before you pull, let me paranoid sanity check, but: 1) Henry said if it compiles and links it's the version of v8 that he expects, and 2) I was seeing what looked like correct events in my testing yesterday.
17:59:19  <piscisaureus_>sblom: well, if it compiles, the v8 version is right
17:59:53  <piscisaureus_>sblom: it wouldn't compile on old versions of v8 because they don't have the code location events api that you're using
18:00:26  * Raltquit (Ping timeout: 245 seconds)
18:00:28  * EhevuTov_changed nick to EhevuTov
18:02:31  * AvianFluquit (Remote host closed the connection)
18:07:12  * kazuponquit (Remote host closed the connection)
18:12:56  <bradleymeck>im compiling on smartos64 using -m32 make and seeing it try to add sendfile64 (linux thing?) to libuv.a anyone seen this before?
18:13:31  <bradleymeck>./src/unix/fs.o matches , dont see a reference directly to smartos64 though
18:14:09  <saghul>indutny now crash happens in a different place: https://gist.github.com/3988795
18:15:20  * lohkeyjoined
18:15:39  * dapquit (Quit: Leaving.)
18:36:38  <bradleymeck>nm
18:37:35  * kazuponjoined
18:39:50  * AvianFlujoined
18:44:28  * paddybyersquit (Ping timeout: 252 seconds)
18:44:37  * stagasjoined
18:47:02  * kazuponquit (Ping timeout: 252 seconds)
18:54:27  * stagas_joined
18:55:47  * stagasquit (Ping timeout: 252 seconds)
18:55:52  * stagas_changed nick to stagas
18:58:16  * pquernajoined
18:58:16  * pquernaquit (Changing host)
18:58:16  * pquernajoined
19:08:18  <sblom>bnoordhuis: Interestingly, the wcslen() call was really easy to eliminate, but there are a bunch of equivalent strlen() calls on node_dtrace_http_server_request_t and node_dtrace_connection_t that it's just not practical to factor out. Seems like the REQUEST and RESPONSE events are going to totally dominate the V8SYMBOL_ADD events, so I'm pretty sure this isn't a very big win.
19:08:37  <sblom>I can show you my change if you're interested. I don't think it's bad. Just not a total win.
19:09:24  * xer0xquit (Ping timeout: 244 seconds)
19:12:01  * `3rdEdenquit (Remote host closed the connection)
19:15:15  <piscisaureus_>sblom: I think bnoordhuis will be back much later
19:15:31  <piscisaureus_>sblom: if it's easy to eliminate, just do it
19:21:41  * c4miloquit (Remote host closed the connection)
19:26:55  * joshthecoderquit (Quit: Leaving...)
19:28:09  * mikealquit (Quit: Leaving.)
19:29:47  * paddybyersjoined
19:31:16  <indutny>saghul: wtf?
19:31:56  * mikealjoined
19:32:08  <indutny>saghul: how is that possible?
19:39:45  * mikealquit (Quit: Leaving.)
19:41:23  * benoitcquit (Excess Flood)
19:43:08  * kazuponjoined
19:44:11  * benoitcjoined
19:47:34  * kazuponquit (Ping timeout: 240 seconds)
19:48:02  <piscisaureus_>sblomL: you have contact with the wix team?
19:52:52  <sblom>piscisaureus_: yeah--its found was a classmate of mine at university
19:52:57  <sblom>s/found/founder/
19:53:03  <piscisaureus_>sblom: ah, cool
19:53:12  <piscisaureus_>sblom: networking +1 :-)
19:53:28  <sblom>piscisaureus_: heh
19:54:12  <piscisaureus_>sblom: as a windows guy, where did you learn to say s/this/that/ ? :-)
19:55:33  <sblom>piscisaureus_: Be nice! :-p Some of us happen to be multi-lingual (or whatever the platform equivalent of that is). :)
19:56:26  <tjfontaine>clearly using the vim vs.net bindings
19:56:36  <sblom>actually, yep
19:56:43  <tjfontaine>heh
19:58:23  <piscisaureus_>Oh I didn't even know that was vim syntax
19:58:23  * c4milojoined
19:58:28  <piscisaureus_>I only know sed
19:59:18  <piscisaureus_>from now on I will do powershell only
19:59:18  <piscisaureus_>-replace 'this', 'that'
19:59:32  <sblom>vim incorporates sed (well, ed, I think) almost entirely. If you type a colon, you're in ed mode
19:59:35  <tjfontaine>piscisaureus_: historically it's probably "ed"
19:59:54  <sblom>lolpowershell
20:00:26  <sblom>Fantastic programming constructs with an awful command line.
20:00:39  <sblom>I need readline keys to function
20:01:04  <piscisaureus_>yeah
20:01:15  <piscisaureus_>it's so disappointing that this stuff never seems to get fixed
20:01:38  <piscisaureus_>maybe we can len you out to the OS team for a month :-)
20:01:41  * joshthecoderjoined
20:01:43  <piscisaureus_>you can fix that, and notepad
20:02:23  <piscisaureus_>-replace 'len', 'lend'
20:02:43  <tjfontaine>I will get my passport and fly over there and hurt you
20:02:56  * sergimjoined
20:03:21  <sblom>Heh. console2 and notepad++, thanks. :) But, yeah, Windows needs to solve this for real.
20:09:10  * EhevuTovquit (Quit: This computer has gone to sleep)
20:09:53  * mikealjoined
20:20:17  * mikealquit (Ping timeout: 255 seconds)
20:20:54  * mikealjoined
20:20:55  <indutny>saghul: yt?
20:27:12  * sergimquit (Quit: Textual IRC Client: http://www.textualapp.com/)
20:29:43  * sgallaghquit (Remote host closed the connection)
20:36:31  * perezdjoined
20:44:16  * kazuponjoined
20:48:36  * kazuponquit (Ping timeout: 240 seconds)
20:48:43  * bradleymeckquit (Quit: bradleymeck)
20:49:55  * mikealquit (Quit: Leaving.)
20:53:25  * lohkeyquit (Quit: lohkey)
20:55:46  * lohkeyjoined
20:57:12  * perezdquit (Quit: perezd)
21:01:31  * xer0xjoined
21:02:02  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
21:04:12  * mjr_joined
21:18:11  * piscisaureus_joined
21:21:45  <bnoordhuis>back
21:23:06  <bnoordhuis>sblom: still around?
21:25:02  * joshthecoderquit (Quit: Leaving...)
21:31:52  * joshthecoderjoined
21:36:50  * xer0xquit (Quit: leaving)
21:40:59  <piscisaureus_>I suppose, sblom is still online on skype :-0
21:44:00  <bnoordhuis>what is this skype that you mention?
21:44:58  * kazuponjoined
21:49:28  * kazuponquit (Ping timeout: 246 seconds)
21:53:33  * stagas_joined
21:53:42  * stagasquit (Ping timeout: 256 seconds)
21:53:52  * stagas_changed nick to stagas
21:54:55  * rendarquit
21:57:44  * stagas_joined
21:59:03  * stagasquit (Ping timeout: 260 seconds)
21:59:08  * stagas_changed nick to stagas
22:04:47  <piscisaureus_>oracle are such morons
22:04:56  <piscisaureus_>every time I upgrade java I risk installing the ask toolbar
22:06:41  <isaacs>piscisaureus_, bnoordhuis: If I call uv_read_stop and then immediately call uv_read_start, is this bad/stupid?
22:06:47  <isaacs>piscisaureus_, bnoordhuis: or just a noop?
22:06:50  <piscisaureus_>isaacs: it's cheap
22:07:15  <isaacs>piscisaureus_: i mean, is it worth setting a flag to check if i need to, to avoid that call?
22:07:39  <bnoordhuis>isaacs: mwah, depends - probably not unless you'll be calling it 1000s of times
22:07:45  <bnoordhuis>but what bertje said, it's cheap
22:08:02  <piscisaureus_>isaacs: but you should consider one thing:
22:08:02  <piscisaureus_>uv_read_stop() <-- takes immediate effect in the read callback
22:08:02  <piscisaureus_>uv_read_start()
22:08:02  <piscisaureus_>uv_read_stop() <-- may not take immediate effect, even in the read callback
22:08:19  <piscisaureus_>isaacs: but this may not apply to what you're doing :-)
22:08:35  <piscisaureus_>isaacs: on either platform read_stop just clears a flag
22:08:41  <piscisaureus_>isaacs: so don't worry about it :-0
22:09:33  <isaacs>piscisaureus_: yeah, that's not what i'm doing
22:09:46  <isaacs>piscisaureus_: i'm basically just emulating uv_read(req, size, callback)
22:09:58  <isaacs>piscisaureus_: er, uv_read(req, size, alloc, callback)
22:10:00  <isaacs>or whatever
22:12:00  <isaacs>also, it looks like we have a lot of optimziations in lib/net.js that are designed to avoid doing work when there's no 'data' listener.
22:12:06  <isaacs>how common is that, really?
22:12:54  * tomshredsjoined
22:14:32  <piscisaureus_>huh, are there?
22:14:40  <piscisaureus_>isaacs: link?
22:16:37  * pooya_joined
22:16:40  <piscisaureus_>bnoordhuis: I am happy with this systemtap stuff
22:16:48  <bnoordhuis>yeah, me too
22:16:54  <bnoordhuis>it's nearly there
22:17:10  <piscisaureus_>now someone needs to create node-dtrace-systemtap-etw :-)
22:17:14  <piscisaureus_>the unified events api
22:17:56  * pooyaquit (Ping timeout: 248 seconds)
22:17:57  * pooya_changed nick to pooya
22:18:08  <isaacs>piscisaureus_: https://github.com/joyent/node/blob/master/lib/net.js#L393-398
22:18:25  <isaacs>piscisaureus_: and stuff like this :https://github.com/joyent/node/blob/master/lib/net.js#L422
22:18:29  <isaacs>that makes no sense.
22:18:35  <isaacs>just call emit. it does those checks.
22:18:59  <isaacs>(i guess it's not a "lot" of optimizations, just those two)
22:19:01  <piscisaureus_>isaacs: well, it won't avoid the slice call
22:19:11  <isaacs>right
22:19:13  <piscisaureus_>isaacs: but I agree - it makes no sense to have a connection and not be listening to data :-)
22:19:15  <isaacs>but who cares?
22:19:22  <piscisaureus_>isaacs: so just drop it
22:19:24  <isaacs>slice is cheap, and it's always going to be called anyway
22:19:26  <isaacs>kk
22:19:33  <isaacs>just wondering if there was some use case i'm forgetting about.
22:19:49  <isaacs>i guess, in streams2, we won't even get here if no one is asking for that data.
22:19:54  <isaacs>since it's pull-based.
22:19:55  <piscisaureus_>sure
22:20:00  <piscisaureus_>yeah
22:26:55  <indutny>isaacs: especially the last one
22:27:17  <indutny>:)
22:28:25  * mikealjoined
22:29:06  * TooTallNatequit (Quit: Computer has gone to sleep.)
22:45:37  * kazuponjoined
22:45:40  <MI6>joyent/node: Frederico Silva master * cfbfaaa : build: let gyp choose msvs version - http://git.io/FM4lGg
22:47:46  * paddybyersquit (Read error: Connection reset by peer)
22:48:31  * paddybyersjoined
22:50:22  * kazuponquit (Ping timeout: 256 seconds)
22:50:31  * TooTallNatejoined
23:00:56  * EhevuTovjoined
23:02:38  <isaacs>wow. first pass at streams2 in net.js, and several tests are actually passing.
23:02:42  * benoitcquit (Excess Flood)
23:03:42  * benoitcjoined
23:04:50  <piscisaureus_>isaacs++
23:06:26  <sblom>bnoordhuis: I'm here. Was in meeting-land.
23:06:43  <piscisaureus_>sblom: didn't you just start like 2 weeks ago?
23:06:51  <bnoordhuis>sblom: i've been there, didn't like the people
23:07:10  <sblom>piscisaureus_: don't underestimate the power of a megacorp to induce meetings.
23:08:01  <piscisaureus_>are all the meetings about node? :-p
23:08:19  <piscisaureus_>that'd be pretty scary
23:08:27  <bnoordhuis>sblom: one last minor style issue, otherwise LGTM. i guess piscisaureus_ should review it too
23:08:42  <piscisaureus_>doing it
23:08:55  <bnoordhuis>sblom: are you working full-time on node or ?
23:09:39  <sblom>bnoordhuis: I'd say it more like "node is my primary focus", since other projects interrupt it from time to time.
23:09:52  <sblom>But, it's what I'm spending the majority of my time on right now.
23:09:56  <bnoordhuis>okay, nice
23:17:06  <piscisaureus_>sblom: had some minor comments, but mostly lgtm
23:17:15  <piscisaureus_>and I like that it ended up being a rather small patch :-)
23:17:33  <piscisaureus_>sblom: I see the wcslen is still in there
23:18:43  * txdvjoined
23:19:38  * txdv_quit (Read error: Connection reset by peer)
23:20:12  * TheJH_joined
23:20:20  * TheJHquit (Ping timeout: 264 seconds)
23:23:01  <piscisaureus_>sblom: also, it might be nice to share the tooling that uses these events (but I probably said that already)
23:23:04  <sblom>piscisaureus_: I think the wcslen version is no longer being used--I'll double-check. I left all four macros around string, string+len, wstring and wstring+len. Maybe I should delete the ones that aren't currently used?
23:23:28  <piscisaureus_>sblom: I was looking at https://github.com/joyent/node/pull/4219/files#L0R62
23:23:44  <sblom>piscisaureus_: Yeah--we're going to publish the tooling as my very next project. I'll make sure there's a good blog post somewhere that explains how to use it.
23:23:59  <piscisaureus_>sblom: but yeah - remove stuff that's not in use, unless you think there;s a good reason to keep it around
23:24:08  <piscisaureus_>(because we need it soon, for example)
23:32:40  <piscisaureus_>sblom: I'm checking out. I think I can land this patch tomorrow if you manage to address the final nites
23:32:42  <piscisaureus_>*nits
23:33:01  <piscisaureus_>(er. $_ -replace 'nites', 'nits')
23:37:33  <sblom>piscisaureus_: one more question before you go. On the comment about always adding a '\0', it looks to me like all cases are covered. Do you mean just add a `symbuf[127] = L'\0';` at the end to cover cases where our future selves break this logic? Or am I overlooking a currently uncovered case.
23:39:50  <piscisaureus_>sblom: more from future selves / v8 guys
23:39:58  <sblom>Okay--will fix that.
23:40:25  <piscisaureus_>sblom: maybe you're right - if you are confident that jevent->code_len will always be accurate then don't worry :-)
23:41:15  <piscisaureus_>I may a bit overzealous here
23:41:25  <sblom>piscisaureus_: Ohh. I see what you're saying. I think we're 100% safe because we're asking the OS to measure the string on line 225
23:41:56  <piscisaureus_>sblom: no we are not
23:42:22  <piscisaureus_>sblom: the os will not measure, it will convert {symbol_len} characters no matter what they are
23:42:42  <piscisaureus_>sblom: if you specify 0 there the os will measure
23:43:24  <piscisaureus_>sblom: MultiByteToWideChar does not null-terminate if you specify a nonzero value for the input length
23:45:29  <sblom>piscisaureus_: I'm pretty sure it produces a null-terminated string unless you hit the specified size without encountering a '\0'. That's the case we're covering in line 232.
23:46:30  <sblom>piscisaureus_: It's totally fair to be paranoid here if you're not convinced. I'm happy to run some tests, but my read of the MultiByteToWideChar docs says we're fine.
23:46:33  * kazuponjoined
23:46:33  <piscisaureus_>sblom:
23:46:33  <piscisaureus_>http://msdn.microsoft.com/en-us/library/windows/desktop/dd319072%28v=vs.85%29.aspx
23:46:33  <piscisaureus_>http://msdn.microsoft.com/en-us/library/windows/desktop/dd319072%28v=vs.85%29.aspx
23:46:49  <piscisaureus_>sblom:
23:46:49  <piscisaureus_>MultiByteToWideChar does not null-terminate an output string if the input string length is explicitly specified without a terminating null character. To null-terminate an output string for this function, the application should pass in -1 or explicitly count the terminating null character for the input string.
23:47:02  <piscisaureus_>oh so the magic value is -1
23:47:12  * piscisaureus_stores that
23:48:22  <sblom>it's the "explicitly count the terminating null" part that makes me calm here.
23:48:34  <piscisaureus_>ok :-)
23:48:41  <piscisaureus_>if you're confident enough I'll let it through
23:49:27  <sblom>I'll get one more set of eyes on this just to be sure, but I'm willing to stand by this code.
23:49:47  <piscisaureus_>sblom: another set of eyes don't seem all that necessary
23:49:52  <sblom>Okay.
23:50:22  <sblom>Cool--I'll get a change together with the rest of the feedback.
23:50:27  <sblom>Have a great night.
23:51:01  <piscisaureus_>sblom: part of this reviewing is also about catching stuff that someone might have gotten wrong. If you are sure that this is good then it's fine with me.
23:51:05  <piscisaureus_>thanks
23:51:39  * kazuponquit (Ping timeout: 276 seconds)
23:51:41  <sblom>piscisaureus_: yeah--I totally appreciate the feedback. I'm a _huge_ fan of reviews and I'm glad that node has this culture
23:52:07  <piscisaureus_>sblom: when you're done, mention me in the issue, or drop me an email, or talk to <piscisaureus> while I am not here. I'll land it tomorrow then.
23:52:32  <piscisaureus_>goodbye all.
23:52:34  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
23:52:40  * paddybyersquit (Ping timeout: 246 seconds)
23:58:43  * piscisaureus_joined
23:58:54  <piscisaureus_>oh- forgot something
23:59:21  <piscisaureus_>isaacs: scott didn't sign the cla, but neither did igor or henry. Do I have a thumbs up to land his patches without it?
23:59:54  <piscisaureus_>isaacs: (iow, do you have a special agreement with the company from 1. microsoft way?)