00:08:37  * bDigitsjoined
00:09:39  <dubcanada>Anyone here?
00:18:33  * q66quit (Remote host closed the connection)
00:51:32  * dubcanadaquit (Remote host closed the connection)
00:58:54  * DarkGodjoined
01:05:59  <DarkGod>hi
01:06:40  <DarkGod>https://github.com/dvv/luvit-zmq/blob/master/tests/uv.lua this test for luvit-zmq uses a global "ev" toget the loop, which doesnt seem to exist in luvit; what's going on? the test is bonkers ?
01:41:20  * kazuponjoined
01:44:49  * kazuponquit (Remote host closed the connection)
01:48:50  * Golesquit (Quit: Computer has gone to sleep.)
01:49:08  * indexzerojoined
02:00:44  * DarkGodquit (Remote host closed the connection)
02:13:39  * kazuponjoined
02:18:34  * kazuponquit (Remote host closed the connection)
02:18:38  * bDigitspart
02:31:30  * philipsquit (Ping timeout: 256 seconds)
02:32:31  * Golesjoined
02:39:21  * philipsjoined
02:54:15  * philipsquit (Ping timeout: 256 seconds)
03:13:21  * philipsjoined
03:19:53  * Golesquit (Quit: Computer has gone to sleep.)
03:36:18  * kazuponjoined
04:05:55  * philipsquit (Ping timeout: 258 seconds)
04:06:05  * kazuponquit (Remote host closed the connection)
04:07:38  * philipsjoined
04:08:37  * kazuponjoined
05:01:04  <dvv>DarkGod2_: https://github.com/dvv/luvit-zmq/blob/master/Makefile#L38-L40
05:01:53  * philipsquit (Read error: Operation timed out)
05:45:22  * philipsjoined
07:38:28  * indexzeroquit (Quit: indexzero)
08:17:32  * DarkGodjoined
10:23:06  * kazuponquit (Ping timeout: 258 seconds)
10:44:11  * bakinsjoined
12:57:21  * Golesjoined
13:09:40  * q66joined
13:20:18  * bakinsquit (Quit: bakins)
13:46:38  * kevwiljoined
13:59:55  * indexzerojoined
14:38:15  * bakinsjoined
15:20:06  * kazuponjoined
16:43:25  <DarkGod>Ah !! anybody knows luvit-mysql ? I got a strange bug when I have a table with a datetime field, when it is set to 0 (well 0000-00-00 00:00:00) I get a nice luvit-mysql crash when I try to select it
16:46:48  * kazuponquit (Remote host closed the connection)
16:48:33  * kazuponjoined
17:50:55  * eris0xffjoined
17:51:29  <eris0xff>hi: what's the best brief intro URL for playing in the luvit sandbox?
17:51:45  <eris0xff>(examples?)
17:51:47  <eris0xff>:-)
17:52:06  <eris0xff>i mean of course the examples code
18:08:52  * themgtjoined
18:18:16  <dvv> eris0xff: try looking at https://github.com/dvv/luvit-*
18:34:31  * DarkGodquit (Ping timeout: 256 seconds)
19:10:43  * kazuponquit (Remote host closed the connection)
19:17:47  <eris0xff>dvv: this
19:18:03  <eris0xff>dvv: thanks
19:33:05  <eris0xff>dvv: found your fork of luvit. is it different than the primary git?
19:44:00  <creationix>eris0xff: there is the moonslice family of modules too
19:44:04  <creationix>luvit.io runs on moonslice
20:01:36  <eris0xff>thx
20:03:02  <eris0xff>creationix: read the moonslice readme. "This is a bare-bones version of luvit that works without luvit." I assume they mean "without luajit"
20:03:18  <creationix>no, there are two moonslices
20:03:23  <eris0xff>oh
20:03:24  <creationix>one for luvit and one for regular luajit
20:03:36  <creationix>the without-luvit version uses luv
20:03:36  <eris0xff>ok.
20:03:45  <creationix>luv is libuv bindings for regular lua runtimes
20:04:05  <creationix>for in the case where you don't want to buy into the entire luvit ecosystem
20:04:27  <creationix>eris0xff: and I'm sorry none of this is documented
20:04:37  <creationix>it's all in flux and I'm too busy with paid work to fix it
20:05:03  * erix0xffjoined
20:05:04  <creationix>maybe after my jsgit kickstarter I'll do a finish-luvit kickstarter
20:05:13  <erix0xff>sorry -- lost connection
20:05:28  <erix0xff>so luv (not richards) is the minimal libuv + lua
20:05:44  <creationix>luv is libuv bindings for regular lua runtimes
20:05:45  <creationix>for in the case where you don't want to buy into the entire luvit ecosystem
20:05:46  <creationix>and I'm sorry none of this is documented
20:05:47  <creationix>it's all in flux and I'm too busy with paid work to fix it
20:05:59  <creationix>right, my "luv" project is just libuv for lua
20:06:05  <creationix>can be packaged as luarocks, etc
20:06:13  <erix0xff>cool
20:06:23  <erix0xff>it's what I was looking for anyway
20:06:32  <creationix>https://github.com/creationix/luv
20:06:37  <erix0xff>want to base a networking library on lua+libuv
20:06:50  <creationix>I think luvit is awesome for someone who is willing to use a new platform
20:06:59  <creationix>but if you want to work with existing lua code, then luv may be better
20:07:05  <erix0xff>ok.
20:07:37  <erix0xff>yeah I'll be binding lua+libuv+libssh and a few other morsels
20:07:42  <creationix>luv isn't finished though
20:07:50  <creationix>also your libssh module may have I/O
20:07:58  * eris0xffquit (Ping timeout: 245 seconds)
20:08:01  <erix0xff>as in: it doesn't work, or as in "it needs some extensions"
20:08:02  <creationix>which will be a problem since luv still has it's own event loop from libuv
20:08:10  <creationix>luv doesn't wrap all of libuv
20:08:14  <erix0xff>ah
20:08:28  <creationix>I seem to remember it has tcp, fs, and timers
20:08:31  <creationix>that's all most projects need
20:08:49  <creationix>I also packaged luvit's http_parser bindings as standalone lua bindings
20:08:52  <erix0xff>so the lua component is just an interface into the bigger libuv universe
20:09:06  <creationix>luv + lhttp_parser + lua/luajit makes a pretty good web platform
20:09:08  <erix0xff>libuv fully in charge
20:09:18  <erix0xff>(in luv)
20:09:22  <creationix>well, event loops like libuv only work if they can block the process
20:09:37  <creationix>event-loops don't play nice with other I/O systems
20:09:42  <erix0xff>sure. thats why you need other threads if you want to do other things.
20:09:54  <creationix>if you're willing to do multi-threading in lua, sure
20:10:02  <erix0xff>yeah I'd have to rip into the libSSH even handler
20:10:04  <creationix>the best is to integrate with the event loop
20:10:12  <creationix>but that's harder
20:10:18  <erix0xff>not a problem. multi-threading is what I do a lot of
20:10:37  <creationix>and some parts of libuv are thread safe, but not all
20:10:46  <creationix>since it's mostly used with single-threaded scripting languages
20:10:46  <erix0xff>I built a distributed neural net system with libev so not a big deal
20:11:28  <erix0xff>what I want to do is tap libuv for the OS independent event loop + stream I/O stuff
20:11:34  <creationix>cool, good luck then
20:11:37  <erix0xff>:-)
20:11:40  <creationix>yeah, libuv is nice for that
20:11:52  <creationix>it even supports ansi colored terminal output in windows
20:12:02  <creationix>translates the color codes on the fly
20:12:18  <erix0xff>Sort of what richard was doing without ZMQ
20:12:36  <creationix>and without the use of coroutines
20:12:39  <erix0xff>Because I suspect that ZMQs event and thread model is subtly but importantly broken
20:12:43  <creationix>luv is still callback based
20:12:49  <erix0xff>sure.
20:13:13  <erix0xff>But it's like a 2-stage callback that creates a hybrid proactor that models both reactor and IOCP.
20:13:15  <erix0xff>tricky
20:13:31  <erix0xff>using streams
20:13:42  <erix0xff>at least if I read the docs correctly.
20:13:50  <creationix>libuv streams?
20:13:54  <erix0xff>yeah.
20:13:56  <erix0xff>stream buffers
20:13:59  <erix0xff>its how they do I/O
20:14:03  <erix0xff>(right :-)
20:14:03  <creationix>unless it changed recently it's just ondata callbacks
20:14:42  <erix0xff>so callback phase one says it has some stuff so gimme a buffer of length n so I can fill it
20:14:56  <erix0xff>callback phase 2 is the actual handoff of the completed I/O
20:14:56  <creationix>oh, right that part
20:15:06  <creationix>I always hard-code that part in C and don't expose to lua
20:15:10  <erix0xff>ah
20:15:14  <creationix>so lua only sees the second half
20:15:18  <erix0xff>ah
20:15:34  <erix0xff>ok. probably not important to see phase 2 as long as someone handles it
20:15:40  <erix0xff>sorry phase 1
20:16:02  <creationix>right, I figured a scripting language wasn't the best place to be doing memory allocations anyway
20:16:11  <erix0xff>hehe probably right.
20:16:13  <creationix>just give the scripting language the already allocated string
20:16:21  <erix0xff>here's a question.
20:16:32  <erix0xff>since you've done a good amount of lua hacking.
20:17:10  <erix0xff>If you create c-based userdata that's accessible to Lua, it stands to reason that it should be relatively easy to access from a c program that binds that library?
20:17:25  <erix0xff>so you could use it from C and Lua?
20:18:26  <erix0xff>Also another thing I'm trying to figure out: Can I let the Lua VM do the underlying garbage collection?
20:19:01  <erix0xff>So I can allocate buffers from the VM and let it collect them when I'm done?
20:19:14  <erix0xff>(probably what has to happen for it to work)
20:19:57  <erix0xff>(sorry so many questions)
20:20:41  * kazuponjoined
20:20:56  <creationix>as I understand full user data are memory-managed by the VM
20:21:13  <creationix>so any C code using them needs to make sure it's not been collected before accessing it
20:21:31  <creationix>but in lua at least, they don't relocate
20:21:35  <creationix>most other VMs do
20:22:24  <creationix>but yes, you can use createuserdata to create vm managed memory
20:22:37  <creationix>but you'll have to manually create refs to it if you don't want the gc to take it from you
20:22:41  <creationix>the gc can't see C references
20:23:11  <creationix>it's not like boehm gc where it guesses which have C pointers to them
20:24:37  <erix0xff>creationix: thx
20:24:52  * Golesquit (Quit: Computer has gone to sleep.)
20:25:41  <erix0xff>creationix: that's exactly what I needed to know :-)
20:26:09  <erix0xff>I can make some macros that create REFs for any C code.
20:26:49  <erix0xff>I guess what I'm shooting for is a network library with the simplicity of C, the functional/OO scripting power of Lua and accessibility to anything that can call into a C lib
20:26:49  <creationix>I often have refcounting structs
20:27:21  <creationix>well, luajit ffi is pretty good at calling C libraries
20:27:41  <creationix>or do you mean the other way around?
20:27:46  <erix0xff>yep. other way
20:28:01  <erix0xff>C/C++ progs calling into it
20:28:08  <erix0xff>via static/dyanmic bindings etc
20:28:47  <erix0xff>it would also have to work with bog standard lua just in case we run into a platform that doesn't have a luajit port
20:29:00  <erix0xff>i see all of this as doable.
20:29:17  <erix0xff>Use libuv + a few other things as a HAL layer
20:30:06  * kazuponquit (Ping timeout: 264 seconds)
20:30:09  <erix0xff>basically a portable network stream engine
20:30:43  <erix0xff>with lua scripted co-routines / tasks if you need them to sit on streams and digest them.
20:31:18  <erix0xff>should be fun :-)
21:25:58  * kazuponjoined
21:31:07  * kazuponquit (Ping timeout: 264 seconds)
21:37:16  * Golesjoined
21:37:37  * Golesquit (Remote host closed the connection)
22:26:38  * kazuponjoined
22:29:20  * indexzeroquit (Quit: indexzero)
22:31:18  * kazuponquit (Ping timeout: 264 seconds)
22:38:40  * philipsquit (Changing host)
22:38:40  * philipsjoined
22:57:18  * erix0xffquit (Quit: Page closed)
23:07:54  * creationixquit (Ping timeout: 264 seconds)
23:08:48  * creationixjoined
23:09:06  * bakinsquit (Quit: bakins)
23:12:41  * indexzerojoined
23:12:46  * indexzeroquit (Client Quit)
23:27:07  * kazuponjoined
23:31:55  * kazuponquit (Ping timeout: 260 seconds)
23:50:38  * boxofroxquit (Quit: WeeChat 0.4.0)
23:58:39  * q66quit (Remote host closed the connection)