On Fri, Feb 23, 2018, at 19:53, Davide Andreoli wrote: > 2018-02-23 12:03 GMT+01:00 Daniel Kolesa <dan...@octaforge.org>: > > > On Thu, Feb 22, 2018, at 14:05, Davide Andreoli wrote: > > > 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. > > > > > > 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? > > > > This is exactly correct. If you look at the Eolian API, you can even > > retrieve the namespaces using the namespaces_get functions. > > > > > > > > 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) > > > > > > 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) > > > > I don't see what filesystems have to do with this, but I'm not exactly > > opposed to introducing the rule. > > > > In python a tree of namespaces is created on the filesystem using a folder > for each namespace, and > in that folder there is a file for each class (more or less). To implement > the Efl namespace I must > create a folder called Efl, and the Efl.Canvas namespace is a folder inside > the Efl Folder: > > Efl (the namespace, a folder) > -> Canvas (the namespace, a folder inside the Efl folder) > -> Canvas (the class, a file inside the Efl folder) > > This is just not going to work in python. > > I can workaround lowering the namespaces as: > > efl (the namespace, a folder) > -> canvas (the namespace, a folder inside the efl folder) > -> Canvas (the class, a file inside the efl folder) > > This will work on linux, no idea if it will work on windoz...
Oh, I see. Probably makes sense to introduce a check to make sure namespace names don't conflict with declaration names then. > > > > > > > > > > > > > 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 > > > enlightenment-devel@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > ------------------------------------------------------------ > > ------------------ > > 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 > > enlightenment-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > ------------------------------------------------------------------------------ > 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 > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel ------------------------------------------------------------------------------ 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 enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel