develooper Front page | perl.perl5.porters | Postings from January 2005

Re: [Module::Build] Re: [perl #33927] [BUG] Coredump in 5.9.2 whenevalling a certain string while in a coderf in @INC

Thread Previous | Thread Next
James Mastros
January 28, 2005 08:53
Re: [Module::Build] Re: [perl #33927] [BUG] Coredump in 5.9.2 whenevalling a certain string while in a coderf in @INC
Message ID:
Yitzchak Scott-Thoennes wrote:
> On Wed, Jan 26, 2005 at 02:00:57PM -0600, Ken Williams wrote:
>>On Jan 25, 2005, at 3:26 PM, John Peacock wrote:
>>>Jos I. Boumans wrote:
>>>>I suppose if Module::Build::Base would say, at the top:
>>>>   $VERSION = $Module::Build::VERSION
>>>>this would make EU::MM, M::IV, M::L::C and of course CPANPLUS::inc 
>>>>find a 'real' version declaration, rather than something evil that 
>>>>will blow away UNIVERSAL::VERSION.
>>>Yes, that would be an appropriate fix to M::B::Base.
>>That won't work.  All those tools evaluate the version line in 
>>isolation, not by loading the modules and checking the value of 
>>$VERSION.  In other words, when Module::Build::Base's version is 
>>checked, Module::Build won't be loaded, so the version would be undef.
> $VERSION = do { require Module::Build; $Module::Build::VERSION };
IIRC, I've read some bit of docs that says that PAUSE (or possibly not only runs only that line of code, but runs it 
inside a Safe compartment, and possibly uses some other tricks, the 
exact nature of which is undocumented.  It won't neccessarly be allowed 
to require anything, and if it is, Module::Build might not actually be 
there.  Of course, it might not be a problem if PAUSE doesn't correctly 
see the version of Module::Build::Base, but all in all, it's probably 
best that there just be an ordinary scalar assignment there.  (Possibly 
put there by automated means.)

	-=- James Mastros

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About