You don't need a watchdog while smoking perl when you have a watchcat
~/Perl/B-C-work
$ /usr/local/bin/perl5.6.2d-nt -Iblib/arch -Iblib/lib -MO=C
-e 'use Class::Accessor; print "ok"' | grep DynaLoader::dl_install_xsub
-e syntax OK
vs
~/Perl/B-C-work
$ /usr/local/bin/perl5.6.2d-nt -Mblib -MO=C -e 'use Class::Accessor; print "ok"' | grep DynaLoader::dl_install_xsub
Using /cygdrive/d/data/urbanr/My Documents/Perl/B-C-work/blib
gv_list[42] = gv_fetchpv("DynaLoader::dl_install_xsub", TRUE, SVt_PV);
GvCV(gv_list[42]) = (CV*)(newXS("DynaLoader::dl_install_xsub", XS_DynaLoader_dl_install_xsub, (char*)xsfile));
-e syntax OK
What does blib do to fix the old compiler? Note that cwd contains spaces in the path.
The compiler uses something like
$ /usr/local/bin/perl5.6.2d-nt -I"/cygdrive/d/data/urbanr/My Documents/Perl/B-C-work/blib/arch"
-I"/cygdrive/d/data/urbanr/My Documents/Perl/B-C-work/blib/lib" -MO=C
-e 'use Class::Accessor; print "ok"' | grep DynaLoader::dl_install_xsub
Explanation of the problem
With -I
Explanation of the root cause
Need to investigate it later
I never understood why Module::Build attracted people at all
It is limited, broken and has less features than the good old EU::MM (ExtUtils::MakeMaker).
Limited:
1. dependencies, like the equivalent of make or make clean never works.
It does not check or clean important intermediate dirs and object files.
I always have to do a make realclean, to start testing with a new perl,
or updated xs file.
2. You cannot use a XS as a submodule in your package.
E.g. with Base\XS.xs windows builds will fail. Windows only!
You'l…
Working at cPanel on cperl, B::C (the perl-compiler), parrot, B::Generate, cygwin perl and more guts, keeping the system alive.