Re: [E-devel] (no subject)

2013-12-17 Thread dumblob
 In the end, what raster said is true, out of all the EFL C API, only some is 
 thread safe.  The EFL design does include mechanisms for marshalling unsafe 
 calls to the main thread.  So it doesn't matter which scripting language is 
 used to wrap it, somewhere along the line this call marshalling will have to 
 be taken care of.

Nice, this is what I wanted to know. Now it's apparent it's (and will
be) possible to use pure pthreads from C without EFL thread-wrappers
under the condition the programmer passes explicitly serialized
messages (using thread-safe serializing C functions) to those
thread-unsafe C functions.

 My intention with Edje Lua is to make that transparent to Lua scripts.

Great idea, keep going!

Thank you guys for participation in this discussion. All my concerns
are clarified.

--
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET,  PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] (no subject)

2013-12-16 Thread dumblob
 Just as a point of interest, my experiments with using LuaJIT in EFL

 found that the Lua stuff itself is threadsafe so long as we use a
 thread safe memory allocator, which LuaJIT itself provides.  The memory
 allocator we currently use in Edje Lua is not thread safe.  I've been
 meaning to ask, do we have a threadsafe memory allocator in Eina?

 You are correct though, the rest of EFL is not as thread safe.  My
 LuaJIT experiments involved enough message passing to deal with the
 marshall all your bob calls back to the mainloop you mentioned.


Well, it doesn't sound that bad. Did you mean the sentence My LuaJIT
experiments involved enough message passing to deal with the marshall all
your bob calls back to the mainloop you mentioned. like you've done
enough message passing testing to rigorously state the only problem with
Edje is its thread-unsafe memory allocator?

-- Jan Pacner
--
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET,  PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] (no subject)

2013-12-15 Thread dumblob
Hi,

I've recently come across https://phab.enlightenment.org/w/bob/ and I
wonder if BÖB is going to be usable in other programming languages than Lua
(e.g. pure C without Lua, in Google Gos gorutines mapped to real threads,
in pthreads generally etc.). It seems, the implementation will be tightly
coupled with Lua and some specific form of IPC while abandoning simple
interface for external bindings to languages with built-in parallelism. I'm
afraid it will not be possible to make e.g. such bindings for Dao (
http://daovm.net/) which would support the DaoVM parallel threads/tasklets.

In other words, I'm not sure, if all public methods/functions of the BÖB
API will be thread-safe and fully independent from Lua. Maybe I'm wrong
about the goal of EFL 2.0, but I think, tightly coupling only with Lua will
certainly limit the utilization of these great libraries.

Does anyone have some more accurate and detailed information?

Kind regards

-- Jan Pacner
--
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET,  PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] (no subject)

2013-12-15 Thread dumblob
Thank you. If I got it correctly, it will be possible to use BÖBs C API
from parallel threads without being afraid something will break up. That's
neat and I'll look forward to testing first alpha versions in a few years
:).


2013/12/16 Carsten Haitzler ras...@rasterman.com

 On Mon, 16 Dec 2013 06:25:54 +0100 Thanatermesis 
 thanatermesis.e...@gmail.com
 said:

   slight problem is that in the process of ensuring edje does
   its job, the over-engineering made it look like something different,
 and
  that
   is where suddenly it looks bad because people use it as something
  different
   then find all the creaky edge cases.
 
  Can you tell me which creaky edge cases ? I never found edge bad
 designed
  or anything wrong at all on it, im talking of course about the edge that
 I
  met a good number of years ago but i assume that we still having the same
  one, just more improved :)
 
  For what something different people wanted to use it ?

 i have seen many people propose edje as the solution to glade - as a
 complete
 ui builder solution. i've seen them expect it to do things that elm boxes,
 tables etc. etc. do and do it completely. it's very hard to do synamic
 layouts
 (lists etc.) purely in edje. it's designed mostly around an element with a
 fixed number of things (labels, etc.) and a fixed known number of states.

   bob is accepting that reality and trying to make something closer to
 what
   people have expected edje to be.
 
  And what expects people edje to be ?

 above. they expect it to be a replacement for glade and/or qml etc. etc.

  2013/12/16 Carsten Haitzler ras...@rasterman.com
 
   On Sun, 15 Dec 2013 17:48:37 +0100 dumblob dumb...@gmail.com said:
  
   bob would not be bob if it was not tied to a single specific language.
 lua
   (via
   luajit) is at least the target we think is best. basically instead of
   implementing stuff with edc to design ui elements, you use lua to do
 the
   same.
   lua is a data file. it is what implements the abstraction. the idea is
   that bob
   COMES with a small mountain of pre-made lua bobjects that already
 work
   (and
   build on top of each-other via inheritance or other mechanisms).
  
   the other side of bob is a c library with c apis. just like efl is
 today.
   no
   different. you expose state/data to bob from the c side (and bob can
 expose
   data/state back to you). bob (the c library) handles the infra for
 this -
   threading infra too, mainloop integration, sandboxing etc. etc.
  
   bob is fundamentally no different to edje in the very high level
 design.
   the
   difference is what is under the covers. how state is held/handled. how
   state/data is exchanged/shared, how data is implemented (edc + embryo
 lua
   atm
   and bob would just be plain luajit with the above infra). bob is a
 result
   of
   lessons learned from edje over the years.
  
   edje was designed as nothing more than a smart png with layers. eg a
 psd
   or
   xcf file really. a png that can resize intelligently (not just
 stretch) as
   well
   as throw in some simple states of that image (normal, activated,
 disabled)
   and
   some transitions. that was edje's design goal and intent.
  
   of course it was over-engineered for the job to ensure it covers that
 job
   as
   fully as it can. slight problem is that in the process of ensuring edje
   does
   its job, the over-engineering made it look like something different,
 and
   that
   is where suddenly it looks bad because people use it as something
   different
   then find all the creaky edge cases.
  
   bob is accepting that reality and trying to make something closer to
 what
   people have expected edje to be.
  
Hi,
   
I've recently come across https://phab.enlightenment.org/w/bob/ and
 I
wonder if BÖB is going to be usable in other programming languages
 than
   Lua
(e.g. pure C without Lua, in Google Gos gorutines mapped to real
 threads,
in pthreads generally etc.). It seems, the implementation will be
 tightly
coupled with Lua and some specific form of IPC while abandoning
 simple
interface for external bindings to languages with built-in
 parallelism.
   I'm
afraid it will not be possible to make e.g. such bindings for Dao (
http://daovm.net/) which would support the DaoVM parallel
   threads/tasklets.
   
In other words, I'm not sure, if all public methods/functions of
 the
   BÖB
API will be thread-safe and fully independent from Lua. Maybe I'm
 wrong
about the goal of EFL 2.0, but I think, tightly coupling only with
 Lua
   will
certainly limit the utilization of these great libraries.
   
Does anyone have some more accurate and detailed information?
   
Kind regards
   
-- Jan Pacner
   
  
 --
Rapidly troubleshoot problems before they affect your business. Most
 IT
organizations don't have a clear picture of how application
 performance