Skip Menu |

This queue is for tickets about the CatalystX-CRUD CPAN distribution.

Report information
The Basics
Id: 54099
Status: resolved
Priority: 0/
Queue: CatalystX-CRUD

People
Owner: Nobody in particular
Requestors: t0m [...] state51.co.uk
Cc:
AdminCc:

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



Subject: Should not use Class::C3 directly.
Date: Thu, 28 Jan 2010 23:04:50 +0000
To: bug-CatalystX-CRUD [...] rt.cpan.org
From: Tomas Doran <t0m [...] state51.co.uk>
Hi Your module uses Class::C3 directly. It shouldn't do this, as c3 method resolution is natively included in perl >= 5.9.5. Instead, you should depend on MRO::Compat which will require Class::C3 if the perl version that the user has requires it, but will otherwise use the native implementation. Cheers t0m
Subject: Re: [rt.cpan.org #54099] Should not use Class::C3 directly.
Date: Fri, 29 Jan 2010 23:35:24 -0600
To: bug-CatalystX-CRUD [...] rt.cpan.org
From: Peter Karman <peter [...] peknet.com>
Show quoted text
> > Your module uses Class::C3 directly. It shouldn't do this, as c3 > method resolution > is natively included in perl >= 5.9.5. > > Instead, you should depend on MRO::Compat which will require Class::C3 > if the perl version that the user has requires it, but will otherwise > use the native implementation. >
thanks for the audit. The only call to Class::C3 in CXC is to this: Class::C3::initialize(); which is necessary, and documented here in MRO::Compat: <quote> It does not remove the need for you to call Class::C3::initialize(), Class::C3::reinitialize(), and/or Class::C3::uninitialize() at the appropriate times as documented in the Class::C3 docs. These three functions are always provided by MRO::Compat, either via Class::C3 itself on older Perls, or directly as no-ops on 5.9.5+. </quote> I have, however, removed the explicit dependency on Class::C3 from Makefile.PL and let MRO::Compat require it as needed. -- Peter Karman . http://peknet.com/ . peter@peknet.com
Fixed in 0.48.