[KinoSearch] ORQuery dislikes Perl Compiler classes

Marvin Humphrey marvin at rectangular.com
Mon Jun 1 11:05:16 PDT 2009


On Mon, Jun 01, 2009 at 08:42:07AM -0700, webmasters at ctosonline.org wrote:
> 
> On May 31, 2009, at 10:20 PM, Marvin Humphrey wrote:
> 
> > Looks like the stock OS X Perl for 10.5 Leopard, right?  I used to  
> > use that, but once Apple stepped in the trap set by the stupid
> > Scalar::Util XS/ pure-Perl bifurcation and shipped the pure-Perl
> > Scalar::Util (minus weaken()),  I've gotten a little more serious about
> > not messing with the system Perl.
> 
> What actually happened was that you upgraded Scalar::Util (which  
> modified files in /System), and then installed the 2009-001 security  
> update, which replaces the XS bundle. So the .pm file couldn’t load  
> the XS routines, since they were the wrong version. 

Thanks for the clarification with regards to how the XS Scalar::Util failed to
load.  

Ordinarily not being able to load an XS shared object would be a fatal error,
which Apple would hopefully have caught.  However, in the case of
Scalar::Util, failing to load the XS shared object triggers a fallback to the
Pure-perl implementation -- which is incomplete.  IMO, that's poor API design
-- a nasty little trap which you can guarantee some fraction of your users are
going to fall into.

> I had this same  problem, and simply reinstalled Scalar::Util and IO. Apple
> fixed this  in 10.5.7 by changing the install location for core module
> upgrades.

Dunno what's up with my system, but right now I'm running 10.5.7 and I get the
"weaken" failures when I use the stock Perl.

Whatever.  For my laptop, I think I'm going to continue to use the manually
compiled Perl.  For the Mini, though, I'm messing with the system Perl.

> >  * Run "./Build distclean", then "perl Build.PL", "./Build test".
> 
> What’s the difference between ./Build clean and ./Build distclean?

"./Build distclean" wipes out the "Build" script and the "_build" directory.
On dev branch KS, I don't think there will be a difference.  For stable branch
KS, the code autogeneration work is done by Build.PL rather than Build,
though... and I just got in the habit of running "distclean" rather than
"clean" from back then.

Marvin Humphrey




More information about the kinosearch mailing list