On Wednesday 10 July 2013 16:41, Cedric BAIL wrote : > On Tue, Jul 9, 2013 at 11:08 PM, Jérémy Zurcher <jer...@asynk.ch> wrote: > > On Tuesday 09 July 2013 13:40, Tom Hacohen wrote : > >> 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. > > > > I pushed some stuff in devs/tasn/eo2, > > nothing inlined (real method call performed), > > basic eo_data_scope_get support (+ real eo fct call) > > I think that in your design eo2_func_get need to return the klass > somehow or it won't work.
that's why i replaced it with eo2_call_resolve > > > and a stupid benchmark > > Ok, I pushed my own benchmark and fixed Eo.h compilation with C++. The can't compile anymore, gcc and clang yels ./src/lib/eo/Eo.h:619:47: error: expected expression before ‘=’ token __##Name##_func func = (__##Name##_func) = call.func; \ can you fix please > benchmark is half done has the event can't be tested as those function > are eo_do for the moment. Never the less, eo_do2 does create an around > 25% slow down in that benchmark. I have yet to understand why and what > is going on. I tried to play with pure and const __attribute__, but to > no change. Please check what is going on (Also with latest change, I > don't think the compiler can optimize the request to > _eo_data_scope_get anymore). I think so, maybe we should go back to eo2_func_get && eo2_data_scope_get, (and return klass somehow) instead of eo2_call_resolve > > Signal/Benchmark: eo call: OK > Benchmark: callback loop: 18.260155ns per round: OK > Signal/Benchmark: eo2 call: OK > Benchmark: callback loop: 23.235780ns per round: OK bad !! > -- > 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