00:03:17  * mmaleckiquit (Ping timeout: 240 seconds)
00:03:47  <luvit-bb>build #850 of virgo-ubuntu10.04_x64 is complete: Failure [failed integration tests] Build details are at https://virgo-bb.k1k.me/builders/virgo-ubuntu10.04_x64/builds/850
00:04:10  <luvit-bb>build #517 of virgo-rhel6.1_x64 is complete: Failure [failed integration tests] Build details are at https://virgo-bb.k1k.me/builders/virgo-rhel6.1_x64/builds/517
00:05:25  * mmaleckijoined
00:07:02  <luvit-bb>build #839 of virgo-windows2008_x64 is complete: Failure [failed integration tests] Build details are at https://virgo-bb.k1k.me/builders/virgo-windows2008_x64/builds/839
00:34:12  * TeruFSXjoined
00:43:51  * mmaleckiquit (Quit: leaving)
01:04:50  * xmingquit (Ping timeout: 265 seconds)
01:33:35  * tsingjoined
02:44:58  * tsingquit (Ping timeout: 260 seconds)
03:00:48  * xmingjoined
04:08:01  * TeruFSXquit (Ping timeout: 250 seconds)
04:25:47  * AvianFluquit (Ping timeout: 240 seconds)
04:38:26  * AvianFlujoined
05:18:08  * luvit-bbquit (Ping timeout: 244 seconds)
05:18:20  * luvit-bbjoined
06:54:54  * xmingquit (Changing host)
06:54:54  * xmingjoined
08:21:56  <xming>1~
08:28:10  * mmaleckijoined
08:38:41  <xming>http://groups.google.com/group/luvit/browse_thread/thread/5ab1c799eabfa65b this sounds great
09:27:46  * mmaleckiquit (Ping timeout: 245 seconds)
09:29:20  * mmaleckijoined
09:46:00  * mmaleckiquit (Ping timeout: 272 seconds)
09:54:32  * mmaleckijoined
10:24:45  * mmalecki_joined
10:28:26  * mmaleckiquit (Ping timeout: 272 seconds)
10:30:14  * mmalecki_quit (Quit: Reconnecting)
10:30:32  * mmaleckijoined
11:10:38  * mmalecki_joined
11:13:42  * mmaleckiquit (Ping timeout: 244 seconds)
11:21:52  * TeruFSXjoined
11:23:15  * mmalecki_quit (Quit: Reconnecting)
11:23:31  * mmaleckijoined
11:34:11  * NotDecojoined
11:49:17  * TeruFSXquit (Ping timeout: 240 seconds)
12:03:38  <luvit-bb>build #851 of virgo-ubuntu10.04_x64 is complete: Failure [failed integration tests] Build details are at https://virgo-bb.k1k.me/builders/virgo-ubuntu10.04_x64/builds/851
12:04:00  <luvit-bb>build #518 of virgo-rhel6.1_x64 is complete: Failure [failed integration tests] Build details are at https://virgo-bb.k1k.me/builders/virgo-rhel6.1_x64/builds/518
12:06:48  * mmaleckiquit (Ping timeout: 249 seconds)
12:07:12  <luvit-bb>build #840 of virgo-windows2008_x64 is complete: Failure [failed integration tests] Build details are at https://virgo-bb.k1k.me/builders/virgo-windows2008_x64/builds/840
12:08:31  * mmaleckijoined
12:12:31  * tsingjoined
12:20:36  <creationix>wow, json.parse is slow
12:33:18  * NotDecoquit (Ping timeout: 245 seconds)
12:42:57  * tsing_joined
12:45:33  * tsingquit (Ping timeout: 244 seconds)
13:02:08  * NotDecojoined
13:03:57  * mmaleckiquit (Quit: leaving)
14:16:00  <xming>is there a way to get the return value(s) from the listener?
14:17:11  <xming>foo:emit('bar') foo:on('bar', function() return true, end)
14:17:30  <xming>how can I know that 'true' is returned?
14:29:06  * kevwiljoined
14:37:30  <luvit-bb>build #852 of virgo-ubuntu10.04_x64 is complete: Failure [failed integration tests] Build details are at https://virgo-bb.k1k.me/builders/virgo-ubuntu10.04_x64/builds/852
14:37:37  <luvit-bb>build #519 of virgo-rhel6.1_x64 is complete: Success [build successful] Build details are at https://virgo-bb.k1k.me/builders/virgo-rhel6.1_x64/builds/519
14:40:22  <luvit-bb>build #841 of virgo-windows2008_x64 is complete: Success [build successful] Build details are at https://virgo-bb.k1k.me/builders/virgo-windows2008_x64/builds/841
14:42:18  <luvit-bb>build #853 of virgo-ubuntu10.04_x64 is complete: Failure [failed integration tests] Build details are at https://virgo-bb.k1k.me/builders/virgo-ubuntu10.04_x64/builds/853
14:42:30  <creationix>xming, you can't
14:42:34  <creationix>there can be n listeners
14:43:01  <creationix>philips, rphillips, I posted my benchmark challenge https://github.com/creationix/bench-suite
14:50:17  <luvit-bb>build #854 of virgo-ubuntu10.04_x64 is complete: Success [build successful] Build details are at https://virgo-bb.k1k.me/builders/virgo-ubuntu10.04_x64/builds/854
14:51:23  <rphillips>creationix: very nice
14:52:58  <creationix>I should make a folder where people can fork and submit their implementation
15:01:51  <creationix>done :)
15:04:24  <creationix>so who wants to fork and submit a luvit benchmark implementation?
15:19:22  * dvvjoined
15:19:50  <creationix>dvv, would you have time to submit a luvit implementation to https://github.com/creationix/bench-suite ?
15:20:12  <creationix>I just noticed in simple testing that json parsing will probably be the bottleneck
15:20:48  <creationix>querying the db without http, I get ~40K/second, if I disable json and pipeline the requests, I get ~240K/second
15:21:03  <creationix>pipelining with JSON parsing was ~50K I think
15:21:10  <dvv>hi! lemme in, i just managed to fix my connection
15:23:05  * NotDecoquit (Quit: ~ Trillian Astra - www.trillian.im ~)
15:35:37  <creationix>dvv, I see you forked it, let me know if you run into any problems
15:35:53  <dvv>right, sure
15:43:00  * mmaleckijoined
16:08:08  * dvvquit (*.net *.split)
16:08:08  * ljacksonquit (*.net *.split)
16:13:33  * ljacksonjoined
16:13:33  * dvvjoined
16:14:10  <dvv>welcome back, folks :)
16:14:20  <creationix>:)
16:17:46  <rphillips>creationix: the luvit and candor impelentations are empty
16:17:51  <rphillips>is that intended?
16:19:05  <creationix>yeah, I haven't had time yet
16:19:13  <creationix>plus candor doesn't have enough implemented
16:19:18  <creationix>dvv is working on the luvit version
16:20:53  <rphillips>nice
16:21:33  <xming>creationix: where does the return value go then?
16:22:20  <creationix>xming, it's ignored
16:22:51  <creationix>xming, https://github.com/luvit/luvit/blob/master/lib/luvit/core.lua#L164
16:23:18  <creationix>xming, if you have only one callback and you care about the return value, then just don't use emitters
16:23:24  <creationix>just call the callback
16:23:33  <creationix>store it on a named property or something
16:31:43  <xming>hmm, the callback may or may not exist, hence emitter/listerner fits better. Before using luvit I was using callbacks (which had to be globals) and I check with _G to see if the function exist
16:32:19  <creationix>xming, no reason it has to be global
16:32:35  <creationix>just create a new table, set .onFoo when you want to attach the listener
16:32:52  <creationix>then when you want to call it, do `obj.onFoo and obj.onFoo()`
16:33:10  <creationix>and will return nil if there is no function, otherwise the return value of the function
16:33:32  <xming>ah that's nice way thanks
16:34:03  * tsing_quit (Quit: Linkinus - http://linkinus.com)
16:34:07  <xming>creationix: BTW, do you have plans for this? http://groups.google.com/group/luvit/browse_thread/thread/5ab1c799eabfa65b
16:34:17  * mmaleckichanged nick to mmalecki[brb]
16:34:23  <xming>I am using lua-buf ATM for buffering the socket stream
16:35:05  <xming>if luvit had a integrated buffer + big/little endian lib, it would be nice
16:35:18  <creationix>it has some
16:35:24  <creationix>but it's not a stable API
16:35:34  <xming>copying strings are slow with lua
16:36:33  <creationix>local Buffer = require('buffer').Buffer
16:36:39  <creationix>local buf = Buffer:new(10)
16:37:23  <creationix>buf:readUInt32LE(2)
16:38:24  <xming>I saw that in the tests dir
16:38:50  <xming>but it doesn't support appending data
16:39:03  <creationix>no, neighter does node
16:39:15  <creationix>I'm still unsure what API I want
16:39:17  * xmingknows nothing about node.js
16:39:34  <creationix>xming, fair enough, but luvit's API is modeled closely after node's
16:39:58  <creationix>people occasionally ask for appendable buffers in node
16:39:58  <xming>if you look at the lua-buf, IMHO that is what network app need most
16:40:04  <creationix>but it's never been added
16:40:37  <dvv>xming: do you really needa copy strings? take a look at http://www.lua.org/pil/11.6.html
16:41:34  <creationix>xming, yeah, that has a lot more features
16:41:46  <creationix>xming, I've written a lot of binary protocol codecs in node
16:41:58  <creationix>yes, the fact that buffers aren't resizable has occasionally been annoying
16:42:02  <creationix>but never a show-stopper
16:42:17  <creationix>but I do want to make that type of cod easier to write
16:43:52  <dvv>also, writing a C module dealing with strings is easy in Lua. E.g. dvv/luvit-websocket has such to mask/unmask hybi10 payload, doing which in pure Lua is a perf suicide
16:47:49  <xming>ty I will have a look
17:31:05  * dvvquit (Ping timeout: 255 seconds)
17:49:42  * dvvjoined
18:01:46  <dvv>JSON gurus, please consider fixing/voiding https://github.com/luvit/luvit/issues/222 . tia
18:09:42  <creationix>dvv, so you figured it out
18:09:45  <creationix>sorry I didn't reply
18:12:03  <dvv>so, yajl seems lagging
18:12:18  <dvv>(and not only in speed)
18:13:14  <dvv>streaming is great, but server-db interactions do require fast and robust JSON codec impl. (streaming is not so important here, imho)
18:14:01  * mmalecki[brb]quit (Ping timeout: 245 seconds)
18:14:04  <creationix>what's the fastest json parser out there?
18:14:15  <creationix>palm had a very fast one they recently open sourced
18:14:19  <creationix>cjson is pretty fast
18:14:51  <dvv>cjson is proven, i believe
18:16:52  * mmalecki[brb]joined
18:16:57  <dvv>https://github.com/dvv/luvit-cjson
18:17:26  <philips>rphillips: https://gist.github.com/509efd2390027a6cde75
18:17:36  <philips>rphillips: I am getting random scheduler failures on linux still
18:17:49  <rphillips>philips: latest master?
18:17:57  <philips>rphillips: ce61071582c24178f10a36805a0a6a8e180ebe8b
18:19:32  <rphillips>hmm. i haven't got that one with this build.... running for 15 hours
18:19:45  <rphillips>philips: ubuntu?
18:19:53  <philips>rphillips: vagrant
18:20:02  <rphillips>trying it
18:24:12  <rphillips>philips: how often does it happen?
18:24:19  <philips>rphillips: not often
18:24:27  <philips>rphillips: At first I thought I introduced it on my branch
18:24:38  <philips>But I am only generating fixtures
18:26:46  <xming>I think I will stick to lua-buf ATM, it works. I just want a milter in lua and not to bother with other things
18:28:00  <rphillips>philips: i'll keep running it... but I ran it about 20 times now and I haven't seen the issue
18:28:55  <philips>rphillips: ok
18:29:01  <philips>rphillips: how do those fixtures look? https://github.com/racker/virgo/pull/71/files
18:29:08  <philips>rphillips:https://github.com/racker/virgo/pull/71
18:29:15  <philips>rphillips: I will try to clean everything and reproduce
18:29:38  <rphillips>philips: PR lgtm
18:34:00  <xming>hmm it seems that 'obj.onFoo and obj.onFoo()' still doesn't fir of waht I want, because I don't know the name of 'obj'
18:34:08  <xming>s/fir/fit
18:34:49  <xming>now I know why I went for the _G
18:44:32  <xming>using a var to hold the return values seems to be the most suitable way that I can think of ATM
18:45:40  <rphillips>hmm
18:45:56  <rphillips>what is the use case to capture the return value?
18:52:05  <xming>I had that as design in my mind :D for my code
18:52:42  <xming>but luvit ignores it, don't know if what I had in mind justifies as "use case"
18:53:18  <rphillips>heh
18:53:32  <rphillips>i haven't seen that design used in nodejs code
18:53:35  <xming>I am writing a miter, I want to emit events on appliction proto (like http.lua)
18:53:52  <xming>and I want to make writing new miters easy
18:53:54  <rphillips>you could emit something from onFoo(), which may be cleaner
18:54:28  <xming>so I have my base objects doing the tcp and binary encoding/decoding
18:54:40  <xming>then emits
18:54:57  <xming>so my final milter can listen to those events
18:55:44  <xming>problem with callback is (which I can't seem to solve under lua)
18:56:41  <xming>liek this
18:56:59  <xming>server = milter.createServer( function (conn) .. end)
18:57:58  <xming>server is the obj name which I can't know in my milter.
18:58:33  <xming>if someone decides to use my base for a new milter, he could use server1234 =
18:59:40  <xming>I could use one of those class implementations for lua with inheritance
18:59:54  <xming>what is the Object in luvit?
19:00:14  <xming>Object with inheriteance?
19:00:37  <rphillips>luvit has prototypical-like inheritance
19:00:48  <rphillips>like javascript
19:00:56  <rphillips>Object:extend()
19:01:18  <rphillips>it works well
19:02:03  * mmalecki[brb]changed nick to mmalecki
19:02:05  * mmaleckiquit (Quit: Reconnecting)
19:02:21  * mmaleckijoined
19:03:07  <creationix>ahh, found palm's json library they used in webos https://github.com/isis-project/pbnjson
19:03:51  <rphillips>nice license too
19:04:22  <xming>rphillips: forgive me of not knowing anything about node nor js
19:04:49  <rphillips>np. I didn't mean to imply anything
19:05:04  <xming>does Object allow the paretnt object to peek in the child object?
19:05:42  <creationix>http://isis-project.org/2012/02/16/pbnjson.html "pbnjson offers a number of improvements over the alternatives: a native C or C++ interface, fixes for errors commonly found in other libraries (especially around number handling), better parsing and object manipulation performance, and basic JSON schema support."
19:06:07  <creationix>xming, parent objects know nothing about objects that inherit from them
19:06:08  <rphillips>xming: that does work
19:06:22  <rphillips>they could attempt to check for functions and variables
19:06:38  <creationix>but any state that new child methods add is visible
19:06:41  <creationix>it's just a mutable table
19:06:52  <xming>can I check if the child defines some func()?
19:07:01  <creationix>xming, that works
19:07:15  <creationix>I do something like that in the emitter integration with native event sources
19:07:19  <xming>hmm, that maybe the solution for me
19:07:59  <creationix>for example, Handle has an addHandlerType method
19:08:02  <creationix>it inherits from Emitter
19:08:03  <creationix>https://github.com/luvit/luvit/blob/master/lib/luvit/uv.lua#L26
19:08:28  <creationix>I have a hook in Emitter:emit to check for it https://github.com/luvit/luvit/blob/master/lib/luvit/core.lua#L141-143
19:09:16  <creationix>so the first time an event listener is added on a handle, the native listener is set
19:09:24  <xming>hmm thanks, that looks like what I want, I will look into it and convert everything to a Object
19:10:18  <xming>where can I find more info/docs about Object?
19:13:03  <creationix>core.lua
19:13:10  <creationix>xming, https://github.com/luvit/luvit/blob/master/lib/luvit/core.lua
19:13:31  <creationix>xming, the docs are in the comments
19:13:40  <creationix>we used to parse them and generate markdown
19:13:48  <creationix>but it's kinda broken/out of data now I think
19:13:53  <creationix>core.lua should be good though
19:14:13  <xming>ty
21:38:12  * TeruFSXjoined
22:59:02  * kevwilquit (Quit: WeeChat 0.3.7)
23:49:36  <CIA-43>Brandon Philips fix-string-gc-in-fs-write * reba20e7 / (src/luv_fs.c src/luv_fs.h): luv_fs: fix gc of string during a fs.write - http://git.io/dTwT5g
23:50:00  <philips>https://github.com/luvit/luvit/pull/223/files
23:50:02  <philips>Thoughts?
23:50:08  <philips>rphillips: That is the fix I think