00:04:23  * UniOnquit (Remote host closed the connection)
00:04:26  * dan336quit (Quit: Leaving.)
00:50:28  * a_lequit (Remote host closed the connection)
00:51:03  * a_lejoined
00:54:40  * kazuponjoined
01:18:22  * a_lequit (Remote host closed the connection)
02:03:48  * a_lejoined
02:07:57  * kazupon_joined
02:08:09  * kazuponquit (Read error: Connection reset by peer)
02:28:04  * dan336joined
02:45:19  * a_lequit (Remote host closed the connection)
02:45:57  * a_lejoined
03:01:41  * a_lequit (Ping timeout: 264 seconds)
03:04:08  * kazupon_quit (Remote host closed the connection)
03:41:03  * dan336quit (Quit: Leaving.)
04:00:07  * kazuponjoined
04:49:33  * kazupon_joined
04:53:51  * kazuponquit (Ping timeout: 265 seconds)
05:24:45  * a_lejoined
06:04:28  * a_lequit (Remote host closed the connection)
06:07:16  * a_lejoined
06:22:09  * a_lequit (Remote host closed the connection)
06:25:10  * a_lejoined
06:29:25  * ra_quit (Ping timeout: 244 seconds)
06:34:20  * a_lequit (Remote host closed the connection)
06:37:50  * a_lejoined
06:47:43  * a_lequit (Remote host closed the connection)
06:59:27  * a_lejoined
07:13:52  * a_lequit (Remote host closed the connection)
07:14:32  * a_lejoined
07:14:33  * a_lequit (Remote host closed the connection)
07:22:40  * kazupon_quit (Remote host closed the connection)
07:23:04  * kazuponjoined
07:29:03  * srenatusjoined
07:45:25  * a_lejoined
07:58:00  * a_lequit (Ping timeout: 265 seconds)
09:54:39  * kazuponquit (Read error: Connection reset by peer)
09:54:39  * kazupon_joined
10:44:34  * kazupon_quit (Remote host closed the connection)
10:46:52  * torpor1joined
11:46:36  * DarkGodjoined
12:31:11  * UniOnjoined
12:31:32  * UniOnquit (Remote host closed the connection)
12:31:55  * UniOnjoined
13:45:02  * torpor1quit (Quit: Leaving.)
14:06:12  * kazuponjoined
14:40:08  * torporjoined
14:40:49  * torporquit (Read error: Connection reset by peer)
14:46:06  * kazuponquit (Remote host closed the connection)
15:04:25  <rphillips>so, why does node still use cares versus getaddrinfo?
15:04:44  <rphillips>faster?
15:19:01  <rphillips>hmm. getaddrinfo won't support srv records
15:24:14  <rphillips>creationix: i don't see a way around not including c-ares in luvi
15:24:39  <creationix>what is c-ares used for? Libuv has async dns
15:24:53  <creationix>oh, srv records
15:25:34  <creationix>that’s fine. If it’s needed, we can include it
15:32:36  * torporjoined
15:36:16  <rphillips>i'll start looking into get pulled in
15:36:21  <rphillips>getting that*
15:47:18  * dan336joined
15:56:51  * kazuponjoined
15:58:59  <creationix>I wonder what zlib has that https://code.google.com/p/miniz/source/browse/trunk/miniz.c?r=31 doesn't
15:59:10  <creationix>I’m already using tinfl from miniz in luvi
16:00:24  <creationix>I know I’ve never used anything from zlib that’s not in miniz
16:00:34  <creationix>my zip code and git code only need inflate/deflate
16:01:00  <creationix>http streams with deflate is the same
16:01:05  <creationix>gzip is the same, but with extra headers
16:01:07  * kazuponquit (Ping timeout: 245 seconds)
16:03:17  <creationix>hmm, doesn’t appear to implement the gzip headers
16:03:28  <creationix>that’s fairly common in http
16:08:02  * a_lejoined
16:21:08  * phorejoined
17:01:27  * a_lequit (Remote host closed the connection)
17:08:56  * a_lejoined
17:19:40  * dan3361joined
17:19:40  * dan336quit (Read error: Connection reset by peer)
17:20:30  * dan336joined
17:20:31  * dan3361quit (Read error: Connection reset by peer)
18:00:43  * a_lequit (Read error: Connection reset by peer)
18:01:12  * a_lejoined
18:33:10  * srenatusquit (Quit: Connection closed for inactivity)
18:56:39  <rphillips>is there a smaller library than c-ares we could embed?
19:00:31  <creationix>surely
19:10:26  <creationix>I wonder how hard it is to implenent srv lookup using the udp primitive
19:12:09  * a_lequit (Read error: Connection reset by peer)
19:12:41  * a_lejoined
19:23:35  * torporquit (Quit: Leaving.)
19:29:34  * torporjoined
19:32:54  <rphillips>https://github.com/openresty/lua-resty-dns/blob/master/lib/resty/dns/resolver.lua
19:32:56  <rphillips>sweet!
19:33:06  <rphillips>bsd licensed as well
19:34:24  * a_lequit (Read error: Connection reset by peer)
19:35:10  * a_lejoined
19:44:37  <creationix>that’s cool
19:45:06  <creationix>the one thing I really like about the Go community if they implement their own protocols in go. We can do a lot of the same for lua, the jit is fast enough
20:01:36  <creationix>rphillips: I think I need some way in the http codec to delimit body messages
20:02:04  <creationix>currently a request consists of a single table event followed by zero or more strings for body chunks
20:02:32  <creationix>the problem is, you don’t know when you have all the body (unless you re-implement the byte-counting logic inside http-codec)
20:02:49  <creationix>and with keepalive, you’ll not get an EOS event when it’s done since the connection stays open
20:03:17  <creationix>one idea is to embed the body as a property in the req/res tables that is itself a read/write stream
20:03:33  <creationix>then this substream can have it’s own proper nil terminator
20:04:03  <rphillips>that is an extremely common paradigm
20:04:04  <creationix>also affords for some optimizations in the encoder where the body can be a string and sent in the same tcp packet as the headers
20:04:10  <rphillips>+1
20:04:37  <creationix>the other idea was to add new symbol (maybe false) that signaled end end of the body in a flat stream
20:04:56  <creationix>eg: table, string, string, …, false, table, false, nil
20:05:04  <creationix>nil is EOS, false is end of body
20:06:14  <rphillips>hmm
20:06:34  <rphillips>that seems reasonable as well
20:06:39  <rphillips>just needs documentation
20:06:44  <creationix>I have the same issue with js-git. It has lots of nested streams in the packfile protocol
20:07:49  <creationix>I couldn’t nest there because I didn’t have this coroutine enabled blocking read/write, but I think nesting could work here
20:08:29  <creationix>if you try to read the next request before you consumed all the body, I’ll just have the codec throw away the body so as to not deadlock
20:09:37  <creationix>the consumer shows their intent by either reading chunks from the body or reading the next request/response
20:09:46  <creationix>no intent is known in a push style stream
20:10:34  <creationix>rphillips: do you have a preference. I think I’ll try the nested approach since it’s closer to what luvit exposes at the high level
20:12:51  <creationix>hmm, this could be tricky. the interface is channel-style so you don’t know when someone is waiting on you to write more
20:13:55  <creationix>yeah, and without knowing intent, deadlock will be easy to cause by simply reading the next request before consuming all the body stream.
20:14:11  <rphillips>hmm. yeah
20:14:24  <creationix>a flat stream forces them to consume everything in a linear manner
20:14:46  <creationix>I could also just use an empty string for end of body and never emit empty string chunks when there is more body expected
20:15:03  <creationix>that matches with chunked encoding semantics (an empty chunk is how you signify the end of the stream)
20:16:08  <rphillips>nodejs streams work similarly with the empty chunk
20:16:25  <creationix>in a normal luvit server, I expect each http request or response to have it’s own coroutine (or be callback based)
20:16:58  <creationix>let’s do empty string
20:17:34  <creationix>it’s handy that empty string is truthy in lua
20:17:40  <rphillips>right
20:17:43  <creationix>so it won’t be mistaken for nil
20:18:10  <creationix>ok, I’ll do that and then the http pr will be finally done I think
20:18:22  <creationix>then I need to update my tls sample and get https working!
20:22:33  <rphillips>sweet
20:59:56  * torporquit (Quit: Leaving.)
21:08:09  <rphillips>https://www.evernote.com/shard/s9/sh/92e35f51-b6a8-409d-adf4-0d322ff06ac3/67631feb6b744dd79ef4416e99377d25
21:08:10  <rphillips>works
21:28:32  <creationix>rphillips: that was fast
21:28:33  <creationix>:)
21:28:51  <rphillips>the nginx code helps
21:29:01  <rphillips>working on the udp module in luvit
21:29:06  <rphillips>since that is a prereq
21:35:52  <creationix>cool
21:36:14  <creationix>rphillips: though you could use the uv bindings for udp directly to make it more effecient
21:36:19  <creationix>but that’s up to you
21:37:16  <rphillips>true...
21:46:09  * travis-cijoined
21:46:10  <travis-ci>luvit/luv#157 (fixes/ttl - 0d9923f : Ryan Phillips): The build passed.
21:46:10  <travis-ci>Change view : https://github.com/luvit/luv/commit/0d9923fa9cef
21:46:10  <travis-ci>Build details : http://travis-ci.org/luvit/luv/builds/40710665
21:46:10  * travis-cipart
22:39:14  <creationix>rphillips: shall we merge your crypto test?
22:39:24  <rphillips>+1
22:39:26  <creationix>I just merged my http-codec pr and your tiny emitter pr
22:40:02  <creationix>alright, all luvi-up PRs are now closed :)
22:40:10  <rphillips>a 'features' table would be nice i think
22:40:26  <rphillips>to see if zlib/openssl/etc are built in
22:41:32  <creationix>maybe combine with a versions table if that’s available to C
22:41:41  <creationix>kinda like node’s process.versions
22:43:23  * travis-cijoined
22:43:23  <travis-ci>luvit/luvit#1099 (luvi-up - 32e3c0d : Tim Caswell): The build was broken.
22:43:23  <travis-ci>Change view : https://github.com/luvit/luvit/compare/18800c40bbb5...32e3c0d56ece
22:43:23  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/40716256
22:43:23  * travis-cipart
22:46:29  <creationix>rphillips: seems that emitter test is still flakey
22:46:35  <creationix>failed only on the emitter test merge
22:46:43  <creationix>shouldn’t affect the net module I would think
22:46:46  <creationix>https://travis-ci.org/luvit/luvit/builds
22:47:04  <creationix>s/emitter test/timeout test/
22:47:21  * travis-cijoined
22:47:22  <travis-ci>luvit/luv#159 (master - 24ac18c : Tim Caswell): The build passed.
22:47:22  <travis-ci>Change view : https://github.com/luvit/luv/compare/a6d7ddf2b1a5...24ac18c7a317
22:47:22  <travis-ci>Build details : http://travis-ci.org/luvit/luv/builds/40716404
22:47:22  * travis-cipart
22:48:59  <rphillips>hmm
22:51:56  <rphillips>it's probably a double close
22:55:48  <rphillips>nope
22:55:57  <rphillips>the socket gets timed out after the dns query
22:56:28  <rphillips>https://github.com/luvit/luvit/pull/528
22:57:59  <creationix>the error cases are so much work than the good case
23:00:19  * a_lequit
23:01:56  * a_lejoined
23:02:20  * travis-cijoined
23:02:20  <travis-ci>luvit/luvit#1101 (fixes/net_timeout - be9af5f : Ryan Phillips): The build passed.
23:02:20  <travis-ci>Change view : https://github.com/luvit/luvit/commit/be9af5f4ae6e
23:02:20  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/40717870
23:02:20  * travis-cipart
23:08:28  <rphillips>usually how it goes
23:09:51  * travis-cijoined
23:09:51  <travis-ci>luvit/luvit#1103 (luvi-up - 6bc775f : Ryan Phillips): The build passed.
23:09:51  <travis-ci>Change view : https://github.com/luvit/luvit/compare/b2b999f68263...6bc775fb52fb
23:09:51  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/40719004
23:09:51  * travis-cipart
23:10:30  * UniOnquit (Remote host closed the connection)
23:25:43  <rch>wait luvit is luvi'd up ?
23:26:59  * travis-cijoined
23:26:59  <travis-ci>luvit/luvit#1104 (tls-codec - 74e1f21 : Tim Caswell): The build is still failing.
23:26:59  <travis-ci>Change view : https://github.com/luvit/luvit/compare/fa7545218a06...74e1f21ecd9d
23:26:59  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/40720390
23:26:59  * travis-cipart
23:30:12  * travis-cijoined
23:30:12  <travis-ci>luvit/luvit#1105 (tls-codec - e9dfb37 : Tim Caswell): The build has errored.
23:30:12  <travis-ci>Change view : https://github.com/luvit/luvit/compare/74e1f21ecd9d...e9dfb375f7e1
23:30:12  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/40720834
23:30:12  * travis-cipart
23:32:56  * travis-cijoined
23:32:56  <travis-ci>luvit/luvit#1106 (tls-codec - b37675f : Tim Caswell): The build was fixed.
23:32:56  <travis-ci>Change view : https://github.com/luvit/luvit/compare/e9dfb375f7e1...b37675fef5e4
23:32:56  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/40720984
23:32:56  * travis-cipart
23:46:38  * travis-cijoined
23:46:38  <travis-ci>luvit/luvit#1109 (add-fs-readfile - a5c2928 : Tim Caswell): The build has errored.
23:46:38  <travis-ci>Change view : https://github.com/luvit/luvit/compare/484c08f30b6f...a5c29288af08
23:46:38  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/40722257
23:46:38  * travis-cipart
23:57:55  * phorequit (Quit: looks like i ran out of coffee)