[Xotcl] [Fwd: Bug with namespace'd Class?]

Schofield, Bryan (GE Transportation) Bryan.Schofield at trans.ge.com
Tue Nov 2 21:47:37 CET 2004


I don't think it is a bug, and I don't think it is unexpected behavior...exactly; more on that in a second. In fact, if it *were* available, as you expected, I'd consider that bad behavior since no package should ever export commands into the root namespace automatically. So, if it's not behaving badly, but still isn't exactly what you expected, where does this discrepancy come from, and how is it resolved? I suggest that documentation is culprit and the solution. I think that an "XOTcl & Namespaces" section or a "General XOTcl Usage" section that describe this situation would beneficial.

Btw, I remember when I first stumbled across this; it made me step back and scratch my head too.

--bryan

> -----Original Message-----
> From: xotcl-bounces at alice.wu-wien.ac.at
> [mailto:xotcl-bounces at alice.wu-wien.ac.at]On Behalf Of Damon Courtney
> Sent: Tuesday, November 02, 2004 3:27 PM
> To: xotcl at alice.wu-wien.ac.at
> Subject: RE: [Xotcl] [Fwd: Bug with namespace'd Class?]
> 
> 
>     I figured as much.  I guess I'll just do import the 
> commands into the
> root namespace.  It doesn't really bother me, but some of the other
> Tcl'ers are real sticklers about namespacing everything.  I just use
> what's best. 0-]
> 
>     So, does this still constitute a bug then, or should I 
> just chalk it
> up to expected behavior?
> 
> Thanks,
> 
> Damon
> 
> > because "self" is a command in the xotcl namespace. you 
> will also find
> > that there are others, such a "my"
> >
> > If you don't import xotcl, you end up with source that 
> looks like this:
> >
> > ::xotcl::Class foo
> > Foo instproc bar {} {
> >    puts "[::xotcl::self] is a [::xotcl::my info class]"
> > }
> >
> >
> > I'd suggest, do something like the following...
> >
> > package require XOTcl 1.3
> > namespace eval fooPackage {
> >    namespace import ::xotcl::*
> >    Class Foo
> >    Foo instproc bar {} {
> >      puts "[self] is a [my info class]"
> >    }
> > }
> >
> >
> > hope that helps.
> > -- bryan
> >
> >> -----Original Message-----
> >> From: xotcl-bounces at alice.wu-wien.ac.at
> >> [mailto:xotcl-bounces at alice.wu-wien.ac.at]On Behalf Of 
> Damon Courtney
> >> Sent: Tuesday, November 02, 2004 2:23 PM
> >> To: xotcl at alice.wu-wien.ac.at
> >> Subject: [Xotcl] [Fwd: Bug with namespace'd Class?]
> >>
> >>
> >>     Why does this not work?
> >>
> >> package require XOTcl
> >>
> >> ::xotcl::Class Foo
> >>
> >> Foo instproc bar {} {
> >>     puts "SELF = [self]"
> >> }
> >>
> >> Foo foo
> >> % Foo foo
> >> ::foo
> >> % foo bar
> >> invalid command name "self"
> >>
> >>
> >>     But, if I "namespace import ::xotcl::*" and make the
> >> class with just
> >> the Class command (not ::xotcl::Class), it works.
> >>
> >>     Any ideas?
> >>
> >> D
> >>
> >> PS:  Windows, Tcl 8.4.3, XOTcl 1.3.1
> >>
> >> _______________________________________________
> >> Xotcl mailing list
> >> Xotcl at alice.wu-wien.ac.at
> >> http://alice.wu-wien.ac.at/mailman/listinfo/xotcl
> >>
> >
> > _______________________________________________
> > Xotcl mailing list
> > Xotcl at alice.wu-wien.ac.at
> > http://alice.wu-wien.ac.at/mailman/listinfo/xotcl
> >
> 
> 
> _______________________________________________
> Xotcl mailing list
> Xotcl at alice.wu-wien.ac.at
> http://alice.wu-wien.ac.at/mailman/listinfo/xotcl
> 



More information about the Xotcl mailing list