On Fri, 11 Mar 2016 12:28:19 +0000 Tom Hacohen <t...@osg.samsung.com>
wrote:

> On 09/03/16 16:23, Tom Hacohen wrote:
> > On 03/03/16 10:22, Tom Hacohen wrote:
> >> On 01/03/16 09:05, Tom Hacohen wrote:
> >>> Hey,
> >>>
> >>> The Eo syntax is going to be changing once more, and this time, I
> >>> really think/hope it'll be the last time. We plan on stabilizing
> >>> Eo and all of the functions on top of it in the next few months,
> >>> so that doesn't leave us much more time to change it again. :)
> >>>
> >>> These changes will remove the need for the eo_do family of
> >>> functions. Functions will now look like normal C functions (which
> >>> they are). There are many benefits to that, and we have many cool
> >>> new ideas.
> >>>
> >>> For more info: https://phab.enlightenment.org/w/eo/
> >>>
> >>> I'm sending this email as an head's up, as I'll be starting to
> >>> work on migrating to the new Eo syntax (and implementing it)
> >>> today. Felipe and I have actually already started (needed to for
> >>> the PoC), but I plan on pushing my changes to master soon.
> >>>
> >>> If you have any issues/suggestions/comments with the proposal,
> >>> please let me know, either in pm, irc or just here.
> >>>
> >>
> >> Changes are in! I still haven't migrated eo_add to the new syntax
> >> (it uses a non portable gcc extension in the meanwhile), but
> >> otherwise everything is in. Took me *much* less time than I
> >> thought it would, so yay. :P
> >>
> >> I decided to push it now instead of letting it rest in my branch
> >> for a while because literally every hour that passed introduced
> >> more merge conflicts for me, so the benefits from stabilising it
> >> more in my branch were diminished by the new conflicts and issues
> >> that could arise.
> >>
> >> If you have an application that uses the Eo api, you can use my
> >> script https://devs.enlightenment.org/~tasn/migrate_eo.py to
> >> migrate your code. When using the script you should keep two
> >> things in mind: 1. You are only allowed to run it *once* per
> >> source code, because the changes to eo_add() would otherwise
> >> accumulate and your code will be wrong. If you need to correct
> >> something you've done wrong, reset the code to the previous state
> >> and run the script again on the original code. 2. The migration
> >> script is not perfect. In particular it can't deal with some
> >> corner cases like: eo_do(obj, a_set(1),
> >> /* b_set(2),
> >>       g_set(4), */
> >>    c_set(2));
> >> Or abominations like:
> >> eo_do(obj, if (a_get())
> >>    do_something());
> >>
> >> So please be aware of that and *manually* review your changes
> >> after the script has run.
> >>
> >> If your code does have these cases, I recommend you either get rid
> >> of them, or manually migrate that code before running the script
> >> (remove the relevant eo_do).
> >>
> >> Follow the wiki page mentioned in the previous email for more
> >> information about Eo and what else needs changing.
> >>
> >> Please let me know about any regressions (there shouldn't be any)
> >> or any issues you may face.
> >
> > I'm now pushing my changes to eo_add. I'm pushing it now for the
> > same reason I pushed the previous changes in.
> >
> > I created a new script that assumes the code has already been
> > migrated with the previous (migrate_eo.py) script. This script is
> > called migrate_eo_add.py and can be found at:
> > https://devs.enlightenment.org/~tasn/migrate_eo_add.py
> >
> > When using the script you should keep two things in mind:
> > 1. You are only allowed to run it *once* per source code, because
> > the changes to eo_add() would otherwise accumulate and your code
> > will be wrong. If you need to correct something you've done wrong,
> > reset the code to the previous state and run the script again on
> > the original code. 2. The migration script is not perfect. In
> > particular it can't deal with cases like missing {} for
> > if/for/while content so for example,
> >
> > if ()
> >      return eo_add(...)
> >
> > would break.
> > 3. If you are fancy and use the same variable inside eo_add and
> > outside, for example like:
> > parent = eo_add(CLASS, parent);
> >
> > your code will break. I suggest you use a temporary variable.
> >
> > So please be aware of that and *manually* review your changes after
> > the script has run.
> >
> > If your code does have these cases, I recommend you either get rid
> > of them, or manually migrate that code before running the script
> > (remove the relevant eo_do).
> >
> >
> >
> > Sorry, but C++ will break until the C++ guys fix it. I'm now in the
> > process of migrating the rest of our applications. Hopefully this
> > will be the last disruption of this sort.
> >
> 
> Good news! I came up with a way to sanely support the old syntax (was 
> discussed on the ML in this thread in my mail on the 10/3 at 11:52
> UTC.
> 
> I'm reverting my changes, and will be pushing everything shortly.

So right now isn't a good time to be updating EFL from git I guess?

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

------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785111&iu=/4140
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to