New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[PATCH] fix a broken optimization in win32/config_h.PL to stop excessive rebuilding #14375
Comments
From @bulk88Created by @bulk88See attached patch. Perl Info
|
From @bulk880001-fix-a-broken-optimization-in-win32-config_h.PL-to-st.patchFrom 7f2b4370e3cbbdfa1698d481cdc388141cea7219 Mon Sep 17 00:00:00 2001
From: Daniel Dragan <bulk88@hotmail.com>
Date: Sun, 28 Dec 2014 15:59:38 -0500
Subject: [PATCH] fix a broken optimization in win32/config_h.PL to stop
excessive rebuilding
In commit 137443ea0a config_h.PL was introduced. There is no ML archive
from that time of the actual patches or their rational. From day 1 of
config_h.PL for the root config.h, it didn't copy the new one config.h to
the normal location of config.h if the files matched. This prevents
redundant dirtying of all core moudules with the
"Makefile out-of-date with respect to "/make clean/rerunning of makefile.pl
/new make all cycle. But the optimization didn't work in practice since
the modules declare a dependency on /lib/CORE/config.h not /config.h.
Previously "touch"ing /win32/Makefile would trigger a mass rebuild,
even if config.h's contents are the same. Now only if the new after
"touch"ing /win32/makefile config.h is different from the old config.h
, will a mass rebuild of module be triggered. This makes reduced the
amount of time core devs have to spend to work on Win32 perl.
---
win32/config_h.PL | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/win32/config_h.PL b/win32/config_h.PL
index 6b7fbda..03dddb3 100644
--- a/win32/config_h.PL
+++ b/win32/config_h.PL
@@ -79,10 +79,11 @@ while (<SH>)
close(H);
close(SH);
-
-chmod(0666,"$opt{CORE_DIR}/$opt{CONFIG_H}");
-copy("$file.new","$opt{CORE_DIR}/$opt{CONFIG_H}") || die "Cannot copy:$!";
-chmod(0444,"$opt{CORE_DIR}/$opt{CONFIG_H}");
+if (compare("$file.new","$opt{CORE_DIR}/$opt{CONFIG_H}")) {
+ chmod(0666,"$opt{CORE_DIR}/$opt{CONFIG_H}");
+ copy("$file.new","$opt{CORE_DIR}/$opt{CONFIG_H}") || die "Cannot copy:$!";
+ chmod(0444,"$opt{CORE_DIR}/$opt{CONFIG_H}");
+}
if (compare("$file.new",$file))
{
--
1.7.9.msysgit.0
|
From @steve-m-hayThanks, applied in commit 989c251. The change looks good, but it doesn't affect the thing which I've long found annoying, namely that "nmake test" (run immediately after "nmake") relinks perl521.dll and (presumably because *that* has been relinked) all the XS DLLs. I've poked at trying to find out why perl521.dll gets relinked by "nmake test-prep" before but never found enough tuits to dig deep enough. |
The RT System itself - Status changed from 'new' to 'open' |
@steve-m-hay - Status changed from 'open' to 'resolved' |
Migrated from rt.perl.org#123513 (status was 'resolved')
Searchable as RT123513$
The text was updated successfully, but these errors were encountered: