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

Reply via email to