homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: MSVC 2013 Express needlessly rebuilds code
Type: behavior Stage: resolved
Components: Build, Windows Versions: Python 3.5
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: zach.ware Nosy List: BreamoreBoy, jkloth, python-dev, steve.dower, tim.golden, zach.ware
Priority: normal Keywords: patch

Created on 2015年01月03日 12:28 by BreamoreBoy, last changed 2022年04月11日 14:58 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
MSVCEdebugbuildoutput.log BreamoreBoy, 2015年01月03日 18:58
CMDdebugbuildoutput.log BreamoreBoy, 2015年01月03日 18:59
issue23154.diff zach.ware, 2015年01月03日 23:42 review
Messages (12)
msg233355 - (view) Author: Mark Lawrence (BreamoreBoy) * Date: 2015年01月03日 12:28
I've suspected that this is the case for some time but I've confirmed it this morning. I ran synchronize and the highest revision was 94004 "Changes %s to %ls in wprintf in launcher.c for C99 compatibility." As expected MSVC rebuilt the launcher. Later I reran synchronize and the highest revision was 94009 "Update bundled pip and setuptools to 6.0.6 and 11.0.". The output from the 64 bit Release build concluded "31 succeeded, 0 failed, 5 up-to-date, 1 skipped". There also seems to be a toggle operating between the Release and Debug builds such that only one rebuilds at any one time.
msg233358 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2015年01月03日 15:05
This is because the hg id result has changed and we embed that into python35.dll. You'll see the same thing after an edit too (when the revision has + added).
msg233360 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2015年01月03日 16:12
To clarify a bit, there's very little re-compiling, but everything that references the pythoncore project (every extension) is re-linked. There's no way around that short of not including the hg revision (which I won't accept :), but the re-linking only takes a fraction of a second per project.
msg233361 - (view) Author: Mark Lawrence (BreamoreBoy) * Date: 2015年01月03日 16:19
Then we're not talking about the same thing. Maybe my setup is wrong, but a load of files were recompiled (from memory I think from sections 3 and 4 of the Release build) so it took minutes rather than fractions of a second.
msg233362 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2015年01月03日 17:01
Hmmm, what are sections 3 and 4? Are you building from the VS GUI or
Command Prompt?
From Command Prompt in a clean checkout, running PCbuild\build.bat -d -e
(debug build) should take several minutes. The same again should be quick,
and then just "PCbuild\build.bat" (release build) should take a while, and
the same again should be quick. If you then do another debug build (add
"-d" back), it will take a bit of time due to rebuilding (or at least
re-"installing") Tcl/Tk. Otherwise, things should be pretty quick.
I haven't tested any of that this morning, though; how far off is that from
your experience, Mark?
msg233364 - (view) Author: Mark Lawrence (BreamoreBoy) * Date: 2015年01月03日 18:58
I build from the GUI. I've just tried the Release build, it very quickly rebuilt the first four items and said the rest were up to date. I switched to Debug and got the output in the attached file. This is what I meant earlier by the effect toggling between the two builds.
I tried what you suggested from the command line. I'll attach the end of the output from the final run of the debug build in a moment as I can't see how to put it in in one pass here.
msg233377 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2015年01月03日 23:42
On testing, you are correct, Mark. Sorry for the premature close.
How does this patch look to you, Steve?
msg233378 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2015年01月04日 00:23
Ah, I forgot to put Configuration in there. That patch is fine.
If it's only the OpenSSL projects doing this, that shouldn't cause 31 projects to rebuild (4 at most I'd have though), but it probably will cause more rebuilds than necessary.
msg233381 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2015年01月04日 01:04
Our original explanation accounts for the 31 projects "rebuilding".
I'll get the patch committed later tonight (hopefully).
msg233388 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2015年01月04日 04:33
New changeset d53506fe31e1 by Zachary Ware in branch 'default':
Closes #23154: Fix unnecessary recompilation of OpenSSL on Windows
https://hg.python.org/cpython/rev/d53506fe31e1 
msg234478 - (view) Author: Mark Lawrence (BreamoreBoy) * Date: 2015年01月22日 07:28
I've noticed a similar problem this morning with 5 modules rebuilt under Debug but 29 under Release. I believe the change that triggered me spotting it is this fb8a093db8b1 Issue #23095. Do we need a new issue for this?
msg234492 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2015年01月22日 14:10
That change modified pythoncore, so I'd expect to see most projects rebuild. Especially under Release, where we don't have some of the build optimizations enabled (because they hurt runtime performance).
History
Date User Action Args
2022年04月11日 14:58:11adminsetgithub: 67343
2015年01月22日 14:10:17steve.dowersetmessages: + msg234492
2015年01月22日 07:28:38BreamoreBoysetmessages: + msg234478
2015年01月04日 04:33:29python-devsetstatus: open -> closed

nosy: + python-dev
messages: + msg233388

resolution: fixed
stage: resolved
2015年01月04日 01:04:11zach.waresetmessages: + msg233381
2015年01月04日 00:23:20steve.dowersetmessages: + msg233378
2015年01月03日 23:42:55zach.waresetstatus: closed -> open
files: + issue23154.diff

assignee: zach.ware
keywords: + patch
messages: + msg233377
type: behavior
resolution: not a bug -> (no value)
stage: resolved -> (no value)
2015年01月03日 18:59:58BreamoreBoysetfiles: + CMDdebugbuildoutput.log
2015年01月03日 18:58:37BreamoreBoysetfiles: + MSVCEdebugbuildoutput.log

messages: + msg233364
2015年01月03日 17:10:31jklothsetnosy: + jkloth
2015年01月03日 17:01:53zach.waresetmessages: + msg233362
2015年01月03日 16:19:09BreamoreBoysetmessages: + msg233361
2015年01月03日 16:12:34zach.waresetstatus: open -> closed
resolution: not a bug
messages: + msg233360

stage: resolved
2015年01月03日 15:05:35steve.dowersetmessages: + msg233358
2015年01月03日 12:28:23BreamoreBoycreate

AltStyle によって変換されたページ (->オリジナル) /