00:04:45  * a_lequit (Remote host closed the connection)
00:18:25  * a_lejoined
00:28:02  * a_le_joined
00:29:49  * a_lequit (Ping timeout: 255 seconds)
00:32:54  * UniOnquit (Remote host closed the connection)
00:42:00  * cledevjoined
01:20:39  * kazuponjoined
02:34:16  * a_le_quit (Ping timeout: 256 seconds)
02:38:18  * a_lejoined
02:41:11  * DarkGodquit (Ping timeout: 272 seconds)
03:25:48  * dan336joined
03:54:01  * kazuponquit (Remote host closed the connection)
04:04:05  * cledevquit (Ping timeout: 264 seconds)
04:26:23  * kazuponjoined
05:05:58  * dan336quit (Quit: Leaving.)
05:09:07  <rphillips>load the cert store by filename and it works
05:09:18  <rphillips>load the cert store by pem certificates in memory and it doesn't
06:03:37  * kazuponquit (Remote host closed the connection)
06:04:23  * kazuponjoined
06:11:00  * endouquit (Read error: Connection reset by peer)
06:11:15  * endoujoined
07:42:05  * a_lequit (Remote host closed the connection)
07:47:39  * erlbot--quit (Remote host closed the connection)
08:17:09  * DarkGodjoined
09:09:07  * cledevjoined
10:28:32  * torporjoined
11:08:47  * kazuponquit (Remote host closed the connection)
11:09:28  * kazuponjoined
11:13:23  * kazuponquit (Ping timeout: 240 seconds)
11:21:02  * erlbot--joined
12:44:10  * cledevquit (Ping timeout: 265 seconds)
13:06:44  * tjcravey_joined
14:10:07  * tjcravey_quit (Quit: Textual IRC Client: www.textualapp.com)
14:14:48  * kazuponjoined
14:35:18  * kazuponquit (Remote host closed the connection)
14:48:37  * kazuponjoined
15:27:45  * dan336joined
15:35:30  * travis-cijoined
15:35:30  <travis-ci>luvit/luvit#1217 (ziptastic - 0a717ae : Tim Caswell): The build passed.
15:35:30  <travis-ci>Change view : https://github.com/luvit/luvit/commit/0a717aee040e
15:35:30  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/41611896
15:35:30  * travis-cipart
15:35:53  <rphillips>memory management is broken with the SSL object in lua-openssl
16:09:21  <creationix>:(
16:18:51  <creationix>fwiw, the polling code won’t need tls in luvi since we can just put it behind an nginx proxy. But anything needing https client will certainly need tls
16:20:48  * cledevjoined
16:20:54  <rphillips>yeah, we authenticate our cert within the agent
16:21:44  <rphillips>the SSL_CTX manages the memory for it's data structure, and the lua binding is assuming the caller is
16:42:46  * UniOnjoined
16:43:24  * UniOnquit (Remote host closed the connection)
16:43:46  * UniOnjoined
17:02:31  * kazuponquit (Remote host closed the connection)
17:04:07  * kazuponjoined
17:08:00  * dan3361joined
17:08:00  * dan336quit (Read error: Connection reset by peer)
17:14:43  * travis-cijoined
17:14:43  <travis-ci>luvit/luvit#1218 (tls.connect - 3bf1b25 : Ryan Phillips): The build was broken.
17:14:43  <travis-ci>Change view : https://github.com/luvit/luvit/compare/5637e160cf2d...3bf1b25bf751
17:14:43  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/41622470
17:14:43  * travis-cipart
17:20:11  <creationix>rphillips: made a few fixes to the fs module https://github.com/luvit/luvit/commit/934338a30f4aeec3eb1a942c42a136498fddce0b
17:20:22  <creationix>turns out `0644` is not octal in luajit, but decimal
17:20:59  <rphillips>ah +1
17:21:13  <creationix>also I defaulted to 0666 instead of 0600. The fs will & this with the users umask
17:21:25  <creationix>(usually 755 I think)
17:21:50  <creationix>and added the missing writeFileSync to complete the set
17:28:30  * travis-cijoined
17:28:30  <travis-ci>luvit/luvit#1219 (ziptastic - 934338a : Tim Caswell): The build has errored.
17:28:30  <travis-ci>Change view : https://github.com/luvit/luvit/compare/0a717aee040e...934338a30f4a
17:28:30  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/41624133
17:28:30  * travis-cipart
17:32:54  * travis-cijoined
17:32:54  <travis-ci>luvit/luvit#1220 (ziptastic - 79833f7 : Tim Caswell): The build passed.
17:32:54  <travis-ci>Change view : https://github.com/luvit/luvit/compare/934338a30f4a...79833f77a0fb
17:32:54  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/41624456
17:32:54  * travis-cipart
17:34:26  * torpor1joined
17:35:41  * cledevquit (Ping timeout: 244 seconds)
17:35:47  * kazuponquit (Remote host closed the connection)
17:36:12  * torporquit (Ping timeout: 256 seconds)
17:36:58  <creationix>I think I’ll put the zip-builder in luvi. It’s only about 60 lines of code
17:37:31  <creationix>what’s the typical way to send multiple arguments to an environment variable?
17:37:46  <creationix>comma separated, semicolons?
17:38:52  <creationix>probably should use : since that’s what $PATH uses
17:39:46  <creationix>LUVI_TARGET=luvit LUVI_APP=luvit/app:virgo-base/app luvi
17:40:50  <creationix>maybe just LUVI_TARGET and LUVI_SOURCE
17:43:20  <creationix>if target isn’t set then run main.lua in the bundle, if it is set, extract the front portion of luvi and append the zip/folder(s) specified in LUVI_SOURCE
17:43:47  <creationix>could even add LUVI_MAIN to overrive “main.lua” to be something custom so an app could have multiple entry points
17:44:44  <creationix>could even add a wildcard to main so busybox style symlinks could be used
17:45:42  <rphillips>:)
17:45:43  <rphillips>that is sweet
17:45:59  <creationix>args[0] would be the name of the symlink while uv.exepath() would be the actual binarhy
17:48:24  <creationix>though the busybox style isn’t very windows friendly
17:48:43  <creationix>nor is using environment variables since SET is it’s own command
17:54:21  <creationix>so with zipbuilder, the ability to load object code (dll/so) from the zip bundle, and a package manager, we’ll have a nice platform for all kinds of stuff
17:54:59  <creationix>I’m thinking of integrating some form of dependency/build manifest into zipbuilder, but that may be too much for luvi
17:56:30  * cledevjoined
17:57:47  <rphillips>it sorta makes sense to have that in lovi
17:57:51  <rphillips>luvi*
17:58:42  <creationix>the zipbuilder makes sense so that building luvit needs nothing more than luvi binaries
17:58:55  <rphillips>right
17:58:56  <creationix>but network code to pull down dependencies seems like a bit much
17:59:36  <creationix>and once we solve the package management and binary dependency problem, luvi and be ultra lean
17:59:47  <creationix>* can be
18:00:19  * creationixpretends for a moment that binary dependencies are an easy problem.
18:00:32  <rphillips>heh
18:01:07  <creationix>I’ve been using `uname -m -s` to key the different binary builds. It seems to mostly work
18:05:53  <creationix>rphillips: what should be the special path to include the bundled files in the luvi binary? (for example, using luvit to build virgo, we want the code inside luvit)
18:06:14  <creationix>“self”, “-“, “%SELF%”
18:07:25  <rphillips>?
18:07:48  <rphillips>special path?
18:08:09  <creationix>in LUVI_SOURCE, the value is a colon separated list of paths. I want a special path to mean the binary itself in case it’s not a raw luvi build but rather a luvit build
18:10:30  <creationix>or just an empty path could mean self
18:10:46  <creationix>:my_stuff would be self and my_stuff
18:11:06  <creationix>my_stuff: would out my stuff behind the internal zip
18:11:13  <rphillips>hmm. self is used in lua... it might get confusing
18:11:28  <creationix>but my_stuff would be just my code and ignore the zip in the binary
18:11:43  <creationix>(which is how LUVI_DIR works currently)
18:12:41  <rphillips>ahhh
18:12:43  <rphillips>gotcha
18:12:48  <rphillips>that makes sense
18:13:12  <creationix>also on order, should left be on top or right
18:13:20  <creationix>when files conflict, the top ones win
18:14:37  <creationix>so if there is a/main.lua and b/main.lua which main should a:b load?
18:16:11  <creationix>probably left since that’s what $PATH does
18:18:48  <rphillips>so in your example it would be LUVI_APP=virgo-base/app:luvit/app
18:18:49  <rphillips>right?
18:21:08  <creationix>yep
18:21:49  <creationix>layer virgo-base on top of luvit
18:22:16  <creationix>and if you were using the luvit binary instead of the raw luvi, it would be virgo-base: and you wouldn’t need to clone luvit
18:22:31  * a_lejoined
18:23:31  <creationix>folders and zip files are interchangable, so you could download luvi.exe on windows, download luvit.zip (which is the app folder zipped) and to virgo-base:luvit.zip
18:24:45  <creationix>for development, you can just set the LUVI_SOURCE variable to point to luvit and virgo folders and when done, add LUVI_TARGET to generate the binary
18:26:01  <creationix>LUVI_APP might be better then LUVI_SOURCE since the latter sounds like the C source to luvi itself
18:30:50  <rphillips>i think it should definitely print a warning if a file is overriding another
18:30:55  * a_lequit (Remote host closed the connection)
18:51:09  <creationix>on every run or just on build?
18:52:26  <creationix>on build for sure since that’s the destructive part. The shawdowed files won’t exist in the final zip
18:53:52  * travis-cijoined
18:53:52  <travis-ci>luvit/luvi#146 (move-deps - 0661f2b : Tim Caswell): The build passed.
18:53:52  <travis-ci>Change view : https://github.com/luvit/luvi/commit/0661f2bc94df
18:53:52  <travis-ci>Build details : http://travis-ci.org/luvit/luvi/builds/41632162
18:53:52  * travis-cipart
18:54:17  <creationix>the easiest way for me would be to warn every time you load a file from the bundle that shawdows another file (or readdir a folder that contains shawdowed files)
18:54:32  <creationix>since bundle APIs are sync, programs shouldn’t use them after startup
19:13:40  <rphillips>so paul was talking about streaming the check schedule to the new collector
19:13:57  <rphillips>instead of storing it, so it might remove the dependency of leveldb
19:22:33  * travis-cijoined
19:22:33  <travis-ci>luvit/luvit#1221 (ziptastic - 9e9c68c : Tim Caswell): The build passed.
19:22:33  <travis-ci>Change view : https://github.com/luvit/luvit/compare/79833f77a0fb...9e9c68c6045a
19:22:33  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/41634973
19:22:33  * travis-cipart
19:29:10  * travis-cijoined
19:29:10  <travis-ci>luvit/luvit#1223 (fs-tweaks - c1d6650 : Tim Caswell): The build passed.
19:29:10  <travis-ci>Change view : https://github.com/luvit/luvit/compare/a2a511eb2a78^...c1d66508ac94
19:29:10  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/41635642
19:29:10  * travis-cipart
19:29:34  <creationix>rphillips: as long as the collector can take the data fast enough
19:29:59  <creationix>I’m thinking about leveldb + lua-git for the package manager though
19:30:08  <rphillips>nice
19:30:12  <rch>leveldb in the remote poller?
19:30:29  <creationix>level still might be nice for storing config data though
19:30:34  <rch>hmm
19:30:36  <creationix>what does the other agent do?
19:30:44  <rch>just in memory objects
19:31:17  <creationix>so it’s pretty dumb and stateless then
19:31:35  <rch>right, alternatively "simple" ;)
19:31:35  <rphillips>right
19:32:22  <creationix>rphillips, https://github.com/luvit/luvit/pull/543
19:34:39  <rphillips>http://blog.rust-lang.org/2014/11/20/Cargo.html
19:36:18  * travis-cijoined
19:36:18  <travis-ci>luvit/luvit#1224 (luvi-up - abf1b75 : Tim Caswell): The build passed.
19:36:18  <travis-ci>Change view : https://github.com/luvit/luvit/compare/2144ac4bfd8a...abf1b7549f9a
19:36:18  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/41636353
19:36:18  * travis-cipart
19:40:33  <creationix>rphillips: so the Cargo.lock idea is similar to what I was thinking with git submodules a while back
19:40:39  <creationix>locked by default with explicit updates
19:41:09  <rphillips>+1
19:42:16  <creationix>npm deps move too much in production
19:42:43  <creationix>the unit test and doc integration is really nice, we should do something like that too
19:43:01  <creationix>just need to define some standards so it can be automated
19:57:41  <rphillips>i think the coroutines are messing up the verify_cb within lua-openssl
19:59:57  <creationix>how so?
20:00:22  <creationix>in luvi, all libuv callbacks are called in the main thread
20:00:44  <rphillips>the chain i think
20:01:49  <creationix>so you can’t call read or write from a callback since it’s not running in the coroutine anymore
20:02:01  <creationix>(assuming the callback is from a real libuv event)
20:02:11  <rphillips>the callback comes from the lua-openssl library
20:02:17  <rphillips>set_verify
20:02:32  <creationix>so it’s probably triggered by something you write to openssl
20:02:41  <creationix>so it’s being called in the context of that call
20:04:12  <creationix>maybe coroutine based chains aren’t a good fit for luvit since all the public APis are callback based and so it libuv?
20:05:14  <creationix>you could wrap a chain to be event based on the outside, the setImmediate callback is always called in the main thread if you need to escape a coroutine
20:27:03  * a_lejoined
20:28:15  * cledevquit (Ping timeout: 255 seconds)
20:39:13  * cledevjoined
20:58:45  * songgaoquit (Ping timeout: 272 seconds)
21:01:01  * songgaojoined
21:41:46  <bjorn>local cr = coroutine.running(); uv.func(..., function(...) coroutine.resume(cr, ...) end); local err = coroutine.yield()
21:41:57  <bjorn>I guess it could work like that? Doesn't seem too performant, heh.
21:42:12  <bjorn>Though the function could be cached / re-used.
21:53:28  <creationix>bjorn: did you see utils.adapt? https://github.com/luvit/luvit/blob/luvi-up/app/modules/utils.lua#L271-L309
21:53:39  <creationix>allows any callback based API to be consumed with either callbacks or coroutines
21:53:42  <creationix>used a lot in the fs module
21:54:08  <creationix>https://github.com/luvit/luvit/blob/luvi-up/tests/test-fs.lua#L21-L64
22:00:19  <bjorn>creationix: Ah, that looks useful.
22:00:53  <bjorn>creationix: But I'm a little scared by all the tables being created and unpacked. Is that really necessary? Or doesn't it have a large overhead?
22:01:49  <bjorn>In any case it seems way more complicated than I had imagined.
22:02:26  <creationix>not sure about the fs stuff
22:02:36  <creationix>I benchmarked the coroutines in the http codec chain and it was pretty fast
22:02:46  <creationix>got around 100k http requests handled per second
22:03:02  <creationix>that’s about what the old callback luv benchmark was hitting (pure luv, not luvit)
22:03:53  <bjorn>Alright, so it's probably not adding significant overhead as soon as real work is involved.
22:04:22  <creationix>bjorn: you could also make a custom version of luvit’s fs.lua that always worked with coroutines and used coroutine.running() internally
22:04:34  <creationix>it would just look like blocking calls on the outside, but only work if you’re in a coroutine
22:04:51  <creationix>but luvit wants to keep backwards comapt somewhat so that was not used
22:05:08  <creationix>would be a great 3rd party module, coro-fs or something
22:05:16  <creationix>(or maybe a new core module in luvit)
22:06:23  <bjorn>Well it seems to be like it should be possible to write a much simpler adapt, along the lines of the code I posted up there, once you can assume running inside a coroutine.
22:06:38  <bjorn>seems to me*
22:07:29  <creationix>yep
22:08:21  <rphillips>progress... man almost got the verification code
22:08:49  <creationix>I’m almost done getting the new zip stuff into luvi. It’s going to be beutiful
22:09:04  <rphillips><3
22:09:30  <rphillips>lua-openssl is going to need to check the reference counts before freeing objects
22:18:12  <creationix>whoops, didn’t mean to commit that to master https://github.com/luvit/luvi/commit/9b448a9746657944bd6913290f71ab0097aa79ce
22:18:24  <creationix>well, it’s done, just needs docs and test framework updates
22:19:42  <bjorn>creationix: Hmm, I must be doing something wrong: http://paste.ubuntu.com/9133121/
22:20:02  <bjorn>Arg, never created the coroutine. ..
22:21:05  <bjorn>Well I'm not sure if that's my only problem.
22:21:30  <creationix>can you do (…, arg)?
22:21:36  <creationix>I thought … could only go at the end
22:22:01  <bjorn>Whoops, yeah that's also a problem, it would truncate it to the first one.
22:22:25  <bjorn>I go get some sleep. :)
22:23:26  * travis-cijoined
22:23:27  <travis-ci>luvit/luvi#148 (master - 9b448a9 : Tim Caswell): The build was broken.
22:23:27  <travis-ci>Change view : https://github.com/luvit/luvi/compare/34ea1ce9e2d1...9b448a974665
22:23:27  <travis-ci>Build details : http://travis-ci.org/luvit/luvi/builds/41653825
22:23:27  * travis-cipart
22:34:01  * travis-cijoined
22:34:01  <travis-ci>luvit/luvi#149 (master - 722ea56 : Tim Caswell): The build was fixed.
22:34:01  <travis-ci>Change view : https://github.com/luvit/luvi/compare/9b448a974665...722ea56024df
22:34:01  <travis-ci>Build details : http://travis-ci.org/luvit/luvi/builds/41654953
22:34:01  * travis-cipart
22:40:57  * travis-cijoined
22:40:57  <travis-ci>luvit/luvi#150 (master - 69cd1f3 : Tim Caswell): The build passed.
22:40:57  <travis-ci>Change view : https://github.com/luvit/luvi/compare/722ea56024df...69cd1f3989db
22:40:57  <travis-ci>Build details : http://travis-ci.org/luvit/luvi/builds/41655794
22:40:57  * travis-cipart
22:48:43  <creationix>rphillips: I forgot to make a proper branch, but here is the changes to luvi that need reveiwing https://github.com/luvit/luvi/compare/34ea1ce9e2d19ac4334cfbc18ec9f3e13927c552...master
22:48:53  <creationix>it’s a breaking API change, so I’ll bump the version to 0.4.0
22:49:51  <creationix>made an issue if you want to comment https://github.com/luvit/luvi/issues/31
22:57:09  * travis-cijoined
22:57:09  <travis-ci>luvit/luvi#151 (master - e40f3ba : Tim Caswell): The build passed.
22:57:09  <travis-ci>Change view : https://github.com/luvit/luvi/compare/a3cbc5e9b32a...e40f3baa564d
22:57:09  <travis-ci>Build details : http://travis-ci.org/luvit/luvi/builds/41657736
22:57:09  * travis-cipart
23:13:24  * travis-cijoined
23:13:24  <travis-ci>luvit/luvi#152 (busybox-style - 7cc478b : Tim Caswell): The build passed.
23:13:24  <travis-ci>Change view : https://github.com/luvit/luvi/commit/7cc478b3ebd2
23:13:24  <travis-ci>Build details : http://travis-ci.org/luvit/luvi/builds/41659743
23:13:24  * travis-cipart
23:18:07  <creationix>rphillips: shall I pull in master on lua-openssl for the new luvi build? I see he made a fix for your gc issue
23:18:15  <rphillips>well
23:18:18  <rphillips>it doesn't work yet
23:18:38  <rphillips>i'm still working it... i have two trees, one fixed and one not working with all the checked in code
23:20:38  <creationix>cool, I’ll leave lua-ssl alone and build what I have now. I need the binary published to update luvit to the updated build system
23:20:43  * piernovjoined
23:20:50  <creationix>we can push a minor update when the ssl stuff gets fixed
23:20:56  <piernov>Hey. :)
23:21:37  <creationix>piernov: hi
23:24:11  * UniOn_joined
23:24:35  * UniOnquit (Ping timeout: 265 seconds)
23:27:32  <piernov>I just discovered Luvit, and I see it's possible to embed it in C with the master branch. Is it possible to do so with the luvi-up branch ? If I just want to try Luvit on top of a C (well, C++) app which already has a main loop, what should I do ?
23:28:02  * travis-cijoined
23:28:02  <travis-ci>luvit/luvi#154 (v0.4.0 - 0661f2b : Tim Caswell): The build passed.
23:28:02  <travis-ci>Change view : https://github.com/luvit/luvi/compare/v0.4.0
23:28:02  <travis-ci>Build details : http://travis-ci.org/luvit/luvi/builds/41661025
23:28:02  * travis-cipart
23:29:45  * travis-cijoined
23:29:45  <travis-ci>luvit/luvi#155 (master - 7474ad3 : Tim Caswell): The build passed.
23:29:45  <travis-ci>Change view : https://github.com/luvit/luvi/compare/b011eea0d896...7474ad3eaef8
23:29:45  <travis-ci>Build details : http://travis-ci.org/luvit/luvi/builds/41661087
23:29:45  * travis-cipart
23:33:05  * travis-cijoined
23:33:05  <travis-ci>luvit/luvi#156 (v0.4.0 - 7474ad3 : Tim Caswell): The build passed.
23:33:05  <travis-ci>Change view : https://github.com/luvit/luvi/compare/0661f2bc94df...7474ad3eaef8
23:33:05  <travis-ci>Build details : http://travis-ci.org/luvit/luvi/builds/41661475
23:33:05  * travis-cipart
23:37:22  * cledevquit (Ping timeout: 256 seconds)
23:49:23  * travis-cijoined
23:49:23  <travis-ci>luvit/luvi#157 (master - 93ff2df : Tim Caswell): The build passed.
23:49:23  <travis-ci>Change view : https://github.com/luvit/luvi/compare/7474ad3eaef8...93ff2dfc9b56
23:49:23  <travis-ci>Build details : http://travis-ci.org/luvit/luvi/builds/41662703
23:49:23  * travis-cipart