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.

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

Reply via email to