On 09/07/13 03:55, Carsten Haitzler (The Rasterman) wrote:
> On Mon, 08 Jul 2013 18:00:15 +0100 Tom Hacohen <tom.haco...@samsung.com> said:
>
>> Hey guys,
>>
>> The hero Jeremy Zurcher has been playing around and looking for ways to
>> improve Eo and address all the issues that have been raised by everyone.
>> We revisited some old ideas, tried some new ideas and changed our
>> compromises and preferences to better suit our needs (followed by the
>> extensive trial period). We think we made things better and we'd like to
>> hear your thoughts and suggestions.
>>
>> The code resides in devs/tasn/eo2. The differences are not major
>> usage-wise (i.e eo_do), but are major internally and class-creation-wise.
>> There's an example of the usage of the new API in the eo2test directory.
>> The existing code-base hasn't been changed to use the new API, so
>> there's not a lot to review.
>> Eo2 is not complete, we'd like to hear your thoughts before finishing
>> things.
>>
>> Major changes:
>> 1. No more va_args, good ol' normal functions instead.
>
> good and bad. good as varags is a bit unwieldy. bad as in more symbols and
> either more function calls inlined in app code OR more code in general inlined
> (with macros or inline funcs). end result? unknown until we try. also another
> bad... work to port the existing eo code over. without full details, amount of
> work unknown. (missing git tree).

I think it's better to inline those in the app, yeah. I don't think a 
function call + an if are much to worry about.
Amount of work is known: everything needs to be done. This is a draft, 
not even a complete solution. This example doesn't handle eo_do_super 
and the eo_data_scope_get.

>
>> 2. Functions are resolved in eo and then called directly, creating a
>> "flatter" backtrace.
>> 3. We can have return values (to some extent).
>> 4. Less boiler-plate.
>> 5. Looks like we'll be able to get rid of some code thanks to this change.
>> 6. Possibly (probably) faster on platforms that pass parameters in
>> registers.
>
> hmm unlikely as now its:
> 1 func to begin
> 2 func to end
> 2 func call s per method

Yeah, but OTOH parameters will be passed in registers instead of the 
stack. I guess you are right though.
>
> as opposed to 1 func for begin+end, 1 func per method. i done see eo2 in git,
> so i can only comment on the point here, not the code. (if the lookup is a
> macro to get the func ptr, then call it directly, then sure, 2 fn call per
> method). another downside to it all being macros.. code size goes up, this
> instruction cache coherency goes down... :/

It's not all macros, code is there. :)

>> 7. Easier to do breakpoint on a specific eo_do call, instead of an
>> implementation.
>>
>> What we'd still like to achieve:
>> 1. Being able to drop the IDs in favour for more "friendly" IDs. It'd be
>> best to find a way to use the function pointers (for example) as the
>> IDs, but the problem is, that because function pointers are more
>> "unknown" we can do less optimisations on them which we'd like to avoid.
>> 2. Reduce more boiler-plate.
>>
>> Haven't been implemented yet: eo_do_super (among many other things).
>>
>> Additional comments:
>> EO_FUNC - this one creates a function that resolves and returns the
>> appropriate function. The functions created using this macro should be
>> used instead of the current eo macros. This one can potentially be improved.
>> eo2_do_start/end are just the entry/exit hooks of eo2_do (ref/unref and
>> possibly other stuff in the future).
>>
>> Looking forward to hearing what you have to say.
>
> no tree. no git. :)

As mentioned by others in this thread, it's a branch, not a different 
repo. Why would I put it in a different repo?! :)

--
Tom.


------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to