Efl And Elementary 1 24 Release Announcement

Enlightenment Foundation Libraries 1.24 Release

After eight months of development work we are proud to announce the release of
version 1.24 of the Enlightenment Foundation Libraries. In these eight months we got
over 1800 commits from 54 authors. Great job everyone!

Download

What's New

We only cover some of the bigger changes here. For the full list please look at the NEWS file,
if you are interested in the details. As usual we have been working on fixing bugs,
optimising our code for speed and memory footprint and adding new features.

EO memory optimization

EO is our object abstraction. The object abstraction stores the implemented functions in something called vtable. These vtables are one of the most memory intensive parts of efl. Before this release, every object was capable of storing every function which was defined until the point of the declaration of the class. This was a little bit wasteful. With the new approach, the vtables only contain a little bit more than required to store the functions required. Optimizing this memory layout is a small degree between performance and memory usage. With this new way we are using 200Kb less memory than before.
Details can be found here.

Copy and Paste rework

The old implementation has been located in elementary. For the new implementation all this has been split up into 3 different layers, eina, ecore-evas, and elementary.
In eina we now have a container that abstracts a slice of bytes with a mimetype, these containers can be transformed to different types (as long as there is a conversion method).
Since Copy & Paste and Drag & Drop is mostly about display protocol we have a huge amount of platform depending protocol code, this code is placed in the ecore evas modules of the corresponding platform.
In elementary we have the code around to glue the ecore evas abstraction to elm code. As an example for what this code does: When ecore-evas notifies you that the selection of something has changed, this event needs to be translated to the widget that have registered a event for it. Also, when there is a mouse over while doing a dragging operation, these move events have to be delivered to the widgets that have asked for them.

Ecore_Wl2 work

In this release, the Ecore_Wl2 library has gone through an extensive stabilization phase. The API has been fully documented, and test cases have been provided to verify functionality. In addition, some API functions have been removed while others have been added. A brief summary of the API additions is listed below:

Although this release has seen many changes to the Ecore_Wl2 library, it should be noted that it is still considered to be in Beta and is subject to change in future releases.

Documentation work

As usual, continuous improvement of the current documentation and addition of a few missing bits.

Removals

In this release cycle we finally cleaned out some corners of our libraries which have been in need for it.
We de-duplicated some media backend support and removed beta libraries which never came beyond this stage and libraries which are depending on deprecated or now unsupported components.

evas3d: remove support for evas 3D which was a beta all along (never out of beta)

Xine and vlc supportin emotion (gstreamer 1.x support is stable)

Known ABI break

During the ongoing APi documentation effort a symbol was found which made us all scratch our head for a while.
eina_prime_table was an external public symbol which contained a *few* prime numbers, not the first few though and only 21 in total.
We had no internal use of it and a very hard time to come up with any valid use case at all.
If you are hit by this break as your application uses this symbol come and talk to us. We are willing to revert if there could really be a use case of this table.

Statistics

(git log --pretty=oneline v1.23.0..v1.24.0 | wc -l)
Number of commits in 1.24: 1885
Number of commits in 1.23: 2110

(git shortlog -ns v1.23.0..v1.24.0 | wc -l)
Number of authors in 1.24: 54
Number of authors in 1.23: 48