Skip Menu |

This queue is for tickets about the Moose CPAN distribution.

Report information
The Basics
Id: 91307
Status: resolved
Priority: 0/
Queue: Moose

People
Owner: ether [...] cpan.org
Requestors: torta [...] diff.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: 2.1005
Fixed in: (no value)



Subject: explanation of metaclass compatibility in Class::MOP pod
The Class::MOP pod explains upwards and downwards metaclass compatibility. Upwards metaclass compatibility is explained as follows: "Upwards metaclass compatibility means that the metaclass of a given class is either the same as (or a subclass of) all of the class's ancestors." It would be more correct to say: "Upwards metaclass compatibility means that the metaclass of a given class is either the same as (or a subclass of) all of the class's ancestors metaclasses." Downwards metaclass compatibility is explained as follows: "Downward metaclass compatibility means that the metaclasses of a given class's ancestors are all the same as (or a subclass of) that metaclass." This explanation is difficult to understand, and seems to be inconsistent with what is written in reference "Uniform and safe metaclass composition". I would suggest to rephrase it as something like: "Downwards metaclass compatibility means that an instance of a given metaclass is either the same as (or a subclass of) all of the metaclass's ancestors instances."
I clarified the wording -- not quite the same as your patch but conveys the correct information. thanks for raising this!
thank you for handling this "highly academic" bug! I am preparing a PhD students level course on meta-programming, and I am using Class::MOP as a significant example I think there is still a small inaccuracy in the definition of downward metaclass compatibility: "the same as (or a subclass of)" --> "the same as (or a superclass of)" thank you Gianluca Il Dom 02 Feb 2014 01:36:37, ETHER ha scritto: Show quoted text
> I clarified the wording -- not quite the same as your patch but > conveys the correct information. > > thanks for raising this!
Subject: Re: [rt.cpan.org #91307] explanation of metaclass compatibility in Class::MOP pod
Date: Thu, 3 Jul 2014 08:36:58 -0700
To: Gianluca Torta via RT <bug-Moose [...] rt.cpan.org>
From: Karen Etheridge <ether [...] cpan.org>
On Thu, Jul 03, 2014 at 06:39:43AM -0400, Gianluca Torta via RT wrote: Show quoted text
> I think there is still a small inaccuracy in the definition of downward metaclass compatibility: > "the same as (or a subclass of)" --> "the same as (or a superclass of)"
I don't think this is an error -- there is a lot of code that confirms that the intent is that metaclasses can only be reblessed into subclasses (not superclasses).
Subject: Re: [rt.cpan.org #91307] explanation of metaclass compatibility in Class::MOP pod
Date: Thu, 3 Jul 2014 12:04:18 -0400
To: bug-Moose [...] rt.cpan.org
From: Stevan Little <stevan.little [...] gmail.com>
Gianluca, For what school are you preparing the course? I would love to know more information about it. Thanks, - Stevan On Thu, Jul 3, 2014 at 6:39 AM, Gianluca Torta via RT <bug-Moose@rt.cpan.org Show quoted text
> wrote:
Show quoted text
> Queue: Moose > Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=91307 > > > thank you for handling this "highly academic" bug! > > I am preparing a PhD students level course on meta-programming, and I am > using Class::MOP as a significant example > > I think there is still a small inaccuracy in the definition of downward > metaclass compatibility: > "the same as (or a subclass of)" --> "the same as (or a superclass of)" > > thank you > Gianluca > > Il Dom 02 Feb 2014 01:36:37, ETHER ha scritto:
> > I clarified the wording -- not quite the same as your patch but > > conveys the correct information. > > > > thanks for raising this!
> > > >
Dear Stevan, I will hold the course at University of Torino, Italy. It will be just 20 hours in October-November and will be attended by PhD students here is a link to a very brief outline of the course: http://dott-informatica.campusnet.unito.it/do/corsi.pl/Show?_id=vvwp;sort=DEFAULT;search=%20%7baa%7d%20%3d%7e%20m%2f2014%2fi%20and%20%7baa%7d%20%3d%7e%20m%2f2015%2fi%20and%20%7btipologia%7d%20%21%7e%20m%2fseminario%2fi%20;hits=7 (sorry for the ridiculously long and silly URL) I would be very happy to keep you informed as I refine the material... let me know Gianluca Il Gio 03 Lug 2014 12:04:31, STEVAN ha scritto: Show quoted text
> Gianluca, > > For what school are you preparing the course? I would love to know more > information about it. > > Thanks, > > - Stevan > > > On Thu, Jul 3, 2014 at 6:39 AM, Gianluca Torta via RT <bug-Moose@rt.cpan.org
> > wrote:
>
> > Queue: Moose > > Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=91307 > > > > > thank you for handling this "highly academic" bug! > > > > I am preparing a PhD students level course on meta-programming, and I am > > using Class::MOP as a significant example > > > > I think there is still a small inaccuracy in the definition of downward > > metaclass compatibility: > > "the same as (or a subclass of)" --> "the same as (or a superclass of)" > > > > thank you > > Gianluca > > > > Il Dom 02 Feb 2014 01:36:37, ETHER ha scritto:
> > > I clarified the wording -- not quite the same as your patch but > > > conveys the correct information. > > > > > > thanks for raising this!
> > > > > > > >
Let me try to clarify my point, referring to the ASCII diagram in Class::MOP pod. If downward metaclass compatibility "means that the metaclasses of a given class's ancestors are all the same as (or a subclass of) that class's metaclass" (current def.), then the metaclass Meta::B of B, which is an ancestor of A, should be a subclass of the metaclass Meta::A of A. Which is not true (and should not be). Actually, changing "subclass" to "superclass" as I suggested, would make the definition true for the diagram, but probably it would just yield a def. equivalent to upward compatibility (and, thus, redundant). That's why I originally proposed to change the sentence about downward metaclass compatibility to require that "an instance of a given metaclass is either the same as (or a subclass of) all of the metaclass's ancestors instances." Referring to the diagram, class A (instance of Meta::A) is a subclass of B (instance of Meta::B, which is an ancestor of Meta::A). Thank you. Gianluca Il Gio 03 Lug 2014 11:37:09, ETHER ha scritto: Show quoted text
> On Thu, Jul 03, 2014 at 06:39:43AM -0400, Gianluca Torta via RT wrote:
> > I think there is still a small inaccuracy in the definition of > > downward metaclass compatibility: > > "the same as (or a subclass of)" --> "the same as (or a superclass > > of)"
> > I don't think this is an error -- there is a lot of code that confirms > that > the intent is that metaclasses can only be reblessed into subclasses > (not > superclasses).
Subject: Re: [rt.cpan.org #91307] explanation of metaclass compatibility in Class::MOP pod
Date: Thu, 3 Jul 2014 19:52:14 -0400
To: bug-Moose [...] rt.cpan.org
From: Stevan Little <stevan.little [...] gmail.com>
Gianluca, Yes, I would love for you to keep me informed, this is very exciting to me to have Class::MOP included. Please feel free to contact me using my CPAN address (stevan@cpan.org) if you have any questions or updates. Thanks, - Stevan On Thu, Jul 3, 2014 at 6:35 PM, Gianluca Torta via RT <bug-Moose@rt.cpan.org Show quoted text
> wrote:
Show quoted text
> Queue: Moose > Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=91307 > > > Dear Stevan, > > I will hold the course at University of Torino, Italy. It will be just 20 > hours in October-November and will be attended by PhD students > > here is a link to a very brief outline of the course: > > http://dott-informatica.campusnet.unito.it/do/corsi.pl/Show?_id=vvwp;sort=DEFAULT;search=%20%7baa%7d%20%3d%7e%20m%2f2014%2fi%20and%20%7baa%7d%20%3d%7e%20m%2f2015%2fi%20and%20%7btipologia%7d%20%21%7e%20m%2fseminario%2fi%20;hits=7 > > (sorry for the ridiculously long and silly URL) > > I would be very happy to keep you informed as I refine the material... let > me know > > Gianluca > > > Il Gio 03 Lug 2014 12:04:31, STEVAN ha scritto:
> > Gianluca, > > > > For what school are you preparing the course? I would love to know more > > information about it. > > > > Thanks, > > > > - Stevan > > > > > > On Thu, Jul 3, 2014 at 6:39 AM, Gianluca Torta via RT <
> bug-Moose@rt.cpan.org
> > > wrote:
> >
> > > Queue: Moose > > > Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=91307 > > > > > > > thank you for handling this "highly academic" bug! > > > > > > I am preparing a PhD students level course on meta-programming, and I
> am
> > > using Class::MOP as a significant example > > > > > > I think there is still a small inaccuracy in the definition of downward > > > metaclass compatibility: > > > "the same as (or a subclass of)" --> "the same as (or a superclass of)" > > > > > > thank you > > > Gianluca > > > > > > Il Dom 02 Feb 2014 01:36:37, ETHER ha scritto:
> > > > I clarified the wording -- not quite the same as your patch but > > > > conveys the correct information. > > > > > > > > thanks for raising this!
> > > > > > > > > > > >
> > > >
CC: doy [...] cpan.org
Subject: Re: [rt.cpan.org #91307] explanation of metaclass compatibility in Class::MOP pod
Date: Thu, 3 Jul 2014 19:53:51 -0400
To: bug-Moose [...] rt.cpan.org
From: Stevan Little <stevan.little [...] gmail.com>
Gianluca, It is possible that the diagram and documentation have gotten out of sync over the years. Jesse Luehrs tended to be out expert on metaclass compatability and I have added him to the CC here in case he would like to speak up on the subject. - Stevan On Thu, Jul 3, 2014 at 7:01 PM, Gianluca Torta via RT <bug-Moose@rt.cpan.org Show quoted text
> wrote:
Show quoted text
> Queue: Moose > Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=91307 > > > Let me try to clarify my point, referring to the ASCII diagram in > Class::MOP pod. > > If downward metaclass compatibility "means that the metaclasses of a given > class's ancestors are all the same as (or a subclass of) that class's > metaclass" (current def.), then the metaclass Meta::B of B, which is an > ancestor of A, should be a subclass of the metaclass Meta::A of A. Which is > not true (and should not be). > > Actually, changing "subclass" to "superclass" as I suggested, would make > the definition true for the diagram, but probably it would just yield a > def. equivalent to upward compatibility (and, thus, redundant). > > That's why I originally proposed to change the sentence about downward > metaclass compatibility to require that "an instance of a given metaclass > is either the same as (or a subclass of) all of the metaclass's ancestors > instances." > Referring to the diagram, class A (instance of Meta::A) is a subclass of B > (instance of Meta::B, which is an ancestor of Meta::A). > > Thank you. > Gianluca > > Il Gio 03 Lug 2014 11:37:09, ETHER ha scritto:
> > On Thu, Jul 03, 2014 at 06:39:43AM -0400, Gianluca Torta via RT wrote:
> > > I think there is still a small inaccuracy in the definition of > > > downward metaclass compatibility: > > > "the same as (or a subclass of)" --> "the same as (or a superclass > > > of)"
> > > > I don't think this is an error -- there is a lot of code that confirms > > that > > the intent is that metaclasses can only be reblessed into subclasses > > (not > > superclasses).
> > > >