develooper Front page | perl.perl5.porters | Postings from February 2015

why does p5p distribute or need ppport.h and Devel-PPPort?

Thread Next
February 17, 2015 22:05
why does p5p distribute or need ppport.h and Devel-PPPort?
Message ID:
In the process of making a parallel Win32 build makefile, I have to 
figure out, what can be done in parallel? and how can I reduce to the 
bare minimum, the amount of things that need to be built before the 4 parallel branches (the long XS/non-XS and the much quicker 
static/DynaLoader) run. I figured out the best way at the moment, to 
deal with generating ppport.h, is with

	rem. > $(COREDIR)\ppport.h

Yes, a 0 byte file. And everything builds fine. Blead perl is blead 
perl, why do core-ed modules need a back compat layer to run on old 
perls, when by definition, they will be compiled with the newest perl in 
the world?

Currently the MakePPPort has an unacceptably long dep chain. If XS 
depends on MakePPPort, and MakePPPort depends on Extensions_nonxs, 
parallel building is nearly useless since the 2 longest targets to 
build, run in series. a 0 byte ppport.h allows XS extensions to not 
depend on non-XS exts being built first. On the other hand, I could 
remove the need for MakePPPort to depend on Extensions_nonxs with a lil 
bit of (I've tried that idea, and MakePPPort doesn't 
need Extensions_nonxs in that case). Even if I remove the 
Extensions_nonxs the ..\mkppport script alone takes 2 seconds to run, so 
that is 2 seconds slower on the longest to build target (Extensions 
[xs]). I've also tried deleting the MakePPPort, and XS modules still 
build fine with that 0 byte ppport.h made earlier.

MakePPPort: $(HAVEMINIPERL) $(CONFIGPM) Extensions_nonxs
	$(MINIPERL) -I..\lib ..\mkppport

So why not remove Devel-PPPort the module from core? Devel-PPPort also 
causes a useless PPPort.dll file which is only used for a "make test" to 
be installed in the final install dir of perl, unlike XS-APITest and 
XS-Typemap which are smart enough to not install themselves, since they 
are testing only.

There are only 6 modules which need ppport.h according to mkpport.list
# List of directories into which a ppport.h should be installed.
# Please try to keep the list sorted.
# This file is read by mkppport at build time.


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