Now that my last lot of Lua work has been a run away success (works for
me, still dunno if anyone else uses it), it's time for me to move to
the next big Lua project of mine.  Actually, the second next one, but
they are related.

What I would like to add to edje Lua is the ability for the host
application to provide new functions for the Lua script to be able to
call.  Also, for the host app to be able to directly call Lua script
provided functions (like the current move, resize, signal. etc).  Yes we
have signals and messages for communicating with the host app, but
sometimes a direct function call makes much more sense.

We are actually half way there.  Anticipating that there would be way
more edje and evas stuff to add to the edje Lua API in the future, I
created generic wrapper functions to make that easier.  Implementing
this would mean exposing those static functions, and writing more of
these generic wrapper stuff.

Lua already provides a mechanism for this sort of thing, but we
currently sandbox that out.  We can provide a very limited version of
the package module, that only lets the Lua script load modules that the
host app explicitly provides.  This keeps edje Lua in it's strictly
sandboxed state.

Raster objected to this idea before, if I remember.  His argument was,
I think,"what if someone loads a Lua script theme that uses one of these
new APIs, but they are not there?".  We are gonna have that problem
now, and with each subsequent release.  Anyone running a theme that
expects images, text, maps, and other stuff that I added to the last
release, but using the edje release before, is gonna be sorely
disappointed.  It only had rectangles and timers.  For the next release
I expect to add textblock and sound support at least.

Now that the edje Lua stuff is more fleshed out, it will be actually
useful, I expect people to actually start using it.  No one bothered
before, coz rectangles are very limited.  So definitely for the next
release we will need a generic solution to that problem.  And probably
backport it to the current release.  Not much harder to go from there
to what I want.

One use of this is to let elementary add Lua support for it's widgets.
At the moment, elementary is not a dependency of edje, so this sort of
thing would be the way to do that.  After the big library merge, that
might not be a problem.  Though I for one would still prefer to be able
to use edje+lua+evas without elementary on embedded projects.

My next two big Lua projects are - server side and then client side Lua
scripting support for Second Life (SL) style virtual worlds.  This will
bring the same sort of thing that WoW has to more open virtual worlds -
Lua client side scripting.  SL already has it's own server side
scripting language, I'll be making a Lua based version of that which
will need to be compatible at the function API level.  Then I'll want to
make a completely new client side version, but it will have to be more
or less compatible at the API level with the server API.  So client side
Lua scripting will have to be a mixture of functions that match the
server side functions, and edje Lua calls to drive the UI.  Messages and
signals just wont cut it for that, it will have to be functions.  Coz
the API functions is what existing server side scripters are used to.

Before anyone argues that SL client side functions would have to send
messages to server side anyway, I'll point out that some of the server
side functions have purely client side results, and not just the UI
related ones.  These sort of functions, when implemented as client side
scripting API, will not involve the server at all, just trigger
existing client side functions.  Simple Lua wrappers around those
existing functions will work the best.  Exactly in the same way that
I've been adding simple Lua wrappers around edje and evas functions.

-- 
A big old stinking pile of genius that no one wants
coz there are too many silver coated monkeys in the world.

Attachment: signature.asc
Description: PGP signature

------------------------------------------------------------------------------
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual 
desktops for less than the cost of PCs and save 60% on VDI infrastructure 
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to