On Sun, 18 Feb 2018 10:28:54 +0100 Davide Andreoli <[email protected]>
said:

hey dave. i had this marked... :)

> Hi all,
> 
> I'm working again on autogenerated python bindings for efl UnifiedAPI but
> I'm quite blocked by the lack of namespace definitions in eo/eolian.

a read of the below... why can't you just have a single Efl namespace? I'm not
sure I get the need for complex namespaces here... you have classes... and they
can all be within the EFl namespace... :) any reason you can't do this? doesn't
this simplify things?

> This is a noproblem in C and any other language without proper namespacing,
> but for the langs that provide namespaces (like python and many others)
> this need to be defined in some way.
> 
> First of all we need to define what a namespace is, and define some rules
> for them. Then we should implement something in Eolian so that every
> different bindings can be generated with the same namespace hierarchy.
> 
> Currently I'm assuming that the namespace of an object (class or typedecl)
> is its full name without the last part, fe the Efl.Canvas.Object live in
> the Efl.Canvas namespace. Is this correct? is this what we want?

Well we are pretty much using a tree structure for the efl classes, so i think
this applies, but something in the Efl.Canvas namespace could inherit a class
or interface from Efl.Elephant .... does that bother you? it's still

obj.methodname()

or similar... the namespace is only relevant when creating the object ... i.e.
its class and ... can't that just be EFl.something_something_blah ? educate
me... i know nothing about python here so i doubt i can offer a lot of advice
here... (which is why i haven't jumped in to answer this).

> As for the rules we should define some, I have two on my mind atm:
> 1. (definition) The namespace of an object is it's full name without the
> last part (mybe lowercased?)
> 2. A namespace cannot have the same name of another eo object (classes,
> enums, typedefs, aliases, etc)

this is going to be hard to enforce unless eolian enforces it and tells us
there is a conflict... :)

> The #2 is mandatory in python. I can workaround this in my generator by
> lowercasing the namespaces (fe: efl.canvas.Object), but seems to me that
> having 2 different things (a class and a namespace) with the same name is
> confusing for everyone and probably will not work for languages/systems
> without a case-sensitive filesystem (thinking about windoz here)
> 
> 
> To better understand what I'm speaking about please give a look at:
> http://www.gurumeditation.it/dokuwiki/doku.php?id=develop:api:start
> http://www.gurumeditation.it/dokuwiki/doku.php?id=develop:api:namespaces
> 
> Those pages are automatically generated, are NOT python related, and should
> serve as a reference for the UnifiedAPI work in progess, they provide a
> clean view of the current state of our new API.
> 
> 
> waiting for comments and ideas
> davemds
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> enlightenment-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
Carsten Haitzler - [email protected]


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to