In perl.git, the branch smoke-me/nicholas/File-Spec-in-XS has been created <http://perl5.git.perl.org/perl.git/commitdiff/dcfc860fb7541c57596df99d19c1ca17df438aff?hp=0000000000000000000000000000000000000000>
at dcfc860fb7541c57596df99d19c1ca17df438aff (commit) - Log ----------------------------------------------------------------- commit dcfc860fb7541c57596df99d19c1ca17df438aff Author: Nicholas Clark <n...@ccl4.org> Date: Wed Jun 12 15:25:28 2013 +0200 In miniperl, if lib/buildcustomize.pl fails to load, exit with an error. Unlike sitecustomize.pl, if lib/buildcustomize.pl exists, it should not fail. If it does, it should be reported immediately as a build failure. This makes the build process more robust. M perl.c commit ef6d2e09159312e4b3dc08065c627b7e9e79d052 Author: Nicholas Clark <n...@ccl4.org> Date: Wed Jun 12 15:17:24 2013 +0200 write_buildcustomize.pl now test loads the generated lib/buildcustomize.pl And deletes it if it encounters an error whilst loading it. A non-functional lib/buildcustomize.pl will cause the build to fail with seemingly unrelated errors. Deleting it and exiting with an error should make the cause of build failures obvious. M write_buildcustomize.pl commit ae554f96074138efb8dc4464806fe42228036309 Author: Nicholas Clark <n...@ccl4.org> Date: Wed Jun 12 14:42:15 2013 +0200 write_buildcustomize.pl no longer writes to STDOUT write_buildcustomize.pl now opens lib/buildcustomize.pl itself, instead of writing to STDOUT and relying on the Makefile to set up redirection. This means that an empty lib/buildcustomize.pl is not created if write_buildcustomize.pl fails to compile (for whatever reason), and permits write_buildcustomize.pl to delete (or attempt to delete) the output file if it detects an error. Hard code the output file name (lib/buildcustomize.pl), as it's the same on all platforms, and @ARGV is already used to optionally pass a directory for write_buildcustomize.pl to change to before running. Experimentation suggests that various make utilities don't delete a file created by redirection even if an error occurs. Hence this should be more robust. Add -f to the miniperl commandline when running write_buildcustomize.pl to avoid reading in any existing lib/buildcustomize.pl. write_buildcustomize.pl doesn't need the setup provided by lib/buildcustomize.pl, and running it might cause errors which prevents writing out a correct version, making an incomplete build harder to recover from. M Makefile.SH M vms/descrip_mms.template M win32/Makefile M win32/makefile.mk M write_buildcustomize.pl commit 7ca5874a619769c62d1caf1b925f22264a9ae944 Author: Nicholas Clark <n...@ccl4.org> Date: Wed Jun 12 09:44:37 2013 +0200 Remove the Icwd Makefile macros as lib/buildcustomize.pl now sets this up. Now that lib/buildcustomize.pl is built at the same time as building miniperl, it will always have added paths to Cwd into @INC. Hence there's no longer a need for Makefile macros to do this. On Win32 we can't eliminate $(ICWD) completely as it's also being used for some invocations of the (real) perl binary. Only miniperl loads buildcustomize.pl to set up @INC to include paths for the initial locations of modules such as Cwd. M Makefile.SH M vms/descrip_mms.template M win32/Makefile M win32/makefile.mk commit 0614fa9d6951be22bd4e7b300e9581b94342f832 Author: Nicholas Clark <n...@ccl4.org> Date: Tue Jun 11 21:23:46 2013 +0200 Generate lib/buildcustomize.pl at the same time as the miniperl executable. Doing them together ensures that we always have lib/buildcustomize.pl available. This simplifies things. The seemingly cranky ordering of having miniperl notionally depend on lib/buildcustomize.pl, and the rule for lib/buildcustomize.pl actually also building miniperl permits the rest of the Makefile to depend on (the obvious) miniperl, not the obscure lib/buildcustomize.pl M Makefile.SH M vms/descrip_mms.template M win32/Makefile M win32/makefile.mk ----------------------------------------------------------------------- -- Perl5 Master Repository