On Tuesday 09 July 2013  12:09, Cedric BAIL wrote :
> Hello,
> 
> On Tue, Jul 9, 2013 at 2:00 AM, Tom Hacohen <tom.haco...@samsung.com> wrote:
> > 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.
> > 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.
> > 7. Easier to do breakpoint on a specific eo_do call, instead of an
> > implementation.
> 
> Sounds like valid point.
> 
> > 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).
> 
> There is more FIXME lurking around also in eo.c in your branch.
> 
> > 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).
> 
> I have some issue with EO_FUNC. The main one being that I really can't
> get what the parameter of the created function are. Reading a header
> full of those will be completely useless to me ! The readability of
> that macro should really be improved. Also the eo2_do macro lead to
> weird eo_o parameter for all function call. This seems like a
> duplication and source for potential error.

have a look at my old
http://git.enlightenment.org/core/efl.git/log/?h=devs/jeyzu/eo2
I changed EO_FUNC macro because I wanted to end up with a clean header.

> 
> The second problem I see is that we are going to push a lot of
> pressure on the compiler with all this functions. Every EO_FUNC will
> be a static inline function, there is going to be a massive number of
> them in all our headers, slowing down compilation quite a lot.
> 
> On a debugging and tracing ability, we do loose some ability there.
> There is no easy way to hook before and after the function call at
> this stage. This could be useful for many tools. Like Daniel's espion,
> that does something like strace but to an efl application. Or my
> starting attempt to do a performance analysis by knowing from which
> klass the function come from and where we do spend time.
> 
> >From an optimization perspective, it would be good to mark eo_func_get
> as being 'pure' so it will eliminate multiple call  if they are on the
> same object. Also did you do any benchmark comparing the previous use
> of eo_do with your new approach ? Right now using Eo doesn't slow us
> down, I would be interested to see a comparison of the same example
> (CPU, library size and used memory).
> 
> > Looking forward to hearing what you have to say.
> 
> Eo is one of the biggest change we did for 1.8. At this stage it is
> optimized to a point where we don't feel the cost compared to 1.7. It
> may be even faster in some work load and use less memory. Any major
> change like this is going to have an impact on any release for 1.8 (We
> are already 2 months late and will likely be 3, so what is it to add 2
> more months delay). A major question is how fast can you roll your
> change in EFL ?
> 
> That lead to an equivalent question, how many people have yet reviewed
> your proposal and are in favor of the change or have idea to improve
> it. I may want to put some pressure on that side, as I am really upset
> by our current delay on 1.8 and I really want to ear more than one
> voice in favor of another huge delay.
> 
> Cheers,
> --
> Cedric BAIL
> 
> ------------------------------------------------------------------------------
> 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
--- Hell'O from Yverdoom

Jérémy (jeyzu)

------------------------------------------------------------------------------
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