On 11/03/16 20:54, David Seikel wrote:
> 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?

It doesn't matter as long as you keep elm in sync and don't use the Eo 
api in your pet projects. :)

--
Tom.


------------------------------------------------------------------------------
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=278785231&iu=/4140
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to