00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:03  * AvianFluquit (Ping timeout: 244 seconds)
00:00:13  * ircretaryjoined
00:03:24  * iarnaquit (Read error: Connection reset by peer)
00:03:53  * iarnajoined
00:04:58  * toothrotjoined
00:08:52  * ijrothquit (Quit: Leaving.)
00:21:08  * MI6joined
00:23:29  <MI6>joyent/libuv: Mikhail Mukovnikov v1.x * 41ddd1f : doc: mention homebrew in README - http://git.io/MU3RMg
00:26:36  <MI6>joyent/libuv: Thorsten Lorenz v1.x * 3f58562 : doc: add learnuv workshop to README - http://git.io/lQn9CA
00:43:10  * iarnaquit (Remote host closed the connection)
00:58:09  * Damn3dquit (Ping timeout: 260 seconds)
00:59:35  * Damn3djoined
01:12:14  * kazuponjoined
01:15:26  * chris_99quit (Quit: Ex-Chat)
01:23:55  * kazuponquit (Remote host closed the connection)
01:25:20  <jgi>trevnorris: are you ware of this test failing on Windows: http://jenkins.nodejs.org/job/nodejs-julien-windows/DESTCPU=x64,label=windows/lastCompletedBuild/tapTestReport/simple.tap-629/ ?
01:25:30  <jgi>trevnorris: that’s on the remove-al-js branch
01:34:22  * brsonquit (Ping timeout: 256 seconds)
01:35:29  * iarnajoined
01:38:08  * c4milojoined
01:38:44  * kazuponjoined
01:39:04  * brsonjoined
01:40:25  * no9quit (Quit: Number 9 has gone to bake an aphid)
01:43:06  * dap_1quit (Quit: Leaving.)
01:43:26  * Ralithquit (Ping timeout: 256 seconds)
01:52:27  * avalanche123quit (Remote host closed the connection)
01:57:54  * kriskowalquit (Quit: kriskowal)
02:00:21  * kriskowaljoined
02:01:05  * avalanche123joined
02:10:03  * Ralithjoined
02:11:15  * avalanche123quit (Remote host closed the connection)
02:16:23  <MI6>joyent/libuv: Saúl Ibarra Corretgé v1.x * e03c0c7 : doc: fix parameter name in uv_fs_access - http://git.io/rfIodA
02:17:26  * stagasquit (Ping timeout: 256 seconds)
02:20:23  * ijrothjoined
02:24:20  * ijrothquit (Client Quit)
02:33:09  * avalanche123joined
02:35:39  <jgi>trevnorris: ping
02:36:13  <jgi>trevnorris: just sent you a PR to fix a test on Windows and a build issue: https://github.com/trevnorris/node/pull/2
02:36:42  * brsonquit (Ping timeout: 265 seconds)
02:37:54  * a_lequit (Remote host closed the connection)
02:50:22  * inolenquit (Read error: Connection reset by peer)
02:51:46  * avalanche123quit (Remote host closed the connection)
02:58:01  * c4miloquit (Remote host closed the connection)
03:01:15  * kriskowalquit (Quit: kriskowal)
03:04:09  * jgiquit (Quit: jgi)
03:05:57  * stagasjoined
03:08:51  * hueniversequit (Ping timeout: 244 seconds)
03:11:37  * kriskowaljoined
03:13:37  * avalanche123joined
03:14:38  * c4milojoined
03:16:19  * avalanche123quit (Remote host closed the connection)
03:16:23  * c4milo_joined
03:16:49  * c4miloquit (Read error: Connection reset by peer)
03:16:49  * avalanche123joined
03:22:16  * avalanche123quit (Remote host closed the connection)
03:25:08  * avalanche123joined
03:29:59  * petka_quit (Quit: Connection closed for inactivity)
03:30:50  * Damn3dquit (Ping timeout: 265 seconds)
03:33:42  * Damn3djoined
03:34:10  * brsonjoined
03:35:16  * brsonquit (Client Quit)
03:35:35  * brsonjoined
03:37:22  * bradleymeckquit (Quit: bradleymeck)
03:38:55  * avalanche123quit (Remote host closed the connection)
03:47:31  * avalanche123joined
03:52:00  * kazuponquit (Remote host closed the connection)
04:08:02  * inolenjoined
04:16:38  * warehouse13quit (Ping timeout: 258 seconds)
04:18:58  * c4milo_quit (Remote host closed the connection)
04:20:59  * dsantiagoquit (Quit: Leaving...)
04:26:07  * c4milojoined
04:28:59  * dsantiagojoined
04:31:01  * c4miloquit (Ping timeout: 255 seconds)
04:32:04  * rmgquit (Remote host closed the connection)
04:32:09  * inolenquit (Quit: Leaving.)
04:32:23  * kazuponjoined
04:43:21  * toothrotquit (Ping timeout: 272 seconds)
04:43:59  * wolfeidauquit (Ping timeout: 272 seconds)
04:58:39  * Fishrock123quit (Quit: Leaving...)
05:02:38  * a_lejoined
05:04:46  * a_lequit (Remote host closed the connection)
05:05:05  * a_lejoined
05:16:17  * kazupon_joined
05:16:22  * kazuponquit (Ping timeout: 240 seconds)
05:22:00  * brsonquit (Ping timeout: 265 seconds)
05:32:34  * rmgjoined
05:32:46  * wolfeidaujoined
05:33:08  * bradleymeckjoined
05:33:40  * kazupon_quit (Remote host closed the connection)
05:37:09  * kazuponjoined
05:37:39  * rmgquit (Ping timeout: 244 seconds)
05:38:32  * bradleymeckquit (Quit: bradleymeck)
05:52:07  * dsantiagoquit (Quit: Leaving...)
05:52:39  * dsantiagojoined
06:04:38  * ijrothjoined
06:15:02  * c4milojoined
06:20:00  * c4miloquit (Ping timeout: 255 seconds)
06:21:35  * ijrothquit (Quit: Leaving.)
06:22:23  <a_le>anyone around?
06:31:45  * bajtosjoined
06:45:48  * kazuponquit (Remote host closed the connection)
06:48:16  * avalanche123quit (Remote host closed the connection)
06:48:32  * avalanche123joined
06:50:02  * janjongboomjoined
06:52:18  * inolenjoined
07:02:58  * kazuponjoined
07:05:51  * janjongboomquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:16:41  * avalanche123quit (Remote host closed the connection)
07:40:24  * rjequit (Excess Flood)
07:41:02  * rjejoined
07:45:48  * Ldxngx_joined
07:46:23  * Ldxngx_quit (Client Quit)
07:50:19  * Ldxngxjoined
08:00:20  * avalanche123joined
08:03:52  * c4milojoined
08:08:37  * c4miloquit (Ping timeout: 245 seconds)
08:23:43  * seishunjoined
08:27:00  * avalanche123quit (Remote host closed the connection)
08:28:45  * Ldxngxquit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
08:30:00  * bajtosquit (Quit: bajtos)
08:30:33  * Ldxngx_joined
08:33:49  * bajtosjoined
08:43:16  * SergeiRNDjoined
09:17:04  * janjongboomjoined
09:21:21  * abraxas_joined
09:27:23  * avalanche123joined
09:31:57  * avalanche123quit (Ping timeout: 260 seconds)
09:43:25  * seishunquit (Ping timeout: 265 seconds)
09:46:09  * kazuponquit (Remote host closed the connection)
09:47:26  * kazuponjoined
09:52:46  * c4milojoined
09:57:32  * c4miloquit (Ping timeout: 244 seconds)
10:10:28  * janjongboomquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:14:02  * chris_99joined
10:28:19  * mikolalysenko_quit (Ping timeout: 244 seconds)
10:30:06  * mikolalysenko_joined
10:30:23  * Left_Turnjoined
10:32:07  * kazuponquit (Remote host closed the connection)
10:32:33  * kazuponjoined
10:36:31  * janjongboomjoined
10:36:36  * janjongboomquit (Client Quit)
10:37:11  * kazuponquit (Ping timeout: 250 seconds)
10:50:10  * thlorenzjoined
10:51:06  * bajtosquit (Quit: bajtos)
10:59:15  * rmgjoined
11:01:34  * SergeiRNDquit (Quit: Leaving.)
11:03:58  * rmgquit (Ping timeout: 244 seconds)
11:10:00  * robertkowalskiquit (Ping timeout: 265 seconds)
11:10:12  * piscisaureusjoined
11:22:37  * bajtosjoined
11:31:33  * stagasquit (Ping timeout: 264 seconds)
11:31:40  * SergeiRNDjoined
11:41:39  * c4milojoined
11:41:57  * bajtosquit (Quit: bajtos)
11:44:59  * toothrotjoined
11:46:02  * c4miloquit (Ping timeout: 244 seconds)
11:46:32  * janjongboomjoined
11:46:42  * janjongboomquit (Client Quit)
11:48:30  * c4milojoined
11:54:12  * AlexisMochajoined
11:54:42  <AlexisMocha>it looks like the v0.12 build is broken on windows:
11:54:44  <AlexisMocha>src\node_crypto.cc(154): error C2664: 'CRYPTO_THREADID_set_numeric' : cannot convert parameter 2 from 'uv_thread_t' to 'unsigned long' [d:\jenkins\workspace\nodejs-v0.12-windows\eec653f3\node.vcxproj]
11:54:44  <AlexisMocha> There is no context in which this conversion is possible
11:56:09  * thlorenzquit (Remote host closed the connection)
12:00:47  * thlorenzjoined
12:09:44  * zvonimirjoined
12:11:00  <zvonimir>is there a way to execute a callback on loop close?
12:16:56  * janjongboomjoined
12:29:27  * toothrotquit (Ping timeout: 245 seconds)
12:34:55  * thlorenzquit (Remote host closed the connection)
12:42:37  * thlorenzjoined
12:52:32  <AlexisMocha>trevnorris: I have a quick question regarding adding PR-URL and Reviewed-By to commits
12:52:45  * zvonimirpart ("Konversation terminated!")
12:53:19  <AlexisMocha>trevnorris: if a PR has multiple commits, do you update all commits accordingly? If so, do you do it with an interactive rebase? Or do you have any scripts to do it?
13:03:39  * thlorenzquit (Remote host closed the connection)
13:05:54  * avalanche123joined
13:06:04  <txdv>well a PR should usually be like one patch adressing 1 issue
13:07:21  * bajtosjoined
13:10:14  * avalanche123quit (Ping timeout: 258 seconds)
13:25:10  * a3fjoined
13:39:41  * lance|afkchanged nick to lanceball
13:41:09  <AlexisMocha>txdv: a PR/patch can still be comprised of multiple commits
13:46:19  <cjihrig>AlexisMocha: i have opened https://github.com/joyent/node/pull/8686 to address the broken 0.12
13:49:33  * mmaleckiquit (Remote host closed the connection)
13:53:22  <AlexisMocha>cjihrig: thanks! reviewing now...
13:54:17  <txdv>Yes they can
13:54:52  * mmaleckijoined
13:56:06  * AvianFlujoined
14:07:46  * kazuponjoined
14:11:29  * c4miloquit (Remote host closed the connection)
14:14:21  * bradleymeckjoined
14:18:54  * kazuponquit (Remote host closed the connection)
14:19:20  * kazuponjoined
14:22:50  * kazupon_joined
14:25:29  * EhevuTovjoined
14:26:09  * EhevuTovquit (Remote host closed the connection)
14:26:54  * kazuponquit (Ping timeout: 258 seconds)
14:27:25  * c4milojoined
14:29:31  * c4milo_joined
14:30:37  * c4miloquit (Read error: Connection reset by peer)
14:32:06  * Fishrock123joined
14:32:40  * c4milo_quit (Remote host closed the connection)
14:38:43  * a3f_joined
14:40:25  * a3fquit (Ping timeout: 260 seconds)
15:03:20  * bajtosquit (Quit: bajtos)
15:05:32  * bajtosjoined
15:09:15  * SergeiRNDquit (Quit: Leaving.)
15:09:24  * kazuponjoined
15:09:41  * kazupon_quit (Read error: Connection reset by peer)
15:18:07  * cosnisjoined
15:18:28  * cosnisquit (Max SendQ exceeded)
15:19:44  * cosnisjoined
15:22:20  * kazuponquit (Read error: Connection reset by peer)
15:22:39  * kazuponjoined
15:24:17  * cosnisquit (Ping timeout: 272 seconds)
15:28:05  * stagasjoined
15:30:36  * Fishrockjoined
15:32:59  * cosnisjoined
15:33:58  * seishunjoined
15:34:24  * Fishrock123quit (Ping timeout: 245 seconds)
15:36:54  <AlexisMocha>mmm, what to do when saghul is not around? :)
15:37:18  <AlexisMocha>indutny, tjfontaine: can you please review https://github.com/joyent/libuv/pull/1564
15:37:58  <AlexisMocha>and if it looks reasonable, we can merge https://github.com/joyent/node/pull/8692 , which is the above patch floated to node. FIXES BUILD BREAK
15:41:10  <txdv>yeah indutny, come on dude, do something!
15:44:12  * FROGGS[mobile]joined
15:44:44  <txdv>AlexisMocha: what is that patch?
15:44:56  <txdv>It has absolutely nothing to do with the description in the pull request
15:45:13  <txdv>the signature of uv_thread_self is already changed in the 1.* branch
15:45:22  * bajtosquit (Quit: bajtos)
15:45:59  * KennethWilkejoined
15:54:41  * txdvquit (Ping timeout: 272 seconds)
16:00:25  * janjongboomquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:04:50  * txdvjoined
16:05:16  <AlexisMocha>txdv: the signature is fine, it's the implementation that's broken. uv_thread_t is supposed to be a handle, not a thread ID
16:05:52  <a_le>is it ok to invoke uv_run() after uv_stop() ?
16:09:23  <txdv>definetly yes if it is after the original uv_run which was stopped
16:09:31  <txdv>not sure about it if you put it in one of the callbacks
16:12:31  <a_le>txdv i put the uv_stop in one of the callbacks
16:12:59  <a_le>when i try to schedule a new timer before even attempting to do uv_run() again, libuv crashes
16:13:57  * cosnisquit (Ping timeout: 265 seconds)
16:19:10  * seishunquit (Read error: Connection reset by peer)
16:19:43  * seishunjoined
16:38:35  * janjongboomjoined
16:43:52  * SergeiRNDjoined
16:46:37  * Damn3dquit (Ping timeout: 272 seconds)
16:50:17  * AvianFluquit (Ping timeout: 245 seconds)
16:50:33  * Damn3djoined
16:53:24  * hueniversejoined
17:00:22  * seishunquit (Ping timeout: 240 seconds)
17:06:53  <a_le>txdv: any clue?
17:17:15  * rmgjoined
17:19:12  * c4milojoined
17:27:50  * inolenquit (Quit: Leaving.)
17:30:15  <a_le>txdv: i'm getting this crash http://pastebin.com/JNK8MVrx
17:34:38  * janjongboomquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:38:26  * SergeiRNDquit (Quit: Leaving.)
17:43:13  * jgijoined
17:44:17  * a3f_quit (Remote host closed the connection)
17:45:01  <a_le>for some reason the timer_heap min is NULL.
17:45:06  <AlexisMocha>is there a hashtable implementation that we can use in libuv?
17:48:20  <AlexisMocha>I am afraid it's impossible to avoid the handle leak with the current API without using a dictionary to associate the handle returned by _beginthreadex to the thread id
17:48:34  <AlexisMocha>re: https://github.com/joyent/libuv/pull/1564
17:49:55  <AlexisMocha>(or without using thread local storage)
17:50:44  * dap_joined
17:58:16  * bajtosjoined
17:58:55  * SergeiRNDjoined
17:59:51  * chris_99quit (Quit: Ex-Chat)
18:02:35  * AvianFlujoined
18:06:29  * kazuponquit (Remote host closed the connection)
18:06:58  * SergeiRNDquit (Quit: Leaving.)
18:08:45  * KennethWilkequit (Remote host closed the connection)
18:09:25  * dap_quit (Quit: Leaving.)
18:09:51  * dap_joined
18:16:51  * piscisaureusquit (Ping timeout: 255 seconds)
18:18:47  * avalanche123joined
18:22:46  <trevnorris>tjfontaine: ping
18:24:13  <a_le>trevnorris: i am getting a crash in the heap_insert method for the timer heap
18:24:21  <trevnorris>jgi: I'm not sure how the crypto build failure could be related to my patch. looking at your patch now. thanks.
18:25:28  <trevnorris>AlexisMocha: currently i'm just using an interactive rebase. i'll be creating a node script to automate the process, but been tied up finishing the AL patch.
18:25:36  <jgi>trevnorris: the commit I cherry-picked and pushed to my fork of your remove-al-js branch is a build fix for Windows that itself has been fixed by AlexisMocha
18:26:05  <jgi>trevnorris: It’s just a temporary fix for being able to test remove-al-js on Windows, which showed a failing test that I fixed
18:26:15  <a_le>i init a timer, then i start the timer, then i uv_run(), then i stop the timer, then i uv_run, then i stop the timer, then i close the timer, then i uv_stop, then rinse and repeat, but crash at the second step
18:29:05  <trevnorris>jgi: ah, bugger. I forget that tests abuse the internal API. Thank for the commit. I'll merge those.
18:29:42  <jgi>trevnorris: I think you don’t want to merge the windows build fix I pushed, and instead use the fix from AlexisMocha
18:29:48  <jgi>trevnorris: let me find the link
18:30:22  <jgi>trevnorris: https://github.com/joyent/node/pull/8692
18:36:19  * kriskowalquit (Quit: kriskowal)
18:39:54  <trevnorris>this hasn't landed yet in libuv?
18:42:17  <a_le>essentially it's picking one child that is NULL :/
18:49:27  * rendarjoined
18:49:28  * SergeiRNDjoined
18:55:13  <jgi>othiym23: ping
19:00:20  * piscisaureusjoined
19:01:00  <trevnorris>jgi: just forced pushed updates. should be good to test.
19:02:40  * AlexisMochaquit (Ping timeout: 255 seconds)
19:02:55  * FROGGS[mobile]quit (Ping timeout: 244 seconds)
19:02:57  <jgi>trevnorris: alright thanks, starting jobs asap
19:03:44  <trevnorris>thanks
19:05:56  * kriskowaljoined
19:06:44  * Fishrockquit (Remote host closed the connection)
19:07:15  * kazuponjoined
19:07:56  * SergeiRNDquit (Quit: Leaving.)
19:10:51  * seishunjoined
19:11:01  * Fishrock123joined
19:11:30  * chris_99joined
19:11:49  <trevnorris>piscisaureus: ping
19:11:58  <piscisaureus>trevnorris: hi
19:12:12  * kazuponquit (Ping timeout: 255 seconds)
19:13:17  * bajtosquit (Quit: bajtos)
19:14:05  * bajtosjoined
19:14:07  <trevnorris>piscisaureus: sup. have a crazy proposition. what if the poll for the eloop was run off that thread, and the eloop thread stalled on a semaphore waiting for the poll to return.
19:14:07  <trevnorris>point being that the eloop could be woken by another thread w/o needing to interrupt the poll.
19:18:52  * bajtosquit (Ping timeout: 255 seconds)
19:20:03  * brsonjoined
19:21:04  * Ldxngx_quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
19:26:43  * Fishrock123quit (Read error: Connection reset by peer)
19:27:03  <piscisaureus>trevnorris: it's not a crazy idea, the tradoff here is that normal event processing has more overhead (compared to polling on the main thread) but "wakeups" from another thread are more efficient.
19:27:05  * Fishrock123joined
19:28:02  * AlexisMochajoined
19:28:41  <piscisaureus>trevnorris: the other thing is that the main loop would have to "detect" whether it was woken up by one or the other. Which probably means there will be extra synchronization.
19:29:58  <trevnorris>piscisaureus: great. glad to hear i'm at least not off my rocker.
19:30:49  * kriskowalquit (Quit: kriskowal)
19:31:01  <trevnorris>piscisaureus: could the polling thread continue to poll even if the eloop thread continues execution, then just process anything queued up before triggering the poll again?
19:31:52  <piscisaureus>trevnorris: yes that's a synchronization puzzle (or headache) but I don't see any reason why not.
19:32:46  <chrisdickinson>maybe a silly question: why do net.Socket#write and http.OutgoingMessage#write throw errors immediately on non-string/buffer data, while other writables throw on next tick?
19:32:56  <chrisdickinson>well, "error" event on next tick, I should say.
19:33:20  * seishunquit (Ping timeout: 255 seconds)
19:33:24  <trevnorris>chrisdickinson: Node is crazy inconsistent. don't even take a look at fs.
19:33:29  <piscisaureus>trevnorris: the only thing I don't know if on linux whether epoll_ctl calls will have an effect on active epoll_wait() calls
19:33:33  <chrisdickinson>hah :)
19:34:19  <piscisaureus>trevnorris: otherwise you'd have to interrupt the poll every time you make a change to the epoll fd
19:34:33  <trevnorris>piscisaureus: on linux uv_async_send() uses a fd or some such to wake it up. i'm not sure of all the details.
19:34:39  * kriskowaljoined
19:35:04  <trevnorris>ah, ok. would this approach work on Windows?
19:35:23  <piscisaureus>trevnorris: yes I think so
19:35:55  <trevnorris>awesomeness.
19:36:19  <trevnorris>i'll dig into this more and maybe make a proof-of-concept patch for libuv.
19:36:23  <trevnorris>see how it performs.
19:36:45  <trevnorris>and then I'll have some numbers and implementation whatnot for the libuv2 talk.
19:37:25  <AlexisMocha>trevnorris: https://github.com/joyent/node/pull/8692 fixes the build break but introduces a handle leak (one per thread creation). So I'd recommend landing it in node to fix the build break, but not land the libuv version. We need a little bit more time to figure out the 100% correct fix.
19:39:05  <trevnorris>AlexisMocha: okay, makes sense. is there an issue open? I'd like to read more details on why this is necessary.
19:41:13  <AlexisMocha>trevnorris: what do you mean with "this is necessary"?
19:42:37  <AlexisMocha>piscisaureus: the old version of uv_self_thread() isn't quite desirable either. Everywhere else we use a uv_thread_t. uv_thread_equal() would not be able to compare the result of uv_thread_self() with something returned by uv_thread_create()
19:42:57  <trevnorris>AlexisMocha: The commit message for 7b9b4d57 makes sense, but I don't exactly get why it's leaking a handle.
19:43:04  <AlexisMocha>unfortunately the "fixed" API is more difficult to implement on windows
19:43:14  * SergeiRNDjoined
19:43:40  <AlexisMocha>trevnorris: because we forget the handle returned by _beginthreadex, and never call CloseHandle() on it
19:43:47  <piscisaureus>AlexisMocha: so the distinction to make here is to separate a thread id from a thread object
19:44:23  <piscisaureus>AlexisMocha: what you could do is define an uv_thread_id_t and make that the parameter type for uv_thread_equal() and the return type for uv_thread_self()
19:45:13  * kriskowalquit (Quit: kriskowal)
19:46:08  <AlexisMocha>piscisaureus: that's doable. It looks like uv_thread_t was supposed to be an id-like. What about using a hashtable to associate the creation handle to the id?
19:46:32  <piscisaureus>AlexisMocha: it's so complex...
19:46:41  <AlexisMocha>piscisaureus: I am not sure if we have a hashtable implementation in libuv, but that should be a pretty easy thing to do in 2014 ;)
19:47:09  <piscisaureus>That's nice but will it work for mingw users
19:47:47  <AlexisMocha>which part?
19:47:49  <piscisaureus>AlexisMocha: A tls slot would make more sense in that case
19:48:05  <AlexisMocha>tls slot, yeah
19:48:25  <piscisaureus>AlexisMocha: we don't have a hashtable implementation and I'd rather not get one ..
19:48:33  <piscisaureus>AlexisMocha: let me see how I solved this for ff in c++
19:48:59  <AlexisMocha>piscisaureus: tls slot is also quite complex but I am ok with that
19:50:30  * kriskowaljoined
19:50:47  <AlexisMocha>piscisaureus: just curious: why no hashtable? you don't like O(n) time and space complexity for arbitrary key distributions ;)
19:52:08  <piscisaureus>AlexisMocha: here's the one I did for spidermonkey at some point: https://github.com/piscisaureus/smjs/blob/82f1aa251ef02c3f1d79614c7370e3501fbf739b/src/js/threading/windows/Thread.cpp
19:52:13  <piscisaureus>It's c++ of course
19:54:44  <piscisaureus>AlexisMocha: tls is still better with O(1) then :). But I find performance is hardly an argument here.
19:55:28  <piscisaureus>AlexisMocha: someone added uv_thread_equal() which nobody really cares about because before people would just compare thread ids with ==
19:55:42  <piscisaureus>which is technically against the spec but works 100% of the time
19:56:29  <piscisaureus>and now we have to deal with all this pomp and circumstance and decide between a thread local and a hash table which necessitates more global initalization (the hashtable or tls slot needs to be allocated)
19:56:35  <piscisaureus>and we'll never clean that up
19:56:47  <piscisaureus>so in april 2015 someone drops by that we don't clean that up
19:56:47  <AlexisMocha>piscisaureus: but it didn't. You could not compare an uv_thread_t with the return from uv_self_thread()
19:56:50  <trevnorris>jgi: two things are missing. first are tests. though since a lot of this is undocumented I haven't worried about it much. the second is some (unofficial) documentation. there are implementation details when using the AL callbacks users should be aware of.
19:57:50  <piscisaureus>AlexisMocha: that's true but you could compare two return values of uv_thread_self()
19:58:03  <piscisaureus>what you could do is
19:58:12  <jgi>trevnorris: you mean two things missing from your remove-al-js branch?
19:58:46  <piscisaureus>uv_thread_id_t uv_thread_id(uv_thread_t*); // Returns a comparable id by passing a thread_t*
19:59:26  <piscisaureus>AlexisMocha: which could be implemented with GetThreadId(HANDLE hThread) on windows and just return on unix.
19:59:35  <AlexisMocha>piscisaureus: yep, that goes back to extending the api
19:59:41  * kriskowalquit (Quit: kriskowal)
19:59:49  <AlexisMocha>piscisaureus: to distinguish thread object from thread id
20:00:01  <piscisaureus>Yeah I agree that's annoying too
20:01:50  <AlexisMocha>piscisaureus: I really think those are the two less sucky options: 1) extend the API to distinguish thread id from thread object. Or 2) make the current API work correctly on Windows by using TLS or hashtable
20:02:02  <trevnorris>jgi: well, two things related to my PR but I don't think would prevent it from being merged. the stuff here is not even experimental, since you have to use process.binding() to get to it.
20:06:50  <AlexisMocha>piscisaureus: uv_self_thread relying on TLS is not so unreasonable
20:07:08  <piscisaureus>AlexisMocha: what about: yeah I agree with the assessment. And it relying on TLS is indeed not unreasonable.
20:07:13  * SergeiRNDquit (Quit: Leaving.)
20:15:47  <piscisaureus>AlexisMocha: ok what complicates the matter is that currently we don't have a "trampoline".
20:15:58  <piscisaureus>so accessing TLS from uv_thread_create isn't easy
20:22:39  <chrisdickinson>in what case would we accept `null` or `undefined` in a writable, non-objectmode stream?
20:25:18  * iarnaquit (Read error: Connection reset by peer)
20:25:47  * iarnajoined
20:28:02  <jgi>trevnorris: pulled your changes, the build seems to fail on OS X
20:28:15  <trevnorris>mother...
20:28:23  <trevnorris>jgi: can you gist the output?
20:28:39  <jgi>trevnorris: http://jenkins.nodejs.org/job/nodejs-julien/156/DESTCPU=ia32,label=osx/console
20:32:11  * iarnaquit (Quit: Leaving...)
20:35:07  <AlexisMocha>piscisaureus: I'll look into that on Monday. Thanks!
20:35:10  * rendarquit (Ping timeout: 264 seconds)
20:39:02  * piscisaureusquit (Ping timeout: 255 seconds)
20:40:47  <trevnorris>jgi: thanks.
20:40:59  * kriskowaljoined
20:41:11  * rendarjoined
20:42:39  <trevnorris>jgi: only thing I can think that's from is the floating uv patch.
20:43:04  <trevnorris>jgi: I force-pushed and removed that change. can you try building on OSX again?
20:44:36  * thlorenzjoined
20:45:32  * thlorenzquit (Remote host closed the connection)
20:48:19  * inolenjoined
20:48:44  <jgi>trevnorris: without the patch, we’re hitting the problem that was (incorrectly) solved by this PR: https://github.com/joyent/node/pull/8686
20:49:20  <jgi>trevnorris: after pulling your change I still get the same error message as this one: http://jenkins.nodejs.org/job/nodejs-julien/156/DESTCPU=ia32,label=osx/console
20:50:16  <trevnorris>jgi: does it currently fail to build on v0.12?
20:50:27  * thlorenzjoined
20:51:20  * Fishrock123quit (Remote host closed the connection)
20:52:08  * dap_quit (Quit: Leaving.)
20:52:41  <jgi>trevnorris: yes, with the same error
20:53:05  * Fishrock123joined
20:53:42  <trevnorris>jgi: okay. do we have a proper fix for v0.12?
20:53:57  <trevnorris>if we can land the fix then i'll rebase on v0.12.
20:55:04  * dap_joined
20:56:13  * kazuponjoined
20:56:56  <jgi>trevnorris: no, I thought AlexisMocha’s fix was also fixing the build on platforms other than Windows, but it doesn’t
20:57:04  <trevnorris>jgi: did this issue arise after the libuv upgrade?
20:57:12  <jgi>trevnorris: yes
20:57:29  * bradleymeckquit (Quit: bradleymeck)
20:58:32  * bajtosjoined
20:58:48  <trevnorris>wtf...
20:59:14  <trevnorris>jgi: i don't get it. the v1.x branch has been merged onto master and jenkins says all tests are passing.
20:59:25  <trevnorris>erm
20:59:31  <trevnorris>I mean, it can at least build.
20:59:53  * brsonquit (Ping timeout: 250 seconds)
21:00:04  * thlorenzquit (Remote host closed the connection)
21:01:07  * kazuponquit (Ping timeout: 245 seconds)
21:01:18  <jgi>trevnorris: it looks like it doesn’t build on os x too: http://jenkins.nodejs.org/job/nodejs-v0.12/DESTCPU=ia32,label=osx/lastBuild/console
21:01:32  <jgi>trevnorris: the fix has been merged to v0.12, not to master unless I’m missing something
21:01:42  <jgi>sorry, the libuv update
21:01:45  <jgi>not the fix
21:02:17  <trevnorris>okay, so the fix has landed in the libuv v1.x branch?
21:03:22  * bajtosquit (Ping timeout: 264 seconds)
21:05:29  <jgi>trevnorris: it seems it hasn’t: https://github.com/joyent/libuv/pull/1564
21:06:14  <trevnorris>jgi: well, if we can't get it fixed quickly then we'll just revert the upgrade for now. you know the commit hash in libuv that introduced the break?
21:06:23  <trevnorris>nm
21:08:34  <trevnorris>jgi: okay, i'm just going to revert https://github.com/joyent/libuv/commit/59658a8 for now.
21:08:51  <trevnorris>not being able to build is a massive breakage. they can figure it out later.
21:09:38  * piscisaureusjoined
21:09:43  <jgi>trevnorris: alright
21:12:12  <AlexisMocha>trevnorris: the build break is in node, not libuv
21:12:33  <trevnorris>AlexisMocha: yup, that's why I'm going to revert the patch in Node.
21:12:41  <AlexisMocha>to fix the build break it's best to push this one: https://github.com/joyent/node/pull/8692
21:13:06  <trevnorris>AlexisMocha: I merged that onto my branch. Still didn't work on OSX.
21:13:16  <AlexisMocha>trevnorris: oh, I thought it was part of a libuv update
21:13:42  <AlexisMocha>if you have the ability to revert it by all means go ahead
21:13:48  <trevnorris>no, I don't have the commit bit for libuv. :)
21:14:03  <trevnorris>jgi: can you confirm that https://github.com/joyent/node/pull/8692 doesn't work on OSX?
21:14:40  <AlexisMocha>what error on osx? my patch is windows specific
21:15:11  <trevnorris>jgi posted this: http://jenkins.nodejs.org/job/nodejs-julien/156/DESTCPU=ia32,label=osx/console
21:15:13  <AlexisMocha>unfortunately I have to go in 2 minutes :(
21:15:25  <trevnorris>that's fine.
21:15:53  <trevnorris>i'm going to float a revert of that commit in Node so we can continue building/testing my AL patch.
21:16:20  <trevnorris>we'll figure out a better solution later. this is simply an immediate fix so work can continue.
21:17:43  <AlexisMocha>trevnorris: I updated the PR
21:17:49  <AlexisMocha>added a cast, that should fix it on osx
21:17:50  <jgi>trevnorris, AlexisMocha: https://github.com/joyent/libuv/commit/59658a8 broke the build on OS X, https://github.com/joyent/node/pull/8686 fixed it, but introduced a bug on Windows, https://github.com/joyent/libuv/pull/1564 fixes the bug on Windows
21:19:35  <AlexisMocha>trevnorris: sorry, now updated: https://github.com/joyent/node/pull/8692
21:21:24  <AlexisMocha>the good news is that I have some CI changes that should ensure this never happens again (a commit merge that breaks the build)
21:22:23  * c4milo_joined
21:22:39  * c4miloquit (Ping timeout: 244 seconds)
21:23:41  <AlexisMocha>trevnorris: whatever is easier. It's all temporary anyway.
21:23:46  * iarnajoined
21:23:49  <AlexisMocha>now I'm out the door.. good weekend!
21:28:27  <trevnorris>AlexisMocha: thanks for the work.
21:28:33  <trevnorris>have a good weekend.
21:29:05  <trevnorris>jgi: can you try building v0.12 w/ https://github.com/joyent/node/pull/8692 and tell me if it fixes the build?
21:31:18  <jgi>trevnorris: do you have access to jenkins.nodejs.org and can you create jobs?
21:32:43  <trevnorris>jgi: if I do I don't remember.
21:33:34  <jgi>trevnorris: ok, I’ll do it, but I guess it would be handy if you could create/run these jobs in such cases
21:34:02  * iarnaquit (Remote host closed the connection)
21:34:21  <trevnorris>jgi: guess I'd have to talk to tjfontaine about that
21:34:25  <trevnorris>tjfontaine: double ping
21:35:25  <jgi>trevnorris: I don’t mind doing it, it’s just that I don’t want to be a bottleneck, especially when I’m about to go out for lunch :)
21:36:24  <trevnorris>heh, no worries. :)
21:41:29  * Fishrockjoined
21:44:24  * Fishrock123quit (Ping timeout: 245 seconds)
21:48:14  <MI6>joyent/node: Trevor Norris v0.12 * 5845a6b : uv: revert change causing build failures - http://git.io/hS3vtg
21:52:32  <jgi>trevnorris: away for lunch, I’ll ping you when I’m back if you need some help to test the fix for the build issues!
21:52:59  <trevnorris>jgi: great, thanks.
21:53:20  <trevnorris>I just need someone to double check my AL patch (assuming everything builds)
21:53:59  * Ralithquit (Ping timeout: 245 seconds)
21:54:11  <chrisdickinson>curious: tls.createSecurePair seems to be going away in v0.12, but as I understand it tls.TLSSocket (its replacement) doesn't support non-socket streams
21:56:33  <trevnorris>you'll have to ask indutny about that.
21:57:40  <indutny>what's up?
21:57:46  <indutny>ah
21:57:48  <indutny>yes, it doesn't
21:57:56  <indutny>this is a big limitation
22:01:10  <chrisdickinson>(this is via https://twitter.com/jcoglan/status/530816777690050560)
22:02:31  <trevnorris>indutny: i'm not up on this, but what's the reason for the limitation?
22:02:50  <indutny>well
22:02:56  <indutny>trevnorris: TLSSocket hooks up into StreamWrap
22:03:03  <indutny>I guess we'll need to create pseudo StreamWrap
22:03:10  <indutny>to be able to run on any stream
22:04:04  <trevnorris>indutny: i'm not even sure of the feature. currently it works w/ tcp/pipe right?
22:04:17  <indutny>with tcp mostly
22:04:22  * jgiquit (Quit: jgi)
22:06:03  <trevnorris>so, what other types of I/O did they want to use w/ TLS?
22:06:45  * lanceballchanged nick to lance|afk
22:07:45  <chrisdickinson>I think they were excited about being able to use TLS without having to explicitly tie the {in,out}put to I/O
22:08:28  * Fishrockquit (Remote host closed the connection)
22:09:25  <trevnorris>okay. not that I don't believe it's useful, but I can't think of a good idea how.
22:11:34  <chrisdickinson>as I understand it from reading their twitter, they were working on a websocket-over-https proxy
22:12:13  <trevnorris>does websocket not use tcp?
22:13:30  <chrisdickinson>specifically, their code here: https://github.com/faye/websocket-driver-node/blob/b88b8d68567caf22f2b312d8c72809b93e310422/lib/websocket/driver/proxy.js#L87-L94
22:18:05  <indutny>ok
22:18:06  <indutny>let's fix the docs
22:18:19  <indutny>and say that it is not going away until TLSSocket will learn to work with streams
22:18:22  <indutny>I'm sure it is feasible
22:18:25  <indutny>and I'll do it after v0.12
22:18:56  <trevnorris>chrisdickinson: that must just be a gap in the JS API, because websocket is still basically TCP.
22:19:46  <chrisdickinson>without knowing what `io` is, i am unsure. it looks like io could be any stream.Duplex
22:20:42  <indutny>again
22:20:49  <indutny>I agree that current API is limiting
22:20:58  <indutny>and I said that many times during our pre-v0.12 calls :D
22:21:01  <indutny>but everyone was
22:21:02  <indutny>meh
22:21:04  <indutny>no one needs
22:21:05  <indutny>it
22:21:11  <chrisdickinson>indutny: ah, I'm totally +1 on your approach
22:26:50  <chrisdickinson>indutny: does https://github.com/joyent/node/pull/8695 look ok?
22:27:02  <chrisdickinson>(just taking out the deprecation notice for now)
22:27:15  <indutny>LGTM
22:27:27  * importantshockquit (Remote host closed the connection)
22:27:52  * AlexisMochaquit (Ping timeout: 240 seconds)
22:29:05  <chrisdickinson>trevnorris: is it cool for me to do the `git am`-process to the above PR, or should someone else merge?
22:30:47  <trevnorris>chrisdickinson: go ahead and land it. don't know if I mentioned the current syntax I'm using to land PR's but c2b4f4809 is an example of additional fields I'm adding to make things easier.
22:31:19  <chrisdickinson>cool, thanks!
22:33:53  <trevnorris>chrisdickinson: thank you for all your help. :)
22:37:05  <chrisdickinson>no problem!
22:40:12  * Fishrock123joined
22:41:31  <MI6>joyent/node: Chris Dickinson v0.12 * 03bae7b : doc: remove tls.createSecurePair deprecation - http://git.io/EItiVg
22:43:47  * rendarquit
22:45:14  * kazuponjoined
22:46:05  <othiym23>jgi: pong
22:46:28  <othiym23>jgi: sorry for going quiet on list mod -- Aria's had it covered so completely that I didn't keep an eye on the moderation queue like I should have
22:46:41  * Ralithjoined
22:49:50  * stagasquit (Ping timeout: 258 seconds)
22:50:02  * kazuponquit (Ping timeout: 250 seconds)
22:53:24  * c4milo_quit (Remote host closed the connection)
22:57:45  * ijrothjoined
22:58:20  <trevnorris>othiym23: ping
22:59:16  * wolfeidauquit (Remote host closed the connection)
23:00:41  * jgijoined
23:01:22  * kriskowalquit (Quit: kriskowal)
23:04:42  <trevnorris>*tumbleweeds roll by*
23:06:00  * toothrotjoined
23:08:59  * kriskowaljoined
23:11:54  * brsonjoined
23:12:19  * avalanche123quit (Remote host closed the connection)
23:13:41  * ijrothquit (Quit: Leaving.)
23:14:05  <MI6>joyent/node: Fedor Indutny v0.10 * d435f4b : Merge remote-tracking branch 'joyent/v0.10' into v0.10 (+1 more commits) - http://git.io/drb3YA
23:14:22  * ijrothjoined
23:15:54  * piscisaureusquit (Ping timeout: 265 seconds)
23:16:33  * avalanche123joined
23:17:33  * ijrothquit (Client Quit)
23:22:32  <jgi>trevnorris: I’m back, is there anything I can do to help?
23:23:26  <trevnorris>jgi: other than testing it? don't think so.
23:23:59  <jgi>trevnorris: were you able to verify that the build is fixed on all platforms for the remove-al-js branch?
23:24:00  <trevnorris>jgi: there are some additions I'd like to add, and also want to add tests/unofficial documentation, but that isn't an immediate need.
23:26:46  <trevnorris>jgi: no. haven't looked at jenkins. looking now but taking forever to load.
23:27:50  <jgi>trevnorris: yeah, sometimes it takes a long time to load. I’d like to find some time to investigate that one day.
23:28:18  <othiym23>trevnorris: sorry dude, today's a triage day, so my attention is divided
23:28:21  <othiym23>trevnorris: what's up?
23:29:51  <trevnorris>othiym23: I added an API to allow users to set their own uid generator cb for AL. I swear tjfontaine mentioned you had something to do w/ wanting that feature. ring any bells?
23:31:07  <trevnorris>jgi: is there a way for me to have jenkins build/test a PR of mine?
23:31:40  * kriskowalquit (Quit: kriskowal)
23:32:13  <jgi>jgi: you could clone an existing job and set the branch manually in the job’s settings, that’s what I do for my PRs/branches. I can show you how to do that if you’re not familiar with Jenkins.
23:32:26  <othiym23>trevnorris: I was talking at one point about an approach that *only* used a UID instead of storage, along with something like WeakMaps as a side table to keep all the tracing state in, but I don't remember asking for a custom UID callback
23:32:31  <jgi>trevnorris: sorry, replying to myself…
23:33:06  <jgi>trevnorris: the answer to your question is in my self-reply above :)
23:33:21  <trevnorris>jgi: heh. do I have credentials?
23:33:34  <trevnorris>jgi: actually, let's not worry about that at the moment. another day though. thanks. :)
23:33:53  <jgi>trevnorris: I can build it for you now, my lunch break is over
23:34:16  <trevnorris>othiym23: okay. I changed an f-load to make it so every request receives a proper request object, which then also gets a uid.
23:34:44  <trevnorris>othiym23: the uid is an int64_t, which means in JS we get 53 bits of accuracy. I figured that should be enough.
23:35:30  <trevnorris>(increment every 100ns and have enough for 28 years)
23:36:24  <trevnorris>othiym23: anyway, point it that the additional API is preventing some awesome optimizations on the JS side and I wanted to get additional feedback on if the API is actually necessary.
23:37:35  <trevnorris>thoughts?
23:40:52  * importantshockjoined
23:41:26  <jgi>trevnorris: building on all platforms here: http://jenkins.nodejs.org/job/nodejs-julien/ and here: http://jenkins.nodejs.org/job/nodejs-julien-windows/
23:41:34  <jgi>trevnorris: and testing too
23:41:37  <trevnorris>SWEET!
23:41:40  <trevnorris>jgi: thanks :)
23:41:48  <jgi>trevnorris: you’re welcome :)
23:41:56  <jgi>just doing the easy work here
23:42:42  <trevnorris>DAMN IT!
23:42:42  <LOUDBOT>ACHIEVEMENT UNLOCKED: JUMP TO CONCLUSIONS MAT
23:42:59  <trevnorris>jgi: osx ia32 still seems to be failing(?)
23:43:37  <trevnorris>wtf does this mean? "bin/sh: /bin/sh: cannot execute binary file"
23:43:47  <jgi>trevnorris: interesting, I had built it on my OS X setup (but for x64) right before I started the build
23:45:30  <jgi>trevnorris: let me run this locally for ia32
23:45:47  <trevnorris>thanks much
23:46:00  * importantshockquit (Remote host closed the connection)
23:46:34  * importantshockjoined
23:49:25  <jgi>trevnorris: built fine, I will restart a build
23:50:05  * ijrothjoined
23:50:35  <trevnorris>strange. thanks for sanity checking that.
23:50:55  * importantshockquit (Ping timeout: 244 seconds)
23:51:57  * importantshockjoined
23:52:47  * ijrothquit (Client Quit)