Using Windows Strace, I notice the CC is pulling in the 4.5 MB charclass_invlists.h in every single .o file. %99.99 percent of it will be discarded by the CPP, but the compile time lost is measurable. Not including a formal patch since which integer const macro defs become global and which stay in that 4.5 MB .h isnt my expertise.
Use strace on a C compiler process, watch it read with IO calls the 4.5 MB charclass_invlists.h file, to the end, when compiling every single perl .o file.
Expected behavior
Do not #include that file by default in perl headers. Only .c files that want it should #include it. which should be a very small count.
Description
Using Windows Strace, I notice the CC is pulling in the 4.5 MB charclass_invlists.h in every single .o file. %99.99 percent of it will be discarded by the CPP, but the compile time lost is measurable. Not including a formal patch since which integer const macro defs become global and which stay in that 4.5 MB .h isnt my expertise.
executing
cl -c -I.. -Ifull -nologo -GF -W3 -MD -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_WINSOCK_DEPRECATED_NO_WARNINGS -DPERLDLL -DPERL_CORE -O1 -Zi -GL -fp:precise -DPERL_TEXTMODE_SCRIPTS -DMULTIPLICITY -DPERL_IMPLICIT_SYS -DUSE_PERLIO -Fo..\av.obj -Fd..\av.pdb ..\av.c
BEFORE
AFTER
experiment patch for
perl.h
that saved 10 msSteps to Reproduce
Use strace on a C compiler process, watch it read with IO calls the 4.5 MB charclass_invlists.h file, to the end, when compiling every single perl .o file.
Expected behavior
Do not #include that file by default in perl headers. Only .c files that want it should #include it. which should be a very small count.
Perl configuration
perl 5.41.5