Hello.

On 13.03.20 12:26, Carsten Haitzler (The Rasterman) wrote:
On Fri, 13 Mar 2020 16:22:51 +0900 Hermet Park <hermetp...@gmail.com> said:

Leave apis empty? What do you mean by here APIs?
I have no idea how this helps for preventing abi break. Though it might
help to prevent api break but either way nothing helps.

keep the legacy functions but with no content

EAPI void evas_xxx_set(Evas_Object *obj, Eina_Bool x) { }
EAPI Evas_Object *evas_xxx_add(Evas *e) { return NULL; }

etc. :) so any app that happens to call the api's can execute, just the api's
do nothing. no need to have .eo files - not even the classes or actual object
types. just enough empty functions to keep the abi from breaking, but make the
object totally non-functional. :) the object already was a "soft guarantee".
that means you needed a working gl engine for it to work. if you work on
software it'd only work if you also happened to have osmesa also installed and
this was dlopen()'d at runtime so it could actually make this object not
function at runtime. the above keeps the abi there and just makes it never work
no matter what the host setup was. :) you could put in some ERR("Deprecated")
too in the funcs if you wanted as well.. :) so an executable that used these
api's will start without symbol errors. just this object will cease to work.

If this should be changed for the upcoming 1.24 I would like to get this in rather sooner than later. To give it enough testing.

ABI checker will also help us to find problems we might miss during normal testing.

regards
Stefan Schmidt


_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to