Re: subclassing associated classes elegantly

2005-10-19 Thread Luke Palmer
On 10/19/05, Stevan Little <[EMAIL PROTECTED]> wrote: > Darren, > > Your problem reminds me of the "Expression Problem", which is > something that IIRC Luke's Theory idea was trying to solve. Indeed, this problem is almost exactly the contravariant half of the expression problem. Once upon a time

Re: syntax for accessing multiple versions of a module

2005-10-19 Thread Rob Kinyon
On 10/19/05, Nate Wiger <[EMAIL PROTECTED]> wrote: > My concern is that we're solving problems that don't really exist in > real-world Perl usage. Are there really two competing authors of DBI? > Or, for any product, do two people really try to market "SuperWidget"? > No, one person just changes to

Re: subclassing associated classes elegantly

2005-10-19 Thread Rob Kinyon
On 10/19/05, Darren Duncan <[EMAIL PROTECTED]> wrote: [snip] > An example of when this situation can arise is if person X implements > a simplified XML DOM implementation using 2 classes, Document and > Node, that work together, where one of those classes (Document) can > create objects of the othe

Re: subclassing associated classes elegantly

2005-10-19 Thread Stevan Little
Darren, Your problem reminds me of the "Expression Problem", which is something that IIRC Luke's Theory idea was trying to solve. Here is the link to a paper Luke referred me to on the subject: http://scala.epfl.ch/docu/files/IC_TECH_REPORT_200433.pdf Also, you can Google the phrase "Expre

Re: Translitteration and combining strings and array references

2005-10-19 Thread Larry Wall
On Wed, Oct 19, 2005 at 03:02:14PM +0200, TSa wrote: : HaloO, : : Juerd wrote: : >Luke Palmer skribis 2005-10-18 11:57 (-0600): : > : >>It looks nicer if you use the indirect object form: : >> trans "string": [ : >>=> "0", : >> ]; : > : > : >It'd also look very nice with optional paren

Re: syntax for accessing multiple versions of a module

2005-10-19 Thread Nate Wiger
Larry Wall wrote: This is one of those accomodations to the real world, like everyone agreeing on a standard URI format. We're really trying to keep these module names close to what you'd see as the name of, say, the corresponding .rpm file. These modules have to have names that work outside of

Re: subclassing associated classes elegantly

2005-10-19 Thread Larry Wall
On Wed, Oct 19, 2005 at 03:11:21PM -0700, Darren Duncan wrote: : What are some best practices here that can be used by anyone faced by : a similar problem? My battery's running low, so I just skimmed your article, but my impression is that this is something that would be handled by virtualizing a

Re: syntax for accessing multiple versions of a module

2005-10-19 Thread Larry Wall
On Wed, Oct 19, 2005 at 03:10:13PM -0700, Nate Wiger wrote: : Larry Wall wrote: : >Well, we thought about opening it up like that, but we really kinda : >need to establish what is an official part of the "long name" for : >uniqueness purposes, and try to avoid too much visual clutter in : >standard

Re: Translitteration and combining strings and array references

2005-10-19 Thread Larry Wall
On Wed, Oct 19, 2005 at 01:48:08PM +0200, TSa wrote: : HaloO, : : Luke Palmer wrote: : >It looks nicer if you use the indirect object form: : > : >trans "string": [ : > => "0", : >]; : : Given the right interpretation this just looks like : a typed label selection in a multi metho

subclassing associated classes elegantly

2005-10-19 Thread Darren Duncan
I'm in a long-standing situation with my module development where I want to design a set of associated classes such that invocations of submethods or class methods, such as new(), of one class by another class continue to work as expected when any or all of those classes is subclassed. I have

Re: syntax for accessing multiple versions of a module

2005-10-19 Thread Nate Wiger
Larry Wall wrote: Well, we thought about opening it up like that, but we really kinda need to establish what is an official part of the "long name" for uniqueness purposes, and try to avoid too much visual clutter in standard usage. Going with that... I would think that the "official" part is r

Autogenerated MetaModel Diagrams

2005-10-19 Thread Stevan Little
Hey all, I was messing around with GraphViz today and wrote a quick hack to autogenerate class diagrams using the reflective capabilities of the metamodel prototype. I put some of the more interesting diagrams online, you can view them here: http://perlcabal.org/~stevan/mm_viz/index.html

Re: syntax for accessing multiple versions of a module

2005-10-19 Thread Larry Wall
On Wed, Oct 19, 2005 at 01:30:07PM -0700, Nate Wiger wrote: : Stevan Little wrote: : >Nicholas, : > : >This is addressed in S11, here is a link: : > : > http://search.cpan.org/~ingy/Perl6-Bible/lib/Perl6/Bible/S11.pod : > : >To summarize, the syntax to load the modules is: : > : > use Dog-1.2.1;

Re: S29 problems and plan/TODO

2005-10-19 Thread Aaron Sherman
On Wed, 2005-10-19 at 16:07, Aaron Sherman wrote: > I thus propose 2005-03-16 (last Rod Adams update) - 2005-10-17 > (yesterday, yes that's arbitrary) on the mailing list and pugs/ext from > svn as of revision 7682 as the inputs for the next revision of S29 s{pugs/ext}{pugs/t/builtins} for the mo

Re: syntax for accessing multiple versions of a module

2005-10-19 Thread Nate Wiger
Stevan Little wrote: Nicholas, This is addressed in S11, here is a link: http://search.cpan.org/~ingy/Perl6-Bible/lib/Perl6/Bible/S11.pod To summarize, the syntax to load the modules is: use Dog-1.2.1; While the syntax to create a specific version of a module is: my Dog-1.3.4-cpan:JRA

S29 problems and plan/TODO

2005-10-19 Thread Aaron Sherman
Yesterday, the spam filters on p6l didn't like me, but that's all been fixed. So, on to the good stuff I've been consumed by work for a while, but every time I return to the S29 work I have the same problem: p6l is a constantly bubbling cauldron of ideas, proposals, decisions, reversals, modif

Re: Fwd: top 5 list needed

2005-10-19 Thread Uri Guttman
> "RK" == Rob Kinyon <[EMAIL PROTECTED]> writes: >> > Text-substitution macros would have to be handled in an earlier pass, >> >> I still don't see evidence for this. Or maybe I do, but I don't see >> any reason that the preprocessing pass must finish before the parsing >> begins.

Fwd: top 5 list needed

2005-10-19 Thread Rob Kinyon
> > Text-substitution macros would have to be handled in an earlier pass, > > I still don't see evidence for this. Or maybe I do, but I don't see > any reason that the preprocessing pass must finish before the parsing > begins. Mixing C and Perl ... my $foo; BEGIN { $foo = '}'; } #define OPEN {

Class Methods are inheritable

2005-10-19 Thread Stevan Little
Just an FYI to anyone who is interested. I have implemented the basic Eigenclass structure into the most recent meta-model prototype. It basically looks like this: Class ^ : eFoo<...eBar ^ ^ | | Foo<...Bar This allows for completely inheritabl

Re: syntax for accessing multiple versions of a module

2005-10-19 Thread Larry Wall
On Wed, Oct 19, 2005 at 09:33:39AM -0400, Stevan Little wrote: : On Oct 19, 2005, at 4:10 AM, Larry Wall wrote: : >On Tue, Oct 18, 2005 at 07:38:19PM -0400, Stevan Little wrote: : >: Then this is added as "Dog-0.0.2-cpan:LWALL" into the main symbol : >: table. Then once the compilation process is c

Re: syntax for accessing multiple versions of a module

2005-10-19 Thread Jonathan Scott Duff
On Wed, Oct 19, 2005 at 09:33:39AM -0400, Stevan Little wrote: > However, this brings up an issue I was thinking about. Take this code > for instance: > > use Cat-0.0.1; > use PetStore; > > my Cat $kitty .= new(); > > --- in PetStore.pm --- > > use Dog; > use Cat-0.0.5; > > Which C

Re: syntax for accessing multiple versions of a module

2005-10-19 Thread Larry Wall
On Wed, Oct 19, 2005 at 12:59:34PM +0200, Ruud H.G. van Tol wrote: : Larry Wall: : : > I think using two different versions from the same : > module is going to be relatively rare. : : For dealing with two generations at the same time, like with : conversions: in stead of designing and applying a

Re: syntax for accessing multiple versions of a module

2005-10-19 Thread Stevan Little
Larry, On Oct 19, 2005, at 4:10 AM, Larry Wall wrote: On Tue, Oct 18, 2005 at 07:38:19PM -0400, Stevan Little wrote: : Then this is added as "Dog-0.0.2-cpan:LWALL" into the main symbol : table. Then once the compilation process is complete, I traverse the : symbol table hierarchy collecting all

Re: Translitteration and combining strings and array references

2005-10-19 Thread TSa
HaloO, Juerd wrote: Luke Palmer skribis 2005-10-18 11:57 (-0600): It looks nicer if you use the indirect object form: trans "string": [ => "0", ]; It'd also look very nice with optional parens: "string".trans [ => "0" ]; Or is it not yet time to resuggest that? :) I l

Re: Re(vised): Proposal to make class method non-inheritable

2005-10-19 Thread Gaal Yahas
On Wed, Oct 19, 2005 at 04:03:54AM -0700, Larry Wall wrote: > : This one is new to me. I'm not sure I understand what it's used for. Is > : there already some documentation about it? > > It's in my copy of S06, which I haven't checked in yet. Is there an AES commit feed available somewhere? --

Re: Translitteration and combining strings and array references

2005-10-19 Thread TSa
HaloO, Luke Palmer wrote: It looks nicer if you use the indirect object form: trans "string": [ => "0", ]; Given the right interpretation this just looks like a typed label selection in a multi method. multi trans { Str $x: ...; return; Int $x: ...; return;

Re: Re(vised): Proposal to make class method non-inheritable

2005-10-19 Thread Juerd
Larry Wall skribis 2005-10-19 4:03 (-0700): > The absence of a dot creates a private attribute. We decided it should > be even easier to declare a private attribute than a public one, so it's > just > has $foo; > and then it is visible only in the lexical scope. This takes away my objections

Re: syntax for accessing multiple versions of a module

2005-10-19 Thread Ruud H.G. van Tol
Larry Wall: > I think using two different versions from the same > module is going to be relatively rare. For dealing with two generations at the same time, like with conversions: in stead of designing and applying a patch (SQL's ALTER COLUMN, etc.), create a new dataset and let the old informati

Re: Re(vised): Proposal to make class method non-inheritable

2005-10-19 Thread Larry Wall
On Wed, Oct 19, 2005 at 12:33:11PM +0200, Juerd wrote: : > : make $:foo equivalent to :foo($foo) (conjectural) : : This one is new to me. I'm not sure I understand what it's used for. Is : there already some documentation about it? It's in my copy of S06, which I haven't checked in yet

Re: Re(vised): Proposal to make class method non-inheritable

2005-10-19 Thread Juerd
Larry Wall skribis 2005-10-19 1:43 (-0700): > On Tue, Oct 18, 2005 at 04:43:57PM +0200, Juerd wrote: > : dot sigils are not actually special. They are required on has-variables > : and forbidden on all other. Changing them to be optional is trivial, or > : so I hope. > Dot sigils drive accessor ge

Re: Re(vised): Proposal to make class method non-inheritable

2005-10-19 Thread Larry Wall
On Tue, Oct 18, 2005 at 04:43:57PM +0200, Juerd wrote: : dot sigils are not actually special. They are required on has-variables : and forbidden on all other. Changing them to be optional is trivial, or : so I hope. Dot sigils drive accessor generation, which essentially hoists an ordinary variabl

Re: syntax for accessing multiple versions of a module

2005-10-19 Thread Larry Wall
On Tue, Oct 18, 2005 at 07:38:19PM -0400, Stevan Little wrote: : Then this is added as "Dog-0.0.2-cpan:LWALL" into the main symbol : table. Then once the compilation process is complete, I traverse the : symbol table hierarchy collecting all the names. Any duplicate short : names (Dog) are no