00:03:18  * dan336quit (Quit: Leaving.)
00:34:17  * cledevquit (Ping timeout: 252 seconds)
00:43:36  * UniOn_quit (Remote host closed the connection)
00:43:37  * DarkGodquit (Ping timeout: 245 seconds)
01:14:35  * cledevjoined
01:49:51  * drorhquit (Read error: Connection reset by peer)
03:26:14  * cledevquit (Ping timeout: 250 seconds)
03:37:39  * drorhjoined
03:38:43  <drorh>im obsessing on a way to make a recusive concat function with a vararg of strings without creating a table
03:43:44  * cledevjoined
03:50:19  * drorhquit (Read error: Connection reset by peer)
04:12:06  * a__quit (Remote host closed the connection)
04:13:19  * a__joined
04:32:39  * endou_____quit (Ping timeout: 244 seconds)
04:33:10  * jirwinquit (Ping timeout: 244 seconds)
04:33:28  * endou_____joined
04:33:32  * jirwinjoined
05:21:51  * cledevquit (Ping timeout: 250 seconds)
06:14:12  * piernovquit (Ping timeout: 256 seconds)
06:17:54  * piernovjoined
08:07:37  * {slurp}1joined
08:07:37  * creationixtopic: Lua + libUV + jiT = pure awesome-sauce | http://luvit.io | https://github.com/luvit/luvit | https://github.com/luvit/luv
08:14:44  * {slurp}quit (*.net *.split)
09:36:35  * cledevjoined
10:05:56  * blessYahujoined
13:38:45  * DarkGodWjoined
14:16:26  * chkuendigjoined
14:27:00  * torporjoined
14:35:46  <rphillips>good morning
14:49:27  * torporquit (Quit: Leaving.)
14:50:17  * torporjoined
15:22:41  * dan336joined
15:40:27  * KennethWilkejoined
15:40:50  <KennethWilke>g'morning
15:47:53  * torporquit (Read error: Connection reset by peer)
15:48:35  <rch>good morning
16:26:30  <creationix>hope everybody is enjoying the new repl as much as I am
16:34:27  <rphillips>haven't used it much yet... but I plan to!
16:34:33  <KennethWilke>not yet, need to update my shtuff
16:37:28  <rphillips>rje: https://github.com/luvit/luvit/pull/570
16:37:47  <rphillips>i'm going to bump libsigar as well, since it doesn't build on the newest OSX
16:43:35  * dan336quit (Read error: Connection reset by peer)
16:44:29  * UniOnjoined
16:47:44  * dan336joined
16:49:05  <rphillips>oh man, that fix has memory usage stable
16:59:56  * travis-cijoined
16:59:56  <travis-ci>luvit/luvit#1401 (fixes/tls_memory_leak - b4b1e2e : Ryan Phillips): The build passed.
16:59:56  <travis-ci>Change view : https://github.com/luvit/luvit/commit/b4b1e2efaa86
16:59:56  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/43854736
16:59:56  * travis-cipart
17:02:26  <creationix>yay for stable memory
17:34:50  <KennethWilke>hmm
17:34:56  <KennethWilke>this is interesting, performance wise
17:35:18  <KennethWilke>when i get my redis proxy to mock the redis ping command, it gets 140k reqs per second and redis itself will only do 100k
17:36:36  <KennethWilke>such fast
17:37:28  * DarkGodWquit (Ping timeout: 244 seconds)
18:22:16  <creationix>:)
18:26:41  * travis-cijoined
18:26:41  <travis-ci>luvit/luvit#1402 (master - 9bd5784 : Ryan Phillips): The build passed.
18:26:41  <travis-ci>Change view : https://github.com/luvit/luvit/compare/b555742cdb01...9bd578462c03
18:26:41  <travis-ci>Build details : http://travis-ci.org/luvit/luvit/builds/43865164
18:26:41  * travis-cipart
18:51:50  * DarkGodjoined
19:03:07  * chkuendigquit (Quit: chkuendig)
19:16:56  <KennethWilke>creationix, i noticed the ctrl+w stuff sometimes stops at a double quote
19:17:30  <KennethWilke>like i had print("test") with the cursor at the end, and it left 'print("'
19:19:17  <creationix>is bash not the same?
19:19:58  <KennethWilke>no, it does stuff like that for ctrl+left and ctrl+right but for ctrl+w it'll delete the whole print statement
19:21:47  <creationix>hmm, on my bash it leaves print(“
19:22:10  <creationix>well, the pattern I’m using is configurable. Currently it’s %w+
19:22:15  <KennethWilke>i'm running on GNU bash, version 4.2.53(1)-release (x86_64-pc-linux-gnu)
19:22:41  <creationix>heh, just kidding, that wasn’t bash I tested it, it was luvit
19:22:45  * creationixshould sleep more
19:22:47  <KennethWilke>lols
19:22:59  <KennethWilke>i was wondering if it was different in OSX bash
19:23:22  <KennethWilke>some of those cli tools on osx are iffy
19:23:34  <creationix>hacking on luvit itself is really easy since it’s luvi based. Just set LUVI_APP to the app folder and it will run from there instead of what’s bundled in the binary
19:23:42  <creationix>no need to recompile with every change
19:24:26  <creationix>the logic that’s shared betwen Control-Left and Control-W is at https://github.com/luvit/luvit/blob/luvi-up/app/modules/readline.lua#L191-L203
19:24:30  <creationix>it could use some help I’m sure
19:25:18  <creationix>though it looks like bash is simply matching on a larger set
19:25:31  <creationix>looks more like [^ ]+ than %w+
19:26:11  <KennethWilke>seems like the logic for bash is from cursor position delete all whitespace until hitting a non-whitespace character, then all non-whitespace characters until the start of line or whitespace
19:26:30  <creationix>yep. which is probably too aggressive for lua code since that tends to be denser in a repl
19:26:39  <creationix>bas requires spaces to separate arguments
19:26:41  <creationix>*bash
19:26:57  <creationix>lua could have foo().bad().baz(word)
19:27:01  <KennethWilke>yeah
19:27:35  <KennethWilke>hmm, yeah it might be more useful as it is
19:27:45  <creationix>especially since I don’t have undo
19:27:46  <creationix>bash does
19:27:56  <KennethWilke>oh does bash have undo?
19:28:00  <creationix>Control _
19:28:13  <KennethWilke>learning something new today!
19:28:17  <KennethWilke>lol
19:28:25  <creationix>or on most keyboards Control Shift -
19:28:49  <creationix>shouldn’t be terribly hard to add undo though
19:28:52  <KennethWilke>never knew about that one
19:29:18  <creationix>I didn’t either. I read lots of bash shortcut docs looking for easy to implement things
19:29:25  <creationix>I never used Control W
19:52:32  <rch>i actually like the more granular ^w but i understand trying to make it match bash, i noticed the difference and appreciated it
19:52:51  <rch>creationix: good point about lua code being denser
19:55:13  <KennethWilke>yeah i think being different than bash is helpful in the context of lua
19:55:38  <KennethWilke>ctrl does my expected operation of delete roughly one word to the left
19:55:46  <KennethWilke>ctrl+w*
19:56:33  <creationix>awesome
20:09:11  <KennethWilke>there's no try/catch kinda stuff in lua right? or did i miss it
20:09:47  <rch>pcall()
20:09:56  <creationix>and error()
20:10:03  <rch>http://www.lua.org/pil/8.4.html
20:10:33  <creationix>and assert is super useful (and very fast) for converting between nil,error result and throwing
20:11:49  <KennethWilke>aahhh alrighty
20:11:49  <KennethWilke>ty
20:35:43  * cledevquit (Ping timeout: 244 seconds)
20:45:54  <creationix>jirwin: rch: https://github.com/luvit/lit/blob/master/README.md
20:46:34  <creationix>the query half of the protocol is usable with a simple netcat client. A human could just issue queries and see responses
20:46:55  <creationix>but the sync half for syncing binary objects in the graph is supper effecient binary code
20:47:00  <creationix>*super
20:48:00  <rch>both over the same socket?
20:48:36  <rch>nice, this readme explains some code i've read
20:49:49  <creationix>though the readme is ahead of some of the code
20:50:03  <creationix>I changed it today to allow human interaction and machine binary data over the same socket
20:50:16  <creationix>the first high bit at the beginning of each frame is how you know
20:58:58  <KennethWilke>have any of y'all used moonshine or lua.vm.js?
21:01:06  <creationix>nope
21:01:39  <KennethWilke>seems like it'd be fun to have lua in the browser, i'm gonna tinker with luvit + moonshine and see how that goes
21:03:37  <creationix>have fun
21:03:54  <creationix>this is how far I got down the lua in browser rabbit hole https://github.com/creationix/brozula
21:04:23  <creationix>I never finished it, but I think it’s technically feasable
21:04:39  <creationix>basically the reverse of what the tessel guys are writing
21:04:59  <creationix>now that browsers have generators and maps it should be easier
21:06:24  * cledevjoined
21:06:30  <rch>i feel like luvit is close enough to js that the best applications of it will be completely different
21:06:50  <rch>but i understand the impulse
21:18:01  <KennethWilke>i'm still not a super big fan of js, i'd like to have something a little nicer in the browser
21:18:14  <KennethWilke>i'm fine with js, not like a hater or anything. written plenty of it
21:18:22  <KennethWilke>i just like to have options
21:18:47  <KennethWilke>coffeescript didn't make me feel any better about it, and dart seems pretty nifty too
21:19:11  <KennethWilke>but luvit's got me very interested in using lua a bit more
21:19:41  <KennethWilke>i feel like someone should have told me it was so damn great earlier
21:19:56  <creationix>lua, the best language you never heard of
21:20:20  <creationix>I talked to the creator of lua, he doesn’t care if his language is popular, he almost seems against it.
21:20:33  <creationix>plus most uses are embedded things
21:20:49  <KennethWilke>and that's mostly where i'd seen it in the past, embedding in things
21:20:52  <creationix>very different than the JS world where js is already there and with a very constrained sandbox
21:20:58  <KennethWilke>things are like "you can script for this in lua" with like no docs
21:21:56  <KennethWilke>yeah, and the browser is still a great tool because of JS
21:23:13  <rch>i wish the redis lua engine were luvit
21:23:18  <rch>it would be so much better
21:23:19  <KennethWilke>+1
21:23:28  <KennethWilke>but that dude doesn't give a damn what you want in redis lol
21:23:32  <rch>when you write lua in redis right now it blocks the redis event loop
21:23:39  <rch>can't do long operations
21:23:42  <rch>i like antirez
21:23:47  <KennethWilke>i like him too
21:23:54  <rch>i think luvit is aligned with his aesthetic in software
21:23:57  <rch>didn't exist really bad then
21:23:59  <KennethWilke>he's just protective of his pet project
21:24:03  <rch>*back
21:24:20  <rch>the contact area between lua and the redis code is really not that big
21:24:29  <rch>it would be neat to make a fork of redis that did have luvit
21:24:40  <rch>use redis as your luvit serving process
21:24:49  <rch>seems better than a luvit redis client library
21:25:26  <KennethWilke>i'm still pretty surprised that my redis proxy in luvit will handle the ping command faster than the redis-server
21:25:45  <KennethWilke>at least according to redis-benchmark it's fastr
21:26:51  <KennethWilke>makes me wonder if i should just make something that's redis-compatible but implement it all with luvit
21:43:10  <KennethWilke>shouldi be able to just require("http")? i get a module not found error
21:43:20  <creationix>no, http isn’t done in luvi-up
21:43:24  <KennethWilke>ahh okay
21:46:23  <KennethWilke>lol @ https://github.com/luvit/luvit/blob/luvi-up/lib/luvit/http.lua#L81
21:46:27  <KennethWilke>by the spec!
21:46:59  <creationix>yeah, that folder is the old standard library
21:47:12  <creationix>and yes RFC 2324 is serious business
21:47:13  <KennethWilke>where's that stuff living now?
21:47:23  <creationix>the current modules are at app/modules
21:47:29  <KennethWilke>ah alrighty
21:47:55  <creationix>I have a minimal http server example in the bench folder
21:48:00  <creationix>also the unit tests have some http client samples
21:48:08  <creationix>it’s not using the pretty API, but it does work mostly
21:49:07  <KennethWilke>the encoder/decoder in a pretty stable place?
21:49:41  <creationix>I wouldn’t say “stable”, but it’s the core logic for now
21:49:48  <creationix>just this week I completely rewrote it
21:49:57  <KennethWilke>ah alrighty
21:50:28  <rch>creationix: i'm tempted to start a 'creationix quotes' twitter
21:50:33  <rch>creationix │ I wouldn’t say “stable”
21:50:38  <rch>creationix │ just this week I completely rewrote it
21:50:41  <KennethWilke>lol
21:51:13  <creationix>I gotta be honest
21:51:17  <rch>heh
21:51:26  <rch>i'll resist the temptation for now
21:51:49  <creationix>I think writing specs and docs for lit will help it stabilize real quick. Nobody wants to change everything when it’s already documented
21:51:58  <rch>so true
21:52:00  <KennethWilke>lol yeah
21:52:03  <creationix>almost done with the CLI usage. I know you’re interested in that part rch
21:52:11  <KennethWilke>i wanna find some kinda way to help y'all out
21:52:26  <KennethWilke>i wouldn't mind cranking out docs for stuff
21:52:45  <KennethWilke>you took away my challenge of writing a redis proxy!
21:52:47  <creationix>KennethWilke: porting the code in lib/luvit/http.lua to work in app/modules/http.lua would be great, docs would help
21:53:00  <creationix>actually since you know libuv, docs for luv would be super helpful
21:53:04  <KennethWilke>there was a lot of work in C to get that done, but that was a week ago! now it's just ~300 lines of lua
21:53:06  <rch>KennethWilke: then you get to write a core library if you do http
21:53:46  <creationix>just organize the uv docs to mirror what’s in docs.libuv.org, but use lua syntax and examples
21:53:50  <KennethWilke>though i warn you, 1 week into lua i dunno how pretty it'll be, but i'm usually very snobby about writing pretty code
21:54:12  <KennethWilke>i could work on that
21:54:21  <KennethWilke>where would these docs live?
21:54:30  <KennethWilke>it should be on a damn luvit-based webserver!
21:54:33  <KennethWilke>:p
21:55:16  <creationix>luvit.io was luvit powered
21:55:28  <creationix>at the moment it’s being served by wheaty (a node + js-git framework)
21:56:25  <creationix>the central package repository will be at lit.luvit.io and be luvit powered
21:57:53  <KennethWilke>for now, what about a docs folder in the luvit repo with stuff all done in markdown?
21:58:05  <creationix>sure
21:58:13  <creationix>though I’ve been meaning to try rst
21:58:17  <creationix>markdown is so limiting
21:58:21  <KennethWilke>yeah
21:58:35  <KennethWilke>lil nicer in the context of github's sugar
21:58:50  <creationix>http://sphinx-doc.org/rest.html
21:59:00  <creationix>github auto formats both, so it doesn’t care
21:59:08  <KennethWilke>yeah i've used rst, but not sphinx very much
21:59:19  <creationix>https://github.com/svaarala/duktape/blob/master/doc/c-module-convention.rst
21:59:47  <creationix>the nice thing about rst is easier linking I tihnk
21:59:49  <creationix>*think
22:01:20  <creationix>but if you prefer markdown, it won’t be hard to convert if we decide to use rst
22:01:39  <creationix>I’ve never used it. I just see it used more these days for docs
22:02:01  <KennethWilke>i think i do prefer markdown, hadn't though much about it before
22:02:22  <KennethWilke>the code blocks in markdown seem more straight forward
22:02:32  <creationix>go for it
22:02:33  <KennethWilke>than being based on indentation level
22:03:49  <creationix>rch: jirwin: https://github.com/luvit/lit/blob/master/README.md#cli-interface
22:04:06  <creationix>I think 300 lines of markdown is enough, time to go back to writing code
22:05:08  <rch>How does it know which remote repo is creationix/gamepad? is it assuming github like `go get` does?
22:05:24  <creationix>the remotes aren’t git repos
22:05:39  <creationix>it’s more like npm. By default it will assume lit.luvit.io
22:05:45  <creationix>but it’s trivial to use other upstreams
22:06:25  <rch>so lit.luvit.io has a concept of a user and a package and will identify creationix/gamepad as a package belonging to creationix named gamepad?
22:06:50  <creationix>right, the packages can be as deep as you want, but the first segment must be a github username
22:06:55  <creationix>since that’s how I authenticate
22:07:00  <rch>interesting
22:07:05  <rch>yeah that's kind of like `go get`
22:07:06  <creationix>only the “creationix” user on github can publish to creationix/*
22:07:23  <KennethWilke>what term do you prefer to call the modules that are shipped with luvit?
22:07:25  <creationix>but for when reading the packages, it doesn’t matter
22:07:29  <KennethWilke>luvit core modules?
22:07:42  <creationix>core is fine
22:07:50  <creationix>luvi has some and luvit adds more
22:07:59  <creationix>(and lua has some and luajit adds some)
22:08:32  <KennethWilke>kk
22:16:49  * cledevquit (Ping timeout: 260 seconds)
22:18:41  <KennethWilke>are the uv_loop_t structures and associated functions exposed in luvit?
22:19:19  <creationix>some of the functions are, but there is only one loop per lua state
22:19:41  <creationix>https://github.com/luvit/luv/blob/master/src/luv.c#L49-L57
22:19:46  <KennethWilke>yeah, it doesn't seem to me like they'd be very useful in code running in luvit
22:19:57  <creationix>the loop itself is implicit, but the functions are useful
22:20:06  <creationix>I use uv.run and uv.walk all the time
22:20:11  <KennethWilke>ah, alrighty
22:20:39  <KennethWilke>yeah walk is definitely good to have
22:24:35  <creationix>actually, with backend_timeout it’s much easier to integrate the loop into other poll based event loops. Just make sure the pool timeout is no bigger than uv’s timeout and poll uv
22:24:52  * creationixwas contemplating integrating async curl APIs with libuv over the weekend
22:25:31  <creationix>curl basically gives you a list of fds that you poll on
22:26:27  <KennethWilke>i'm not a huge fan of curl's api, it's great and does a ton for you but i think it'd be worth making something that fits a bit more into the style of lua
22:26:42  <KennethWilke>like requests or human_curl does in python
22:27:17  <creationix>yeah, the API is certainly antiquated and strange
22:27:20  <KennethWilke>http://docs.python-requests.org/en/latest/ if you're unfamiliar
22:27:31  <creationix>I wrote duktape bindings last night for fun
22:27:36  * cledevjoined
22:27:40  <creationix>https://github.com/creationix/dukcurl
22:28:40  <KennethWilke>i've wanted to make something thats kinda like requests for C, because i feel some of those patterns could be implement in C easy enough
22:28:58  <KennethWilke>well, easy in theory
22:29:06  <KennethWilke>lots and lots and lots of work in reality
22:29:33  <KennethWilke>so many C libraries feel antiquated
22:29:55  <KennethWilke>but to be fair, they are!
22:30:59  <KennethWilke>but I'm a big fan of libuv, hiredis, jansson and zeromq
22:31:27  <KennethWilke>they all got their stuff in order
22:31:40  <creationix>I’m excited for libuv 2.0
22:31:48  <KennethWilke>1.0?
22:31:52  <creationix>but 1.0 just got finished after years of work, we’ll be using it for some while
22:32:00  <KennethWilke>are they already working on a 2.0?
22:32:11  <creationix>that’s why they tagged 1.0, so they could start breaking stuff
22:32:17  <KennethWilke>lol
22:32:19  <creationix>people need something to use in production in the mean time
22:32:32  <KennethWilke>i guess they aren't content sitting still, fair enough
22:32:53  <KennethWilke>as long as they keep up the good work i'm happy
22:33:10  <creationix>yep, 1.0 is done and shouldn’t need too much maintanence
23:10:42  <KennethWilke>gonna head out, y'all have a good weekend!
23:10:50  * KennethWilkequit (Quit: Leaving)
23:25:12  * travis-cijoined
23:25:12  <travis-ci>luvit/luvi#226 (master - 8f65c2c : Tim Caswell): The build passed.
23:25:12  <travis-ci>Change view : https://github.com/luvit/luvi/compare/7c86acb36290...8f65c2c868b2
23:25:12  <travis-ci>Build details : http://travis-ci.org/luvit/luvi/builds/43893710
23:25:12  * travis-cipart
23:50:35  * dan336quit (Quit: Leaving.)