[Python-checkins] cpython (merge 3.5 -> default): Merge 3.5

serhiy.storchaka python-checkins at python.org
Fri Sep 4 07:37:05 CEST 2015


https://hg.python.org/cpython/rev/96c79e2a8cef
changeset:   97651:96c79e2a8cef
parent:      97649:9d01d914bd3f
parent:      97650:d05ade34d454
user:        Serhiy Storchaka <storchaka at gmail.com>
date:        Fri Sep 04 08:34:57 2015 +0300
summary:
  Merge 3.5

files:
  Misc/NEWS               |  15 +++++++++++++++
  PCbuild/build.bat       |  24 ++++++++++++++++++++++--
  PCbuild/pcbuild.proj    |  14 ++++++++++----
  PCbuild/rt.bat          |   4 +++-
  Tools/buildbot/test.bat |  26 +++++++++++++++-----------
  5 files changed, 65 insertions(+), 18 deletions(-)


diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -131,6 +131,18 @@
 - Issue #22812: Fix unittest discovery examples.
   Patch from Pam McA'Nulty.
 
+Tests
+-----
+
+- PCbuild\rt.bat now accepts an unlimited number of arguments to pass along
+  to regrtest.py.  Previously there was a limit of 9.
+
+Build
+-----
+
+- Issue #24986: It is now possible to build Python on Windows without errors
+  when external libraries are not available.
+
 
 What's New in Python 3.5.0 release candidate 3?
 ===============================================
@@ -145,6 +157,9 @@
 Library
 -------
 
+- Issue #24913: Fix overrun error in deque.index().
+  Found by John Leitch and Bryce Darling.
+
 - Issue #24989: Fixed buffer overread in BytesIO.readline() if a position is
   set beyond size.  Based on patch by John Leitch.
 
diff --git a/PCbuild/build.bat b/PCbuild/build.bat
--- a/PCbuild/build.bat
+++ b/PCbuild/build.bat
@@ -18,12 +18,19 @@
 echo.  -r  Target Rebuild instead of Build
 echo.  -d  Set the configuration to Debug
 echo.  -e  Build external libraries fetched by get_externals.bat
+echo.      Extension modules that depend on external libraries will not attempt
+echo.      to build if this flag is not present
 echo.  -m  Enable parallel build (enabled by default)
 echo.  -M  Disable parallel build
 echo.  -v  Increased output messages
 echo.  -k  Attempt to kill any running Pythons before building (usually done
 echo.      automatically by the pythoncore project)
 echo.
+echo.Available flags to avoid building certain modules.
+echo.These flags have no effect if '-e' is not given:
+echo.  --no-ssl      Do not attempt to build _ssl
+echo.  --no-tkinter  Do not attempt to build Tkinter
+echo.
 echo.Available arguments:
 echo.  -c Release ^| Debug ^| PGInstrument ^| PGUpdate
 echo.     Set the configuration (default: Release)
@@ -51,12 +58,21 @@
 if "%~1"=="-r" (set target=Rebuild) & shift & goto CheckOpts
 if "%~1"=="-t" (set target=%2) & shift & shift & goto CheckOpts
 if "%~1"=="-d" (set conf=Debug) & shift & goto CheckOpts
-if "%~1"=="-e" call "%dir%get_externals.bat" & shift & goto CheckOpts
 if "%~1"=="-m" (set parallel=/m) & shift & goto CheckOpts
 if "%~1"=="-M" (set parallel=) & shift & goto CheckOpts
 if "%~1"=="-v" (set verbose=/v:n) & shift & goto CheckOpts
 if "%~1"=="-k" (set kill=true) & shift & goto CheckOpts
 if "%~1"=="-V" shift & goto Version
+rem These use the actual property names used by MSBuild.  We could just let
+rem them in through the environment, but we specify them on the command line
+rem anyway for visibility so set defaults after this
+if "%~1"=="-e" (set IncludeExternals=true) & call "%dir%get_externals.bat" & shift & goto CheckOpts
+if "%~1"=="--no-ssl" (set IncludeSSL=false) & shift & goto CheckOpts
+if "%~1"=="--no-tkinter" (set IncludeTkinter=false) & shift & goto CheckOpts
+
+if "%IncludeExternals%"=="" set IncludeExternals=false
+if "%IncludeSSL%"=="" set IncludeSSL=true
+if "%IncludeTkinter%"=="" set IncludeTkinter=true
 
 if "%platf%"=="x64" (set vs_platf=x86_amd64)
 
@@ -71,7 +87,11 @@
 rem Passing %1-9 is not the preferred option, but argument parsing in
 rem batch is, shall we say, "lackluster"
 echo on
-msbuild "%dir%pcbuild.proj" /t:%target% %parallel% %verbose% /p:Configuration=%conf% /p:Platform=%platf% %1 %2 %3 %4 %5 %6 %7 %8 %9
+msbuild "%dir%pcbuild.proj" /t:%target% %parallel% %verbose%^
+ /p:Configuration=%conf% /p:Platform=%platf%^
+ /p:IncludeExternals=%IncludeExternals%^
+ /p:IncludeSSL=%IncludeSSL% /p:IncludeTkinter=%IncludeTkinter%^
+ %1 %2 %3 %4 %5 %6 %7 %8 %9
 
 @goto :eof
 
diff --git a/PCbuild/pcbuild.proj b/PCbuild/pcbuild.proj
--- a/PCbuild/pcbuild.proj
+++ b/PCbuild/pcbuild.proj
@@ -5,8 +5,10 @@
     <Platform Condition="'$(Platform)' == ''">Win32</Platform>
     <Configuration Condition="'$(Configuration)' == ''">Release</Configuration>
     <IncludeExtensions Condition="'$(IncludeExtensions)' == ''">true</IncludeExtensions>
+    <IncludeExternals Condition="'$(IncludeExternals)' == ''">true</IncludeExternals>
     <IncludeTests Condition="'$(IncludeTest)' == ''">true</IncludeTests>
     <IncludeSSL Condition="'$(IncludeSSL)' == ''">true</IncludeSSL>
+    <IncludeTkinter Condition="'$(IncludeTkinter)' == ''">true</IncludeTkinter>
   </PropertyGroup>
 
   <ItemDefinitionGroup>
@@ -25,7 +27,7 @@
     <!--
     Parallel build is explicitly disabled for this project because it
     causes many conflicts between pythoncore and projects that depend
-    in pythoncore. Once the core DLL has been built, subsequent
+    on pythoncore. Once the core DLL has been built, subsequent
     projects will be built in parallel.
     -->
     <Projects Include="pythoncore.vcxproj">
@@ -40,10 +42,14 @@
     <!-- _freeze_importlib -->
     <Projects Include="_freeze_importlib.vcxproj" />
     <!-- Extension modules -->
-    <ExtensionModules Include="_bz2;_ctypes;_decimal;_elementtree;_lzma;_msi;_multiprocessing;_overlapped;_sqlite3;_tkinter;tix;pyexpat;select;unicodedata;winsound" />
+    <ExtensionModules Include="_ctypes;_decimal;_elementtree;_msi;_multiprocessing;_overlapped;pyexpat;select;unicodedata;winsound" />
+    <!-- Extension modules that require external sources -->
+    <ExternalModules Include="_bz2;_lzma;_sqlite3" />
     <!-- _ssl will build _socket as well, which may cause conflicts in parallel builds -->
-    <ExtensionModules Include="_socket" Condition="!$(IncludeSSL)" />
-    <ExtensionModules Include="_ssl;_hashlib" Condition="$(IncludeSSL)" />
+    <ExtensionModules Include="_socket" Condition="!$(IncludeSSL) or !$(IncludeExternals)" />
+    <ExternalModules Include="_ssl;_hashlib" Condition="$(IncludeSSL)" />
+    <ExternalModules Include="_tkinter;tix" Condition="$(IncludeTkinter)" />
+    <ExtensionModules Include="@(ExternalModules->'%(Identity)')" Condition="$(IncludeExternals)" />
     <Projects Include="@(ExtensionModules->'%(Identity).vcxproj')" Condition="$(IncludeExtensions)" />
     <!-- Test modules -->
     <TestModules Include="_ctypes_test;_testbuffer;_testcapi;_testembed;_testimportmultiple;_testmultiphase" />
diff --git a/PCbuild/rt.bat b/PCbuild/rt.bat
--- a/PCbuild/rt.bat
+++ b/PCbuild/rt.bat
@@ -32,15 +32,17 @@
 set suffix=
 set qmode=
 set dashO=
+set regrtestargs=
 
 :CheckOpts
 if "%1"=="-O" (set dashO=-O)     & shift & goto CheckOpts
 if "%1"=="-q" (set qmode=yes)    & shift & goto CheckOpts
 if "%1"=="-d" (set suffix=_d)    & shift & goto CheckOpts
 if "%1"=="-x64" (set prefix=%pcbuild%amd64\) & shift & goto CheckOpts
+if NOT "%1"=="" (set regrtestargs=%regrtestargs% %1) & shift & goto CheckOpts
 
 set exe=%prefix%python%suffix%.exe
-set cmd="%exe%" %dashO% -Wd -E -bb "%pcbuild%..\lib\test\regrtest.py" %1 %2 %3 %4 %5 %6 %7 %8 %9
+set cmd="%exe%" %dashO% -Wd -E -bb "%pcbuild%..\lib\test\regrtest.py" %regrtestargs%
 if defined qmode goto Qmode
 
 echo Deleting .pyc/.pyo files ...
diff --git a/Tools/buildbot/test.bat b/Tools/buildbot/test.bat
--- a/Tools/buildbot/test.bat
+++ b/Tools/buildbot/test.bat
@@ -1,15 +1,19 @@
- at rem Used by the buildbot "test" step.
- at setlocal
+ at echo off
+rem Used by the buildbot "test" step.
+setlocal
 
- at set here=%~dp0
- at set rt_opts=-q -d
+set here=%~dp0
+set rt_opts=-q -d
+set regrtest_args=
 
 :CheckOpts
- at if '%1'=='-x64' (set rt_opts=%rt_opts% %1) & shift & goto CheckOpts
- at if '%1'=='-d' (set rt_opts=%rt_opts% %1) & shift & goto CheckOpts
- at if '%1'=='-O' (set rt_opts=%rt_opts% %1) & shift & goto CheckOpts
- at if '%1'=='-q' (set rt_opts=%rt_opts% %1) & shift & goto CheckOpts
- at if '%1'=='+d' (set rt_opts=%rt_opts:-d=%) & shift & goto CheckOpts
- at if '%1'=='+q' (set rt_opts=%rt_opts:-q=%) & shift & goto CheckOpts
+if "%1"=="-x64" (set rt_opts=%rt_opts% %1) & shift & goto CheckOpts
+if "%1"=="-d" (set rt_opts=%rt_opts% %1) & shift & goto CheckOpts
+if "%1"=="-O" (set rt_opts=%rt_opts% %1) & shift & goto CheckOpts
+if "%1"=="-q" (set rt_opts=%rt_opts% %1) & shift & goto CheckOpts
+if "%1"=="+d" (set rt_opts=%rt_opts:-d=%) & shift & goto CheckOpts
+if "%1"=="+q" (set rt_opts=%rt_opts:-q=%) & shift & goto CheckOpts
+if NOT "%1"=="" (set regrtest_args=%regrtest_args% %1) & shift & goto CheckOpts
 
-call "%here%..\..\PCbuild\rt.bat" %rt_opts% -uall -rwW -n --timeout=3600 %1 %2 %3 %4 %5 %6 %7 %8 %9
+echo on
+call "%here%..\..\PCbuild\rt.bat" %rt_opts% -uall -rwW -n --timeout=3600 %regrtest_args%

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list