00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:00:31  * c4milojoined
00:01:26  * kazuponjoined
00:02:17  * yunongjoined
00:02:36  <MI6>joyent/node: Saúl Ibarra Corretgé master * 35b9580 : dns: introduce lookupService function - http://git.io/Pq5YOg
00:09:42  * kazuponquit (Remote host closed the connection)
00:11:28  * toothrquit (Ping timeout: 260 seconds)
00:26:31  * dap_quit (Quit: Leaving.)
00:26:50  * sblomquit (Read error: Connection reset by peer)
00:27:36  * mrvisserjoined
00:28:36  * calvinfojoined
00:29:31  * calvinfo1joined
00:29:31  * calvinfoquit (Read error: Connection reset by peer)
00:30:08  * mcavagequit (Remote host closed the connection)
00:30:17  * calvinfo1quit (Read error: Connection reset by peer)
00:30:28  * calvinfojoined
00:31:18  * calvinfo1joined
00:31:18  * calvinfoquit (Read error: Connection reset by peer)
00:33:09  * zz_karupachanged nick to karupa
00:34:03  <trevnorris>what the fuck? ^
00:34:21  * yunongquit (Remote host closed the connection)
00:34:34  <trevnorris>just because a feature is added to uv doesn't mean it's automatically added to node. you need to upgrade the deps/uv before adding a feature
00:34:48  <trevnorris>saghul: ^
00:34:53  * yunongjoined
00:35:10  <trevnorris>(and sorry, over reaction on that first part)
00:35:48  * calvinfo1quit (Ping timeout: 264 seconds)
00:37:41  <indutny>yeah
00:37:49  <indutny>trevnorris: that was mean
00:37:57  <indutny>and that was me :)
00:38:02  <indutny>who missed the saul's comment
00:39:07  * yunongquit (Ping timeout: 240 seconds)
00:41:30  <indutny>tjfontaine: yt?
00:41:57  <MI6>joyent/libuv: Fedor Indutny master * 4661f2d : Now working on v0.11.27 (+1 more commits) - http://git.io/PUHLGQ
00:41:59  <MI6>joyent/libuv: indutny created tag v0.11.26 - http://git.io/Rb0ygg
00:42:54  * TooTallNatequit (Quit: Computer has gone to sleep.)
00:47:14  * toothrjoined
00:47:40  * bradleymeckjoined
00:50:53  * yunongjoined
00:53:14  * Ralithquit (Ping timeout: 240 seconds)
00:54:35  <MI6>joyent/node: Fedor Indutny master * 1a1b1a7 : deps: update libuv to v0.11.26 - http://git.io/GT6nGw
00:54:39  * bradleymeckneeds to just buy a windows box one day
00:55:25  <indutny>bootcamp?
00:55:33  * indutny&
00:55:33  <LOUDBOT>THIS IS AN OVERREACH OF GOVERNMENT AUTHORITY BY THE TYRANNICAL GAY AGENDA
00:57:26  <bradleymeck>indutny: I refuse to dual boot this laptop, it is 4 years old and going strong
00:57:58  * thlorenzjoined
00:58:14  <bradleymeck>for now I'm using modern.ie vms...
00:58:32  * yunongquit (Ping timeout: 245 seconds)
01:05:03  * seldoquit (Remote host closed the connection)
01:05:37  * mrvisserquit (Remote host closed the connection)
01:05:47  * brsonquit (Quit: leaving)
01:10:19  * seldojoined
01:10:30  * calvinfojoined
01:11:23  * calvinfo1joined
01:11:23  * calvinfoquit (Read error: Connection reset by peer)
01:11:58  * seldoquit (Remote host closed the connection)
01:12:39  * kazuponjoined
01:12:46  * calvinfo1quit (Read error: Connection reset by peer)
01:13:00  * calvinfojoined
01:17:13  * kazuponquit (Ping timeout: 248 seconds)
01:19:50  * WalrusPonyquit (Read error: Connection reset by peer)
01:19:56  * WalrusPony1joined
01:22:59  * Ralithjoined
01:24:52  * WalrusPony1quit (Read error: Connection reset by peer)
01:30:07  * c4miloquit (Remote host closed the connection)
01:30:35  * rmgquit (Remote host closed the connection)
01:31:48  * avalanche123quit (Remote host closed the connection)
01:32:14  * avalanche123joined
01:33:06  * WalrusPonyjoined
01:36:06  * inolenjoined
01:36:27  * avalanche123quit (Ping timeout: 245 seconds)
01:38:39  * toothrquit (Ping timeout: 252 seconds)
02:04:59  * rmgjoined
02:06:05  * cosnisjoined
02:15:07  * toothrjoined
02:26:18  * petka_quit (Quit: Connection closed for inactivity)
02:44:43  * a_lequit (Remote host closed the connection)
02:50:40  * bradleymeckquit (Read error: Connection reset by peer)
02:54:35  * rmgquit (Remote host closed the connection)
02:57:17  * toothrquit (Ping timeout: 245 seconds)
02:58:53  * brsonjoined
03:10:24  * calvinfoquit (Quit: Leaving.)
03:10:40  * calvinfojoined
03:10:45  * calvinfoquit (Client Quit)
03:17:41  * rmgjoined
03:47:49  * thlorenzquit (Remote host closed the connection)
03:50:04  * bradleymeckjoined
03:50:15  * mikealquit (Quit: Leaving.)
03:53:16  * a_lejoined
04:02:11  * rmgquit (Remote host closed the connection)
04:04:38  * a_lequit (Remote host closed the connection)
04:05:21  * rmgjoined
04:21:07  * mikealjoined
04:41:38  * avalanche123joined
04:48:12  * cosnisquit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
04:48:57  * a_lejoined
04:53:15  * bradleymeckquit (Read error: Connection reset by peer)
04:55:29  * bradleymeckjoined
04:58:38  * avalanche123quit (Remote host closed the connection)
05:04:11  * bradleymeckquit (Quit: bradleymeck)
05:05:48  * Left_Turnquit (Ping timeout: 244 seconds)
05:08:53  * a_lequit (Remote host closed the connection)
05:13:33  * yunongjoined
05:18:05  * yunongquit (Remote host closed the connection)
05:18:38  * yunongjoined
05:21:04  * yunongquit (Read error: Connection reset by peer)
05:21:37  * yunongjoined
05:22:01  * cosnisjoined
05:22:04  * cosnisquit (Client Quit)
05:26:28  * yunongquit (Ping timeout: 260 seconds)
05:26:49  * yunongjoined
05:31:39  * yunongquit (Ping timeout: 255 seconds)
05:32:24  * cosnisjoined
05:32:36  * yunongjoined
05:35:43  * c4milojoined
05:35:55  * daviddiasjoined
05:36:57  * yunongquit (Ping timeout: 248 seconds)
05:38:29  * a_lejoined
05:40:14  * c4miloquit (Ping timeout: 240 seconds)
05:41:48  * brsonquit (Quit: leaving)
05:45:49  * calvinfojoined
05:55:57  * seishunjoined
05:57:01  * yunongjoined
06:03:31  * mikealquit (Quit: Leaving.)
06:05:18  * yunongquit (Remote host closed the connection)
06:05:52  * yunongjoined
06:07:04  * yunongquit (Read error: Connection reset by peer)
06:07:31  * yunongjoined
06:10:02  * mikealjoined
06:18:53  <MI6>joyent/libuv: Tim Cooper master * 546fa7d : doc: remove duplicate word - http://git.io/Hdg48w
06:20:01  * daviddiasquit (Remote host closed the connection)
06:26:59  <MI6>joyent/libuv: Caleb James DeLisle master * fe8322d : windows: fix mingw32/debug build (+1 more commits) - http://git.io/G10DRA
06:44:01  * a_lequit (Remote host closed the connection)
06:53:01  * cjdjoined
06:59:02  * yunongquit (Remote host closed the connection)
06:59:35  * yunongjoined
07:02:15  * yunong_joined
07:04:29  * yunongquit (Ping timeout: 264 seconds)
07:04:45  * janjongboomjoined
07:05:46  * yunongjoined
07:06:01  * seishunquit (Ping timeout: 248 seconds)
07:06:44  * yunong_quit (Ping timeout: 240 seconds)
07:09:25  * daviddiasjoined
07:10:07  * yunongquit (Ping timeout: 252 seconds)
07:10:24  * daviddiasquit (Remote host closed the connection)
07:23:55  * c4milojoined
07:29:05  * c4miloquit (Ping timeout: 264 seconds)
07:35:05  * rendarjoined
07:38:09  * daviddiasjoined
07:46:25  * daviddiasquit (Remote host closed the connection)
07:55:42  * petka_joined
07:56:24  * calvinfoquit (Quit: Leaving.)
08:04:04  * brsonjoined
08:13:05  * Left_Turnjoined
08:24:18  <indutny>morning
08:27:25  <rendar>hey
08:29:55  * cosnisquit (Remote host closed the connection)
08:31:45  <saghul>morning!
08:32:07  <indutny>how are you?
08:32:49  * janjongboomquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:33:39  <indutny>tjfontaine: ohai
08:33:51  <indutny>tjfontaine: could you please update my public key on some servers?
08:36:02  <indutny>nvm
08:37:31  <indutny>ah, still better do it from smartos console
08:45:41  * janjongboomjoined
08:53:38  <saghul>indutny: I want to land the threadpool thing before 0.12, can you please review? (looks long, but it's really not big, code moved)
09:12:19  * c4milojoined
09:17:05  * c4miloquit (Ping timeout: 264 seconds)
09:28:12  <indutny>saghul: ok
09:28:30  <saghul>thanks!
09:36:52  * brsonquit (Ping timeout: 245 seconds)
09:37:05  * janjongboomquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:42:08  <indutny>saghul: so it was using some windows APIs
09:42:11  <indutny>before your patch
09:42:11  <indutny>QueueUserWorkItem
09:42:26  <saghul>yes, that's like the builting threadpool from windows AFAICT
09:42:26  <indutny>just trying to get enough context :)
09:42:30  <saghul>yes
09:42:50  <indutny>and now it is using pthread
09:43:05  <saghul>native threads on windows
09:43:09  <indutny>are you sure that it is justified
09:43:12  <saghul>yes
09:43:22  <saghul>predictable size, control, uv_cancel
09:43:34  <saghul>and any improvement we make to it, works on all platforms
09:44:17  <indutny>ah
09:44:18  <indutny>uv_cancel
09:44:31  * indutnyis convinced
09:45:44  <indutny>I'll probably need an hour or so :)
09:45:51  <indutny>couldn't say that it is that small :)
09:46:43  <saghul>it was bait :-P thanks Fedor!
09:46:48  <indutny>np
09:46:53  <indutny>you are welcome
10:01:18  <indutny>saghul: LGTM
10:01:21  <indutny>saghul: with one nit
10:01:26  <indutny>thanks man
10:03:36  <saghul>indutny: thanks for the review!
10:03:38  <indutny>np
10:03:54  <indutny>I'm giving a bit of trust to you actually
10:04:05  <indutny>because I can't build and test it on windows
10:04:06  <indutny>:)
10:04:11  <indutny>but the changes are looking good
10:05:42  * hzjoined
10:08:39  <indutny>saghul: let's discuss long-queued thing :)
10:08:52  <indutny>saghul: uv_protocol
10:08:55  <indutny>or something like this
10:09:07  <indutny>not sure about the naming
10:09:08  <saghul>indutny: I'm doing some releases for work now, can e do that later?
10:09:09  <indutny>basically
10:09:12  <indutny>ah, sure
10:09:15  <indutny>ping me
10:09:26  <indutny>when you'll have a minute
10:09:35  <saghul>sure, thanks!
10:09:45  <indutny>hm... actually, I think I may need to create something before bothering you :)
10:09:50  <rendar>what is a long-queue?
10:09:59  <indutny>so I'll ping you in a couple of days
10:10:05  <indutny>rendar: queued for a long time
10:10:23  <indutny>you are native english speaker, ain't you?
10:12:33  <rendar>indutny: i'm not, but even if i was, i cannot get what should mean queued for a long time, i understand the phrase, but what does that mean in libuv? stuff put with uv_queue_work() that remain in the queue for a long time..or what? :)
10:12:48  <indutny>haha
10:12:49  <indutny>no
10:12:55  <indutny>just some stuff that I had in plans
10:13:09  <indutny>actually it was proposed by different person
10:13:11  <indutny>but anyway
10:13:38  <rendar>oh, i see, but what is that about?
10:14:41  <indutny>being able to decode/encode stuff in uv_stream_t
10:14:44  <indutny>transparently for user
10:15:25  <rendar>oh
10:15:54  <rendar>indutny: so you can bypass the stream, and do whatever you want with the data, before they arrive to 'on_read'
10:16:13  <indutny>yes
10:16:35  <indutny>that would simplify tls implementation in node
10:16:45  <rendar>yep
10:16:52  <indutny>and probably http too
10:16:59  <indutny>who knows
10:17:17  <indutny>well
10:17:19  <indutny>probably not
10:17:22  <rendar>well, but http is implemented in js, not in node itself, iirc
10:17:24  <indutny>http is almost a raw protocol
10:20:49  * karupachanged nick to zz_karupa
10:22:39  * mrvisserjoined
10:26:18  <MI6>joyent/node: Oguz Bastemur v0.10 * c94afdc : util.h: interface compatibility - http://git.io/Ib7bjw
10:36:40  * mrvisserquit
10:36:57  * mrvisserjoined
10:41:34  * seishunjoined
11:00:32  * c4milojoined
11:00:37  <MI6>joyent/node: cjihrig master * 2cae44f : buffer: construct new buffer from buffer toJSON() output - http://git.io/jlJqiA
11:02:58  <indutny>saghul: when you'll have time
11:03:00  <indutny>saghul: https://gist.github.com/indutny/98d4d02564094090f888
11:07:45  * c4miloquit (Ping timeout: 264 seconds)
11:18:56  <saghul>indutny: will read
11:19:27  <indutny>saghul: thanks
12:13:18  <MI6>joyent/node: Yazhong Liu master * 6b09f9c : node: fix #7841 by overlooking the spare sourceline - http://git.io/KEOPOw
12:31:50  <MI6>joyent/libuv: Saúl Ibarra Corretgé master * 8d11aac : unix, windows: use the same threadpool implementation - http://git.io/agfVQA
12:31:58  <saghul>Boom!
12:32:35  <cjd>thx for pulling my tinypr :)
12:35:25  <indutny>bam!
12:35:33  <indutny>cjd: ?
12:35:52  <indutny>which one
12:35:57  <cjd>oh, another one, just a few flags in the gyp file xD
12:36:03  <indutny>aaah
12:36:04  <indutny>ok
12:36:04  <indutny>:)
12:36:08  <cjd>hehe
12:36:17  <indutny>I almost thought that I mistakenly pulled something :)
12:37:14  <indutny>saghul: got time to look into that gist? :)
12:37:56  <saghul>indutny: sort of, it clashes with some other thing that is bouncing in my head
12:38:02  <saghul>but I'll be afk for a bit
12:38:13  <saghul>I'll ping you when I'm back and got time
12:40:50  <indutny>ok
12:40:52  <indutny>thank you
12:44:13  * mrvisserquit (Remote host closed the connection)
12:48:58  * c4milojoined
12:53:48  * c4miloquit (Ping timeout: 264 seconds)
13:00:36  * mrvisserjoined
13:00:39  <MI6>joyent/node: Fedor Indutny master * 73343d5 : http: remove unused code block - http://git.io/J90MWw
13:02:10  <MI6>joyent/node: Fedor Indutny v0.10 * a97bdef : zlib: do not crash on write after close - http://git.io/_NvwFw
13:27:18  * c4milojoined
13:30:19  * hzquit (Ping timeout: 260 seconds)
13:59:57  * kkaefer_part ("Leaving...")
14:08:34  * thlorenzjoined
14:13:48  * julianduquequit (Quit: leaving)
14:13:57  * julianduquejoined
14:20:24  * piscisaureusjoined
14:31:18  * bradleymeckjoined
14:44:46  * kenperkinsquit (Remote host closed the connection)
14:54:13  * daviddiasjoined
14:56:42  * mrvisserquit (Remote host closed the connection)
15:00:10  * mikealquit (Quit: Leaving.)
15:08:36  * c4miloquit (Remote host closed the connection)
15:11:41  * piscisaureusquit (Ping timeout: 264 seconds)
15:20:45  * mikealjoined
15:21:14  * piscisaureusjoined
15:29:10  * piscisaureusquit (Quit: ~ Trillian Astra - www.trillian.im ~)
15:29:49  * piscisaureusjoined
15:32:37  <piscisaureus>indutny: hey
15:33:49  * stagasjoined
15:36:20  * inolenquit (Quit: Leaving.)
15:36:37  * mrvisserjoined
15:39:51  * calvinfojoined
15:46:33  * andrehjrjoined
15:48:39  * kenperkinsjoined
15:51:05  * mcavagejoined
15:52:58  * a_lejoined
15:56:18  * petka_quit (Quit: Connection closed for inactivity)
15:59:32  * janjongboomjoined
16:03:12  * dap_joined
16:04:16  * daviddiasquit (Remote host closed the connection)
16:06:55  <indutny>piscisaureus: hey
16:07:39  * avalanche123joined
16:07:44  <piscisaureus>indutny: cool that you are working on a pipe proposal. I think the challenge is to keep it as simple as possible
16:07:50  <indutny>yes
16:07:51  <indutny>indeed
16:07:59  <indutny>the thing that I pasted is a minimal API
16:08:14  <indutny>if it'd be less - tls_wrap won't work with it
16:08:19  <indutny>and the whole effort is pointless
16:08:23  <piscisaureus>indutny: so it would be best to not rely on an stream.pipe or util.pipe -like driving mechanism
16:08:58  <piscisaureus>indutny: instead the user can just implement a custom stream, and what the custom stream does is call read/write on it's upstream
16:09:04  * bradleymeckquit (Quit: bradleymeck)
16:09:10  <indutny>piscisaureus: yeah
16:09:18  <indutny>I think I understand this feature quite well :)
16:09:23  <piscisaureus>indutny: cool!
16:09:23  <indutny>tls_wrap works this way
16:09:31  <indutny>but on C++ level
16:09:34  <indutny>and on top of the libuv
16:09:44  <piscisaureus>indutny: I think libuv will eventually have to be c++
16:09:46  <indutny>I wonder if it could be actually implemented as a 3rd party module
16:09:46  * avalanche123quit (Remote host closed the connection)
16:09:47  * daviddiasjoined
16:09:50  <indutny>piscisaureus: why?
16:10:12  * avalanche123joined
16:10:18  <piscisaureus>indutny: why not? c++ is nice. We could get rid of casts and big switch blocks. Just use virtual functions instead.
16:10:41  <piscisaureus>indutny: also static initializer support makes it much easier to insert plugins etc without explicit registration
16:10:47  <cjd>C++ is a disaster
16:10:55  <indutny>piscisaureus: meh
16:11:01  * daviddia_joined
16:11:04  <indutny>I still dislike C++
16:11:09  * daviddiasquit (Read error: Connection reset by peer)
16:11:13  <indutny>the type system is a total disaster
16:11:23  <indutny>though, it is a matter of taste
16:11:23  <piscisaureus>indutny: so the question is, how does uv_write() dispatch to your custom write handler?
16:11:27  <piscisaureus>indutny: how so>/
16:11:28  <indutny>I'd rather rewrite it in rust :)
16:11:55  <piscisaureus>indutny: but most low level software is not written in rust. However pretty much everything is written in c++ except kernels and old shit
16:12:03  <indutny>piscisaureus: the idea is that every stream has a default pipeline
16:12:06  <cjd>Look at the way cjdns is written, it's pure C* but it gets all of the really interesting benefits of C++
16:12:09  <indutny>i.e. write_cb
16:12:11  <indutny>shutdown_cb
16:12:12  <indutny>and
16:12:13  <indutny>close_cb
16:12:29  <indutny>so uv_write() just calls first pipeline in a list
16:12:34  <cjd>* c with <?js inline js ?> after the preprocessor runs
16:13:13  <piscisaureus>indutny: I would not make the pipeline a list, I would just make the second stage know about the first stage
16:13:31  <piscisaureus>indutny: but, whatever, I'm not going to play dictator here. If you can make it nice you win.
16:13:55  <piscisaureus>indutny: It would also be nice if libuv could be somewhat thread safe so a pipeline stage could run on another thread
16:14:41  * avalanche123quit (Ping timeout: 264 seconds)
16:15:41  <piscisaureus>indutny: so your idea is to give *every* stream a struct like this, like a vtable?
16:16:09  <indutny>piscisaureus: linked list
16:16:14  <indutny>yes
16:16:18  <indutny>not exactly like vtable
16:16:22  <indutny>you can't change the vtable
16:16:36  <indutny>and you can change this thing in a stream
16:16:41  * qardquit (Quit: Leaving.)
16:16:58  <indutny>thread-safety is really interesting
16:17:02  <indutny>I guess you want to off-load openssl
16:17:04  <indutny>right?
16:17:11  * bradleymeckjoined
16:17:37  * hzjoined
16:19:18  * qardjoined
16:19:50  <piscisaureus>indutny: openssl and http maybe
16:19:53  <piscisaureus>indutny: and zlib
16:19:55  * c4milojoined
16:20:01  <indutny>I'd not use other threads for openssl :)
16:20:07  <indutny>last time I did it - it was slower
16:20:14  <indutny>because of the lock contention
16:20:17  <indutny>anyway
16:20:22  <indutny>this should be possible
16:20:34  <piscisaureus>indutny: what if reading from the socket is also done on that other thread?
16:20:39  <indutny>but I'd implement it after doing some proof of the concept
16:20:45  <piscisaureus>indutny: so only the cleartext stream is dispatched to the main loop
16:20:48  <piscisaureus>indutny: of course
16:20:55  * c4miloquit (Read error: Connection reset by peer)
16:21:06  * c4milojoined
16:21:09  * inolenjoined
16:22:17  * daviddia_quit (Remote host closed the connection)
16:23:40  <indutny>piscisaureus: do you have any comments regarding the API
16:23:43  <indutny>?
16:24:30  * TooTallNatejoined
16:24:36  <indutny>piscisaureus: may I ask you to show ben this gist too?
16:25:51  <piscisaureus>indutny: so my comment was that I would make "next" an object property
16:26:05  <piscisaureus>indutny: and maybe implement sort of a promise api
16:26:33  <piscisaureus>indutny: so libuv isn't aware of the pipeline, but it just dispatches using a vtable-like construct
16:26:42  <indutny>hm...
16:26:51  <indutny>not sure I follow your comment :)
16:26:57  <indutny>perhaps a comment with example would help ;)
16:28:01  <piscisaureus>indutny: ok, let me write something up (but I'm a bit busy now...)
16:28:54  * daviddiasjoined
16:30:19  * daviddiasquit (Remote host closed the connection)
16:33:31  <piscisaureus>indutny: this is harder than I expected actually. You may be right.
16:35:34  * mikealquit (Quit: Leaving.)
16:35:41  * mikealjoined
16:39:44  * cjdquit (Quit: I am a manual virus, please copy me to your quit message.)
16:39:46  <indutny>piscisaureus: ok
16:40:06  <piscisaureus>indutny: I'm still trying, so don't go to bed yet :)
16:40:10  <indutny>haha
16:40:13  <indutny>not even trying to
16:42:40  * a_lequit (Remote host closed the connection)
16:43:13  * a_lejoined
16:43:27  <indutny>piscisaureus: what I would really want to
16:43:35  <indutny>piscisaureus: is to have this as a separate library
16:43:40  <indutny>but I don't see how to decouple it
16:44:56  * andrehjrquit (Quit: Computer has gone to sleep.)
16:45:23  <piscisaureus>indutny: that's because uv_write and the like can only dispatch to streams that are implemented within libuv itself
16:45:32  <indutny>yes
16:45:36  <indutny>obviously
16:45:51  <piscisaureus>indutny: if you can work your way out of that, using function pointers, a vtable, virtual functions, whatever, you're set
16:45:54  <indutny>so either I'll need to introduce wrappers of close/shutdown/write
16:46:55  * bradleymeckquit (Quit: bradleymeck)
16:46:56  <piscisaureus>indutny: https://github.com/joyent/libuv/blob/master/src/win/stream.c#L130
16:47:11  <piscisaureus>indutny: doesn't get any worse. Just find a better solution than doing a switch over handle->type
16:49:29  <indutny>well
16:49:34  <indutny>wrappers are baf
16:49:35  <indutny>bad
16:49:43  * TooTallNatequit (Quit: Computer has gone to sleep.)
16:49:44  * andrehjrjoined
16:49:46  <indutny>because you'll need to rewrite your code
16:49:52  <indutny>to make it work with pipelined streams
16:49:53  <piscisaureus>?
16:50:03  <piscisaureus>I need to rewrite?
16:50:23  <piscisaureus>or do you mean anyone needs rewrite their code?
16:56:10  <indutny>yes
16:56:12  <indutny>latter one
16:56:19  <indutny>if I'd go for external libary
16:56:21  <indutny>library*
16:56:23  <indutny>and wrappers
16:56:27  <indutny>ah
16:56:32  <indutny>well
16:56:34  <indutny>ok
16:56:36  <indutny>I'll do it in libuv
16:57:42  * mrvisserquit (Remote host closed the connection)
16:58:19  * seldojoined
17:05:54  * seldoquit (Remote host closed the connection)
17:06:12  * seldojoined
17:08:23  * avalanche123joined
17:08:54  * seldoquit (Remote host closed the connection)
17:11:49  <rendar>piscisaureus: libuv in c++? really? what about very easy embedding with other languages? don't you get that more difficult with C++ than with C?
17:14:16  * seldojoined
17:14:19  * piscisaureusquit (Ping timeout: 240 seconds)
17:15:42  * m76joined
17:18:33  * avalanche123quit (Remote host closed the connection)
17:19:14  * avalanche123joined
17:27:25  * thlorenzquit (Remote host closed the connection)
17:28:00  * thlorenzjoined
17:30:53  * stagasquit (Ping timeout: 252 seconds)
17:32:16  * thlorenzquit (Ping timeout: 240 seconds)
17:37:34  * thlorenzjoined
17:37:39  * wolfeida_joined
17:39:42  * thlorenzquit (Remote host closed the connection)
17:40:03  * wolfeidauquit (Ping timeout: 240 seconds)
17:43:23  * inolen1joined
17:46:00  * inolenquit (Ping timeout: 264 seconds)
17:46:32  * c4miloquit (Remote host closed the connection)
17:50:10  * c4milojoined
17:50:11  * TooTallNatejoined
17:50:49  * hzquit
17:52:20  * brsonjoined
17:57:34  * seldoquit (Remote host closed the connection)
17:57:45  * sblomjoined
18:03:24  * seldojoined
18:17:27  * thlorenzjoined
18:19:04  * daviddiasjoined
18:23:48  * daviddiasquit (Ping timeout: 264 seconds)
18:25:07  * daviddiasjoined
18:26:10  * avalanche123quit (Remote host closed the connection)
18:26:20  * bradleymeckjoined
18:26:42  * avalanche123joined
18:26:51  * avalanche123quit (Remote host closed the connection)
18:27:07  * avalanche123joined
18:27:42  * daviddiasquit (Remote host closed the connection)
18:28:19  * daviddiasjoined
18:34:46  * daviddiasquit (Remote host closed the connection)
18:36:24  * brsonquit (Ping timeout: 264 seconds)
18:37:56  * daviddiasjoined
18:42:16  * daviddiasquit (Ping timeout: 240 seconds)
18:56:40  <indutny>saghul: heya
18:56:55  <indutny>still haven't got back?
18:58:00  * Ralithquit (Ping timeout: 260 seconds)
19:01:26  * brsonjoined
19:05:35  * mrvisserjoined
19:07:26  * avalanche123quit (Remote host closed the connection)
19:09:40  <Domenic>Can someone confirm how Node streams work with the underlying socket APIs? You guys do two buffer copies, correct? One when reading from the kernel, and again when the user calls read(n)?
19:15:31  <indutny>huuuh
19:15:34  <indutny>no
19:15:37  <indutny>that's not it
19:15:43  <indutny>well
19:15:56  <indutny>C++ is invoking ondata method of handle
19:15:58  <indutny>with a Buffer
19:16:03  <indutny>and we queue it up into a streams2
19:16:07  <indutny>and then feed it to user
19:16:13  <indutny>unless the user calls .read(num)
19:19:02  <Domenic>right i'm talking about in non-flowing mode
19:19:28  <Domenic>when the user calls .read(num)
19:20:31  * petka_joined
19:22:03  * Ralithjoined
19:23:25  <indutny>well
19:23:32  <indutny>it may coalesce buffers
19:23:38  <indutny>at this point the allocation will happen
19:26:05  * rendarquit (Ping timeout: 264 seconds)
19:28:39  <Domenic>so it is constantly reading from the kernel into individual buffers
19:28:50  <Domenic>and then splits or coalesces when the user asks for a given amount
19:29:16  * brsonquit (Ping timeout: 240 seconds)
19:29:20  <indutny>yes
19:29:45  <indutny>splits are not doing any allocations
19:30:04  <Domenic>ok. i guess this prohibits optimizations like pre-allocating a large user-space buffer and reading into it as data becomes available from the kernel
19:31:50  * rendarjoined
19:32:24  * brsonjoined
19:33:18  * avalanche123joined
19:40:48  * calvinfoquit (Quit: Leaving.)
19:42:29  * AlexisMocha_joined
19:43:11  * AlexisMochaquit (Ping timeout: 240 seconds)
19:43:11  * parshapquit (Read error: Connection reset by peer)
19:43:12  * parshapjoined
19:43:12  * nsmquit (Ping timeout: 240 seconds)
19:43:44  * nsmjoined
19:47:02  <indutny>Domenic: we are doing this
19:47:06  <indutny>internally
19:47:07  <indutny>oh
19:47:11  <indutny>actually, we *was* doing this
19:47:18  <indutny>but trevnorris figured out how it could work without it
19:47:24  <indutny>if I recall it properly
19:47:29  <Domenic>hmm
19:47:31  <indutny>ah no
19:47:32  <indutny>nvm
19:47:38  <indutny>so we have a slab allocator
19:58:36  * TooTallNatequit (Quit: Computer has gone to sleep.)
19:59:53  * mikealquit (Quit: Leaving.)
20:01:56  * calvinfojoined
20:16:59  * cjbquit (Remote host closed the connection)
20:17:47  * brsonquit (Quit: leaving)
20:18:34  <saghul>indutny: sorry, I'm phisically back but mentally exhausted :-(
20:18:37  * TooTallNatejoined
20:18:44  <indutny>ok, np
20:20:58  * petka_quit (Changing host)
20:20:58  * petka_joined
20:21:19  * parshapquit (Changing host)
20:21:19  * parshapjoined
20:24:40  * mrvisserquit (Remote host closed the connection)
20:30:54  * sblomquit (Read error: Connection reset by peer)
20:34:07  * bradleymeckquit (Read error: Connection reset by peer)
20:37:41  * seldoquit (Remote host closed the connection)
20:38:48  * calvinfoquit (Ping timeout: 264 seconds)
20:39:00  <trevnorris>afternoon
20:39:25  <trevnorris>indutny: well, the class SlabAllocator is gone, but there are still several slab allocation mechanisms scattered throughout node
20:43:39  <trevnorris>Domenic: there's no performance gain in using a slab like allocation for cases like tcp/pipe because of the additional overhead incurred by v8 having to track other resources.
20:43:58  <trevnorris>Domenic: there is a small amount of slab-ing we do w/ Buffer.
20:44:05  <Domenic>hmm
20:44:13  <trevnorris>if you ask for a Buffer < 4KB then it will take it from a slice
20:44:25  * guilleiguaran__joined
20:45:36  * txdvquit (Ping timeout: 255 seconds)
20:45:42  * txdvjoined
20:46:46  * parshap_joined
20:47:49  * mcavagequit (Read error: Connection reset by peer)
20:47:57  * mcavagejoined
20:52:29  * parshapquit (*.net *.split)
20:52:29  * pdurbinquit (*.net *.split)
20:52:29  * guilleiguaran_quit (*.net *.split)
20:52:29  * Dirksonquit (*.net *.split)
20:52:31  * calvinfojoined
20:53:20  * guilleiguaran__changed nick to guilleiguaran_
20:58:23  * Dirksonjoined
20:58:56  * pdurbinjoined
21:01:59  * rendarquit
21:07:00  * cjbjoined
21:09:07  * mcavagequit (Ping timeout: 240 seconds)
21:10:12  * m76quit (Read error: Connection reset by peer)
21:10:35  * saapazjoined
21:11:52  * MI6quit (Ping timeout: 264 seconds)
21:11:52  * MI6joined
21:11:52  * MI6quit (Changing host)
21:11:52  * MI6joined
21:11:57  * shrubberyquit (Ping timeout: 264 seconds)
21:12:53  * andrehjrquit (Quit: Computer has gone to sleep.)
21:12:54  * ircretaryquit (Ping timeout: 264 seconds)
21:13:41  * ircretaryjoined
21:14:54  * MI6quit (Ping timeout: 264 seconds)
21:15:37  * seldojoined
21:23:15  * avalanch_joined
21:25:08  * mcavagejoined
21:26:34  * vigith_joined
21:31:43  * ircretaryquit (*.net *.split)
21:31:43  * parshap_quit (*.net *.split)
21:31:43  * avalanche123quit (*.net *.split)
21:31:43  * petka_quit (*.net *.split)
21:31:43  * wwicksquit (*.net *.split)
21:31:43  * eugenewarequit (*.net *.split)
21:31:43  * jirwinquit (*.net *.split)
21:31:43  * brett19quit (*.net *.split)
21:31:44  * vigithquit (*.net *.split)
21:36:29  * c4miloquit (Remote host closed the connection)
21:39:50  * brett19joined
21:44:31  * c4milojoined
21:44:56  * wolfeida_changed nick to wolfeidau
21:56:55  * c4miloquit (Remote host closed the connection)
21:59:43  * calvinfoquit (Quit: Leaving.)
22:00:19  * bradleymeckjoined
22:04:28  * seldoquit (Remote host closed the connection)
22:04:39  * bradleymeckquit (Client Quit)
22:05:44  * seldojoined
22:21:23  * c4milojoined
22:24:21  * mcavagequit (Read error: Connection reset by peer)
22:24:46  * seishunquit (Ping timeout: 240 seconds)
22:24:47  * mcavagejoined
22:30:17  * calvinfojoined
22:30:30  * calvinfoquit (Read error: Connection reset by peer)
22:30:40  * c4miloquit (Remote host closed the connection)
22:30:41  * calvinfojoined
22:31:36  * calvinfo1joined
22:31:36  * calvinfoquit (Read error: Connection reset by peer)
22:32:32  * calvinfojoined
22:32:32  * calvinfo1quit (Read error: Connection reset by peer)
22:33:25  * calvinfo1joined
22:33:25  * calvinfoquit (Read error: Connection reset by peer)
22:34:17  * calvinfojoined
22:34:17  * calvinfo1quit (Read error: Connection reset by peer)
22:35:13  * calvinfo1joined
22:35:13  * calvinfoquit (Read error: Connection reset by peer)
22:36:10  * calvinfojoined
22:36:10  * calvinfo1quit (Read error: Connection reset by peer)
22:37:06  * calvinfo1joined
22:37:06  * calvinfoquit (Read error: Connection reset by peer)
22:38:00  * calvinfojoined
22:38:00  * calvinfo1quit (Read error: Connection reset by peer)
22:38:31  * brsonjoined
22:38:56  * calvinfo1joined
22:38:56  * calvinfoquit (Read error: Connection reset by peer)
22:39:48  * calvinfojoined
22:39:49  * calvinfo1quit (Read error: Connection reset by peer)
22:40:47  * calvinfo1joined
22:40:47  * calvinfoquit (Read error: Connection reset by peer)
22:41:40  * calvinfojoined
22:41:40  * calvinfo1quit (Read error: Connection reset by peer)
22:42:37  * calvinfo1joined
22:42:37  * calvinfoquit (Read error: Connection reset by peer)
22:43:28  * calvinfojoined
22:43:28  * calvinfo1quit (Read error: Connection reset by peer)
22:48:00  * calvinfoquit (Ping timeout: 255 seconds)
22:49:50  * calvinfojoined
22:57:31  * wolfeidauquit (Remote host closed the connection)
23:04:47  * avalanch_quit (Remote host closed the connection)
23:07:13  * thlorenzquit (Remote host closed the connection)
23:07:46  * avalanche123joined
23:07:46  * avalanche123quit (Remote host closed the connection)
23:07:48  * thlorenzjoined
23:08:00  * avalanche123joined
23:11:10  * c4milojoined
23:11:27  * toothrjoined
23:12:16  * thlorenzquit (Ping timeout: 240 seconds)
23:15:33  * calvinfopart
23:30:44  * rjequit (Quit: Leaving...)
23:31:05  * rjejoined
23:48:08  * dap_quit (Quit: Leaving.)
23:51:53  * rmgquit
23:52:08  * rmgjoined