View · Search · Index
No registered users in community xowiki
in last 10 minutes

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

From: Schofield, Bryan \(GE Transportation\) <"Schofield,>
Date: Tue, 2 Nov 2004 15:47:37 -0500

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
>