Am 20.09.2012 um 07:58 schrieb David Seikel <onef...@gmail.com>:

> On Wed, 5 Sep 2012 20:54:16 +1000 David Seikel <onef...@gmail.com>
> wrote:
> 
>> On Wed, 5 Sep 2012 12:39:14 +0200 Leif Middelschulte
>> <leif.middelschu...@gmail.com> wrote:
>> 
>>> Am 05.09.2012 um 10:33 schrieb David Seikel <onef...@gmail.com>:
>>> 
>>>> On Wed, 5 Sep 2012 10:21:43 +0200 Vincent Torri
>>>> <vincent.to...@gmail.com> wrote:
>>>> 
>>>>> On Wed, Sep 5, 2012 at 10:07 AM, David Seikel <onef...@gmail.com>
>>>>> wrote:
>>>>>> On Tue, 4 Sep 2012 15:59:20 +0200 Leif Middelschulte
>>>>>> <leif.middelschu...@gmail.com> wrote:
>>>>>> 
>>>>>>> Am 04.09.2012 um 14:35 schrieb David Seikel
>>>>>>> <onef...@gmail.com>:
>>>>>>> 
>>>>>>>> On Tue, 4 Sep 2012 13:24:27 +0200 Leif Middelschulte
>>>>>>>> <leif.middelschu...@gmail.com> wrote:
>>>>>>>> 
>>>>>>>>> as some distributions and Mac OS' (home)brew package manager
>>>>>>>>> already ship lua >=5.2, it might be time to make the code
>>>>>>>>> compatible.
>>>>>>>>> 
>>>>>>>>> The functions which aren't available anymore:
>>>>>>>>> 
>>>>>>>>> _luaL_register
>>>>>>>>> Module and luaL_register deprecated, replaced by luaL_newlib
>>>>>>>>> and luaL_setfuncs.
>>>>>>>>> 
>>>>>>>>> _lua_objlen
>>>>>>>>> lua_objlen has become lua_rawlen with a very slight change in
>>>>>>>>> behaviour, lua_len and luaL_len have been addded. The length
>>>>>>>>> function(s) changed between Lua 5.0 and 5.1, and they've
>>>>>>>>> changed again between 5.1 and 5.2-work3. What used to be
>>>>>>>>> calledlua_objlen in 5.1 was been renamed to lua_rawlen, with
>>>>>>>>> the only difference in behaviour being that lua_rawlen no
>>>>>>>>> longer calculates the length of a number by taking the string
>>>>>>>>> representation of it; it just returns zero. The new lua_len
>>>>>>>>> function behaves exactly like the length operator in Lua
>>>>>>>>> code, and the new luaL_len function behaves in a similar way
>>>>>>>>> but returns the result as an integer rather than on the
>>>>>>>>> stack (and throws an error if the length is not a number).
>>>>>>>>> 
>>>>>>>>> I'm not familiar with the behavior edje expects, so I'm
>>>>>>>>> asking for anybody who's familiar with it to add a
>>>>>>>>> conditional define to edje's configure.ac, corresponding
>>>>>>>>> code to edje's code and changelog+NEWS(?) to maintain
>>>>>>>>> vtorri's sanity :)
>>>>>>>> 
>>>>>>>> We discussed this last year and came to the conclusion that
>>>>>>>> moving to 5.2 was not a good idea at the time.  It might be
>>>>>>>> time to look at that again, things progress.
>>>>>>>> 
>>>>>>>> Since then I have spent some time experimenting with LuaJIT 2,
>>>>>>>> which is Lua 5.1 with some 5.2 features, plus lots and lots of
>>>>>>>> JIT speed, and some speed, as well as red speed stripes for
>>>>>>>> that extra bit of raw speed.  Did I mention it's fast?  I
>>>>>>>> also added luaproc into the mix, but ended up rewriting most
>>>>>>>> of luaproc. By "rewriting" I mean "throwing out most of it,
>>>>>>>> replacing a few of the removed bits with EFL, and massaging
>>>>>>>> the rest to suit my purposes".  Well, half of luaproc just
>>>>>>>> implemented stuff we already had in EFL.
>>>>>>>> 
>>>>>>>> My experiments with LuaJIT 2 + what's left of luaproc are not
>>>>>>>> finished yet, but so far I like what I have.  Only one part of
>>>>>>>> LuaJIT 2 I want to replace, and that's the memory allocator.
>>>>>>>> Simply coz it does not handle setting memory size limits per
>>>>>>>> script like we do in Edje Lua. Which is also important for the
>>>>>>>> non Edje project I have been using as a test bed.
>>>>>>>> 
>>>>>>>> Apart from being generally regarded as the worlds fastest
>>>>>>>> script language interpreter, LuaJIT 2 offers one important
>>>>>>>> thing that I think might be great for EFL - it very easily
>>>>>>>> wraps existing C libraries, turning them into Lua API.  This
>>>>>>>> part I've not experimented with yet, but I have high hopes.
>>>>>>>> 
>>>>>>>> Now while I have no problem with detecting an OS installed Lua
>>>>>>>> 5.1/5.2 and adjusting the compile to suit, I'd like to
>>>>>>>> suggest a different approach.  Basically do something similar
>>>>>>>> to what we did with Small/Pawn -> Embryo.  Not such a drastic
>>>>>>>> fork though, but keeping more or less in sync with upstream
>>>>>>>> of LuaJIT 2, and having our own copy in SVN.  Replace the
>>>>>>>> LuaJIT 2 memory allocator with an Eina one, and implement our
>>>>>>>> memory size per script limit.  Lua, like Small/Pawn and
>>>>>>>> Embryo, is tiny. That's one of the reasons we picked it for
>>>>>>>> EFL.  Lua is designed to be embedded, so it's quite happy not
>>>>>>>> being a system library.
>>>>>>>> 
>>>>>>>> The reason none of this Lua experimentation has been seen here
>>>>>>>> in EFL land is that my experiments where on another project.
>>>>>>>> Using EFL, with an eye to using my experience with EFL's Lua
>>>>>>>> code, but not actually related to EFL.
>>>>>>>> https://github.com/onefang/SledjHamr look at the experimental
>>>>>>>> branch, and then the LuaSL directory.  Or look at
>>>>>>>> https://github.com/onefang/SledjHamr/tree/experimental/LuaSL
>>>>>>>> for the lazy.  It's an implementation of the Second Life LSL
>>>>>>>> scripting language made for OpenSim, but using Lua and C
>>>>>>>> (instead of C#), with EFL as the major support libraries.
>>>>>>>> Basically it converts LSL into Lua, with the option of using
>>>>>>>> pure Lua, then passes the result to LuaJIT 2.  Luaproc (or
>>>>>>>> what's left of it) is used to scale the result up to the
>>>>>>>> thousands of event driven scripts running at once that virtual
>>>>>>>> worlds with user written scripts requires.
>>>>>>>> 
>>>>>>>> Since I did that with an eye to using my experience in EFL's
>>>>>>>> Lua code, there's some similarities with the EFL Lua bindings
>>>>>>>> Raster and I wrote.  It's not a drop in replacement, but I
>>>>>>>> think I can make the switch.
>>>>>>>> 
>>>>>>>> I wanted to finish my experiments and have it working nicely,
>>>>>>>> with some benchmarks and useful figures, before I hit EFL
>>>>>>>> coders with the idea of using LuaJIT 2.  Wanted to get a good
>>>>>>>> handle on what I'm talking about before putting it through
>>>>>>>> the grill of trying to get it into EFL.  Right now, I still
>>>>>>>> want to experiment with the LuaJIT C library binding
>>>>>>>> mechanism before even deciding if it's good enough for EFL.
>>>>>>>> 
>>>>>>>> That was six months ago.  I've been too busy with other things
>>>>>>>> since, and the coder I was relying on to get the next step
>>>>>>>> done vanished. Guess I'll have to learn C# and interface with
>>>>>>>> the OpenSim code myself.  B-(
>>>>>>> Sounds like a nice thing for the future.
>>>>>>> Question remains though: Would you be willing to make those
>>>>>>> (minor?) adjustments, so it'll work with mac os mountain lion +
>>>>>>> brew ootb? Just until the lua jit stuff you're hacking on hits
>>>>>>> svn?
>>>>>> 
>>>>>> I'll look at it when I next get some time to do EFL Lua stuff,
>>>>>> but I can't make any promises concerning Mac OS.  I don't own a
>>>>>> Mac, and don't have a Hackintosh either, so I can't do any
>>>>>> testing.
>>> I'll happily try it since it's as easy as trying to build the
>>> package ;)
>>>>>> 
>>>>>> I came close to owning a Mac earlier this year.  It was a toss
>>>>>> up between buying a Mac Mini for development, or buying an
>>>>>> Android for development.  I had priced both options, they both
>>>>>> came out to be about the same amount of money.  Which was about
>>>>>> the amount of money I had to spend, so I had to pick one.  I
>>>>>> picked the Android.
>>>>>> 
>>>>>> I have no idea what you mean by "+ brew ootb".
>>>>> 
>>>>> http://mxcl.github.com/homebrew/
>>>> 
>>>> Ah, some sort of third party Mac OS package manager.
>>> Yes, sorry. I should have added this information.
>>> So here's a short feature summary about it (if you care):
>>> Brew is a relatively young package manager for Mac OS, which means
>>> it can't compete with macports in the number of packages, yet has
>>> everything necessary to build efl. It uses github's infrastructure
>>> to collect packages from the community (via pull requests). It
>>> installs every package in a dedicated directory/prefix (so called
>>> 'cellar') and only creates symlinks back to /usr/local (by
>>> default). Plus it perfectly blends in with Mac OS developer tools
>>> (clang, llvm, libcurl, etc.). Think of arch user repository, but
>>> simpler and using git :)
>> 
>> I'll just get it to work here under Linux.  Mac OS packaging is
>> someone else's job to deal with.
> 
> I applied a patch provided in another thread, and just committed it
> now.  Let me know if that solves your Mac problems.
I'll try it with the next release, thanks :)
> 
> -- 
> A big old stinking pile of genius that no one wants
> coz there are too many silver coated monkeys in the world.
> ------------------------------------------------------------------------------
> Everyone hates slow websites. So do we.
> Make your web apps faster with AppDynamics
> Download AppDynamics Lite for free today:
> http://ad.doubleclick.net/clk;258768047;13503038;j?
> http://info.appdynamics.com/FreeJavaPerformanceDownload.html_______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://ad.doubleclick.net/clk;258768047;13503038;j?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to