summaryrefslogtreecommitdiff
path: root/src/bin/eolian/headers.c (follow)
AgeCommit message (Collapse)Author
2019-05-16eolian: rename eolian_event_c_name_getDaniel Kolesa
This is for consistency with the new eolian_class_c_macro_get as well as for better clarity, as c_name_get is already provided by Object and refers to something else.
2019-05-16eolian: add API to retrieve the C name of an objectDaniel Kolesa
This is to prepare for type/class renaming support. This adds the necessary API to retrieve C-specific names. Other refactoring is necessary elsewhere for now. This also renames the old API eolian_class_c_name_get to eolian_class_c_macro_get to avoid conflict as well as clarify the intention.
2019-04-18eolian_gen: remove support for legacy header file generationDaniel Kolesa
2019-03-08eolian: remove legacy handling API and most of generationDaniel Kolesa
Summary: This removes all Eolian API that deals with handling of legacy code. It also removes the code using it in the generator as well as bindings, but for now keeps generation of .eo.legacy.h types, as there are still instances in our codebase where things are otherwise broken. We can remove the rest once that is resolved. Reviewers: zmike, cedric Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8255
2019-02-13eolian: allow tagging complete classes as BETAXavi Artigas
Summary: This allows using the @beta tag in classes, like this: class @beta Efl.Foo extends Efl.Bar { ... } This will surround the class definition in the .eo.h file with an EFL_BETA_API_SUPPORT #define, equivalent to tag every method and event with @beta. Test Plan: Nothing changes since no class uses this tag yet Reviewers: q66, bu5hm4n, zmike Reviewed By: q66 Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7933
2019-02-13Remove individual class BETA guardsXavi Artigas
Summary: Eolian adds a per-class BETA guard (like EFL_UI_WIN_BETA) to any method tagged as @beta. This means that any app (and the EFL code) wanting to use BETA features has to enable them class by class, which is cumbersome. This commit replaces the individual guards with the global EFL_BETA_API_SUPPORT guard, so apps only need to define one symbol to access BETA features. Any usage of the per-class guards has been removed from the EFL code and examples. When building EFL the global guard is defined by configure, so all EFL methods already have access to BETA API. Efl_Core.h and Efl_Ui.h no longer define EFL_BETA_API_SUPPORT. Apps wanting to use BETA API have to define this symbol before including any EFL header (It has been added to the examples requiring it). Test Plan: make && make check && make examples still work, but there's a lot less #defines in the code Reviewers: zmike, bu5hm4n, q66 Reviewed By: q66 Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T6788 Differential Revision: https://phab.enlightenment.org/D7924
2019-02-13eolian: drop class function overridingMarcel Hollerbach
Until this commit eo did class functions as part of the vtable, which enabled those functions to be overwritten in classes inheriting another class. However in task T7675 we decided that this is not really good for bindings, as most OOP languages do not support this sort of feature. After this commit eolian realizes class function completly outside of the vtable, the c-symbol that is the class funciton is now just directly redirecting to a implementation, without the involvement of the vtable. This also means a change to the syntax created by eo: Calling before: class_function(CLASS_A); Calling after: class_function(); Implementation before: class_function(const Eo *obj, void *pd) { ... } Implementation after: class_function(void) { ... } This fixes T7675. Co-authored-by: lauromauro <lauromoura@expertisesolutions.com.br> Reviewed-by: Daniel Kolesa <daniel@octaforge.org> Differential Revision: https://phab.enlightenment.org/D7901
2018-04-18eolian: make doc ref resolution globalDaniel Kolesa
Doc refs no longer introduce new dependencies into files. Instead, they're parsed globally, and any doc ref lookup is also made globally. This allows unit based dependencies to correspond more to what files actually really need at compile time/runtime, with docs being irrelevant to that; it also simplifies the API. The doc resolution API now takes Eolian_State instead of Eolian_Unit, too.
2018-03-12eolian: update class name APIsDaniel Kolesa
2018-01-16eolian: do not require unit when stringifying typesDaniel Kolesa
As it is no longer necessary to pass unit when evaluating exprs, it is not necessary to pass it here either. Convert all the APIs to the new style and update all instances in our tree.
2018-01-12eolian: type_typedecl_get doesn't need a unitDaniel Kolesa
2017-12-15eolian: remove remaining global state (+ modify APIs accordingly)Daniel Kolesa
2017-08-30eolian: clean up and fix function pointer generationDaniel Kolesa
Out/inout params are now correctly handled.
2017-08-30eolian gen: clean up param genDaniel Kolesa
2017-08-10eolian: change C type serialization API to account for returnsDaniel Kolesa
This will allow proper handling of const.
2017-06-18eolian: function pointersLauro Moura
First steps toward explicit function pointer support in eolian. To declare a function pointer type, use the following syntax, similar to a regular eolian method declaration. function FunctionName { params { ... } return: Return type }
2017-05-30eolian: pass unit to class get_by_name/fileDaniel Kolesa
2017-05-30eolian gen: pass the unit aroundDaniel Kolesa
2017-03-31eolian: fix incorrect function prototypes in legacy headersDaniel Kolesa
C functions that take no arguments need to have void in the arg list. Otherwise, it would mean taking any number of arguments.
2017-01-19eolian: move base function doc API into implementsDaniel Kolesa
This allows us to unify retrieval of docs for both regular and overridden funcs without having two separate APIs. It's currently missing validation and docgen is still not adjusted properly for it either, but at least there's this. Enables retrieval of docs for overridden funcs by default as well.
2017-01-12eolian gen: do not use EOLIAN_UNRESOLVED/PROPERTY for lookupsDaniel Kolesa
2016-10-20eolian gen: use EWAPI for events instead of EOAPIDaniel Kolesa
Apparently only methods/properties can be EOAPI.
2016-10-14eolian gen: better checks for whether to add space after typeDaniel Kolesa
2016-10-12eolian gen: use the C get function name getter instead of manual concatDaniel Kolesa
2016-10-12eolian gen: utilize the new class C name getter instead of manual concatDaniel Kolesa
2016-10-07eolian gen2: move to eolian gen (as the old one is gone)devs/q66/eolian_gen_nextDaniel Kolesa