summaryrefslogtreecommitdiffstats
path: root/Misc
diff options
context:
space:
mode:
Diffstat (limited to 'Misc')
-rw-r--r--Misc/ACKS46
-rw-r--r--Misc/HISTORY1115
-rw-r--r--Misc/NEWS6213
-rw-r--r--Misc/Porting2
-rw-r--r--Misc/coverity_model.c60
-rw-r--r--Misc/gdbinit4
-rw-r--r--Misc/python.man25
7 files changed, 2250 insertions, 5215 deletions
diff --git a/Misc/ACKS b/Misc/ACKS
index b377050..4d3e290 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -46,6 +46,7 @@ Pehr Anderson
Erik Andersén
Oliver Andrich
Ross Andrus
+Fabrice Aneche
Juancarlo Añez
Chris Angelico
Jérémy Anger
@@ -71,6 +72,7 @@ Dwayne Bailey
Stig Bakken
Greg Ball
Luigi Ballabio
+Thomas Ballinger
Jeff Balogh
Manuel Balsera
Matt Bandy
@@ -89,6 +91,7 @@ Richard Barran
Cesar Eduardo Barros
Des Barry
Ulf Bartelt
+Campbell Barton
Don Bashford
Pior Bastida
Nick Bastin
@@ -100,6 +103,7 @@ Mike Bayer
Samuel L. Bayer
Donald Beaudry
David Beazley
+Ingolf Becker
Neal Becker
Robin Becker
Torsten Becker
@@ -151,6 +155,7 @@ Wouter Bolsterlee
Gawain Bolton
Forest Bond
Gregory Bond
+Médéric Boquien
Matias Bordese
Jonas Borgström
Jurjen Bos
@@ -230,10 +235,12 @@ Pascal Chambon
John Chandler
Hye-Shik Chang
Jeffrey Chang
+Gavin Chappell
Godefroid Chapelle
Brad Chapman
Greg Chapman
Mitch Chapman
+Matt Chaput
Yogesh Chaudhari
David Chaum
Nicolas Chauvat
@@ -473,6 +480,7 @@ Stephen M. Gava
Xavier de Gaye
Harry Henry Gebel
Marius Gedminas
+Jan-Philip Gehrcke
Thomas Gellekum
Gabriel Genellina
Christos Georgiou
@@ -485,6 +493,7 @@ Johannes Gijsbers
Michael Gilfix
Julian Gindi
Yannick Gingras
+Neil Girdhar
Matt Giuca
Wim Glenn
Michael Goderbauer
@@ -499,6 +508,7 @@ Shelley Gooch
David Goodger
Hans de Graaff
Tim Graham
+Kim Gräsman
Nathaniel Gray
Eddy De Greef
Grant Griffin
@@ -572,6 +582,7 @@ Kevan Heydon
Wouter van Heyst
Kelsey Hightower
Jason Hildebrand
+Aaron Hill
Richie Hindle
Konrad Hinsen
David Hobley
@@ -606,6 +617,7 @@ Alan Hourihane
Ken Howard
Brad Howes
Mike Hoy
+Ben Hoyt
Chih-Hao Huang
Christian Hudon
Lawrence Hudson
@@ -625,6 +637,7 @@ Ali Ikinci
Aaron Iles
Lars Immisch
Bobby Impollonia
+Naoki Inada
Meador Inge
Peter Ingebretson
Tony Ingraldi
@@ -649,11 +662,13 @@ Juhana Jauhiainen
Rajagopalasarma Jayakrishnan
Zbigniew Jędrzejewski-Szmek
Julien Jehannet
+Muhammad Jehanzeb
Drew Jenkins
Flemming Kjær Jensen
Philip H. Jensen
Philip Jenvey
MunSic Jeong
+Joe Jevnik
Chris Jerdonek
Jim Jewett
Pedro Diaz Jimenez
@@ -668,6 +683,7 @@ Thomas Jollans
Nicolas Joly
Brian K. Jones
Evan Jones
+Glenn Jones
Jeremy Jones
Richard Jones
Irmen de Jong
@@ -690,12 +706,15 @@ Peter van Kampen
Jan Kanis
Rafe Kaplan
Jacob Kaplan-Moss
+Allison Kaptur
Janne Karila
Per Øyvind Karlsen
Anton Kasyanov
Lou Kates
Makoto Kato
Hiroaki Kawai
+Dmitry Kazakov
+Brian Kearns
Sebastien Keim
Ryan Kelly
Dan Kenigsberg
@@ -706,11 +725,13 @@ Magnus Kessler
Lawrence Kesteloot
Vivek Khera
Dhiru Kholia
+Akshit Khurana
Mads Kiilerich
Jason Killen
Jan Kim
Taek Joo Kim
Sam Kimbrel
+James King
W. Trevor King
Paul Kippes
Steve Kirsch
@@ -781,6 +802,7 @@ Ben Laurie
Simon Law
Julia Lawall
Chris Lawrence
+Mark Lawrence
Brian Leair
Mathieu Leduc-Hamel
Amandine Lee
@@ -818,6 +840,7 @@ Ross Light
Shawn Ligocki
Martin Ligr
Gediminas Liktaras
+Vitor de Lima
Grant Limberg
Christopher Lindblad
Ulf A. Lindgren
@@ -834,6 +857,7 @@ Anne Lord
Tom Loredo
Justin Love
Ned Jackson Lovely
+Chalmer Lowe
Jason Lowe
Tony Lownds
Ray Loyzaga
@@ -887,9 +911,11 @@ Madison May
Lucas Maystre
Arnaud Mazin
Matt McClure
+Jack McCracken
Rebecca McCreary
Kirk McDonald
Chris McDonough
+Michael McFadden
Greg McFarlane
Alan McIntyre
Jessica McKellar
@@ -993,6 +1019,7 @@ Nigel O'Brian
John O'Connor
Kevin O'Connor
Tim O'Malley
+Dan O'Reilly
Zooko O'Whielacronx
Aaron Oakley
James Oakley
@@ -1032,6 +1059,7 @@ Peter Parente
Alexandre Parenteau
Dan Parisien
William Park
+Claude Paroz
Heikki Partanen
Harri Pasanen
Gaël Pasgrimaud
@@ -1106,6 +1134,8 @@ Thomas Rachel
Ram Rachum
Jérôme Radix
Burton Radons
+Abhilash Raj
+Shorya Raj
Jeff Ramnani
Brodie Rao
Senko Rasic
@@ -1147,6 +1177,7 @@ Juan M. Bello Rivas
Davide Rizzo
Anthony Roach
Carl Robben
+Ben Roberts
Mark Roberts
Andy Robinson
Jim Robinson
@@ -1162,6 +1193,7 @@ Armin Ronacher
Case Roole
Timothy Roscoe
Erik Rose
+Josh Rosenberg
Jim Roskind
Brian Rosner
Guido van Rossum
@@ -1180,6 +1212,7 @@ Demur Rumed
Audun S. Runde
Eran Rundstein
Rauli Ruohonen
+Laura Rupprecht
Jeff Rush
Sam Rushing
Mark Russell
@@ -1193,6 +1226,7 @@ Sébastien Sablé
Suman Saha
Hajime Saitou
George Sakkis
+Victor Salgado
Rich Salz
Kevin Samborn
Adrian Sampson
@@ -1293,6 +1327,7 @@ Paul Sokolovsky
Evgeny Sologubov
Cody Somerville
Edoardo Spadolini
+Geoffrey Spear
Clay Spence
Stefan Sperling
Nicholas Spies
@@ -1338,6 +1373,7 @@ Thenault Sylvain
Péter Szabó
John Szakmeister
Amir Szekely
+Maciej Szulik
Arfrever Frehtes Taifersar Arahesis
Hideaki Takahashi
Indra Talip
@@ -1350,6 +1386,7 @@ Steven Taschuk
Amy Taylor
Monty Taylor
Anatoly Techtonik
+Gustavo Temple
Mikhail Terekhov
Victor Terrón
Richard M. Tew
@@ -1382,6 +1419,7 @@ David Townshend
Nathan Trapuzzano
Laurence Tratt
Alberto Trevino
+Mayank Tripathi
Matthias Troffaes
Tom Tromey
John Tromp
@@ -1403,6 +1441,7 @@ Roger Upole
Daniel Urban
Michael Urman
Hector Urtubia
+Lukas Vacek
Ville Vainio
Andi Vajda
Case Van Horsen
@@ -1427,10 +1466,13 @@ Norman Vine
Pauli Virtanen
Frank Visser
Johannes Vogel
+Michael Vogt
+Radu Voicilas
Alex Volkov
Martijn Vries
Sjoerd de Vries
Guido Vranken
+Daniel Wagner-Hall
Niki W. Waibel
Wojtek Walczak
Charles Waldman
@@ -1449,6 +1491,7 @@ Bob Watson
David Watson
Aaron Watters
Henrik Weber
+Leon Weber
Corran Webster
Glyn Webster
Phil Webster
@@ -1477,6 +1520,7 @@ Sue Williams
Carol Willing
Steven Willis
Frank Willison
+David Wilson
Geoff Wilson
Greg V. Wilson
J Derek Wilson
@@ -1502,11 +1546,13 @@ Gordon Worley
Darren Worrall
Thomas Wouters
Daniel Wozniak
+Wei Wu
Heiko Wundram
Doug Wyatt
Robert Xiao
Florent Xicluna
Hirokazu Yamamoto
+Arnon Yaari
Ka-Ping Yee
Jason Yeo
EungJun Yi
diff --git a/Misc/HISTORY b/Misc/HISTORY
index f483759..0462f4e 100644
--- a/Misc/HISTORY
+++ b/Misc/HISTORY
@@ -18,13 +18,13 @@ Core and Builtins
- Issue #16046: Fix loading sourceless legacy .pyo files.
-- Issue #16060: Fix refcounting bug when __trunc__ returns an object
- whose __int__ gives a non-integer. Patch by Serhiy Storchaka.
+- Issue #16060: Fix refcounting bug when `__trunc__()` returns an object whose
+ `__int__()` gives a non-integer. Patch by Serhiy Storchaka.
Extension Modules
-----------------
-- Issue #16012: Fix a regression in pyexpat. The parser's UseForeignDTD()
+- Issue #16012: Fix a regression in pyexpat. The parser's `UseForeignDTD()`
method doesn't require an argument again.
@@ -36,26 +36,26 @@ What's New in Python 3.3.0 Release Candidate 3?
Core and Builtins
-----------------
-- Issue #15900: Fix reference leak in PyUnicode_TranslateCharmap().
+- Issue #15900: Fix reference leak in `PyUnicode_TranslateCharmap()`.
- Issue #15926: Fix crash after multiple reinitializations of the interpreter.
- Issue #15895: Fix FILE pointer leak in one error branch of
- PyRun_SimpleFileExFlags() when filename points to a pyc/pyo file, closeit
- is false an and set_main_loader() fails.
+ `PyRun_SimpleFileExFlags()` when filename points to a pyc/pyo file, closeit is
+ false an and set_main_loader() fails.
- Fixes for a few crash and memory leak regressions found by Coverity.
Library
-------
-- Issue #15882: Change _decimal to accept any coefficient tuple when
- constructing infinities. This is done for backwards compatibility
- with decimal.py: Infinity coefficients are undefined in _decimal
- (in accordance with the specification).
+- Issue #15882: Change `_decimal` to accept any coefficient tuple when
+ constructing infinities. This is done for backwards compatibility with
+ decimal.py: Infinity coefficients are undefined in _decimal (in accordance
+ with the specification).
-- Issue #15925: Fix a regression in email.util where the parsedate() and
- parsedate_tz() functions did not return None anymore when the argument could
+- Issue #15925: Fix a regression in `email.util` where the `parsedate()` and
+ `parsedate_tz()` functions did not return None anymore when the argument could
not be parsed.
Extension Modules
@@ -67,7 +67,7 @@ Extension Modules
- Issue #15977: Fix memory leak in Modules/_ssl.c when the function
_set_npn_protocols() is called multiple times, thanks to Daniel Sommermann.
-- Issue #15969: faulthandler module: rename dump_tracebacks_later() to
+- Issue #15969: `faulthandler` module: rename dump_tracebacks_later() to
dump_traceback_later() and cancel_dump_tracebacks_later() to
cancel_dump_traceback_later().
@@ -83,35 +83,37 @@ Core and Builtins
-----------------
- Issue #13992: The trashcan mechanism is now thread-safe. This eliminates
- sporadic crashes in multi-thread programs when several long deallocator
- chains ran concurrently and involved subclasses of built-in container
- types.
+ sporadic crashes in multi-thread programs when several long deallocator chains
+ ran concurrently and involved subclasses of built-in container types.
-- Issue #15784: Modify OSError.__str__() to better distinguish between
- errno error numbers and Windows error numbers.
+- Issue #15784: Modify `OSError`.__str__() to better distinguish between errno
+ error numbers and Windows error numbers.
- Issue #15781: Fix two small race conditions in import's module locking.
Library
-------
-- Issue #15847: Fix a regression in argparse, which did not accept tuples
- as argument lists anymore.
+- Issue #17158: Add 'symbols' to help() welcome message; clarify
+ 'modules spam' messages.
+
+- Issue #15847: Fix a regression in argparse, which did not accept tuples as
+ argument lists anymore.
-- Issue #15828: Restore support for C extensions in imp.load_module().
+- Issue #15828: Restore support for C extensions in `imp.load_module()`.
-- Issue #15340: Fix importing the random module when /dev/urandom cannot
- be opened. This was a regression caused by the hash randomization patch.
+- Issue #15340: Fix importing the random module when ``/dev/urandom`` cannot be
+ opened. This was a regression caused by the hash randomization patch.
-- Issue #10650: Deprecate the watchexp parameter of the Decimal.quantize()
+- Issue #10650: Deprecate the watchexp parameter of the `Decimal.quantize()`
method.
-- Issue #15785: Modify window.get_wch() API of the curses module: return
- a character for most keys, and an integer for special keys, instead of
- always returning an integer. So it is now possible to distinguish special
- keys like keypad keys.
+- Issue #15785: Modify `window.get_wch()` API of the curses module: return a
+ character for most keys, and an integer for special keys, instead of always
+ returning an integer. So it is now possible to distinguish special keys like
+ keypad keys.
-- Issue #14223: Fix window.addch() of the curses module for special characters
+- Issue #14223: Fix `window.addch()` of the curses module for special characters
like curses.ACS_HLINE: the Python function addch(int) and addch(bytes) is now
calling the C function waddch()/mvwaddch() (as it was done in Python 3.2),
instead of wadd_wch()/mvwadd_wch(). The Python function addch(str) is still
@@ -127,10 +129,10 @@ Build
Documentation
-------------
-- Issue #15814: The memoryview enhancements in 3.3.0 accidentally permitted
- the hashing of multi-dimensional memorviews and memoryviews with multi-byte
- item formats. The intended restrictions have now been documented - they
- will be correctly enforced in 3.3.1
+- Issue #15814: The memoryview enhancements in 3.3.0 accidentally permitted the
+ hashing of multi-dimensional memorviews and memoryviews with multi-byte item
+ formats. The intended restrictions have now been documented - they will be
+ correctly enforced in 3.3.1.
What's New in Python 3.3.0 Release Candidate 1?
@@ -144,131 +146,123 @@ Core and Builtins
- Issue #15573: memoryview comparisons are now performed by value with full
support for any valid struct module format definition.
-- Issue #15316: When an item in the fromlist for __import__ doesn't exist,
+- Issue #15316: When an item in the fromlist for `__import__()` doesn't exist,
don't raise an error, but if an exception is raised as part of an import do
let that propagate.
-- Issue #15778: ensure that str(ImportError(msg)) returns a str
- even when msg isn't a str.
+- Issue #15778: Ensure that ``str(ImportError(msg))`` returns a str even when
+ msg isn't a str.
-- Issue #2051: Source file permission bits are once again correctly
- copied to the cached bytecode file. (The migration to importlib
- reintroduced this problem because these was no regression test. A test
- has been added as part of this patch)
+- Issue #2051: Source file permission bits are once again correctly copied to
+ the cached bytecode file. (The migration to importlib reintroduced this
+ problem because these was no regression test. A test has been added as part of
+ this patch)
-- Issue #15761: Fix crash when PYTHONEXECUTABLE is set on Mac OS X.
+- Issue #15761: Fix crash when ``PYTHONEXECUTABLE`` is set on Mac OS X.
-- Issue #15726: Fix incorrect bounds checking in PyState_FindModule.
- Patch by Robin Schreiber.
+- Issue #15726: Fix incorrect bounds checking in PyState_FindModule. Patch by
+ Robin Schreiber.
-- Issue #15604: Update uses of PyObject_IsTrue() to check for and handle
+- Issue #15604: Update uses of `PyObject_IsTrue()` to check for and handle
errors correctly. Patch by Serhiy Storchaka.
-- Issue #14846: importlib.FileFinder now handles the case where the
- directory being searched is removed after a previous import attempt
+- Issue #14846: `importlib.FileFinder` now handles the case where the directory
+ being searched is removed after a previous import attempt.
Library
-------
-- Issue #13370: Ensure that ctypes works on Mac OS X when Python is
- compiled using the clang compiler
+- Issue #13370: Ensure that ctypes works on Mac OS X when Python is compiled
+ using the clang compiler.
-- Issue #13072: The array module's 'u' format code is now deprecated and
- will be removed in Python 4.0.
+- Issue #13072: The array module's 'u' format code is now deprecated and will be
+ removed in Python 4.0.
- Issue #15544: Fix Decimal.__float__ to work with payload-carrying NaNs.
-- Issue #15249: BytesGenerator now correctly mangles From lines (when
+- Issue #15776: Allow pyvenv to work in existing directory with --clean.
+
+- Issue #15249: email's BytesGenerator now correctly mangles From lines (when
requested) even if the body contains undecodable bytes.
- Issue #15777: Fix a refleak in _posixsubprocess.
-- Issue ##665194: Update email.utils.localtime to use datetime.astimezone and
+- Issue ##665194: Update `email.utils.localtime` to use datetime.astimezone and
correctly handle historic changes in UTC offsets.
- Issue #15199: Fix JavaScript's default MIME type to application/javascript.
Patch by Bohuslav Kabrda.
-- Issue #12643: code.InteractiveConsole now respects sys.excepthook when
- displaying exceptions (Patch by Aaron Iles)
-
-- Issue #13579: string.Formatter now understands the 'a' conversion specifier.
+- Issue #12643: `code.InteractiveConsole` now respects `sys.excepthook` when
+ displaying exceptions. Patch by Aaron Iles.
-- Issue #15793: Stack corruption in ssl.RAND_egd().
- Patch by Serhiy Storchaka.
+- Issue #13579: `string.Formatter` now understands the 'a' conversion specifier.
-- Issue #15595: Fix subprocess.Popen(universal_newlines=True)
- for certain locales (utf-16 and utf-32 family). Patch by Chris Jerdonek.
+- Issue #15595: Fix ``subprocess.Popen(universal_newlines=True)`` for certain
+ locales (utf-16 and utf-32 family). Patch by Chris Jerdonek.
- Issue #15477: In cmath and math modules, add workaround for platforms whose
system-supplied log1p function doesn't respect signs of zeros.
-- Issue #15715: importlib.__import__() will silence an ImportError when the use
- of fromlist leads to a failed import.
+- Issue #15715: `importlib.__import__()` will silence an ImportError when the
+ use of fromlist leads to a failed import.
-- Issue #14669: Fix pickling of connections and sockets on MacOSX
- by sending/receiving an acknowledgment after file descriptor transfer.
- TestPicklingConnection has been reenabled for MacOSX.
+- Issue #14669: Fix pickling of connections and sockets on Mac OS X by
+ sending/receiving an acknowledgment after file descriptor transfer.
+ TestPicklingConnection has been reenabled for Mac OS X.
- Issue #11062: Fix adding a message from file to Babyl mailbox.
-- Issue #15646: Prevent equivalent of a fork bomb when using
- multiprocessing on Windows without the "if __name__ == '__main__'"
- idiom.
+- Issue #15646: Prevent equivalent of a fork bomb when using `multiprocessing`
+ on Windows without the ``if __name__ == '__main__'`` idiom.
-- Issue #15678: Fix IDLE menus when started from OS X command line
- (3.3.0b2 regression).
-
-C API
------
-
-Extension Modules
------------------
+IDLE
+----
-Tools/Demos
------------
+- Issue #15678: Fix IDLE menus when started from OS X command line (3.3.0b2
+ regression).
Documentation
-------------
-- Issue #14674: Add a discussion of the json module's standard compliance.
+- Touched up the Python 2 to 3 porting guide.
+
+- Issue #14674: Add a discussion of the `json` module's standard compliance.
Patch by Chris Rebert.
- Create a 'Concurrent Execution' section in the docs, and split up the
'Optional Operating System Services' section to use a more user-centric
- classification scheme (splitting them across the new CE section, IPC and
- text processing). Operating system limitatons can be reflected with
- the Sphinx ``:platform:`` tag, it doesn't make sense as part of the Table of
- Contents.
+ classification scheme (splitting them across the new CE section, IPC and text
+ processing). Operating system limitations can be reflected with the Sphinx
+ ``:platform:`` tag, it doesn't make sense as part of the Table of Contents.
-- Issue #4966: Bring the sequence docs up to date for the Py3k transition
- and the many language enhancements since they were original written
+- Issue #4966: Bring the sequence docs up to date for the Py3k transition and
+ the many language enhancements since they were original written.
- The "path importer" misnomer has been replaced with Eric Snow's
- more-awkward-but-at-least-not-wrong suggestion of "path based finder" in
- the import system reference docs
+ more-awkward-but-at-least-not-wrong suggestion of "path based finder" in the
+ import system reference docs.
-- Issue #15640: Document importlib.abc.Finder as deprecated.
+- Issue #15640: Document `importlib.abc.Finder` as deprecated.
-- Issue #15630: Add an example for "continue" stmt in the tutorial. Patch by
+- Issue #15630: Add an example for "continue" stmt in the tutorial. Patch by
Daniel Ellis.
Tests
-----
- Issue #15747: ZFS always returns EOPNOTSUPP when attempting to set the
- UF_IMMUTABLE flag (via either chflags or lchflags); refactor affected
- tests in test_posix.py to account for this.
+ UF_IMMUTABLE flag (via either chflags or lchflags); refactor affected tests in
+ test_posix.py to account for this.
-- Issue #15285: Refactor the approach for testing connect timeouts using
- two external hosts that have been configured specifically for this type
- of test.
+- Issue #15285: Refactor the approach for testing connect timeouts using two
+ external hosts that have been configured specifically for this type of test.
-- Issue #15743: Remove the deprecated method usage in urllib tests. Patch by
+- Issue #15743: Remove the deprecated method usage in `urllib` tests. Patch by
Jeff Knupp.
-- Issue #15615: Add some tests for the json module's handling of invalid
- input data. Patch by Kushal Das.
+- Issue #15615: Add some tests for the `json` module's handling of invalid input
+ data. Patch by Kushal Das.
Build
-----
@@ -277,11 +271,11 @@ Build
- Pick up 32-bit launcher from PGO directory on 64-bit PGO build.
-- Drop PC\python_nt.h as it's not used. Add input dependency on custom
+- Drop ``PC\python_nt.h`` as it's not used. Add input dependency on custom
build step.
-- Issue #15511: Drop explicit dependency on pythonxy.lib from _decimal
- amd64 configuration.
+- Issue #15511: Drop explicit dependency on pythonxy.lib from _decimal amd64
+ configuration.
- Add missing PGI/PGO configurations for pywlauncher.
@@ -296,15 +290,15 @@ What's New in Python 3.3.0 Beta 2?
Core and Builtins
-----------------
-- Issue #15568: Fix the return value of "yield from" when StopIteration is
+- Issue #15568: Fix the return value of ``yield from`` when StopIteration is
raised by a custom iterator.
-- Issue #13119: sys.stdout and sys.stderr are now using "\r\n" newline on
+- Issue #13119: `sys.stdout` and `sys.stderr` are now using "\r\n" newline on
Windows, as Python 2.
- Issue #15534: Fix the fast-search function for non-ASCII Unicode strings.
-- Issue #15508: Fix the docstring for __import__ to have the proper default
+- Issue #15508: Fix the docstring for `__import__()` to have the proper default
value of 0 for 'level' and to not mention negative levels since they are not
supported.
@@ -317,17 +311,17 @@ Core and Builtins
byte code files) equal between 32-bit and 64-bit systems.
- Issue #1692335: Move initial exception args assignment to
- "BaseException.__new__" to help pickling of naive subclasses.
+ `BaseException.__new__()` to help pickling of naive subclasses.
-- Issue #12834: Fix PyBuffer_ToContiguous() for non-contiguous arrays.
+- Issue #12834: Fix `PyBuffer_ToContiguous()` for non-contiguous arrays.
-- Issue #15456: Fix code __sizeof__ after #12399 change. Patch by Serhiy
+- Issue #15456: Fix code `__sizeof__()` after #12399 change. Patch by Serhiy
Storchaka.
- Issue #15404: Refleak in PyMethodObject repr.
-- Issue #15394: An issue in PyModule_Create that caused references to be leaked
- on some error paths has been fixed. Patch by Julia Lawall.
+- Issue #15394: An issue in `PyModule_Create()` that caused references to be
+ leaked on some error paths has been fixed. Patch by Julia Lawall.
- Issue #15368: An issue that caused bytecode generation to be non-deterministic
has been fixed.
@@ -335,7 +329,7 @@ Core and Builtins
- Issue #15202: Consistently use the name "follow_symlinks" for new parameters
in os and shutil functions.
-- Issue #15314: __main__.__loader__ is now set correctly during interpreter
+- Issue #15314: ``__main__.__loader__`` is now set correctly during interpreter
startup.
- Issue #15111: When a module imported using 'from import' has an ImportError
@@ -350,57 +344,62 @@ Core and Builtins
- Issue #15110: Fix the tracebacks generated by "import xxx" to not show the
importlib stack frames.
+- Issue #16369: Global PyTypeObjects not initialized with PyType_Ready(...).
+
- Issue #15020: The program name used to search for Python's path is now
"python3" under Unix, not "python".
-- Issue #15033: Fix the exit status bug when modules invoked using -m swith,
+- Issue #15897: zipimport.c doesn't check return value of fseek().
+ Patch by Felipe Cruz.
+
+- Issue #15033: Fix the exit status bug when modules invoked using -m switch,
return the proper failure return value (1). Patch contributed by Jeff Knupp.
-- Issue #15229: An OSError subclass whose __init__ doesn't call back
+- Issue #15229: An `OSError` subclass whose __init__ doesn't call back
OSError.__init__ could produce incomplete instances, leading to crashes when
calling str() on them.
-- Issue 15307: Virtual environments now use symlinks with framework builds on
+- Issue #15307: Virtual environments now use symlinks with framework builds on
Mac OS X, like other POSIX builds.
Library
-------
-- Issue #15424: Add a __sizeof__ implementation for array objects. Patch by
+- Issue #14590: configparser now correctly strips inline comments when delimiter
+ occurs earlier without preceding space.
+
+- Issue #15424: Add a `__sizeof__()` implementation for array objects. Patch by
Ludwig Hähne.
- Issue #15576: Allow extension modules to act as a package's __init__ module.
-- Issue #15502: Have importlib.invalidate_caches() work on sys.meta_path instead
- of sys.path_importer_cache.
+- Issue #15502: Have `importlib.invalidate_caches()` work on `sys.meta_path`
+ instead of `sys.path_importer_cache`.
- Issue #15163: Pydoc shouldn't list __loader__ as module data.
- Issue #15471: Do not use mutable objects as defaults for
- importlib.__import__().
+ `importlib.__import__()`.
- Issue #15559: To avoid a problematic failure mode when passed to the bytes
- constructor, objects in the ipaddress module no longer implement __index__
- (they still implement __int__ as appropriate)
+ constructor, objects in the ipaddress module no longer implement `__index__()`
+ (they still implement `__int__()` as appropriate).
- Issue #15546: Fix handling of pathological input data in the peek() and
read1() methods of the BZ2File, GzipFile and LZMAFile classes.
-- Issue #13052: Fix IDLE crashing when replace string in Search/Replace dialog
- ended with '\'. Patch by Roger Serwy.
-
-- Issue #12655: Instead of requiring a custom type, os.sched_getaffinity and
- os.sched_setaffinity now use regular sets of integers to represent the CPUs a
- process is restricted to.
+- Issue #12655: Instead of requiring a custom type, `os.sched_getaffinity()` and
+ `os.sched_setaffinity()` now use regular sets of integers to represent the
+ CPUs a process is restricted to.
-- Issue #15538: Fix compilation of the getnameinfo() / getaddrinfo() emulation
- code. Patch by Philipp Hagemeister.
+- Issue #15538: Fix compilation of the `socket.getnameinfo()` /
+ `socket.getaddrinfo()` emulation code. Patch by Philipp Hagemeister.
- Issue #15519: Properly expose WindowsRegistryFinder in importlib (and use the
- correct term for it). Original patch by Eric Snow.
+ correct term for it). Original patch by Eric Snow.
- Issue #15502: Bring the importlib ABCs into line with the current state of the
- import protocols given PEP 420. Original patch by Eric Snow.
+ import protocols given PEP 420. Original patch by Eric Snow.
- Issue #15499: Launching a webbrowser in Unix used to sleep for a few seconds.
Original patch by Anton Barkovsky.
@@ -408,37 +407,36 @@ Library
- Issue #15463: The faulthandler module truncates strings to 500 characters,
instead of 100, to be able to display long file paths.
-- Issue #6056: Make multiprocessing use setblocking(True) on the sockets it
+- Issue #6056: Make `multiprocessing` use setblocking(True) on the sockets it
uses. Original patch by J Derek Wilson.
- Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
-- Issue #15041: Update "see also" list in tkinter documentation.
-
-- Issue #15413: os.times() had disappeared under Windows.
+- Issue #15413: `os.times()` had disappeared under Windows.
-- Issue #15402: An issue in the struct module that caused sys.getsizeof to
+- Issue #15402: An issue in the struct module that caused `sys.getsizeof()` to
return incorrect results for struct.Struct instances has been fixed. Initial
patch by Serhiy Storchaka.
-- Issue #15232: When mangle_from is True, email.Generator now correctly mangles
- lines that start with 'From ' that occur in a MIME preamble or epilogue.
+- Issue #15232: When mangle_from is True, `email.Generator` now correctly
+ mangles lines that start with 'From ' that occur in a MIME preamble or
+ epilogue.
- Issue #15094: Incorrectly placed #endif in _tkinter.c. Patch by Serhiy
Storchaka.
-- Issue #13922: argparse no longer incorrectly strips '--'s that appear after
+- Issue #13922: `argparse` no longer incorrectly strips '--'s that appear after
the first one.
-- Issue #12353: argparse now correctly handles null argument values.
+- Issue #12353: `argparse` now correctly handles null argument values.
- Issue #10017, issue #14998: Fix TypeError using pprint on dictionaries with
user-defined types as keys or other unorderable keys.
-- Issue #15397: inspect.getmodulename() is now based directly on importlib via a
- new importlib.machinery.all_suffixes() API.
+- Issue #15397: `inspect.getmodulename()` is now based directly on importlib via
+ a new `importlib.machinery.all_suffixes()` API.
-- Issue #14635: telnetlib will use poll() rather than select() when possible to
+- Issue #14635: `telnetlib` will use poll() rather than select() when possible to
avoid failing due to the select() file descriptor limit.
- Issue #15180: Clarify posixpath.join() error message when mixing str & bytes.
@@ -455,7 +453,7 @@ Library
- Issue #15233: Python now guarantees that callables registered with the atexit
module will be called in a deterministic order.
-- Issue #15238: shutil.copystat now copies Linux "extended attributes".
+- Issue #15238: `shutil.copystat()` now copies Linux "extended attributes".
- Issue #15230: runpy.run_path now correctly sets __package__ as described in
the documentation.
@@ -465,42 +463,42 @@ Library
- Issue #15294: Fix a regression in pkgutil.extend_path()'s handling of nested
namespace packages.
-- Issue #15056: imp.cache_from_source() and source_from_cache() raise
- NotImplementedError when sys.implementation.cache_tag is set to None.
+- Issue #15056: `imp.cache_from_source()` and `imp.source_from_cache()` raise
+ NotImplementedError when `sys.implementation.cache_tag` is set to None.
-- Issue #15256: Grammatical mistake in exception raised by imp.find_module().
+- Issue #15256: Grammatical mistake in exception raised by `imp.find_module()`.
-- Issue #5931: wsgiref environ variable SERVER_SOFTWARE will specify an
+- Issue #5931: `wsgiref` environ variable SERVER_SOFTWARE will specify an
implementation specific term like CPython, Jython instead of generic "Python".
- Issue #13248: Remove obsolete argument "max_buffer_size" of BufferedWriter and
BufferedRWPair, from the io module.
-- Issue #13248: Remove obsolete argument "version" of argparse.ArgumentParser.
+- Issue #13248: Remove obsolete argument "version" of `argparse.ArgumentParser`.
- Issue #14814: Implement more consistent ordering and sorting behaviour for
ipaddress objects.
-- Issue #14814: ipaddress network objects correctly return NotImplemented when
+- Issue #14814: `ipaddress` network objects correctly return NotImplemented when
compared to arbitrary objects instead of raising TypeError.
- Issue #14990: Correctly fail with SyntaxError on invalid encoding declaration.
-- Issue #14814: ipaddress now provides more informative error messages when
+- Issue #14814: `ipaddress` now provides more informative error messages when
constructing instances directly (changes permitted during beta due to
provisional API status).
-- Issue #15247: FileIO now raises an error when given a file descriptor pointing
- to a directory.
+- Issue #15247: `io.FileIO` now raises an error when given a file descriptor
+ pointing to a directory.
- Issue #15261: Stop os.stat(fd) crashing on Windows when fd not open.
-- Issue #15166: Implement imp.get_tag() using sys.implementation.cache_tag.
+- Issue #15166: Implement `imp.get_tag()` using `sys.implementation.cache_tag`.
-- Issue #15210: Catch KeyError when importlib.__init__ can't find
+- Issue #15210: Catch KeyError when `importlib.__init__()` can't find
_frozen_importlib in sys.modules, not ImportError.
-- Issue #15030: importlib.abc.PyPycLoader now supports the new source size
+- Issue #15030: `importlib.abc.PyPycLoader` now supports the new source size
header field in .pyc files.
- Issue #5346: Preserve permissions of mbox, MMDF and Babyl mailbox files on
@@ -513,7 +511,7 @@ Library
renamed over the old file when flush() is called on an mbox, MMDF or Babyl
mailbox.
-- Issue 10924: Fixed crypt.mksalt() to use a RNG that is suitable for
+- Issue #10924: Fixed `crypt.mksalt()` to use a RNG that is suitable for
cryptographic purpose.
- Issue #15184: Ensure consistent results of OS X configuration tailoring for
@@ -524,10 +522,10 @@ Library
C API
-----
-- Issue #15610: PyImport_ImportModuleEx() now uses a 'level' of 0 instead of -1.
+- Issue #15610: `PyImport_ImportModuleEx()` now uses a 'level' of 0 instead of -1.
-- Issues #15169, #14599: Strip out the C implementation of
- imp.source_from_cache() used by PyImport_ExecCodeModuleWithPathnames() and
+- Issue #15169, issue #14599: Strip out the C implementation of
+ `imp.source_from_cache()` used by PyImport_ExecCodeModuleWithPathnames() and
used the Python code instead. Leads to PyImport_ExecCodeModuleObject() to not
try to infer the source path from the bytecode path as
PyImport_ExecCodeModuleWithPathnames() does.
@@ -535,14 +533,17 @@ C API
Extension Modules
-----------------
-- Issue #15676: Now "mmap" check for empty files before doing the
- offset check. Patch by Steven Willis.
-
-- Issue #6493: An issue in ctypes on Windows that caused structure bitfields
- of type ctypes.c_uint32 and width 32 to incorrectly be set has been fixed.
+- Issue #6493: An issue in ctypes on Windows that caused structure bitfields of
+ type `ctypes.c_uint32` and width 32 to incorrectly be set has been fixed.
- Issue #15194: Update libffi to the 3.0.11 release.
+IDLE
+----
+
+- Issue #13052: Fix IDLE crashing when replace string in Search/Replace dialog
+ ended with ``\``. Patch by Roger Serwy.
+
Tools/Demos
-----------
@@ -562,8 +563,10 @@ Tools/Demos
Documentation
-------------
-- Issue #15444: Use proper spelling for non-ASCII contributor names. Patch
- by Serhiy Storchaka.
+- Issue #15041: Update "see also" list in tkinter documentation.
+
+- Issue #15444: Use proper spelling for non-ASCII contributor names. Patch by
+ Serhiy Storchaka.
- Issue #15295: Reorganize and rewrite the documentation on the import system.
@@ -578,25 +581,29 @@ Documentation
"changed" since they will no longer work with modules directly imported by
import itself.
-- Issue #13557: Clarify effect of giving two different namespaces to exec or
- execfile().
+- Issue #13557: Clarify effect of giving two different namespaces to `exec()` or
+ `execfile()`.
-- Issue #15250: Document that filecmp.dircmp compares files shallowly. Patch
+- Issue #15250: Document that `filecmp.dircmp()` compares files shallowly. Patch
contributed by Chris Jerdonek.
+- Issue #15442: Expose the default list of directories ignored by
+ `filecmp.dircmp()` as a module attribute, and expand the list to more modern
+ values.
+
Tests
-----
-- Issue #15467: Move helpers for __sizeof__ tests into test_support. Patch by
- Serhiy Storchaka.
+- Issue #15467: Move helpers for `__sizeof__()` tests into test_support. Patch
+ by Serhiy Storchaka.
- Issue #15320: Make iterating the list of tests thread-safe when running tests
in multiprocess mode. Patch by Chris Jerdonek.
-- Issue #15168: Move importlib.test to test.test_importlib.
+- Issue #15168: Move `importlib.test` to `test.test_importlib`.
- Issue #15091: Reactivate a test on UNIX which was failing thanks to a
- forgotten importlib.invalidate_caches() call.
+ forgotten `importlib.invalidate_caches()` call.
- Issue #15230: Adopted a more systematic approach in the runpy tests.
@@ -629,6 +636,8 @@ Build
- Issue #14018: Fix OS X Tcl/Tk framework checking when using OS X SDKs.
+- Issue #16256: OS X installer now sets correct permissions for doc directory.
+
- Issue #15431: Add _freeze_importlib project to regenerate importlib.h on
Windows. Patch by Kristján Valur Jónsson.
@@ -664,14 +673,9 @@ Core and Builtins
- Issue #11626: Add _SizeT functions to stable ABI.
-- Issue #15146: Add PyType_FromSpecWithBases. Patch by Robin Schreiber.
-
- Issue #15142: Fix reference leak when deallocating instances of types
created using PyType_FromSpec().
-- Issue #15042: Add PyState_AddModule and PyState_RemoveModule. Add version
- guard for Py_LIMITED_API additions. Patch by Robin Schreiber.
-
- Issue #10053: Don't close FDs when FileIO.__init__ fails. Loosely based on
the work by Hirokazu Yamamoto.
@@ -699,9 +703,6 @@ Core and Builtins
Library
-------
-- Issue #9803: Don't close IDLE on saving if breakpoint is open.
- Patch by Roger Serwy.
-
- Issue #12288: Consider '0' and '0.0' as valid initialvalue
for tkinter SimpleDialog.
@@ -720,14 +721,8 @@ Library
- Issue #15514: Correct __sizeof__ support for cpu_set.
Patch by Serhiy Storchaka.
-- Issue #15187: Bugfix: remove temporary directories test_shutil was leaving
- behind.
-
- Issue #15177: Added dir_fd parameter to os.fwalk().
-- Issue #15176: Clarified behavior, documentation, and implementation
- of os.listdir().
-
- Issue #15061: Re-implemented hmac.compare_digest() in C to prevent further
timing analysis and to support all buffer protocol aware objects as well as
ASCII only str instances safely.
@@ -827,10 +822,6 @@ Library
- Issue #15006: Allow equality comparison between naive and aware
time or datetime objects.
-- Issue #14982: Document that pkgutil's iteration functions require the
- non-standard iter_modules() method to be defined by an importer (something
- the importlib importers do not define).
-
- Issue #15036: Mailbox no longer throws an error if a flush is done
between operations when removing or changing multiple items in mbox,
MMDF, or Babyl mailboxes.
@@ -898,9 +889,6 @@ Library
- Issue #14969: Better handling of exception chaining in contextlib.ExitStack
-- Issue #14962: Update text coloring in IDLE shell window after changing
- options. Patch by Roger Serwy.
-
- Issue #14963: Convert contextlib.ExitStack.__exit__ to use an iterative
algorithm (Patch by Alon Horev)
@@ -913,6 +901,11 @@ Library
C-API
-----
+- Issue #15146: Add PyType_FromSpecWithBases. Patch by Robin Schreiber.
+
+- Issue #15042: Add PyState_AddModule and PyState_RemoveModule. Add version
+ guard for Py_LIMITED_API additions. Patch by Robin Schreiber.
+
- Issue #13783: Inadvertent additions to the public C API in the PEP 380
implementation have either been removed or marked as private interfaces.
@@ -921,9 +914,25 @@ Extension Modules
- Issue #15000: Support the "unique" x32 architecture in _posixsubprocess.c.
+IDLE
+----
+
+- Issue #9803: Don't close IDLE on saving if breakpoint is open.
+ Patch by Roger Serwy.
+
+- Issue #14962: Update text coloring in IDLE shell window after changing
+ options. Patch by Roger Serwy.
+
Documentation
-------------
+- Issue #15176: Clarified behavior, documentation, and implementation
+ of os.listdir().
+
+- Issue #14982: Document that pkgutil's iteration functions require the
+ non-standard iter_modules() method to be defined by an importer (something
+ the importlib importers do not define).
+
- Issue #15081: Document PyState_FindModule.
Patch by Robin Schreiber.
@@ -932,6 +941,9 @@ Documentation
Tests
-----
+- Issue #15187: Bugfix: remove temporary directories test_shutil was leaving
+ behind.
+
- Issue #14769: test_capi now has SkipitemTest, which cleverly checks
for "parity" between PyArg_ParseTuple() and the Python/getargs.c static
function skipitem() for all possible "format units".
@@ -1020,34 +1032,18 @@ Core and Builtins
- Issue #14700: Fix two broken and undefined-behaviour-inducing overflow checks
in old-style string formatting.
-- Issue #14705: The PyArg_Parse() family of functions now support the 'p' format
- unit, which accepts a "boolean predicate" argument. It converts any Python
- value into an integer--0 if it is "false", and 1 otherwise.
-
Library
-------
- Issue #14690: Use monotonic clock instead of system clock in the sched,
subprocess and trace modules.
-- Issue #14958: Change IDLE systax highlighting to recognize all string and
- byte literals supported in Python 3.3.
-
-- Issue #10997: Prevent a duplicate entry in IDLE's "Recent Files" menu.
-
- Issue #14443: Tell rpmbuild to use the correct version of Python in
bdist_rpm. Initial patch by Ross Lagerwall.
-- Issue #14929: Stop Idle 3.x from closing on Unicode decode errors when
- grepping. Patch by Roger Serwy.
-
- Issue #12515: email now registers a defect if it gets to EOF while parsing
a MIME part without seeing the closing MIME boundary.
-- Issue #12510: Attempting to get invalid tooltip no longer closes Idle.
- Other tooltipss have been corrected or improved and the number of tests
- has been tripled. Original patch by Roger Serwy.
-
- Issue #1672568: email now always decodes base64 payloads, adding padding and
ignoring non-base64-alphabet characters if needed, and registering defects
for any such problems.
@@ -1081,9 +1077,6 @@ Library
- Issue #14548: Make multiprocessing finalizers check pid before
running to cope with possibility of gc running just after fork.
-- Issue #14863: Update the documentation of os.fdopen() to reflect the
- fact that it's only a thin wrapper around open() anymore.
-
- Issue #14036: Add an additional check to validate that port in urlparse does
not go in illegal range and returns None.
@@ -1210,6 +1203,21 @@ Library
- Issue #14127 and #10148: shutil.copystat now preserves exact mtime and atime
on filesystems providing nanosecond resolution.
+IDLE
+----
+
+- Issue #14958: Change IDLE systax highlighting to recognize all string and
+ byte literals supported in Python 3.3.
+
+- Issue #10997: Prevent a duplicate entry in IDLE's "Recent Files" menu.
+
+- Issue #14929: Stop IDLE 3.x from closing on Unicode decode errors when
+ grepping. Patch by Roger Serwy.
+
+- Issue #12510: Attempting to get invalid tooltip no longer closes IDLE.
+ Other tooltipss have been corrected or improved and the number of tests
+ has been tripled. Original patch by Roger Serwy.
+
Tools/Demos
-----------
@@ -1228,9 +1236,19 @@ Build
- Issue #13210: Windows build now uses VS2010, ported from VS2008.
+C-API
+-----
+
+- Issue #14705: The PyArg_Parse() family of functions now support the 'p' format
+ unit, which accepts a "boolean predicate" argument. It converts any Python
+ value into an integer--0 if it is "false", and 1 otherwise.
+
Documentation
-------------
+- Issue #14863: Update the documentation of os.fdopen() to reflect the
+ fact that it's only a thin wrapper around open() anymore.
+
- Issue #14588: The language reference now accurately documents the Python 3
class definition process. Patch by Nick Coghlan.
@@ -1279,9 +1297,6 @@ Core and Builtins
- Issue #14339: Speed improvements to bin, oct and hex functions. Patch by
Serhiy Storchaka.
-- Issue #14098: New functions PyErr_GetExcInfo and PyErr_SetExcInfo.
- Patch by Stefan Behnel.
-
- Issue #14385: It is now possible to use a custom type for the __builtins__
namespace, instead of a dict. It can be used for sandboxing for example.
Raise also a NameError instead of ImportError if __build_class__ name if not
@@ -1431,12 +1446,6 @@ Library
- Don't Py_DECREF NULL variable in io.IncrementalNewlineDecoder.
-- Issue #8515: Set __file__ when run file in IDLE.
- Initial patch by Bruce Frederiksen.
-
-- Issue #14496: Fix wrong name in idlelib/tabbedpages.py.
- Patch by Popa Claudiu.
-
- Issue #3033: Add displayof parameter to tkinter font. Patch by Guilherme Polo.
- Issue #14482: Raise a ValueError, not a NameError, when trying to create
@@ -1472,6 +1481,15 @@ Tests
- Issue #14355: Regrtest now supports the standard unittest test loading, and
will use it if a test file contains no `test_main` method.
+IDLE
+----
+
+- Issue #8515: Set __file__ when run file in IDLE.
+ Initial patch by Bruce Frederiksen.
+
+- Issue #14496: Fix wrong name in idlelib/tabbedpages.py.
+ Patch by Popa Claudiu.
+
Tools / Demos
-------------
@@ -1481,6 +1499,12 @@ Tools / Demos
- Issue #13165: stringbench is now available in the Tools/stringbench folder.
It used to live in its own SVN project.
+C-API
+-----
+
+- Issue #14098: New functions PyErr_GetExcInfo and PyErr_SetExcInfo.
+ Patch by Stefan Behnel.
+
What's New in Python 3.3.0 Alpha 2?
===================================
@@ -1532,16 +1556,9 @@ Library
- Issue #5136: deprecate old, unused functions from tkinter.
-- Issue #14409: IDLE now properly executes commands in the Shell window
- when it cannot read the normal config files on startup and
- has to use the built-in default key bindings.
- There was previously a bug in one of the defaults.
-
- Issue #14416: syslog now defines the LOG_ODELAY and LOG_AUTHPRIV constants
if they are defined in <syslog.h>.
-- IDLE can be launched as python -m idlelib
-
- Issue #14295: Add unittest.mock
- Issue #7652: Add --with-system-libmpdec option to configure for linking
@@ -1567,9 +1584,6 @@ Library
up the decimal module. Performance gains of the new C implementation are
between 10x and 100x, depending on the application.
-- Issue #3573: IDLE hangs when passing invalid command line args
- (directory(ies) instead of file(s)) (Patch by Guilherme Polo)
-
- Issue #14269: SMTPD now conforms to the RFC and requires a HELO command
before MAIL, RCPT, or DATA.
@@ -1601,8 +1615,6 @@ Library
denial of service due to hash collisions. Patch by David Malcolm with some
modifications by the expat project.
-- Issue #14200: Idle shell crash on printing non-BMP unicode character.
-
- Issue #12818: format address no longer needlessly \ escapes ()s in names when
the name ends up being quoted.
@@ -1618,8 +1630,6 @@ Library
- Issue #989712: Support using Tk without a mainloop.
-- Issue #5219: Prevent event handler cascade in IDLE.
-
- Issue #3835: Refuse to use unthreaded Tcl in threaded Python.
- Issue #2843: Add new Tk API to Tkinter.
@@ -1848,10 +1858,6 @@ Core and Builtins
on POSIX systems supporting anonymous memory mappings. Patch by
Charles-François Natali.
-- Issue #13452: PyUnicode_EncodeDecimal() doesn't support error handlers
- different than "strict" anymore. The caller was unable to compute the
- size of the output buffer: it depends on the error handler.
-
- PEP 3155 / issue #13448: Qualified name for classes and functions.
- Issue #13436: Fix a bogus error message when an AST object was passed
@@ -1942,10 +1948,6 @@ Core and Builtins
- PEP 3151 / issue #12555: reworking the OS and IO exception hierarchy.
-- Issue #13560: Add PyUnicode_DecodeLocale(), PyUnicode_DecodeLocaleAndSize()
- and PyUnicode_EncodeLocale() functions to the C API to decode/encode from/to
- the current locale encoding.
-
- Add internal API for static strings (_Py_identifier et al.).
- Issue #13063: the Windows error ERROR_NO_DATA (numbered 232 and described
@@ -2028,7 +2030,7 @@ Core and Builtins
deallocator calls one of the methods on the type (e.g. when subclassing
IOBase). Diagnosis and patch by Davide Rizzo.
-- Issue #9611, #9015: FileIO.read() clamps the length to INT_MAX on Windows.
+- Issue #9611, Issue #9015: FileIO.read() clamps the length to INT_MAX on Windows.
- Issue #9642: Uniformize the tests on the availability of the mbcs codec, add
a new HAVE_MBCS define.
@@ -2191,17 +2193,11 @@ Core and Builtins
PyUnicode_AsUTF8String() and PyUnicode_AsEncodedString(unicode, "utf-8",
NULL).
-- Issue #10831: PyUnicode_FromFormat() supports %li, %lli and %zi formats.
-
- Issue #10829: Refactor PyUnicode_FromFormat(), use the same function to parse
the format string in the 3 steps, fix crashs on invalid format strings.
- Issue #13007: whichdb should recognize gdbm 1.9 magic numbers.
-- Issue #11246: Fix PyUnicode_FromFormat("%V") to decode the byte string from
- UTF-8 (with replace error handler) instead of ISO-8859-1 (in strict mode).
- Patch written by Ray Allen.
-
- Issue #11286: Raise a ValueError from calling PyMemoryView_FromBuffer with
a buffer struct having a NULL data pointer.
@@ -2211,9 +2207,6 @@ Core and Builtins
- Issue #11828: startswith and endswith now accept None as slice index.
Patch by Torsten Becker.
-- Issue #10830: Fix PyUnicode_FromFormatV("%c") for non-BMP characters on
- narrow build.
-
- Issue #11168: Remove filename debug variable from PyEval_EvalFrameEx().
It encoded the Unicode filename to UTF-8, but the encoding fails on
undecodable filename (on surrogate characters) which raises an unexpected
@@ -2255,15 +2248,9 @@ Library
are dead or dying. Moreover, the implementation is now O(1) rather than
O(n).
-- Issue #13125: Silence spurious test_lib2to3 output when in non-verbose mode.
- Patch by Mikhail Novikov.
-
- Issue #11841: Fix comparison bug with 'rc' versions in packaging.version.
Patch by Filip Gruszczyński.
-- Issue #13447: Add a test file to host regression tests for bugs in the
- scripts found in the Tools directory.
-
- Issue #6884: Fix long-standing bugs with MANIFEST.in parsing in distutils
on Windows. Also fixed in packaging.
@@ -2319,9 +2306,6 @@ Library
authenticating (since the result may change, according to RFC 4643).
Patch by Hynek Schlawack.
-- Issue #13989: Document that GzipFile does not support text mode, and give a
- more helpful error message when opened with an invalid mode string.
-
- Issue #13590: On OS X 10.7 and 10.6 with Xcode 4.2, building
Distutils-based packages with C extension modules may fail because
Apple has removed gcc-4.2, the version used to build python.org
@@ -2338,10 +2322,6 @@ Library
- Issue #13960: HTMLParser is now able to handle broken comments when
strict=False.
-- Issue #13921: Undocument and clean up sqlite3.OptimizedUnicode,
- which is obsolete in Python 3.x. It's now aliased to str for
- backwards compatibility.
-
- When '' is a path (e.g. in sys.path), make sure __file__ uses the current
working directory instead of '' in importlib.
@@ -2363,11 +2343,6 @@ Library
- Issue #10811: Fix recursive usage of cursors. Instead of crashing,
raise a ProgrammingError now.
-- Issue #10881: Fix test_site failure with OS X framework builds.
-
-- Issue #964437: Make IDLE help window non-modal.
- Patch by Guilherme Polo and Roger Serwy.
-
- Issue #13734: Add os.fwalk(), a directory walking function yielding file
descriptors.
@@ -2377,16 +2352,8 @@ Library
- Issue #11805: package_data in setup.cfg should allow more than one value.
-- Issue #13933: IDLE auto-complete did not work with some imported
- module, like hashlib. (Patch by Roger Serwy)
-
-- Issue #13901: Prevent test_distutils failures on OS X with --enable-shared.
-
- Issue #13676: Handle strings with embedded zeros correctly in sqlite3.
-- Issue #13506: Add '' to path for IDLE Shell when started and restarted with Restart Shell.
- Original patches by Marco Scataglini and Roger Serwy.
-
- Issue #8828: Add new function os.replace(), for cross-platform renaming
with overwriting.
@@ -2407,12 +2374,6 @@ Library
OSError if localtime() failed. time.clock() now raises a RuntimeError if the
processor time used is not available or its value cannot be represented
-- Issue #13862: Fix spurious failure in test_zlib due to runtime/compile time
- minor versions not matching.
-
-- Issue #12804: Fix test_socket and test_urllib2net failures when running tests
- on a system without internet access.
-
- Issue #13772: In os.symlink() under Windows, do not try to guess the link
target's type (file or directory). The detection was buggy and made the
call non-atomic (therefore prone to race conditions).
@@ -2439,9 +2400,6 @@ Library
- Issue #13642: Unquote before b64encoding user:password during Basic
Authentication. Patch contributed by Joonas Kuorilehto.
-- Issue #13726: Fix the ambiguous -S flag in regrtest. It is -o/--slow for slow
- tests.
-
- Issue #12364: Fix a hang in concurrent.futures.ProcessPoolExecutor.
The hang would occur when retrieving the result of a scheduled future after
the executor had been shut down.
@@ -2524,10 +2482,6 @@ Library
- Issue #13591: A bug in importlib has been fixed that caused import_module
to load a module twice.
-- Issue #4625: If IDLE cannot write to its recent file or breakpoint files,
- display a message popup and continue rather than crash. Original patch by
- Roger Serwy.
-
- Issue #13449 sched.scheduler.run() method has a new "blocking" parameter which
when set to False makes run() execute the scheduled events due to expire
soonest (if any) and then return. Patch by Giampaolo Rodolà.
@@ -2544,12 +2498,9 @@ Library
'importlib.abc.PyPycLoader', 'nntplib.NNTP.xgtitle', 'nntplib.NNTP.xpath',
and private attributes of 'smtpd.SMTPChannel'.
-- Issue #5905, #13560: time.strftime() is now using the current locale
+- Issue #5905, Issue #13560: time.strftime() is now using the current locale
encoding, instead of UTF-8, if the wcsftime() function is not available.
-- Issue #8641: Update IDLE 3 syntax coloring to recognize b".." and not u"..".
- Patch by Tal Einat.
-
- Issue #13464: Add a readinto() method to http.client.HTTPResponse. Patch
by Jon Kuhn.
@@ -2661,9 +2612,6 @@ Library
- Issue #10817: Fix urlretrieve function to raise ContentTooShortError even
when reporthook is None. Patch by Jyrki Pulliainen.
-- Issue #13296: Fix IDLE to clear compile __future__ flags on shell restart.
- (Patch by Roger Serwy)
-
- Fix the xmlrpc.client user agent to return something similar to
urllib.request user agent: "Python-xmlrpc/3.3".
@@ -2766,10 +2714,6 @@ Library
- Issue #13034: When decoding some SSL certificates, the subjectAltName
extension could be unreported.
-- Issue #9871: Prevent IDLE 3 crash when given byte stings
- with invalid hex escape sequences, like b'\x0'.
- (Original patch by Claudiu Popa.)
-
- Issue #12306: Expose the runtime version of the zlib C library as a constant,
ZLIB_RUNTIME_VERSION, in the zlib module. Patch by Torsten Landschoff.
@@ -2798,8 +2742,6 @@ Library
- Issue #12878: Expose a __dict__ attribute on io.IOBase and its subclasses.
-- Issue #12636: IDLE reads the coding cookie when executing a Python script.
-
- Issue #12494: On error, call(), check_call(), check_output() and
getstatusoutput() functions of the subprocess module now kill the process,
read its status (to avoid zombis) and close pipes.
@@ -2869,9 +2811,6 @@ Library
- Issue #10087: Fix the html output format of the calendar module.
-- Issue #12540: Prevent zombie IDLE processes on Windows due to changes
- in os.kill().
-
- Issue #13121: add support for inplace math operators to collections.Counter.
- Add support for unary plus and unary minus to collections.Counter.
@@ -2903,7 +2842,7 @@ Library
Condition, etc.) used to be factory functions returning instances of hidden
classes (_Event, _Condition, etc.), because (if Guido recalls correctly) this
code pre-dates the ability to subclass extension types. It is now possible
- to inherit from these classes without having to import the private
+ to inherit from these classes, without having to import the private
underscored names like multiprocessing did.
- Issue #9723: Add shlex.quote functions, to escape filenames and command
@@ -2917,14 +2856,8 @@ Library
- Issue #12607: In subprocess, fix issue where if stdin, stdout or stderr is
given as a low fd, it gets overwritten.
-- Issue #12590: IDLE editor window now always displays the first line
- when opening a long file. With Tk 8.5, the first line was hidden.
-
- Issue #12576: Fix urlopen behavior on sites which do not send (or obfuscates)
- Connection:close header.
-
-- Issue #12102: Document that buffered files must be flushed before being used
- with mmap. Patch by Steffen Daode Nurpmeso.
+ ``Connection: close`` header.
- Issue #12560: Build libpython.so on OpenBSD. Patch by Stefan Sperling.
@@ -3179,7 +3112,7 @@ Library
- Issue #12175: FileIO.readall() now raises a ValueError instead of an IOError
if the file is closed.
-- Issue #11109: New service_action method for BaseServer, used by ForkingMixIn
+- Issue #11109: New service_action method for BaseServer, used by ForkingMixin
class for cleanup. Initial Patch by Justin Warkentin.
- Issue #12045: Avoid duplicate execution of command in
@@ -3224,9 +3157,6 @@ Library
passing a ``context`` argument pointing to an ssl.SSLContext instance.
Patch by Kasun Herath.
-- Issue #11088: don't crash when using F5 to run a script in IDLE on MacOSX
- with Tk 8.5.
-
- Issue #9516: Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET
is set in shell.
@@ -3246,10 +3176,6 @@ Library
- Issue #9971: Write an optimized implementation of BufferedReader.readinto().
Patch by John O'Connor.
-- Issue #1028: Tk returns invalid Unicode null in %A: UnicodeDecodeError.
- With Tk < 8.5 _tkinter.c:PythonCmd() raised UnicodeDecodeError, caused
- IDLE to exit. Converted to valid Unicode null in PythonCmd().
-
- Issue #11799: urllib.request Authentication Handlers will raise a ValueError
when presented with an unsupported Authentication Scheme. Patch contributed
by Yuval Greenfield.
@@ -3486,12 +3412,12 @@ Library
- Issue #7639: Fix short file name generation in bdist_msi
-- Issue #11659: Fix ResourceWarning in test_subprocess introduced by #11459.
- Patch by Ben Hayden.
-
- Issue #11635: Don't use polling in worker threads and processes launched by
concurrent.futures.
+- Issue #5845: Automatically read readline configuration to enable completion
+ in interactive mode.
+
- Issue #6811: Allow importlib to change a code object's co_filename attribute
to match the path to where the source code currently is, not where the code
object originally came from.
@@ -3526,7 +3452,7 @@ Library
- Issue #11127: Raise a TypeError when trying to pickle a socket object.
-- Issue #11563: Connection:close header is sent by requests using URLOpener
+- Issue #11563: ``Connection: close`` header is sent by requests using URLOpener
class which helps in closing of sockets after connection is over. Patch
contributions by Jeff McNeil and Nadeem Vawda.
@@ -3541,8 +3467,6 @@ Library
- Issue #10979: unittest stdout buffering now works with class and module
setup and teardown.
-- Issue #11577: fix ResourceWarning triggered by improved binhex test coverage
-
- Issue #11243: fix the parameter querying methods of Message to work if
the headers contain un-encoded non-ASCII data.
@@ -3575,9 +3499,6 @@ Library
- Issue #11554: Fixed support for Japanese codecs; previously the body output
encoding was not done if euc-jp or shift-jis was specified as the charset.
-- Issue #11509: Significantly increase test coverage of fileinput.
- Patch by Denver Coneybeare at PyCon 2011 Sprints.
-
- Issue #11407: `TestCase.run` returns the result object used or created.
Contributed by Janathan Hartley.
@@ -3700,11 +3621,6 @@ Library
- Issue #9348: Raise an early error if argparse nargs and metavar don't match.
-- Issue #8982: Improve the documentation for the argparse Namespace object.
-
-- Issue #9343: Document that argparse parent parsers must be configured before
- their children.
-
- Issue #9026: Fix order of argparse sub-commands in help messages.
- Issue #9347: Fix formatting for tuples in argparse type= error messages.
@@ -3757,10 +3673,61 @@ Build
- Issue #11495: OSF support is eliminated. It was deprecated in Python 3.2.
-
IDLE
----
+- Issue #14409: IDLE now properly executes commands in the Shell window
+ when it cannot read the normal config files on startup and
+ has to use the built-in default key bindings.
+ There was previously a bug in one of the defaults.
+
+- IDLE can be launched as python -m idlelib
+
+- Issue #3573: IDLE hangs when passing invalid command line args
+ (directory(ies) instead of file(s)) (Patch by Guilherme Polo)
+
+- Issue #14200: IDLE shell crash on printing non-BMP unicode character.
+
+- Issue #5219: Prevent event handler cascade in IDLE.
+
+- Issue #964437: Make IDLE help window non-modal.
+ Patch by Guilherme Polo and Roger Serwy.
+
+- Issue #13933: IDLE auto-complete did not work with some imported
+ module, like hashlib. (Patch by Roger Serwy)
+
+- Issue #13506: Add '' to path for IDLE Shell when started and restarted with Restart Shell.
+ Original patches by Marco Scataglini and Roger Serwy.
+
+- Issue #4625: If IDLE cannot write to its recent file or breakpoint files,
+ display a message popup and continue rather than crash. Original patch by
+ Roger Serwy.
+
+- Issue #8641: Update IDLE 3 syntax coloring to recognize b".." and not u"..".
+ Patch by Tal Einat.
+
+- Issue #13296: Fix IDLE to clear compile __future__ flags on shell restart.
+ (Patch by Roger Serwy)
+
+- Issue #9871: Prevent IDLE 3 crash when given byte stings
+ with invalid hex escape sequences, like b'\x0'.
+ (Original patch by Claudiu Popa.)
+
+- Issue #12636: IDLE reads the coding cookie when executing a Python script.
+
+- Issue #12540: Prevent zombie IDLE processes on Windows due to changes
+ in os.kill().
+
+- Issue #12590: IDLE editor window now always displays the first line
+ when opening a long file. With Tk 8.5, the first line was hidden.
+
+- Issue #11088: don't crash when using F5 to run a script in IDLE on MacOSX
+ with Tk 8.5.
+
+- Issue #1028: Tk returns invalid Unicode null in %A: UnicodeDecodeError.
+ With Tk < 8.5 _tkinter.c:PythonCmd() raised UnicodeDecodeError, caused
+ IDLE to exit. Converted to valid Unicode null in PythonCmd().
+
- Issue #11718: IDLE's open module dialog couldn't find the __init__.py
file in a package.
@@ -3790,6 +3757,10 @@ Tools/Demos
Extension Modules
-----------------
+- Issue #16847: Fixed improper use of _PyUnicode_CheckConsistency() in
+ non-pydebug builds. Several extension modules now compile cleanly when
+ assert()s are enabled in standard builds (-DDEBUG flag).
+
- Issue #13840: The error message produced by ctypes.create_string_buffer
when given a Unicode string has been fixed.
@@ -3852,6 +3823,33 @@ Extension Modules
Tests
-----
+- Issue #13125: Silence spurious test_lib2to3 output when in non-verbose mode.
+ Patch by Mikhail Novikov.
+
+- Issue #13447: Add a test file to host regression tests for bugs in the
+ scripts found in the Tools directory.
+
+- Issue #10881: Fix test_site failure with OS X framework builds.
+
+- Issue #13901: Prevent test_distutils failures on OS X with --enable-shared.
+
+- Issue #13862: Fix spurious failure in test_zlib due to runtime/compile time
+ minor versions not matching.
+
+- Issue #12804: Fix test_socket and test_urllib2net failures when running tests
+ on a system without internet access.
+
+- Issue #13726: Fix the ambiguous -S flag in regrtest. It is -o/--slow for slow
+ tests.
+
+- Issue #11659: Fix ResourceWarning in test_subprocess introduced by #11459.
+ Patch by Ben Hayden.
+
+- Issue #11577: fix ResourceWarning triggered by improved binhex test coverage
+
+- Issue #11509: Significantly increase test coverage of fileinput.
+ Patch by Denver Coneybeare at PyCon 2011 Sprints.
+
- Issue #11689: Fix a variable scoping error in an sqlite3 test
- Issue #13786: Remove unimplemented 'trace' long option from regrtest.py.
@@ -4030,7 +4028,7 @@ Tests
- Issue #11505: improves test coverage of string.py. Patch by Alicia
Arlen
-- Issue #11490: test_subprocess:test_leaking_fds_on_error no longer gives a
+- Issue #11490: test_subprocess.test_leaking_fds_on_error no longer gives a
false positive if the last directory in the path is inaccessible.
- Issue #11223: Fix test_threadsignals to fail, not hang, when the
@@ -4054,6 +4052,23 @@ Tests
C-API
-----
+- Issue #13452: PyUnicode_EncodeDecimal() doesn't support error handlers
+ different than "strict" anymore. The caller was unable to compute the
+ size of the output buffer: it depends on the error handler.
+
+- Issue #13560: Add PyUnicode_DecodeLocale(), PyUnicode_DecodeLocaleAndSize()
+ and PyUnicode_EncodeLocale() functions to the C API to decode/encode from/to
+ the current locale encoding.
+
+- Issue #10831: PyUnicode_FromFormat() supports %li, %lli and %zi formats.
+
+- Issue #11246: Fix PyUnicode_FromFormat("%V") to decode the byte string from
+ UTF-8 (with replace error handler) instead of ISO-8859-1 (in strict mode).
+ Patch written by Ray Allen.
+
+- Issue #10830: Fix PyUnicode_FromFormatV("%c") for non-BMP characters on
+ narrow build.
+
- Add PyObject_GenericGetDict and PyObject_GeneriSetDict. They are generic
implementations for the getter and setter of a ``__dict__`` descriptor of C
types.
@@ -4079,6 +4094,24 @@ C-API
Documentation
-------------
+- Issue #13989: Document that GzipFile does not support text mode, and give a
+ more helpful error message when opened with an invalid mode string.
+
+- Issue #13921: Undocument and clean up sqlite3.OptimizedUnicode,
+ which is obsolete in Python 3.x. It's now aliased to str for
+ backwards compatibility.
+
+- Issue #12102: Document that buffered files must be flushed before being used
+ with mmap. Patch by Steffen Daode Nurpmeso.
+
+- Issue #8982: Improve the documentation for the argparse Namespace object.
+
+- Issue #9343: Document that argparse parent parsers must be configured before
+ their children.
+
+- Issue #13498: Clarify docs of os.makedirs()'s exist_ok argument. Done with
+ great native-speaker help from R. David Murray.
+
- Issues #13491 and #13995: Fix many errors in sqlite3 documentation.
Initial patch for #13491 by Johannes Vogel.
@@ -9652,7 +9685,7 @@ Core and Builtins
- Issue #1210: Fixed imaplib and its documentation.
-- Issue #4233: Changed semantic of ``_fileio.FileIO``'s ``close()``
+- Issue #4233: Changed semantic of ``_fileio.FileIO``'s ``close()``
method on file objects with closefd=False. The file descriptor is still
kept open but the file object behaves like a closed file. The ``FileIO``
object also got a new readonly attribute ``closefd``.
@@ -9796,13 +9829,13 @@ Core and Builtins
cyclic garbage collection.
- Issue #3668: Fix a memory leak with the "s*" argument parser in
- PyArg_ParseTuple and friends, which occurred when the argument for "s*"
+ PyArg_ParseTuple and friends, which occurred when the argument for "s*"
was correctly parsed but parsing of subsequent arguments failed.
- Issue #3611: An exception __context__ could be cleared in a complex pattern
involving a __del__ method re-raising an exception.
-- Issue #2534: speed up isinstance() and issubclass() by 50-70%, so as to
+- Issue #2534: speed up isinstance() and issubclass() by 50-70%, so as to
match Python 2.5 speed despite the __instancecheck__ / __subclasscheck__
mechanism. In the process, fix a bug where isinstance() and issubclass(),
when given a tuple of classes as second argument, were looking up
@@ -9880,7 +9913,7 @@ Library
- The deprecation warnings for the camelCase threading API names were removed.
-- Issue #3110: multiprocessing fails to compiel on solaris 10 due to missing
+- Issue #3110: multiprocessing fails to compiel on solaris 10 due to missing
SEM_VALUE_MAX.
Extension Modules
@@ -21512,7 +21545,7 @@ Thu Feb 18 20:51:50 1999 Fred Drake <fdrake@eric.cnri.reston.va.us>
Bow to font-lock at the end of the docstring, since it throws stuff
off.
- Make sure the path parameter to readmodule() is a list before adding it
+ Make sure the path paramter to readmodule() is a list before adding it
with sys.path, or the addition could fail.
@@ -21593,7 +21626,7 @@ New or improved ports
- Improved BeOS support.
-- Support dynamic loading of shared libraries on NetBSD platforms that
+- Support dynamic loading of shared libraries on NetBSD platforms that
use ELF (i.e., MIPS and Alpha systems).
Configuration/build changes
@@ -21810,7 +21843,7 @@ provide its own version of this function, while still sharing the
higher-level classes in code.py.
- turtle.py is a new module for simple turtle graphics. I'm still
-working on it; let me know if you use this to teach Python to children
+working on it; let me know if you use this to teach Python to children
or other novices without prior programming experience.
Obsoleted library modules
@@ -21942,7 +21975,7 @@ control pseudo-device, per audio(7I).
Changes to tools
----------------
-- New, improved version of Barry Warsaw's Misc/python-mode.el (editing
+- New, improved version of Barry Warsaw's Misc/python-mode.el (editing
support for Emacs).
- tabnanny.py: added a -q ('quiet') option to tabnanny, which causes
@@ -22217,7 +22250,7 @@ Windows Installer
-----------------
- Install zlib.dll in the DLLs directory instead of in the win32
-system directory, to avoid conflicts with other applications that have
+system directory, to avoid conflicts with other applications that have
their own zlib.dll.
Test Suite
@@ -22297,7 +22330,7 @@ General
so that a symlink to a symlink can work.
- Added a hack so that when you type 'quit' or 'exit' at the
-interpreter, you get a friendly explanation of how to press Ctrl-D (or
+interpreter, you get a friendly explanation of how to press Ctrl-D (or
Ctrl-Z) to exit.
- New and improved Misc/python-mode.el (Python mode for Emacs).
@@ -22470,13 +22503,13 @@ problem that randint() was accidentally defined as taking an inclusive
range. Also, randint(a, b) is now redefined as randrange(a, b+1),
adding extra range and type checking to its arguments!
-- Add some semi-thread-safety to random.gauss() (it used to be able to
+- Add some semi-thread-safety to random.gauss() (it used to be able to
crash when invoked from separate threads; now the worst it can do is
give a duplicate result occasionally).
- Some restructuring and generalization done to cmd.py.
-- Major upgrade to ConfigParser.py; converted to using 're', added new
+- Major upgrade to ConfigParser.py; converted to using 're', added new
exceptions, support underscore in section header and option name. No
longer add 'name' option to every section; instead, add '__name__'.
@@ -22673,7 +22706,7 @@ Windows Installer
-----------------
- The registry key used is now "1.5" instead of "1.5.x" -- so future
-versions of 1.5 and Mark Hammond's win32all installer don't need to be
+versions of 1.5 and Mark Hammond's win32all installer don't need to be
resynchronized.
Windows Tools
@@ -22740,7 +22773,7 @@ objects.
dynamically add one or many entries to the table of built-in modules.
- New macro Py_InitModule3(name, methods, doc) which calls
-Py_InitModule4() with appropriate arguments. (The -4 variant requires
+Py_InitModule4() with appropriate arguments. (The -4 variant requires
you to pass an obscure version number constant which is always the same.)
- New APIs PySys_WriteStdout() and PySys_WriteStderr() to write to
@@ -22812,7 +22845,7 @@ less common scenario in practice.
Syntax change
-------------
-- The raise statement can now be used without arguments, to re-raise
+- The raise statement can now be used without arguments, to re-raise
a previously set exception. This should be used after catching an
exception with an except clause only, either in the except clause or
later in the same function.
@@ -22871,7 +22904,7 @@ of a tab. The preferred module is tabnanny.py (by Tim Peters).
Demo/tkinter/guido/paint.py -- Dave Mitchell
Demo/sockets/unixserver.py -- Piet van Oostrum
-
+
- Much better freeze support. The freeze script can now freeze
hierarchical module names (with a corresponding change to import.c),
@@ -23010,7 +23043,7 @@ certain locales).
- New command supported by the ftplib module: rmd(); also fixed some
minor bugs.
-- The profile module now uses a different timer function by default --
+- The profile module now uses a different timer function by default --
time.clock() is generally better than os.times(). This makes it work
better on Windows NT, too.
@@ -23049,14 +23082,14 @@ module. Courtesy Barry Warsaw.
- In the multifile module, support the optional second parameter to
seek() when possible.
-- Several fixes to the gopherlib module by Lars Marius Garshol. Also,
+- Several fixes to the gopherlib module by Lars Marius Garshol. Also,
urlparse now correctly handles Gopher URLs with query strings.
- Fixed a tiny bug in format_exception() in the traceback module.
Also rewrite tb_lineno() to be compatible with JPython (and not
disturb the current exception!); by Jim Hugunin.
-- The httplib module is more robust when servers send a short response
+- The httplib module is more robust when servers send a short response
-- courtesy Tim O'Malley.
Tkinter and friends
@@ -23071,7 +23104,7 @@ application only).
no longer use the default root.
- The interfaces for the bind*() and unbind() widget methods have been
-redesigned; the bind*() methods now return the name of the Tcl command
+redesigned; the bind*() methods now return the name of the Tcl command
created for the callback, and this can be passed as a optional
argument to unbind() in order to delete the command (normally, such
commands are automatically unbound when the widget is destroyed, but
@@ -23107,7 +23140,7 @@ intended for storing thread-local global variables.
dictionary to allow recursive container types to detect recursion in
their repr(), str() and print implementations.
-- New function PyObject_Not(x) calculates (not x) according to Python's
+- New function PyObject_Not(x) calculates (not x) according to Python's
standard rules (basically, it negates the outcome PyObject_IsTrue(x).
- New function _PyModule_Clear(), which clears a module's dictionary
@@ -23268,7 +23301,7 @@ defined in packages correctly. The same change applies to copying
instances with copy.py. The cPickle.c changes and some pickle.py
changes are courtesy Jim Fulton.
-- Locale support in he "re" (Perl regular expressions) module. Use
+- Locale support in he "re" (Perl regular expressions) module. Use
the flag re.L (or re.LOCALE) to enable locale-specific matching
rules for \w and \b. The in-line syntax for this flag is (?L).
@@ -23334,7 +23367,7 @@ don't know how to deal with those.
- Some improvements to the _tkinter build line suggested by Case Roole.
-- A full suite of platform specific files for NetBSD 1.x, submitted by
+- A full suite of platform specific files for NetBSD 1.x, submitted by
Anders Andersen.
- New Solaris specific header STROPTS.py.
@@ -23404,7 +23437,7 @@ after studying the GNU libg++ quicksort. This should be much faster
if there are lots of duplicates, and otherwise at least as good.
- Added "uue" as an alias for "uuencode" to mimetools.py. (Hm, the
-uudecode bug where it complaints about trailing garbage is still there
+uudecode bug where it complaints about trailing garbage is still there
:-( ).
- pickle.py requires integers in text mode to be in decimal notation
@@ -23564,7 +23597,7 @@ an underscore and used to initialize the pointer.
- The warning about a thread still having a frame now only happens in
verbose mode.
-- Change the signal finalization so that it also resets the signal
+- Change the signal finialization so that it also resets the signal
handlers. After this has been called, our signal handlers are no
longer active!
@@ -24180,7 +24213,7 @@ the C and the Python variety) and for floating point numbers.
The Python/C API for frames is changed (you shouldn't be using this
anyway).
-- Significant speedup by inlining some common opcodes for common operand
+- Significant speedup by inlining some common opcodes for common operand
types (e.g. i+i, i-i, and list[i]). Fredrik Lundh.
- Small speedup by reordering the method tables of some common
@@ -24206,34 +24239,34 @@ pressure to document their own contributed modules :-). Note that
printing the documentation now kills fewer trees -- the margins have
been reduced.
-- I have started documenting the Python/C API. Unfortunately this project
-hasn't been completed yet. It will be complete before the final release of
-Python 1.5, though. At the moment, it's better to read the LaTeX source
+- I have started documenting the Python/C API. Unfortunately this project
+hasn't been completed yet. It will be complete before the final release of
+Python 1.5, though. At the moment, it's better to read the LaTeX source
than to attempt to run it through LaTeX and print the resulting dvi file.
-- The posix module (and hence os.py) now has doc strings! Thanks to Neil
-Schemenauer. I received a few other contributions of doc strings. In most
+- The posix module (and hence os.py) now has doc strings! Thanks to Neil
+Schemenauer. I received a few other contributions of doc strings. In most
other places, doc strings are still wishful thinking...
Language changes
----------------
-- Private variables with leading double underscore are now a permanent
-feature of the language. (These were experimental in release 1.4. I have
-favorable experience using them; I can't label them "experimental"
+- Private variables with leading double underscore are now a permanent
+feature of the language. (These were experimental in release 1.4. I have
+favorable experience using them; I can't label them "experimental"
forever.)
-- There's new string literal syntax for "raw strings". Prefixing a string
-literal with the letter r (or R) disables all escape processing in the
-string; for example, r'\n' is a two-character string consisting of a
-backslash followed by the letter n. This combines with all forms of string
-quotes; it is actually useful for triple quoted doc strings which might
-contain references to \n or \t. An embedded quote prefixed with a
-backslash does not terminate the string, but the backslash is still
-included in the string; for example, r'\'' is a two-character string
-consisting of a backslash and a quote. (Raw strings are also
-affectionately known as Robin strings, after their inventor, Robin
+- There's new string literal syntax for "raw strings". Prefixing a string
+literal with the letter r (or R) disables all escape processing in the
+string; for example, r'\n' is a two-character string consisting of a
+backslash followed by the letter n. This combines with all forms of string
+quotes; it is actually useful for triple quoted doc strings which might
+contain references to \n or \t. An embedded quote prefixed with a
+backslash does not terminate the string, but the backslash is still
+included in the string; for example, r'\'' is a two-character string
+consisting of a backslash and a quote. (Raw strings are also
+affectionately known as Robin strings, after their inventor, Robin
Friedrich.)
- There's a simple assert statement, and a new exception
@@ -24262,10 +24295,10 @@ patches to catch floating point exceptions, at the moment).
- The obsolete exception ConflictError (presumably used by the long
obsolete access statement) has been deleted.
-- There's a new function sys.exc_info() which returns the tuple
+- There's a new function sys.exc_info() which returns the tuple
(sys.exc_type, sys.exc_value, sys.exc_traceback) in a thread-safe way.
-- There's a new variable sys.executable, pointing to the executable file
+- There's a new variable sys.executable, pointing to the executable file
for the Python interpreter.
- The sort() methods for lists no longer uses the C library qsort(); I
@@ -24291,11 +24324,11 @@ caught an exception are kept alive until another exception is caught
returning from a function that caught an exception.
- There's a new "buffer" interface. Certain objects (e.g. strings and
-arrays) now support the "buffer" protocol. Buffer objects are acceptable
-whenever formerly a string was required for a write operation; mutable
+arrays) now support the "buffer" protocol. Buffer objects are acceptable
+whenever formerly a string was required for a write operation; mutable
buffer objects can be the target of a read operation using the call
-f.readinto(buffer). A cool feature is that regular expression matching now
-also work on array objects. Contribution by Jack Jansen. (Needs
+f.readinto(buffer). A cool feature is that regular expression matching now
+also work on array objects. Contribution by Jack Jansen. (Needs
documentation.)
- String interning: dictionary lookups are faster when the lookup
@@ -24587,7 +24620,7 @@ Wirzenius, and RFC 850 dates (Chris Lawrence).
of message sequence specifiers without invoking a subprocess. Also
added a createmessage() method by Lars Wirzenius.
-- The StringIO.StringIO class now supports readline(nbytes). (Lars
+- The StringIO.StringIO class now supports readline(nbytes). (Lars
Wirzenius.) (Of course, you should be using cStringIO for performance.)
- UserDict.py supports the new dictionary methods as well.
@@ -24635,8 +24668,8 @@ command line utilities.
- Various small fixes to the nntplib.py module that I can't bother to
document in detail.
-- Sjoerd Mullender's mimify.py module now supports base64 encoding and
-includes functions to handle the funny encoding you sometimes see in mail
+- Sjoerd Mullender's mimify.py module now supports base64 encoding and
+includes functions to handle the funny encoding you sometimes see in mail
headers. It is now documented.
- mailbox.py: Added BabylMailbox. Improved the way the mailbox is
@@ -24987,23 +25020,23 @@ Windows (NT and 95)
NT (the old VC++ 4.2 Makefile is also still supported, but will
eventually be withdrawn due to its bulkiness).
-- See the note on the new module search path in the "Miscellaneous" section
+- See the note on the new module search path in the "Miscellaneous" section
above.
- Support for Win32s (the 32-bit Windows API under Windows 3.1) is
basically withdrawn. If it still works for you, you're lucky.
-- There's a new extension module, msvcrt.c, which provides various
-low-level operations defined in the Microsoft Visual C++ Runtime Library.
-These include locking(), setmode(), get_osfhandle(), set_osfhandle(), and
+- There's a new extension module, msvcrt.c, which provides various
+low-level operations defined in the Microsoft Visual C++ Runtime Library.
+These include locking(), setmode(), get_osfhandle(), set_osfhandle(), and
console I/O functions like kbhit(), getch() and putch().
- The -u option not only sets the standard I/O streams to unbuffered
status, but also sets them in binary mode. (This can also be done
using msvcrt.setmode(), by the way.)
-- The, sys.prefix and sys.exec_prefix variables point to the directory
-where Python is installed, or to the top of the source tree, if it was run
+- The, sys.prefix and sys.exec_prefix variables point to the directory
+where Python is installed, or to the top of the source tree, if it was run
from there.
- The various os.path modules (posixpath, ntpath, macpath) now support
@@ -25011,7 +25044,7 @@ passing more than two arguments to the join() function, so
os.path.join(a, b, c) is the same as os.path.join(a, os.path.join(b,
c)).
-- The ntpath module (normally used as os.path) supports ~ to $HOME
+- The ntpath module (normally used as os.path) supports ~ to $HOME
expansion in expanduser().
- The freeze tool now works on Windows.
@@ -25309,47 +25342,47 @@ output directory.
- New module whichdb recognizes dbm, gdbm and bsddb/dbhash files.
-- The Doc/Makefile targets have been reorganized somewhat to remove the
+- The Doc/Makefile targets have been reorganized somewhat to remove the
insistence on always generating PostScript.
- The texinfo to html filter (Doc/texi2html.py) has been improved somewhat.
-- "errors.h" has been renamed to "pyerrors.h" to resolve a long-standing
+- "errors.h" has been renamed to "pyerrors.h" to resolve a long-standing
name conflict on the Mac.
-- Linking a module compiled with a different setting for Py_TRACE_REFS now
+- Linking a module compiled with a different setting for Py_TRACE_REFS now
generates a linker error rather than a core dump.
-- The cgi module has a new convenience function print_exception(), which
-formats a python exception using HTML. It also fixes a bug in the
-compatibility code and adds a dubious feature which makes it possible to
+- The cgi module has a new convenience function print_exception(), which
+formats a python exception using HTML. It also fixes a bug in the
+compatibility code and adds a dubious feature which makes it possible to
have two query strings, one in the URL and one in the POST data.
-- A subtle change in the unpickling of class instances makes it possible
-to unpickle in restricted execution mode, where the __dict__ attribute is
+- A subtle change in the unpickling of class instances makes it possible
+to unpickle in restricted execution mode, where the __dict__ attribute is
not available (but setattr() is).
-- Documentation for os.path.splitext() (== posixpath.splitext()) has been
+- Documentation for os.path.splitext() (== posixpath.splitext()) has been
cleared up. It splits at the *last* dot.
- posixfile locking is now also correctly supported on AIX.
-- The tempfile module once again honors an initial setting of tmpdir. It
+- The tempfile module once again honors an initial setting of tmpdir. It
now works on Windows, too.
-- The traceback module has some new functions to extract, format and print
+- The traceback module has some new functions to extract, format and print
the active stack.
-- Some translation functions in the urllib module have been made a little
+- Some translation functions in the urllib module have been made a little
less sluggish.
-- The addtag_* methods for Canvas widgets in Tkinter as well as in the
-separate Canvas class have been fixed so they actually do something
+- The addtag_* methods for Canvas widgets in Tkinter as well as in the
+separate Canvas class have been fixed so they actually do something
meaningful.
- A tiny _test() function has been added to Tkinter.py.
-- A generic Makefile for dynamically loaded modules is provided in the Misc
+- A generic Makefile for dynamically loaded modules is provided in the Misc
subdirectory (Misc/gMakefile).
- A new version of python-mode.el for Emacs is provided. See
@@ -25357,25 +25390,25 @@ http://www.python.org/ftp/emacs/pmdetails.html for details. The
separate file pyimenu.el is no longer needed, imenu support is folded
into python-mode.el.
-- The configure script can finally correctly find the readline library in a
-non-standard location. The LDFLAGS variable is passed on the Makefiles
+- The configure script can finally correctly find the readline library in a
+non-standard location. The LDFLAGS variable is passed on the Makefiles
from the configure script.
-- Shared libraries are now installed as programs (i.e. with executable
+- Shared libraries are now installed as programs (i.e. with executable
permission). This is required on HP-UX and won't hurt on other systems.
-- The objc.c module is no longer part of the distribution. Objective-C
+- The objc.c module is no longer part of the distribution. Objective-C
support may become available as contributed software on the ftp site.
- The sybase module is no longer part of the distribution. A much
improved sybase module is available as contributed software from the
ftp site.
-- _tkinter is now compatible with Tcl 7.5 / Tk 4.1 patch1 on Windows and
-Mac (don't use unpatched Tcl/Tk!). The default line in the Setup.in file
+- _tkinter is now compatible with Tcl 7.5 / Tk 4.1 patch1 on Windows and
+Mac (don't use unpatched Tcl/Tk!). The default line in the Setup.in file
now links with Tcl 7.5 / Tk 4.1 rather than 7.4/4.0.
-- In Setup, you can now write "*shared*" instead of "*noconfig*", and you
+- In Setup, you can now write "*shared*" instead of "*noconfig*", and you
can use *.so and *.sl as shared libraries.
- Some more fidgeting for AIX shared libraries.
@@ -25384,81 +25417,81 @@ can use *.so and *.sl as shared libraries.
(Note -- a complete replacement by Niels Mo"ller, called gpmodule, is
available from the contrib directory on the ftp site.)
-- A warning is written to sys.stderr when a __del__ method raises an
+- A warning is written to sys.stderr when a __del__ method raises an
exception (formerly, such exceptions were completely ignored).
-- The configure script now defines HAVE_OLD_CPP if the C preprocessor is
+- The configure script now defines HAVE_OLD_CPP if the C preprocessor is
incapable of ANSI style token concatenation and stringification.
-- All source files (except a few platform specific modules) are once again
+- All source files (except a few platform specific modules) are once again
compatible with K&R C compilers as well as ANSI compilers. In particular,
-ANSI-isms have been removed or made conditional in complexobject.c,
+ANSI-isms have been removed or made conditional in complexobject.c,
getargs.c and operator.c.
-- The abstract object API has three new functions, PyObject_DelItem,
+- The abstract object API has three new functions, PyObject_DelItem,
PySequence_DelItem, and PySequence_DelSlice.
-- The operator module has new functions delitem and delslice, and the
-functions "or" and "and" are renamed to "or_" and "and_" (since "or" and
+- The operator module has new functions delitem and delslice, and the
+functions "or" and "and" are renamed to "or_" and "and_" (since "or" and
"and" are reserved words). ("__or__" and "__and__" are unchanged.)
-- The environment module is no longer supported; putenv() is now a function
+- The environment module is no longer supported; putenv() is now a function
in posixmodule (also under NT).
- Error in filter(<function>, "") has been fixed.
- Unrecognized keyword arguments raise TypeError, not KeyError.
-- Better portability, fewer bugs and memory leaks, fewer compiler warnings,
+- Better portability, fewer bugs and memory leaks, fewer compiler warnings,
some more documentation.
-- Bug in float power boundary case (0.0 to the negative integer power)
+- Bug in float power boundary case (0.0 to the negative integer power)
fixed.
-- The test of negative number to the float power has been moved from the
+- The test of negative number to the float power has been moved from the
built-in pow() function to floatobject.c (so complex numbers can yield the
correct result).
-- The bug introduced in beta2 where shared libraries loaded (using
+- The bug introduced in beta2 where shared libraries loaded (using
dlopen()) from the current directory would fail, has been fixed.
-- Modules imported as shared libraries now also have a __file__ attribute,
-giving the filename from which they were loaded. The only modules without
+- Modules imported as shared libraries now also have a __file__ attribute,
+giving the filename from which they were loaded. The only modules without
a __file__ attribute now are built-in modules.
-- On the Mac, dynamically loaded modules can end in either ".slb" or
-".<platform>.slb" where <platform> is either "CFM68K" or "ppc". The ".slb"
+- On the Mac, dynamically loaded modules can end in either ".slb" or
+".<platform>.slb" where <platform> is either "CFM68K" or "ppc". The ".slb"
extension should only be used for "fat" binaries.
-- C API addition: marshal.c now supports
+- C API addition: marshal.c now supports
PyMarshal_WriteObjectToString(object).
- C API addition: getargs.c now supports
PyArg_ParseTupleAndKeywords(args, kwdict, format, kwnames, ...)
to parse keyword arguments.
-- The PC versioning scheme (sys.winver) has changed once again. the
-version number is now "<digit>.<digit>.<digit>.<apiversion>", where the
-first three <digit>s are the Python version (e.g. "1.4.0" for Python 1.4,
-"1.4.1" for Python 1.4.1 -- the beta level is not included) and
+- The PC versioning scheme (sys.winver) has changed once again. the
+version number is now "<digit>.<digit>.<digit>.<apiversion>", where the
+first three <digit>s are the Python version (e.g. "1.4.0" for Python 1.4,
+"1.4.1" for Python 1.4.1 -- the beta level is not included) and
<apiversion> is the four-digit PYTHON_API_VERSION (currently 1005).
- h2py.py accepts whitespace before the # in CPP directives
-- On Solaris 2.5, it should now be possible to use either Posix threads or
-Solaris threads (XXX: how do you select which is used???). (Note: the
-Python pthreads interface doesn't fully support semaphores yet -- anyone
+- On Solaris 2.5, it should now be possible to use either Posix threads or
+Solaris threads (XXX: how do you select which is used???). (Note: the
+Python pthreads interface doesn't fully support semaphores yet -- anyone
care to fix this?)
-- Thread support should now work on AIX, using either DCE threads or
+- Thread support should now work on AIX, using either DCE threads or
pthreads.
- New file Demo/sockets/unicast.py
-- Working Mac port, with CFM68K support, with Tk 4.1 support (though not
+- Working Mac port, with CFM68K support, with Tk 4.1 support (though not
both) (XXX)
-- New project setup for PC port, now compatible with PythonWin, with
+- New project setup for PC port, now compatible with PythonWin, with
_tkinter and NumPy support (XXX)
- New module site.py (XXX)
@@ -25475,7 +25508,7 @@ _tkinter and NumPy support (XXX)
- string.atoi c.s. now raise an exception for an empty input string.
-- At last, it is no longer necessary to define HAVE_CONFIG_H in order to
+- At last, it is no longer necessary to define HAVE_CONFIG_H in order to
have config.h included at various places.
- Unrecognized keyword arguments now raise TypeError rather than KeyError.
@@ -25483,25 +25516,25 @@ have config.h included at various places.
- The makesetup script recognizes files with extension .so or .sl as
(shared) libraries.
-- 'access' is no longer a reserved word, and all code related to its
-implementation is gone (or at least #ifdef'ed out). This should make
+- 'access' is no longer a reserved word, and all code related to its
+implementation is gone (or at least #ifdef'ed out). This should make
Python a little speedier too!
-- Performance enhancements suggested by Sjoerd Mullender. This includes
-the introduction of two new optional function pointers in type object,
-getattro and setattro, which are like getattr and setattr but take a
+- Performance enhancements suggested by Sjoerd Mullender. This includes
+the introduction of two new optional function pointers in type object,
+getattro and setattro, which are like getattr and setattr but take a
string object instead of a C string pointer.
-- New operations in string module: lstrip(s) and rstrip(s) strip whitespace
-only on the left or only on the right, A new optional third argument to
-split() specifies the maximum number of separators honored (so
-splitfields(s, sep, n) returns a list of at most n+1 elements). (Since
+- New operations in string module: lstrip(s) and rstrip(s) strip whitespace
+only on the left or only on the right, A new optional third argument to
+split() specifies the maximum number of separators honored (so
+splitfields(s, sep, n) returns a list of at most n+1 elements). (Since
1.3, splitfields(s, None) is totally equivalent to split(s).)
-string.capwords() has an optional second argument specifying the
+string.capwords() has an optional second argument specifying the
separator (which is passed to split()).
-- regsub.split() has the same addition as string.split(). regsub.splitx(s,
-sep, maxsep) implements the functionality that was regsub.split(s, 1) in
+- regsub.split() has the same addition as string.split(). regsub.splitx(s,
+sep, maxsep) implements the functionality that was regsub.split(s, 1) in
1.4beta2 (return a list containing the delimiters as well as the words).
- Final touch for AIX loading, rewritten Misc/AIX-NOTES.
@@ -25545,11 +25578,11 @@ What's new in 1.4beta2 (since beta1)?
meaningful value (a few things were botched in beta 1). Lib/dos_8x3
is now a standard part of the distribution (alas).
-- More improvements to the installation procedure. Typing "make install"
-now inserts the version number in the pathnames of almost everything
-installed, and creates the machine dependent modules (FCNTL.py etc.) if not
-supplied by the distribution. (XXX There's still a problem with the latter
-because the "regen" script requires that Python is installed. Some manual
+- More improvements to the installation procedure. Typing "make install"
+now inserts the version number in the pathnames of almost everything
+installed, and creates the machine dependent modules (FCNTL.py etc.) if not
+supplied by the distribution. (XXX There's still a problem with the latter
+because the "regen" script requires that Python is installed. Some manual
intervention may still be required.) (This has been fixed in 1.4beta3.)
- New modules: errno, operator (XXX).
@@ -25612,8 +25645,8 @@ What's new in 1.4beta1 (since 1.3)?
- Added sys.platform and sys.exec_platform for Bill Janssen.
-- Installation has been completely overhauled. "make install" now installs
-everything, not just the python binary. Installation uses the install-sh
+- Installation has been completely overhauled. "make install" now installs
+everything, not just the python binary. Installation uses the install-sh
script (borrowed from X11) to install each file.
- New functions in the posix module: mkfifo, plock, remove (== unlink),
@@ -25623,59 +25656,59 @@ and ftruncate. More functions are also available under NT.
- Shared library support for FreeBSD.
-- The --with-readline option can now be used without a DIRECTORY argument,
-for systems where libreadline.* is in one of the standard places. It is
+- The --with-readline option can now be used without a DIRECTORY argument,
+for systems where libreadline.* is in one of the standard places. It is
also possible for it to be a shared library.
-- The extension tkinter has been renamed to _tkinter, to avoid confusion
-with Tkinter.py oncase insensitive file systems. It now supports Tk 4.1 as
+- The extension tkinter has been renamed to _tkinter, to avoid confusion
+with Tkinter.py oncase insensitive file systems. It now supports Tk 4.1 as
well as 4.0.
-- Author's change of address from CWI in Amsterdam, The Netherlands, to
+- Author's change of address from CWI in Amsterdam, The Netherlands, to
CNRI in Reston, VA, USA.
-- The math.hypot() function is now always available (if it isn't found in
+- The math.hypot() function is now always available (if it isn't found in
the C math library, Python provides its own implementation).
-- The latex documentation is now compatible with latex2e, thanks to David
+- The latex documentation is now compatible with latex2e, thanks to David
Ascher.
- The expression x**y is now equivalent to pow(x, y).
- The indexing expression x[a, b, c] is now equivalent to x[(a, b, c)].
-- Complex numbers are now supported. Imaginary constants are written with
-a 'j' or 'J' prefix, general complex numbers can be formed by adding a real
-part to an imaginary part, like 3+4j. Complex numbers are always stored in
-floating point form, so this is equivalent to 3.0+4.0j. It is also
-possible to create complex numbers with the new built-in function
-complex(re, [im]). For the footprint-conscious, complex number support can
+- Complex numbers are now supported. Imaginary constants are written with
+a 'j' or 'J' prefix, general complex numbers can be formed by adding a real
+part to an imaginary part, like 3+4j. Complex numbers are always stored in
+floating point form, so this is equivalent to 3.0+4.0j. It is also
+possible to create complex numbers with the new built-in function
+complex(re, [im]). For the footprint-conscious, complex number support can
be disabled by defining the symbol WITHOUT_COMPLEX.
- New built-in function list() is the long-awaited counterpart of tuple().
-- There's a new "cmath" module which provides the same functions as the
-"math" library but with complex arguments and results. (There are very
-good reasons why math.sqrt(-1) still raises an exception -- you have to use
+- There's a new "cmath" module which provides the same functions as the
+"math" library but with complex arguments and results. (There are very
+good reasons why math.sqrt(-1) still raises an exception -- you have to use
cmath.sqrt(-1) to get 1j for an answer.)
-- The Python.h header file (which is really the same as allobjects.h except
-it disables support for old style names) now includes several more files,
+- The Python.h header file (which is really the same as allobjects.h except
+it disables support for old style names) now includes several more files,
so you have to have fewer #include statements in the average extension.
-- The NDEBUG symbol is no longer used. Code that used to be dependent on
-the presence of NDEBUG is now present on the absence of DEBUG. TRACE_REFS
-and REF_DEBUG have been renamed to Py_TRACE_REFS and Py_REF_DEBUG,
-respectively. At long last, the source actually compiles and links without
+- The NDEBUG symbol is no longer used. Code that used to be dependent on
+the presence of NDEBUG is now present on the absence of DEBUG. TRACE_REFS
+and REF_DEBUG have been renamed to Py_TRACE_REFS and Py_REF_DEBUG,
+respectively. At long last, the source actually compiles and links without
errors when this symbol is defined.
-- Several symbols that didn't follow the new naming scheme have been
-renamed (usually by adding to rename2.h) to use a Py or _Py prefix. There
-are no external symbols left without a Py or _Py prefix, not even those
-defined by sources that were incorporated from elsewhere (regexpr.c,
+- Several symbols that didn't follow the new naming scheme have been
+renamed (usually by adding to rename2.h) to use a Py or _Py prefix. There
+are no external symbols left without a Py or _Py prefix, not even those
+defined by sources that were incorporated from elsewhere (regexpr.c,
md5c.c). (Macros are a different story...)
-- There are now typedefs for the structures defined in config.c and
+- There are now typedefs for the structures defined in config.c and
frozen.c.
- New PYTHON_API_VERSION value and .pyc file magic number.
@@ -25689,125 +25722,125 @@ frozen.c.
- The binhex and binascii modules now actually work.
- The cgi module has been almost totally rewritten and documented.
-It now supports file upload and a new data type to handle forms more
+It now supports file upload and a new data type to handle forms more
flexibly.
- The formatter module (for use with htmllib) has been overhauled (again).
- The ftplib module now supports passive mode and has doc strings.
-- In (ideally) all places where binary files are read or written, the file
-is now correctly opened in binary mode ('rb' or 'wb') so the code will work
+- In (ideally) all places where binary files are read or written, the file
+is now correctly opened in binary mode ('rb' or 'wb') so the code will work
on Mac or PC.
-- Dummy versions of os.path.expandvars() and expanduser() are now provided
+- Dummy versions of os.path.expandvars() and expanduser() are now provided
on non-Unix platforms.
-- Module urllib now has two new functions url2pathname and pathname2url
-which turn local filenames into "file:..." URLs using the same rules as
-Netscape (why be different). it also supports urlretrieve() with a
-pathname parameter, and honors the proxy environment variables (http_proxy
+- Module urllib now has two new functions url2pathname and pathname2url
+which turn local filenames into "file:..." URLs using the same rules as
+Netscape (why be different). it also supports urlretrieve() with a
+pathname parameter, and honors the proxy environment variables (http_proxy
etc.). The URL parsing has been improved somewhat, too.
-- Micro improvements to urlparse. Added urlparse.urldefrag() which
+- Micro improvements to urlparse. Added urlparse.urldefrag() which
removes a trailing ``#fragment'' if any.
- The mailbox module now supports MH style message delimiters as well.
-- The mhlib module contains some new functionality: setcontext() to set the
-current folder and parsesequence() to parse a sequence as commonly passed
+- The mhlib module contains some new functionality: setcontext() to set the
+current folder and parsesequence() to parse a sequence as commonly passed
to MH commands (e.g. 1-10 or last:5).
-- New module mimify for conversion to and from MIME format of email
+- New module mimify for conversion to and from MIME format of email
messages.
-- Module ni now automatically installs itself when first imported -- this
-is against the normal rule that modules should define classes and functions
-but not invoke them, but appears more useful in the case that two
+- Module ni now automatically installs itself when first imported -- this
+is against the normal rule that modules should define classes and functions
+but not invoke them, but appears more useful in the case that two
different, independent modules want to use ni's features.
- Some small performance enhancements in module pickle.
-- Small interface change to the profile.run*() family of functions -- more
+- Small interface change to the profile.run*() family of functions -- more
sensible handling of return values.
-- The officially registered Mac creator for Python files is 'Pyth'. This
+- The officially registered Mac creator for Python files is 'Pyth'. This
replaces 'PYTH' which was used before but never registered.
- Added regsub.capwords(). (XXX)
-- Added string.capwords(), string.capitalize() and string.translate().
+- Added string.capwords(), string.capitalize() and string.translate().
(XXX)
-- Fixed an interface bug in the rexec module: it was impossible to pass a
-hooks instance to the RExec class. rexec now also supports the dynamic
-loading of modules from shared libraries. Some other interfaces have been
+- Fixed an interface bug in the rexec module: it was impossible to pass a
+hooks instance to the RExec class. rexec now also supports the dynamic
+loading of modules from shared libraries. Some other interfaces have been
added too.
-- Module rfc822 now caches the headers in a dictionary for more efficient
+- Module rfc822 now caches the headers in a dictionary for more efficient
lookup.
-- The sgmllib module now understands a limited number of SGML "shorthands"
+- The sgmllib module now understands a limited number of SGML "shorthands"
like <A/.../ for <A>...</A>. (It's not clear that this was a good idea...)
-- The tempfile module actually tries a number of different places to find a
-usable temporary directory. (This was prompted by certain Linux
-installations that appear to be missing a /usr/tmp directory.) [A bug in
-the implementation that would ignore a pre-existing tmpdir global has been
+- The tempfile module actually tries a number of different places to find a
+usable temporary directory. (This was prompted by certain Linux
+installations that appear to be missing a /usr/tmp directory.) [A bug in
+the implementation that would ignore a pre-existing tmpdir global has been
fixed in beta3.]
- Much improved and enhanved FileDialog module for Tkinter.
-- Many small changes to Tkinter, to bring it more in line with Tk 4.0 (as
+- Many small changes to Tkinter, to bring it more in line with Tk 4.0 (as
well as Tk 4.1).
-- New socket interfaces include ntohs(), ntohl(), htons(), htonl(), and
-s.dup(). Sockets now work correctly on Windows. On Windows, the built-in
-extension is called _socket and a wrapper module win/socket.py provides
-"makefile()" and "dup()" functionality. On Windows, the select module
+- New socket interfaces include ntohs(), ntohl(), htons(), htonl(), and
+s.dup(). Sockets now work correctly on Windows. On Windows, the built-in
+extension is called _socket and a wrapper module win/socket.py provides
+"makefile()" and "dup()" functionality. On Windows, the select module
works only with socket objects.
- Bugs in bsddb module fixed (e.g. missing default argument values).
- The curses extension now includes <ncurses.h> when available.
-- The gdbm module now supports opening databases in "fast" mode by
+- The gdbm module now supports opening databases in "fast" mode by
specifying 'f' as the second character or the mode string.
-- new variables sys.prefix and sys.exec_prefix pass corresponding
+- new variables sys.prefix and sys.exec_prefix pass corresponding
configuration options / Makefile variables to the Python programmer.
-- The ``new'' module now supports creating new user-defined classes as well
+- The ``new'' module now supports creating new user-defined classes as well
as instances thereof.
-- The soundex module now sports get_soundex() to get the soundex value for an
-arbitrary string (formerly it would only do soundex-based string
+- The soundex module now sports get_soundex() to get the soundex value for an
+arbitrary string (formerly it would only do soundex-based string
comparison) as well as doc strings.
-- New object type "cobject" to safely wrap void pointers for passing them
+- New object type "cobject" to safely wrap void pointers for passing them
between various extension modules.
- More efficient computation of float**smallint.
-- The mysterious bug whereby "x.x" (two occurrences of the same
-one-character name) typed from the commandline would sometimes fail
+- The mysterious bug whereby "x.x" (two occurrences of the same
+one-character name) typed from the commandline would sometimes fail
mysteriously.
-- The initialization of the readline function can now be invoked by a C
+- The initialization of the readline function can now be invoked by a C
extension through PyOS_ReadlineInit().
-- There's now an externally visible pointer PyImport_FrozenModules which
+- There's now an externally visible pointer PyImport_FrozenModules which
can be changed by an embedding application.
-- The argument parsing functions now support a new format character 'D' to
+- The argument parsing functions now support a new format character 'D' to
specify complex numbers.
- Various memory leaks plugged and bugs fixed.
-- Improved support for posix threads (now that real implementations are
+- Improved support for posix threads (now that real implementations are
beginning to apepar). Still no fully functioning semaphores.
-- Some various and sundry improvements and new entries in the Tools
+- Some various and sundry improvements and new entries in the Tools
directory.
@@ -27417,7 +27450,7 @@ it's now about 38).
The limit on the size of the *run-time* stack has completely been
removed -- this means that tuple or list displays can contain any
number of elements (formerly more than 50 would crash the
-interpreter).
+interpreter).
Changes to existing built-in functions and methods
diff --git a/Misc/NEWS b/Misc/NEWS
index 0593d89..7a72f6b 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -2,10 +2,10 @@
Python News
+++++++++++
-What's New in Python 3.4.4rc1?
-==============================
+What's New in Python 3.5.0 beta 1?
+==================================
-Release date: tba
+Release date: 2015-05-24
Core and Builtins
-----------------
@@ -18,11 +18,18 @@ Core and Builtins
- Issue #24102: Fixed exception type checking in standard error handlers.
+- Issue #15027: The UTF-32 encoder is now 3x to 7x faster.
+
+- Issue #23290: Optimize set_merge() for cases where the target is empty.
+ (Contributed by Serhiy Storchaka.)
+
+- Issue #20274: When calling a _sqlite.Connection, it now complains if passed
+ any keyword arguments. Previously it silently ignored them.
+
- Issue #20274: Remove ignored and erroneous "kwargs" parameters from three
METH_VARARGS methods on _sqlite.Connection.
-- Issue #23757: PySequence_Tuple() incorrectly called the concrete list API
- when the data was a list subclass.
+- Issue #2292: PEP 448: Additional Unpacking Generalizations.
- Issue #24096: Make warnings.warn_explicit more robust against mutation of the
warnings.filters list.
@@ -30,37 +37,45 @@ Core and Builtins
- Issue #23996: Avoid a crash when a delegated generator raises an
unnormalized StopIteration exception. Patch by Stefan Behnel.
-- Issue #24022: Fix tokenizer crash when processing undecodable source code.
+- Issue #23910: Optimize property() getter calls. Patch by Joe Jevnik.
-- Issue #23309: Avoid a deadlock at shutdown if a daemon thread is aborted
- while it is holding a lock to a buffered I/O object, and the main thread
- tries to use the same I/O object (typically stdout or stderr). A fatal
- error is emitted instead.
+- Issue #23911: Move path-based importlib bootstrap code to a separate
+ frozen module.
-- Issue #22977: Fixed formatting Windows error messages on Wine.
- Patch by Martin Panter.
+- Issue #24192: Fix namespace package imports.
-- Issue #23803: Fixed str.partition() and str.rpartition() when a separator
- is wider then partitioned string.
+- Issue #24022: Fix tokenizer crash when processing undecodable source code.
-- Issue #23192: Fixed generator lambdas. Patch by Bruno Cauet.
+- Issue #9951: Added a hex() method to bytes, bytearray, and memoryview.
-- Issue #23629: Fix the default __sizeof__ implementation for variable-sized
- objects.
+- Issue #22906: PEP 479: Change StopIteration handling inside generators.
-- Issue #24044: Fix possible null pointer dereference in list.sort in out of
- memory conditions.
+- Issue #24017: PEP 492: Coroutines with async and await syntax.
-- Issue #21354: PyCFunction_New function is exposed by python DLL again.
+- Issue #23898: Fix inspect.classify_class_attrs() to support attributes
+ with overloaded __eq__ and __bool__. Patch by Mike Bayer.
Library
-------
+- Issue #15836: assertRaises(), assertRaisesRegex(), assertWarns() and
+ assertWarnsRegex() assertments now check the type of the first argument
+ to prevent possible user error. Based on patch by Daniel Wagner-Hall.
+
+- Issue #9858: Add missing method stubs to _io.RawIOBase. Patch by Laura
+ Rupprecht.
+
+- Issue #22955: attrgetter, itemgetter and methodcaller objects in the operator
+ module now support pickling. Added readable and evaluable repr for these
+ objects. Based on patch by Josh Rosenberg.
+
- Issue #22107: tempfile.gettempdir() and tempfile.mkdtemp() now try again
when a directory with the chosen name already exists on Windows as well as
on Unix. tempfile.mkstemp() now fails early if parent directory is not
valid (not exists or is a file) on Windows.
+- Issue #23780: Improved error message in os.path.join() with single argument.
+
- Issue #6598: Increased time precision and random number range in
email.utils.make_msgid() to strengthen the uniqueness of the message ID.
@@ -71,31 +86,79 @@ Library
argument instead of a ValueError with a bogus FCI error number.
Patch by Jeffrey Armstrong.
+- Issue #13866: *quote_via* argument added to urllib.parse.urlencode.
+
+- Issue #20098: New mangle_from policy option for email, default True
+ for compat32, but False for all other policies.
+
+- Issue #24211: The email library now supports RFC 6532: it can generate
+ headers using utf-8 instead of encoded words.
+
+- Issue #16314: Added support for the LZMA compression in distutils.
+
+- Issue #21804: poplib now supports RFC 6856 (UTF8).
+
+- Issue #18682: Optimized pprint functions for builtin scalar types.
+
+- Issue #22027: smtplib now supports RFC 6531 (SMTPUTF8).
+
+- Issue #23488: Random generator objects now consume 2x less memory on 64-bit.
+
+- Issue #1322: platform.dist() and platform.linux_distribution() functions are
+ now deprecated. Initial patch by Vajrasky Kok.
+
+- Issue #22486: Added the math.gcd() function. The fractions.gcd() function now is
+ deprecated. Based on patch by Mark Dickinson.
+
+- Issue #24064: Property() docstrings are now writeable.
+ (Patch by Berker Peksag.)
+
+- Issue #22681: Added support for the koi8_t encoding.
+
+- Issue #22682: Added support for the kz1048 encoding.
+
- Issue #23796: peek and read1 methods of BufferedReader now raise ValueError
if they called on a closed object. Patch by John Hergenroeder.
+- Issue #21795: smtpd now supports the 8BITMIME extension whenever
+ the new *decode_data* constructor argument is set to False.
+
+- Issue #24155: optimize heapq.heapify() for better cache performance
+ when heapifying large lists.
+
+- Issue #21800: imaplib now supports RFC 5161 (enable), RFC 6855
+ (utf8/internationalized email) and automatically encodes non-ASCII
+ usernames and passwords to UTF8.
+
+- Issue #24134: assertRaises(), assertRaisesRegex(), assertWarns() and
+ assertWarnsRegex() checks now emits a deprecation warning when callable is
+ None or keyword arguments except msg is passed in the context manager mode.
+
+- Issue #24018: Add a collections.abc.Generator abstract base class.
+ Contributed by Stefan Behnel.
+
+- Issue #23880: Tkinter's getint() and getdouble() now support Tcl_Obj.
+ Tkinter's getdouble() now supports any numbers (in particular int).
+
+- Issue #22619: Added negative limit support in the traceback module.
+ Based on patch by Dmitry Kazakov.
+
- Issue #24094: Fix possible crash in json.encode with poorly behaved dict
subclasses.
-- Asyncio issue 222 / PR 231 (Victor Stinner) -- fix @coroutine
- functions without __name__.
-
- Issue #9246: On POSIX, os.getcwd() now supports paths longer than 1025 bytes.
Patch written by William Orr.
-- The keywords attribute of functools.partial is now always a dictionary.
-
-- Issues #24099, #24100, and #24101: Fix free-after-use bug in heapq's siftup
- and siftdown functions.
+- Issue #17445: add difflib.diff_bytes() to support comparison of
+ byte strings (fixes a regression from Python 2).
-- Backport collections.deque fixes from Python 3.5. Prevents reentrant badness
- during deletion by deferring the decref until the container has been restored
- to a consistent state.
+- Issue #23917: Fall back to sequential compilation when ProcessPoolExecutor
+ doesn't exist. Patch by Claudiu Popa.
- Issue #23008: Fixed resolving attributes with boolean value is False in pydoc.
- Fix asyncio issue 235: LifoQueue and PriorityQueue's put didn't
- increment unfinished tasks (this bug was introduced in 3.4.3 when
+ increment unfinished tasks (this bug was introduced when
JoinableQueue was merged with Queue).
- Issue #23908: os functions now reject paths with embedded null character
@@ -104,64 +167,374 @@ Library
- Issue #23728: binascii.crc_hqx() could return an integer outside of the range
0-0xffff for empty data.
+- Issue #23887: urllib.error.HTTPError now has a proper repr() representation.
+ Patch by Berker Peksag.
+
+- asyncio: New event loop APIs: set_task_factory() and get_task_factory().
+
+- asyncio: async() function is deprecated in favour of ensure_future().
+
+- Issue 24178: asyncio.Lock, Condition, Semaphore, and BoundedSemaphore
+ support new 'async with' syntax. Contributed by Yury Selivanov.
+
+- Issue 24179: Support 'async for' for asyncio.StreamReader.
+ Contributed by Yury Selivanov.
+
+- Issue 24184: Add AsyncIterator and AsyncIterable ABCs to
+ collections.abc. Contributed by Yury Selivanov.
+
+- Issue 22547: Implement informative __repr__ for inspect.BoundArguments.
+ Contributed by Yury Selivanov.
+
+- Issue 24190: Implement inspect.BoundArgument.apply_defaults() method.
+ Contributed by Yury Selivanov.
+
+- Issue 20691: Add 'follow_wrapped' argument to
+ inspect.Signature.from_callable() and inspect.signature().
+ Contributed by Yury Selivanov.
+
+- Issue 24248: Deprecate inspect.Signature.from_function() and
+ inspect.Signature.from_builtin().
+
+Tests
+-----
+
+- Issue #21520: test_zipfile no longer fails if the word 'bad' appears
+ anywhere in the name of the current directory.
+
+- Issue #9517: Move script_helper into the support package.
+ Patch by Christie Wilson.
+
+Documentation
+-------------
+
+- Issue #22155: Add File Handlers subsection with createfilehandler to tkinter
+ doc. Remove obsolete example from FAQ. Patch by Martin Panter.
+
+- Issue #24029: Document the name binding behavior for submodule imports.
+
+- Issue #24077: Fix typo in man page for -I command option: -s, not -S
+
+Tools/Demos
+-----------
+
+- Issue #24000: Improved Argument Clinic's mapping of converters to legacy
+ "format units". Updated the documentation to match.
+
+- Issue #24001: Argument Clinic converters now use accept={type}
+ instead of types={'type'} to specify the types the converter accepts.
+
+- Issue #23330: h2py now supports arbitrary filenames in #include.
+
+- Issue #24031: make patchcheck now supports git checkouts, too.
+
+
+What's New in Python 3.5.0 alpha 4?
+===================================
+
+Release date: 2015-04-19
+
+Core and Builtins
+-----------------
+
+- Issue #22980: Under Linux, GNU/KFreeBSD and the Hurd, C extensions now include
+ the architecture triplet in the extension name, to make it easy to test builds
+ for different ABIs in the same working tree. Under OS X, the extension name
+ now includes PEP 3149-style information.
+
+- Issue #22631: Added Linux-specific socket constant CAN_RAW_FD_FRAMES.
+ Patch courtesy of Joe Jevnik.
+
+- Issue #23731: Implement PEP 488: removal of .pyo files.
+
+- Issue #23726: Don't enable GC for user subclasses of non-GC types that
+ don't add any new fields. Patch by Eugene Toder.
+
+- Issue #23309: Avoid a deadlock at shutdown if a daemon thread is aborted
+ while it is holding a lock to a buffered I/O object, and the main thread
+ tries to use the same I/O object (typically stdout or stderr). A fatal
+ error is emitted instead.
+
+- Issue #22977: Fixed formatting Windows error messages on Wine.
+ Patch by Martin Panter.
+
+- Issue #23466: %c, %o, %x, and %X in bytes formatting now raise TypeError on
+ non-integer input.
+
+- Issue #24044: Fix possible null pointer dereference in list.sort in out of
+ memory conditions.
+
+- Issue #21354: PyCFunction_New function is exposed by python DLL again.
+
+Library
+-------
+
+- Issue #16914: new debuglevel 2 in smtplib adds timestamps to debug output.
+
+- Issue #7159: urllib.request now supports sending auth credentials
+ automatically after the first 401. This enhancement is a superset of the
+ enhancement from issue #19494 and supersedes that change.
+
+- Issue #23703: Fix a regression in urljoin() introduced in 901e4e52b20a.
+ Patch by Demian Brecht.
+
+- Issue #4254: Adds _curses.update_lines_cols() Patch by Arnon Yaari
+
+- Issue 19933: Provide default argument for ndigits in round. Patch by
+ Vajrasky Kok.
+
+- Issue #23193: Add a numeric_owner parameter to
+ tarfile.TarFile.extract and tarfile.TarFile.extractall. Patch by
+ Michael Vogt and Eric Smith.
+
+- Issue #23342: Add a subprocess.run() function than returns a CalledProcess
+ instance for a more consistent API than the existing call* functions.
+
+- Issue #21217: inspect.getsourcelines() now tries to compute the start and end
+ lines from the code object, fixing an issue when a lambda function is used as
+ decorator argument. Patch by Thomas Ballinger and Allison Kaptur.
+
+- The keywords attribute of functools.partial is now always a dictionary.
+
- Issue #23811: Add missing newline to the PyCompileError error message.
Patch by Alex Shkop.
-- Issue #17898: Fix exception in gettext.py when parsing certain plural forms.
+- Issue #21116: Avoid blowing memory when allocating a multiprocessing shared
+ array that's larger than 50% of the available RAM. Patch by Médéric Boquien.
- Issue #22982: Improve BOM handling when seeking to multiple positions of
a writable text file.
+- Issue #23464: Removed deprecated asyncio JoinableQueue.
+
+- Issue #23529: Limit the size of decompressed data when reading from
+ GzipFile, BZ2File or LZMAFile. This defeats denial of service attacks
+ using compressed bombs (i.e. compressed payloads which decompress to a huge
+ size). Patch by Martin Panter and Nikolaus Rath.
+
+- Issue #21859: Added Python implementation of io.FileIO.
+
- Issue #23865: close() methods in multiple modules now are idempotent and more
robust at shutdown. If they need to release multiple resources, all are
released even if errors occur.
+- Issue #23400: Raise same exception on both Python 2 and 3 if sem_open is not
+ available. Patch by Davin Potts.
+
+- Issue #10838: The subprocess now module includes SubprocessError and
+ TimeoutError in its list of exported names for the users wild enough
+ to use ``from subprocess import *``.
+
+- Issue #23411: Added DefragResult, ParseResult, SplitResult, DefragResultBytes,
+ ParseResultBytes, and SplitResultBytes to urllib.parse.__all__.
+ Patch by Martin Panter.
+
- Issue #23881: urllib.request.ftpwrapper constructor now closes the socket if
the FTP connection failed to fix a ResourceWarning.
-- Issue #23400: Raise same exception on both Python 2 and 3 if sem_open is not
- available. Patch by Davin Potts.
+- Issue #23853: :meth:`socket.socket.sendall` does no more reset the socket
+ timeout each time data is sent successfuly. The socket timeout is now the
+ maximum total duration to send all data.
+
+- Issue #22721: An order of multiline pprint output of set or dict containing
+ orderable and non-orderable elements no longer depends on iteration order of
+ set or dict.
- Issue #15133: _tkinter.tkapp.getboolean() now supports Tcl_Obj and always
returns bool. tkinter.BooleanVar now validates input values (accepted bool,
int, str, and Tcl_Obj). tkinter.BooleanVar.get() now always returns bool.
+- Issue #10590: xml.sax.parseString() now supports string argument.
+
- Issue #23338: Fixed formatting ctypes error messages on Cygwin.
Patch by Makoto Kato.
+- Issue #15582: inspect.getdoc() now follows inheritance chains.
+
+- Issue #2175: SAX parsers now support a character stream of InputSource object.
+
- Issue #16840: Tkinter now supports 64-bit integers added in Tcl 8.4 and
arbitrary precision integers added in Tcl 8.5.
- Issue #23834: Fix socket.sendto(), use the C Py_ssize_t type to store the
result of sendto() instead of the C int type.
+- Issue #23618: :meth:`socket.socket.connect` now waits until the connection
+ completes instead of raising :exc:`InterruptedError` if the connection is
+ interrupted by signals, signal handlers don't raise an exception and the
+ socket is blocking or has a timeout. :meth:`socket.socket.connect` still
+ raise :exc:`InterruptedError` for non-blocking sockets.
+
- Issue #21526: Tkinter now supports new boolean type in Tcl 8.5.
+- Issue #23836: Fix the faulthandler module to handle reentrant calls to
+ its signal handlers.
+
- Issue #23838: linecache now clears the cache and returns an empty result on
MemoryError.
+- Issue #10395: Added os.path.commonpath(). Implemented in posixpath and ntpath.
+ Based on patch by Rafik Draoui.
+
+- Issue #23611: Serializing more "lookupable" objects (such as unbound methods
+ or nested classes) now are supported with pickle protocols < 4.
+
+- Issue #13583: sqlite3.Row now supports slice indexing.
+
- Issue #18473: Fixed 2to3 and 3to2 compatible pickle mappings. Fixed
ambigious reverse mappings. Added many new mappings. Import mapping is no
longer applied to modules already mapped with full name mapping.
+- Issue #23485: select.select() is now retried automatically with the
+ recomputed timeout when interrupted by a signal, except if the signal handler
+ raises an exception. This change is part of the PEP 475.
+
+- Issue #23752: When built from an existing file descriptor, io.FileIO() now
+ only calls fstat() once. Before fstat() was called twice, which was not
+ necessary.
+
+- Issue #23704: collections.deque() objects now support __add__, __mul__, and
+ __imul__().
+
+- Issue #23171: csv.Writer.writerow() now supports arbitrary iterables.
+
- Issue #23745: The new email header parser now handles duplicate MIME
parameter names without error, similar to how get_param behaves.
+- Issue #22117: Fix os.utime(), it now rounds the timestamp towards minus
+ infinity (-inf) instead of rounding towards zero.
+
+- Issue #23310: Fix MagicMock's initializer to work with __methods__, just
+ like configure_mock(). Patch by Kasia Jachim.
+
+
+Build
+-----
+
+- Issue #23817: FreeBSD now uses "1.0" the the SOVERSION as other operating
+ systems, instead of just "1".
+
+- Issue #23501: Argument Clinic now generates code into separate files by default.
+
+Tests
+-----
+
+- Issue #23799: Added test.support.start_threads() for running and
+ cleaning up multiple threads.
+
+- Issue #22390: test.regrtest now emits a warning if temporary files or
+ directories are left after running a test.
+
+Tools/Demos
+-----------
+
+- Issue #18128: pygettext now uses standard +NNNN format in the
+ POT-Creation-Date header.
+
+- Issue #23935: Argument Clinic's understanding of format units
+ accepting bytes, bytearrays, and buffers is now consistent with
+ both the documentation and the implementation.
+
+- Issue #23944: Argument Clinic now wraps long impl prototypes at column 78.
+
+- Issue #20586: Argument Clinic now ensures that functions without docstrings
+ have signatures.
+
+- Issue #23492: Argument Clinic now generates argument parsing code with
+ PyArg_Parse instead of PyArg_ParseTuple if possible.
+
+- Issue #23500: Argument Clinic is now smarter about generating the "#ifndef"
+ (empty) definition of the methoddef macro: it's only generated once, even
+ if Argument Clinic processes the same symbol multiple times, and it's emitted
+ at the end of all processing rather than immediately after the first use.
+
+C API
+-----
+
+- Issue #23998: PyImport_ReInitLock() now checks for lock allocation error
+
+
+What's New in Python 3.5.0 alpha 3?
+===================================
+
+Release date: 2015-03-28
+
+Core and Builtins
+-----------------
+
+- Issue #23573: Increased performance of string search operations (str.find,
+ str.index, str.count, the in operator, str.split, str.partition) with
+ arguments of different kinds (UCS1, UCS2, UCS4).
+
+- Issue #23753: Python doesn't support anymore platforms without stat() or
+ fstat(), these functions are always required.
+
+- Issue #23681: The -b option now affects comparisons of bytes with int.
+
+- Issue #23632: Memoryviews now allow tuple indexing (including for
+ multi-dimensional memoryviews).
+
+- Issue #23192: Fixed generator lambdas. Patch by Bruno Cauet.
+
+- Issue #23629: Fix the default __sizeof__ implementation for variable-sized
+ objects.
+
+Library
+-------
+
+- Issue #14260: The groupindex attribute of regular expression pattern object
+ now is non-modifiable mapping.
+
- Issue #23792: Ignore KeyboardInterrupt when the pydoc pager is active.
This mimics the behavior of the standard unix pagers, and prevents
pipepager from shutting down while the pager itself is still running.
+- Issue #23775: pprint() of OrderedDict now outputs the same representation
+ as repr().
+
+- Issue #23765: Removed IsBadStringPtr calls in ctypes
+
+- Issue #22364: Improved some re error messages using regex for hints.
+
- Issue #23742: ntpath.expandvars() no longer loses unbalanced single quotes.
+- Issue #21717: The zipfile.ZipFile.open function now supports 'x' (exclusive
+ creation) mode.
+
- Issue #21802: The reader in BufferedRWPair now is closed even when closing
writer failed in BufferedRWPair.close().
+- Issue #23622: Unknown escapes in regular expressions that consist of ``'\'``
+ and ASCII letter now raise a deprecation warning and will be forbidden in
+ Python 3.6.
+
- Issue #23671: string.Template now allows to specify the "self" parameter as
keyword argument. string.Formatter now allows to specify the "self" and
the "format_string" parameters as keyword arguments.
-- Issue #21560: An attempt to write a data of wrong type no longer cause
- GzipFile corruption. Original patch by Wolfgang Maier.
+- Issue #23502: The pprint module now supports mapping proxies.
+
+- Issue #17530: pprint now wraps long bytes objects and bytearrays.
+
+- Issue #22687: Fixed some corner cases in breaking words in tetxtwrap.
+ Got rid of quadratic complexity in breaking long words.
+
+- Issue #4727: The copy module now uses pickle protocol 4 (PEP 3154) and
+ supports copying of instances of classes whose __new__ method takes
+ keyword-only arguments.
+
+- Issue #23491: Added a zipapp module to support creating executable zip
+ file archives of Python code. Registered ".pyz" and ".pyzw" extensions
+ on Windows for these archives (PEP 441).
+
+- Issue #23657: Avoid explicit checks for str in zipapp, adding support
+ for pathlib.Path objects as arguments.
+
+- Issue #23688: Added support of arbitrary bytes-like objects and avoided
+ unnecessary copying of memoryview in gzip.GzipFile.write().
+ Original patch by Wolfgang Maier.
+
+- Issue #23252: Added support for writing ZIP files to unseekable streams.
- Issue #23647: Increase impalib's MAXLINE to accommodate modern mailbox sizes.
@@ -173,6 +546,23 @@ Library
and socket open until the garbage collector cleans them up. Patch by
Martin Panter.
+- Issue #23704: collections.deque() objects now support methods for index(),
+ insert(), and copy(). This allows deques to be registered as a
+ MutableSequence and it improves their substitutablity for lists.
+
+- Issue #23715: :func:`signal.sigwaitinfo` and :func:`signal.sigtimedwait` are
+ now retried when interrupted by a signal not in the *sigset* parameter, if
+ the signal handler does not raise an exception. signal.sigtimedwait()
+ recomputes the timeout with a monotonic clock when it is retried.
+
+- Issue #23001: Few functions in modules mmap, ossaudiodev, socket, ssl, and
+ codecs, that accepted only read-only bytes-like object now accept writable
+ bytes-like object too.
+
+- Issue #23646: If time.sleep() is interrupted by a signal, the sleep is now
+ retried with the recomputed delay, except if the signal handler raises an
+ exception (PEP 475).
+
- Issue #23136: _strptime now uniformly handles all days in week 0, including
Dec 30 of previous year. Based on patch by Jim Carroll.
@@ -182,9 +572,31 @@ Library
- Issue #22903: The fake test case created by unittest.loader when it fails
importing a test module is now picklable.
+- Issue #22181: On Linux, os.urandom() now uses the new getrandom() syscall if
+ available, syscall introduced in the Linux kernel 3.17. It is more reliable
+ and more secure, because it avoids the need of a file descriptor and waits
+ until the kernel has enough entropy.
+
+- Issue #2211: Updated the implementation of the http.cookies.Morsel class.
+ Setting attributes key, value and coded_value directly now is deprecated.
+ update() and setdefault() now transform and check keys. Comparing for
+ equality now takes into account attributes key, value and coded_value.
+ copy() now returns a Morsel, not a dict. repr() now contains all attributes.
+ Optimized checking keys and quoting values. Added new tests.
+ Original patch by Demian Brecht.
+
+- Issue #18983: Allow selection of output units in timeit.
+ Patch by Julian Gindi.
+
+- Issue #23631: Fix traceback.format_list when a traceback has been mutated.
+
- Issue #23568: Add rdivmod support to MagicMock() objects.
Patch by Håkan Lövdahl.
+- Issue #2052: Add charset parameter to HtmlDiff.make_file().
+
+- Issue #23668: Support os.truncate and os.ftruncate on Windows.
+
- Issue #23138: Fixed parsing cookies with absent keys or values in cookiejar.
Patch by Demian Brecht.
@@ -192,12 +604,66 @@ Library
handle exceptions raised by an iterator. Patch by Alon Diamant and Davin
Potts.
+- Issue #23581: Add matmul support to MagicMock. Patch by Håkan Lövdahl.
+
+- Issue #23566: enable(), register(), dump_traceback() and
+ dump_traceback_later() functions of faulthandler now accept file
+ descriptors. Patch by Wei Wu.
+
- Issue #22928: Disabled HTTP header injections in http.client.
Original patch by Demian Brecht.
- Issue #23615: Modules bz2, tarfile and tokenize now can be reloaded with
imp.reload(). Patch by Thomas Kluyver.
+- Issue #23605: os.walk() now calls os.scandir() instead of os.listdir().
+ The usage of os.scandir() reduces the number of calls to os.stat().
+ Initial patch written by Ben Hoyt.
+
+Build
+-----
+
+- Issue #23585: make patchcheck will ensure the interpreter is built.
+
+Tests
+-----
+
+- Issue #23583: Added tests for standard IO streams in IDLE.
+
+- Issue #22289: Prevent test_urllib2net failures due to ftp connection timeout.
+
+Tools/Demos
+-----------
+
+- Issue #22826: The result of open() in Tools/freeze/bkfile.py is now better
+ compatible with regular files (in particular it now supports the context
+ management protocol).
+
+
+What's New in Python 3.5 alpha 2?
+=================================
+
+Release date: 2015-03-09
+
+Core and Builtins
+-----------------
+
+- Issue #23571: PyObject_Call() and PyCFunction_Call() now raise a SystemError
+ if a function returns a result and raises an exception. The SystemError is
+ chained to the previous exception.
+
+Library
+-------
+
+- Issue #22524: New os.scandir() function, part of the PEP 471: "os.scandir()
+ function -- a better and faster directory iterator". Patch written by Ben
+ Hoyt.
+
+- Issue #23103: Reduced the memory consumption of IPv4Address and IPv6Address.
+
+- Issue #21793: BaseHTTPRequestHandler again logs response code as numeric,
+ not as stringified enum. Patch by Demian Brecht.
+
- Issue #23476: In the ssl module, enable OpenSSL's X509_V_FLAG_TRUSTED_FIRST
flag on certificate stores when it is available.
@@ -206,8 +672,16 @@ Library
- Issue #23504: Added an __all__ to the types module.
+- Issue #23563: Optimized utility functions in urllib.parse.
+
+- Issue #7830: Flatten nested functools.partial.
+
- Issue #20204: Added the __module__ attribute to _tkinter classes.
+- Issue #19980: Improved help() for non-recognized strings. help('') now
+ shows the help on str. help('help') now shows the help on help().
+ Original patch by Mark Lawrence.
+
- Issue #23521: Corrected pure python implementation of timedelta division.
* Eliminated OverflowError from timedelta * float for some floats;
@@ -216,12 +690,17 @@ Library
- Issue #21619: Popen objects no longer leave a zombie after exit in the with
statement if the pipe was broken. Patch by Martin Panter.
+- Issue #22936: Make it possible to show local variables in tracebacks for
+ both the traceback module and unittest.
+
+- Issue #15955: Add an option to limit the output size in bz2.decompress().
+ Patch by Nikolaus Rath.
+
- Issue #6639: Module-level turtle functions no longer raise TclError after
closing the window.
-- Issues #814253, #9179: Warnings now are raised when group references and
- conditional group references are used in lookbehind assertions in regular
- expressions.
+- Issues #814253, #9179: Group references and conditional group references now
+ work in lookbehind assertions in regular expressions.
- Issue #23215: Multibyte codecs with custom error handlers that ignores errors
consumed too much memory and raised SystemError or MemoryError.
@@ -241,41 +720,41 @@ Library
- Issue #22885: Fixed arbitrary code execution vulnerability in the dbm.dumb
module. Original patch by Claudiu Popa.
+- Issue #23239: ssl.match_hostname() now supports matching of IP addresses.
+
- Issue #23146: Fix mishandling of absolute Windows paths with forward
slashes in pathlib.
-- Issue #23421: Fixed compression in tarfile CLI. Patch by wdv4758h.
+- Issue #23096: Pickle representation of floats with protocol 0 now is the same
+ for both Python and C implementations.
-- Issue #23367: Fix possible overflows in the unicodedata module.
+- Issue #19105: pprint now more efficiently uses free space at the right.
-- Issue #23361: Fix possible overflow in Windows subprocess creation code.
+- Issue #14910: Add allow_abbrev parameter to argparse.ArgumentParser. Patch by
+ Jonathan Paugh, Steven Bethard, paul j3 and Daniel Eriksson.
-- Issue #23801: Fix issue where cgi.FieldStorage did not always ignore the
- entire preamble to a multipart body.
+- Issue #21717: tarfile.open() now supports 'x' (exclusive creation) mode.
-- Issue #23310: Fix MagicMock's initializer to work with __methods__, just
- like configure_mock(). Patch by Kasia Jachim.
+- Issue #23344: marshal.dumps() is now 20-25% faster on average.
-- asyncio: New event loop APIs: set_task_factory() and get_task_factory().
+- Issue #20416: marshal.dumps() with protocols 3 and 4 is now 40-50% faster on
+ average.
-- asyncio: async() function is deprecated in favour of ensure_future().
+- Issue #23421: Fixed compression in tarfile CLI. Patch by wdv4758h.
-- Issue 23898: Fix inspect.classify_class_attrs() to support attributes
- with overloaded __eq__ and __bool__. Patch by Mike Bayer.
+- Issue #23367: Fix possible overflows in the unicodedata module.
-Tests
------
+- Issue #23361: Fix possible overflow in Windows subprocess creation code.
-- Issue #21520: test_zipfile no longer fails if the word 'bad' appears
- anywhere in the name of the current directory.
+- logging.handlers.QueueListener now takes a respect_handler_level keyword
+ argument which, if set to True, will pass messages to handlers taking handler
+ levels into account.
-- Issue #23799: Added test.support.start_threads() for running and
- cleaning up multiple threads.
+- Issue #19705: turtledemo now has a visual sorting algorithm demo. Original
+ patch from Jason Yeo.
-- Issue #22390: test.regrtest now emits a warning if temporary files or
- directories are left after running a test.
-
-- Issue #23583: Added tests for standard IO streams in IDLE.
+- Issue #23801: Fix issue where cgi.FieldStorage did not always ignore the
+ entire preamble to a multipart body.
Build
-----
@@ -283,40 +762,34 @@ Build
- Issue #23445: pydebug builds now use "gcc -Og" where possible, to make
the resulting executable faster.
-- Issue #23686: Update OS X 10.5 installer and Windows builds to use
- OpenSSL 1.0.2a.
+- Issue #23686: Update OS X 10.5 installer build to use OpenSSL 1.0.2a.
C API
-----
-- Issue #23998: PyImport_ReInitLock() now checks for lock allocation error
+- Issue #20204: Deprecation warning is now raised for builtin type without the
+ __module__ attribute.
-Documentation
--------------
-
-- Issue #22155: Add File Handlers subsection with createfilehandler to tkinter
- doc. Remove obsolete example from FAQ. Patch by Martin Panter.
-
-- Issue #24029: Document the name binding behavior for submodule imports.
+Windows
+-------
-- Issue #24077: Fix typo in man page for -I command option: -s, not -S.
+- Issue #23465: Implement PEP 486 - Make the Python Launcher aware of virtual
+ environments. Patch by Paul Moore.
-Tools/Demos
------------
+- Issue #23437: Make user scripts directory versioned on Windows. Patch by Paul
+ Moore.
-- Issue #23330: h2py now supports arbitrary filenames in #include.
-- Issue #24031: make patchcheck now supports git checkouts, too.
+What's New in Python 3.5 alpha 1?
+=================================
-
-What's New in Python 3.4.3?
-===========================
-
-Release date: 2015-02-23
+Release date: 2015-02-08
Core and Builtins
-----------------
+- Issue #23285: PEP 475 - EINTR handling.
+
- Issue #22735: Fix many edge cases (including crashes) involving custom mro()
implementations.
@@ -326,17 +799,46 @@ Core and Builtins
- Issue #21295: Revert some changes (issue #16795) to AST line numbers and
column offsets that constituted a regression.
+- Issue #22986: Allow changing an object's __class__ between a dynamic type and
+ static type in some cases.
+
+- Issue #15859: PyUnicode_EncodeFSDefault(), PyUnicode_EncodeMBCS() and
+ PyUnicode_EncodeCodePage() now raise an exception if the object is not an
+ Unicode object. For PyUnicode_EncodeFSDefault(), it was already the case on
+ platforms other than Windows. Patch written by Campbell Barton.
+
- Issue #21408: The default __ne__() now returns NotImplemented if __eq__()
returned NotImplemented. Original patch by Martin Panter.
- Issue #23321: Fixed a crash in str.decode() when error handler returned
replacment string longer than mailformed input data.
+- Issue #22286: The "backslashreplace" error handlers now works with
+ decoding and translating.
+
+- Issue #23253: Delay-load ShellExecute[AW] in os.startfile for reduced
+ startup overhead on Windows.
+
+- Issue #22038: pyatomic.h now uses stdatomic.h or GCC built-in functions for
+ atomic memory access if available. Patch written by Vitor de Lima and Gustavo
+ Temple.
+
+- Issue #20284: %-interpolation (aka printf) formatting added for bytes and
+ bytearray.
+
- Issue #23048: Fix jumping out of an infinite while loop in the pdb.
- Issue #20335: bytes constructor now raises TypeError when encoding or errors
is specified with non-string argument. Based on patch by Renaud Blanch.
+- Issue #22834: If the current working directory ends up being set to a
+ non-existent directory then import will no longer raise FileNotFoundError.
+
+- Issue #22869: Move the interpreter startup & shutdown code to a new
+ dedicated pylifecycle.c module
+
+- Issue #22847: Improve method cache efficiency.
+
- Issue #22335: Fix crash when trying to enlarge a bytearray to 0x7fffffff
bytes on a 32-bit platform.
@@ -346,12 +848,28 @@ Core and Builtins
- Issue #22643: Fix integer overflow in Unicode case operations (upper, lower,
title, swapcase, casefold).
+- Issue #17636: Circular imports involving relative imports are now
+ supported.
+
- Issue #22604: Fix assertion error in debug mode when dividing a complex
number by (nan+0j).
+- Issue #21052: Do not raise ImportWarning when sys.path_hooks or sys.meta_path
+ are set to None.
+
+- Issue #16518: Use 'bytes-like object required' in error messages that
+ previously used the far more cryptic "'x' does not support the buffer
+ protocol.
+
- Issue #22470: Fixed integer overflow issues in "backslashreplace",
"xmlcharrefreplace", and "surrogatepass" error handlers.
+- Issue #22540: speed up `PyObject_IsInstance` and `PyObject_IsSubclass` in the
+ common case that the second argument has metaclass `type`.
+
+- Issue #18711: Add a new `PyErr_FormatV` function, similar to `PyErr_Format`
+ but accepting a `va_list` argument.
+
- Issue #22520: Fix overflow checking when generating the repr of a unicode
object.
@@ -359,6 +877,138 @@ Core and Builtins
- Issue #22518: Fix integer overflow issues in latin-1 encoding.
+- Issue #16324: _charset parameter of MIMEText now also accepts
+ email.charset.Charset instances. Initial patch by Claude Paroz.
+
+- Issue #1764286: Fix inspect.getsource() to support decorated functions.
+ Patch by Claudiu Popa.
+
+- Issue #18554: os.__all__ includes posix functions.
+
+- Issue #21391: Use os.path.abspath in the shutil module.
+
+- Issue #11471: avoid generating a JUMP_FORWARD instruction at the end of
+ an if-block if there is no else-clause. Original patch by Eugene Toder.
+
+- Issue #22215: Now ValueError is raised instead of TypeError when str or bytes
+ argument contains not permitted null character or byte.
+
+- Issue #22258: Fix the internal function set_inheritable() on Illumos.
+ This platform exposes the function ``ioctl(FIOCLEX)``, but calling it fails
+ with errno is ENOTTY: "Inappropriate ioctl for device". set_inheritable()
+ now falls back to the slower ``fcntl()`` (``F_GETFD`` and then ``F_SETFD``).
+
+- Issue #21389: Displaying the __qualname__ of the underlying function in the
+ repr of a bound method.
+
+- Issue #22206: Using pthread, PyThread_create_key() now sets errno to ENOMEM
+ and returns -1 (error) on integer overflow.
+
+- Issue #20184: Argument Clinic based signature introspection added for
+ 30 of the builtin functions.
+
+- Issue #22116: C functions and methods (of the 'builtin_function_or_method'
+ type) can now be weakref'ed. Patch by Wei Wu.
+
+- Issue #22077: Improve index error messages for bytearrays, bytes, lists,
+ and tuples by adding 'or slices'. Added ', not <typename' for bytearrays.
+ Original patch by Claudiu Popa.
+
+- Issue #20179: Apply Argument Clinic to bytes and bytearray.
+ Patch by Tal Einat.
+
+- Issue #22082: Clear interned strings in slotdefs.
+
+- Upgrade Unicode database to Unicode 7.0.0.
+
+- Issue #21897: Fix a crash with the f_locals attribute with closure
+ variables when frame.clear() has been called.
+
+- Issue #21205: Add a new ``__qualname__`` attribute to generator, the
+ qualified name, and use it in the representation of a generator
+ (``repr(gen)``). The default name of the generator (``__name__`` attribute)
+ is now get from the function instead of the code. Use ``gen.gi_code.co_name``
+ to get the name of the code.
+
+- Issue #21669: With the aid of heuristics in SyntaxError.__init__, the
+ parser now attempts to generate more meaningful (or at least more search
+ engine friendly) error messages when "exec" and "print" are used as
+ statements.
+
+- Issue #21642: If the conditional if-else expression, allow an integer written
+ with no space between itself and the ``else`` keyword (e.g. ``True if 42else
+ False``) to be valid syntax.
+
+- Issue #21523: Fix over-pessimistic computation of the stack effect of
+ some opcodes in the compiler. This also fixes a quadratic compilation
+ time issue noticeable when compiling code with a large number of "and"
+ and "or" operators.
+
+- Issue #21418: Fix a crash in the builtin function super() when called without
+ argument and without current frame (ex: embedded Python).
+
+- Issue #21425: Fix flushing of standard streams in the interactive
+ interpreter.
+
+- Issue #21435: In rare cases, when running finalizers on objects in cyclic
+ trash a bad pointer dereference could occur due to a subtle flaw in
+ internal iteration logic.
+
+- Issue #21377: PyBytes_Concat() now tries to concatenate in-place when the
+ first argument has a reference count of 1. Patch by Nikolaus Rath.
+
+- Issue #20355: -W command line options now have higher priority than the
+ PYTHONWARNINGS environment variable. Patch by Arfrever.
+
+- Issue #21274: Define PATH_MAX for GNU/Hurd in Python/pythonrun.c.
+
+- Issue #20904: Support setting FPU precision on m68k.
+
+- Issue #21209: Fix sending tuples to custom generator objects with the yield
+ from syntax.
+
+- Issue #21193: pow(a, b, c) now raises ValueError rather than TypeError when b
+ is negative. Patch by Josh Rosenberg.
+
+- PEP 465 and Issue #21176: Add the '@' operator for matrix multiplication.
+
+- Issue #21134: Fix segfault when str is called on an uninitialized
+ UnicodeEncodeError, UnicodeDecodeError, or UnicodeTranslateError object.
+
+- Issue #19537: Fix PyUnicode_DATA() alignment under m68k. Patch by
+ Andreas Schwab.
+
+- Issue #20929: Add a type cast to avoid shifting a negative number.
+
+- Issue #20731: Properly position in source code files even if they
+ are opened in text mode. Patch by Serhiy Storchaka.
+
+- Issue #20637: Key-sharing now also works for instance dictionaries of
+ subclasses. Patch by Peter Ingebretson.
+
+- Issue #8297: Attributes missing from modules now include the module name
+ in the error text. Original patch by ysj.ray.
+
+- Issue #19995: %c, %o, %x, and %X now raise TypeError on non-integer input.
+
+- Issue #19655: The ASDL parser - used by the build process to generate code for
+ managing the Python AST in C - was rewritten. The new parser is self contained
+ and does not require to carry long the spark.py parser-generator library;
+ spark.py was removed from the source base.
+
+- Issue #12546: Allow \x00 to be used as a fill character when using str, int,
+ float, and complex __format__ methods.
+
+- Issue #20480: Add ipaddress.reverse_pointer. Patch by Leon Weber.
+
+- Issue #13598: Modify string.Formatter to support auto-numbering of
+ replacement fields. It now matches the behavior of str.format() in
+ this regard. Patches by Phil Elson and Ramchandra Apte.
+
+- Issue #8931: Make alternate formatting ('#') for type 'c' raise an
+ exception. In versions prior to 3.5, '#' with 'c' had no effect. Now
+ specifying it is an error. Patch by Torsten Landschoff.
+
- Issue #23165: Perform overflow checks before allocating memory in the
_Py_char2wchar function.
@@ -367,9 +1017,24 @@ Library
- Issue #23399: pyvenv creates relative symlinks where possible.
+- Issue #20289: cgi.FieldStorage() now supports the context management
+ protocol.
+
+- Issue #13128: Print response headers for CONNECT requests when debuglevel
+ > 0. Patch by Demian Brecht.
+
+- Issue #15381: Optimized io.BytesIO to make less allocations and copyings.
+
+- Issue #22818: Splitting on a pattern that could match an empty string now
+ raises a warning. Patterns that can only match empty strings are now
+ rejected.
+
- Issue #23099: Closing io.BytesIO with exported buffer is rejected now to
prevent corrupting exported buffer.
+- Issue #23326: Removed __ne__ implementations. Since fixing default __ne__
+ implementation in issue #21408 they are redundant.
+
- Issue #23363: Fix possible overflow in itertools.permutations.
- Issue #23364: Fix possible overflow in itertools.product.
@@ -385,6 +1050,14 @@ Library
is now always restored or swapped, not only if why is WHY_YIELD or
WHY_RETURN. Patch co-written with Antoine Pitrou.
+- Issue #14099: Restored support of writing ZIP files to tellable but
+ non-seekable streams.
+
+- Issue #14099: Writing to ZipFile and reading multiple ZipExtFiles is
+ threadsafe now.
+
+- Issue #19361: JSON decoder now raises JSONDecodeError instead of ValueError.
+
- Issue #18518: timeit now rejects statements which can't be compiled outside
a function or a loop (e.g. "return" or "break").
@@ -399,47 +1072,85 @@ Library
- Issue #19996: :class:`email.feedparser.FeedParser` now handles (malformed)
headers with no key rather than assuming the body has started.
+- Issue #20188: Support Application-Layer Protocol Negotiation (ALPN) in the ssl
+ module.
+
+- Issue #23133: Pickling of ipaddress objects now produces more compact and
+ portable representation.
+
- Issue #23248: Update ssl error codes from latest OpenSSL git master.
+- Issue #23266: Much faster implementation of ipaddress.collapse_addresses()
+ when there are many non-consecutive addresses.
+
- Issue #23098: 64-bit dev_t is now supported in the os module.
+- Issue #21817: When an exception is raised in a task submitted to a
+ ProcessPoolExecutor, the remote traceback is now displayed in the
+ parent process. Patch by Claudiu Popa.
+
+- Issue #15955: Add an option to limit output size when decompressing LZMA
+ data. Patch by Nikolaus Rath and Martin Panter.
+
- Issue #23250: In the http.cookies module, capitalize "HttpOnly" and "Secure"
as they are written in the standard.
- Issue #23063: In the disutils' check command, fix parsing of reST with code or
code-block directives.
-- Issue #23209, #23225: selectors.BaseSelector.close() now clears its internal
- reference to the selector mapping to break a reference cycle. Initial patch
- written by Martin Richard.
+- Issue #23209, #23225: selectors.BaseSelector.get_key() now raises a
+ RuntimeError if the selector is closed. And selectors.BaseSelector.close()
+ now clears its internal reference to the selector mapping to break a
+ reference cycle. Initial patch written by Martin Richard.
-- Issue #21356: Make ssl.RAND_egd() optional to support LibreSSL. The
- availability of the function is checked during the compilation. Patch written
- by Bernard Spil.
+- Issue #17911: Provide a way to seed the linecache for a PEP-302 module
+ without actually loading the code.
-- Issue #20896, #22935: The :func:`ssl.get_server_certificate` function now
- uses the :data:`~ssl.PROTOCOL_SSLv23` protocol by default, not
- :data:`~ssl.PROTOCOL_SSLv3`, for maximum compatibility and support platforms
- where :data:`~ssl.PROTOCOL_SSLv3` support is disabled.
+- Issue #17911: Provide a new object API for traceback, including the ability
+ to not lookup lines at all until the traceback is actually rendered, without
+ any trace of the original objects being kept alive.
-- Issue #23111: In the ftplib, make ssl.PROTOCOL_SSLv23 the default protocol
- version.
+- Issue #19777: Provide a home() classmethod on Path objects. Contributed
+ by Victor Salgado and Mayank Tripathi.
-- Issue #23132: Mitigate regression in speed and clarity in functools.total_ordering.
+- Issue #23206: Make ``json.dumps(..., ensure_ascii=False)`` as fast as the
+ default case of ``ensure_ascii=True``. Patch by Naoki Inada.
-- Issue #22585: On OpenBSD 5.6 and newer, os.urandom() now calls getentropy(),
- instead of reading /dev/urandom, to get pseudo-random bytes.
+- Issue #23185: Add math.inf and math.nan constants.
+
+- Issue #23186: Add ssl.SSLObject.shared_ciphers() and
+ ssl.SSLSocket.shared_ciphers() to fetch the client's list ciphers sent at
+ handshake.
+
+- Issue #23143: Remove compatibility with OpenSSLs older than 0.9.8.
+
+- Issue #23132: Improve performance and introspection support of comparison
+ methods created by functool.total_ordering.
+
+- Issue #19776: Add a expanduser() method on Path objects.
- Issue #23112: Fix SimpleHTTPServer to correctly carry the query string and
fragment when it redirects to add a trailing slash.
+- Issue #21793: Added http.HTTPStatus enums (i.e. HTTPStatus.OK,
+ HTTPStatus.NOT_FOUND). Patch by Demian Brecht.
+
- Issue #23093: In the io, module allow more operations to work on detached
streams.
+- Issue #23111: In the ftplib, make ssl.PROTOCOL_SSLv23 the default protocol
+ version.
+
+- Issue #22585: On OpenBSD 5.6 and newer, os.urandom() now calls getentropy(),
+ instead of reading /dev/urandom, to get pseudo-random bytes.
+
- Issue #19104: pprint now produces evaluable output for wrapped strings.
- Issue #23071: Added missing names to codecs.__all__. Patch by Martin Panter.
+- Issue #22783: Pickling now uses the NEWOBJ opcode instead of the NEWOBJ_EX
+ opcode if possible.
+
- Issue #15513: Added a __sizeof__ implementation for pickle classes.
- Issue #19858: pickletools.optimize() now aware of the MEMOIZE opcode, can
@@ -461,12 +1172,25 @@ Library
- Issue #1218234: Fix inspect.getsource() to load updated source of
reloaded module. Initial patch by Berker Peksag.
+- Issue #21740: Support wrapped callables in doctest. Patch by Claudiu Popa.
+
+- Issue #23009: Make sure selectors.EpollSelecrtor.select() works when no
+ FD is registered.
+
- Issue #22959: In the constructor of http.client.HTTPSConnection, prefer the
context's check_hostname attribute over the *check_hostname* parameter.
+- Issue #22696: Add function :func:`sys.is_finalizing` to know about
+ interpreter shutdown.
+
- Issue #16043: Add a default limit for the amount of data xmlrpclib.gzip_decode
will return. This resolves CVE-2013-1753.
+- Issue #14099: ZipFile.open() no longer reopen the underlying file. Objects
+ returned by ZipFile.open() can now operate independently of the ZipFile even
+ if the ZipFile was created by passing in a file-like object as the first
+ argument to the constructor.
+
- Issue #22966: Fix __pycache__ pyc file name clobber when pyc_compile is
asked to compile a source file containing multiple dots in the source file
name.
@@ -476,14 +1200,30 @@ Library
- Issue #21032. Fixed socket leak if HTTPConnection.getresponse() fails.
Original patch by Martin Panter.
+- Issue #22407: Deprecated the use of re.LOCALE flag with str patterns or
+ re.ASCII. It was newer worked.
+
+- Issue #22902: The "ip" command is now used on Linux to determine MAC address
+ in uuid.getnode(). Pach by Bruno Cauet.
+
- Issue #22960: Add a context argument to xmlrpclib.ServerProxy constructor.
+- Issue #22389: Add contextlib.redirect_stderr().
+
+- Issue #21356: Make ssl.RAND_egd() optional to support LibreSSL. The
+ availability of the function is checked during the compilation. Patch written
+ by Bernard Spil.
+
- Issue #22915: SAX parser now supports files opened with file descriptor or
bytes path.
- Issue #22609: Constructors and update methods of mapping classes in the
collections module now accept the self keyword argument.
+- Issue #22940: Add readline.append_history_file.
+
+- Issue #19676: Added the "namereplace" error handler.
+
- Issue #22788: Add *context* parameter to logging.handlers.HTTPHandler.
- Issue #22921: Allow SSLContext to take the *hostname* parameter even if
@@ -492,14 +1232,19 @@ Library
- Issue #22894: TestCase.subTest() would cause the test suite to be stopped
when in failfast mode, even in the absence of failures.
-- Issue #22638: SSLv3 is now disabled throughout the standard library.
- It can still be enabled by instantiating a SSLContext manually.
+- Issue #22796: HTTP cookie parsing is now stricter, in order to protect
+ against potential injection attacks.
- Issue #22370: Windows detection in pathlib is now more robust.
- Issue #22841: Reject coroutines in asyncio add_signal_handler().
Patch by Ludovic.Gasc.
+- Issue #19494: Added urllib.request.HTTPBasicPriorAuthHandler. Patch by
+ Matej Cepl.
+
+- Issue #22578: Added attributes to the re.error class.
+
- Issue #22849: Fix possible double free in the io.TextIOWrapper constructor.
- Issue #12728: Different Unicode characters having the same uppercase but
@@ -508,6 +1253,14 @@ Library
- Issue #22821: Fixed fcntl() with integer argument on 64-bit big-endian
platforms.
+- Issue #21650: Add an `--sort-keys` option to json.tool CLI.
+
+- Issue #22824: Updated reprlib output format for sets to use set literals.
+ Patch contributed by Berker Peksag.
+
+- Issue #22824: Updated reprlib output format for arrays to display empty
+ arrays without an unnecessary empty list. Suggested by Serhiy Storchaka.
+
- Issue #22406: Fixed the uu_codec codec incorrectly ported to 3.x.
Based on patch by Martin Panter.
@@ -521,16 +1274,15 @@ Library
- Issue #22775: Fixed unpickling of http.cookies.SimpleCookie with protocol 2
and above. Patch by Tim Graham.
-- Issue #22366: urllib.request.urlopen will accept a context object
- (SSLContext) as an argument which will then used be for HTTPS connection.
- Patch by Alex Gaynor.
-
- Issue #22776: Brought excluded code into the scope of a try block in
SysLogHandler.emit().
- Issue #22665: Add missing get_terminal_size and SameFileError to
shutil.__all__.
+- Issue #6623: Remove deprecated Netrc class in the ftplib module. Patch by
+ Matt Chaput.
+
- Issue #17381: Fixed handling of case-insensitive ranges in regular
expressions.
@@ -544,18 +1296,53 @@ Library
doesn't work. This allows use with special filesystems such as VirtualBox
shared folders.
+- Issue #22217: Implemented reprs of classes in the zipfile module.
+
+- Issue #22457: Honour load_tests in the start_dir of discovery.
+
+- Issue #18216: gettext now raises an error when a .mo file has an
+ unsupported major version number. Patch by Aaron Hill.
+
+- Issue #13918: Provide a locale.delocalize() function which can remove
+ locale-specific number formatting from a string representing a number,
+ without then converting it to a specific type. Patch by Cédric Krier.
+
+- Issue #22676: Make the pickling of global objects which don't have a
+ __module__ attribute less slow.
+
- Issue #18853: Fixed ResourceWarning in shlex.__nain__.
- Issue #9351: Defaults set with set_defaults on an argparse subparser
are no longer ignored when also set on the parent parser.
+- Issue #7559: unittest test loading ImportErrors are reported as import errors
+ with their import exception rather than as attribute errors after the import
+ has already failed.
+
+- Issue #19746: Make it possible to examine the errors from unittest
+ discovery without executing the test suite. The new `errors` attribute
+ on TestLoader exposes these non-fatal errors encountered during discovery.
+
- Issue #21991: Make email.headerregistry's header 'params' attributes
be read-only (MappingProxyType). Previously the dictionary was modifiable
but a new one was created on each access of the attribute.
+- Issue #22638: SSLv3 is now disabled throughout the standard library.
+ It can still be enabled by instantiating a SSLContext manually.
+
- Issue #22641: In asyncio, the default SSL context for client connections
is now created using ssl.create_default_context(), for stronger security.
+- Issue #17401: Include closefd in io.FileIO repr.
+
+- Issue #21338: Add silent mode for compileall. quiet parameters of
+ compile_{dir, file, path} functions now have a multilevel value. Also,
+ -q option of the CLI now have a multilevel value. Patch by Thomas Kluyver.
+
+- Issue #20152: Convert the array and cmath modules to Argument Clinic.
+
+- Issue #18643: Add socket.socketpair() on Windows.
+
- Issue #22435: Fix a file descriptor leak when SocketServer bind fails.
- Issue #13096: Fixed segfault in CTypes POINTER handling of large
@@ -564,9 +1351,19 @@ Library
- Issue #11694: Raise ConversionError in xdrlib as documented. Patch
by Filip Gruszczyński and Claudiu Popa.
+- Issue #19380: Optimized parsing of regular expressions.
+
+- Issue #1519638: Now unmatched groups are replaced with empty strings in re.sub()
+ and re.subn().
+
+- Issue #18615: sndhdr.what/whathdr now return a namedtuple.
+
- Issue #22462: Fix pyexpat's creation of a dummy frame to make it
appear in exception tracebacks.
+- Issue #21965: Add support for in-memory SSL to the ssl module. Patch
+ by Geert Jansen.
+
- Issue #21173: Fix len() on a WeakKeyDictionary when .clear() was called
with an iterator alive.
@@ -576,167 +1373,65 @@ Library
- Issue #21905: Avoid RuntimeError in pickle.whichmodule() when sys.modules
is mutated while iterating. Patch by Olivier Grisel.
+- Issue #11271: concurrent.futures.Executor.map() now takes a *chunksize*
+ argument to allow batching of tasks in child processes and improve
+ performance of ProcessPoolExecutor. Patch by Dan O'Reilly.
+
+- Issue #21883: os.path.join() and os.path.relpath() now raise a TypeError with
+ more helpful error message for unsupported or mismatched types of arguments.
+
- Issue #22219: The zipfile module CLI now adds entries for directories
(including empty directories) in ZIP file.
- Issue #22449: In the ssl.SSLContext.load_default_certs, consult the
environmental variables SSL_CERT_DIR and SSL_CERT_FILE on Windows.
+- Issue #22508: The email.__version__ variable has been removed; the email
+ code is no longer shipped separately from the stdlib, and __version__
+ hasn't been updated in several releases.
+
- Issue #20076: Added non derived UTF-8 aliases to locale aliases table.
- Issue #20079: Added locales supported in glibc 2.18 to locale alias table.
-- Issue #22396: On 32-bit AIX platform, don't expose os.posix_fadvise() nor
- os.posix_fallocate() because their prototypes in system headers are wrong.
-
-- Issue #22517: When a io.BufferedRWPair object is deallocated, clear its
- weakrefs.
-
-- Issue #22448: Improve canceled timer handles cleanup to prevent
- unbound memory usage. Patch by Joshua Moore-Oliva.
+- Issue #20218: Added convenience methods read_text/write_text and read_bytes/
+ write_bytes to pathlib.Path objects.
-- Issue #23009: Make sure selectors.EpollSelecrtor.select() works when no
- FD is registered.
-
-IDLE
-----
+- Issue #22437: Number of capturing groups in regular expression is no longer
+ limited by 100.
-- Issue #20577: Configuration of the max line length for the FormatParagraph
- extension has been moved from the General tab of the Idle preferences dialog
- to the FormatParagraph tab of the Config Extensions dialog.
- Patch by Tal Einat.
-
-- Issue #16893: Update Idle doc chapter to match current Idle and add new
- information.
-
-- Issue #3068: Add Idle extension configuration dialog to Options menu.
- Changes are written to HOME/.idlerc/config-extensions.cfg.
- Original patch by Tal Einat.
-
-- Issue #16233: A module browser (File : Class Browser, Alt+C) requires a
- editor window with a filename. When Class Browser is requested otherwise,
- from a shell, output window, or 'Untitled' editor, Idle no longer displays
- an error box. It now pops up an Open Module box (Alt+M). If a valid name
- is entered and a module is opened, a corresponding browser is also opened.
-
-- Issue #4832: Save As to type Python files automatically adds .py to the
- name you enter (even if your system does not display it). Some systems
- automatically add .txt when type is Text files.
-
-- Issue #21986: Code objects are not normally pickled by the pickle module.
- To match this, they are no longer pickled when running under Idle.
-
-- Issue #23180: Rename IDLE "Windows" menu item to "Window".
- Patch by Al Sweigart.
-
-Tests
------
+- Issue #17442: InteractiveInterpreter now displays the full chained traceback
+ in its showtraceback method, to match the built in interactive interpreter.
- Issue #23392: Added tests for marshal C API that works with FILE*.
-- Issue #18982: Add tests for CLI of the calendar module.
-
-- Issue #19548: Added some additional checks to test_codecs to ensure that
- statements in the updated documentation remain accurate. Patch by Martin
- Panter.
-
-- Issue #22838: All test_re tests now work with unittest test discovery.
-
-- Issue #22173: Update lib2to3 tests to use unittest test discovery.
-
-- Issue #16000: Convert test_curses to use unittest.
-
-- Issue #21456: Skip two tests in test_urllib2net.py if _ssl module not
- present. Patch by Remi Pointel.
-
-- Issue #22770: Prevent some Tk segfaults on OS X when running gui tests.
-
-- Issue #23211: Workaround test_logging failure on some OS X 10.6 systems.
-
-- Issue #23345: Prevent test_ssl failures with large OpenSSL patch level
- values (like 0.9.8zc).
-
-- Issue #22289: Prevent test_urllib2net failures due to ftp connection timeout.
-
-Build
------
-
-- Issue #15506: Use standard PKG_PROG_PKG_CONFIG autoconf macro in the configure
- script.
-
-- Issue #22935: Allow the ssl module to be compiled if openssl doesn't support
- SSL 3.
-
-- Issue #16537: Check whether self.extensions is empty in setup.py. Patch by
- Jonathan Hosmer.
-
-- Issue #18096: Fix library order returned by python-config.
-
-- Issue #17219: Add library build dir for Python extension cross-builds.
-
-- Issue #17128: Use private version of OpenSSL for 3.4.3 OS X 10.5+ installer.
-
-C API
------
-
-- Issue #22079: PyType_Ready() now checks that statically allocated type has
- no dynamically allocated bases.
-
-Documentation
--------------
-
-- Issue #19548: Update the codecs module documentation to better cover the
- distinction between text encodings and other codecs, together with other
- clarifications. Patch by Martin Panter.
-
-- Issue #22914: Update the Python 2/3 porting HOWTO to describe a more automated
- approach.
-
-- Issue #21514: The documentation of the json module now refers to new JSON RFC
- 7159 instead of obsoleted RFC 4627.
-
-Tools/Demos
------------
-
-- Issue #22314: pydoc now works when the LINES environment variable is set.
-
-Windows
--------
-
-- Issue #17896: The Windows build scripts now expect external library sources
- to be in ``PCbuild\..\externals`` rather than ``PCbuild\..\..``.
-
-- Issue #17717: The Windows build scripts now use a copy of NASM pulled from
- svn.python.org to build OpenSSL.
-
-- Issue #22644: The bundled version of OpenSSL has been updated to 1.0.1j.
-
-What's New in Python 3.4.2?
-===========================
-
-Release date: 2014-10-06
-
-Core and Builtins
------------------
-
-Library
--------
-
- Issue #10510: distutils register and upload methods now use HTML standards
compliant CRLF line endings.
- Issue #9850: Fixed macpath.join() for empty first component. Patch by
Oleg Oshmyan.
+- Issue #5309: distutils' build and build_ext commands now accept a ``-j``
+ option to enable parallel building of extension modules.
+
+- Issue #22448: Improve canceled timer handles cleanup to prevent
+ unbound memory usage. Patch by Joshua Moore-Oliva.
+
- Issue #22427: TemporaryDirectory no longer attempts to clean up twice when
used in the with statement in generator.
+- Issue #22362: Forbidden ambiguous octal escapes out of range 0-0o377 in
+ regular expressions.
+
- Issue #20912: Now directories added to ZIP file have correct Unix and MS-DOS
directory attributes.
- Issue #21866: ZipFile.close() no longer writes ZIP64 central directory
records if allowZip64 is false.
+- Issue #22278: Fix urljoin problem with relative urls, a regression observed
+ after changes to issue22118 were submitted.
+
- Issue #22415: Fixed debugging output of the GROUPREF_EXISTS opcode in the re
module. Removed trailing spaces in debugging output.
@@ -746,47 +1441,18 @@ Library
- Issue #21332: Ensure that ``bufsize=1`` in subprocess.Popen() selects
line buffering, rather than block buffering. Patch by Akira Li.
-
-What's New in Python 3.4.2rc1?
-==============================
-
-Release date: 2014-09-22
-
-Core and Builtins
------------------
-
-- Issue #22258: Fix the the internal function set_inheritable() on Illumos.
- This platform exposes the function ``ioctl(FIOCLEX)``, but calling it fails
- with errno is ENOTTY: "Inappropriate ioctl for device". set_inheritable()
- now falls back to the slower ``fcntl()`` (``F_GETFD`` and then ``F_SETFD``).
-
-- Issue #21669: With the aid of heuristics in SyntaxError.__init__, the
- parser now attempts to generate more meaningful (or at least more search
- engine friendly) error messages when "exec" and "print" are used as
- statements.
-
-- Issue #21642: If the conditional if-else expression, allow an integer written
- with no space between itself and the ``else`` keyword (e.g. ``True if 42else
- False``) to be valid syntax.
-
-- Issue #21523: Fix over-pessimistic computation of the stack effect of
- some opcodes in the compiler. This also fixes a quadratic compilation
- time issue noticeable when compiling code with a large number of "and"
- and "or" operators.
-
-Library
--------
-
- Issue #21091: Fix API bug: email.message.EmailMessage.is_attachment is now
- a method. Since EmailMessage is provisional, we can change the API in a
- maintenance release, but we use a trick to remain backward compatible with
- 3.4.0/1.
+ a method.
- Issue #21079: Fix email.message.EmailMessage.is_attachment to return the
correct result when the header has parameters as well as a value.
- Issue #22247: Add NNTPError to nntplib.__all__.
+- Issue #22366: urllib.request.urlopen will accept a context object
+ (SSLContext) as an argument which will then used be for HTTPS connection.
+ Patch by Alex Gaynor.
+
- Issue #4180: The warnings registries are now reset when the filters
are modified.
@@ -798,6 +1464,9 @@ Library
with non-standard cookie handling in some Web browsers. Reported by
Sergey Bobrov.
+- Issue #20537: logging methods now accept an exception instance as well as a
+ Boolean value or exception tuple. Thanks to Yury Selivanov for the patch.
+
- Issue #22384: An exception in Tkinter callback no longer crashes the program
when it is run with pythonw.exe.
@@ -806,6 +1475,9 @@ Library
- Issue #21147: sqlite3 now raises an exception if the request contains a null
character instead of truncate it. Based on patch by Victor Stinner.
+- Issue #13968: The glob module now supports recursive search in
+ subdirectories using the "**" pattern.
+
- Issue #21951: Fixed a crash in Tkinter on AIX when called Tcl command with
empty string or tuple argument.
@@ -814,12 +1486,31 @@ Library
- Issue #22338: Fix a crash in the json module on memory allocation failure.
+- Issue #12410: imaplib.IMAP4 now supports the context management protocol.
+ Original patch by Tarek Ziadé.
+
+- Issue #21270: We now override tuple methods in mock.call objects so that
+ they can be used as normal call attributes.
+
+- Issue #16662: load_tests() is now unconditionally run when it is present in
+ a package's __init__.py. TestLoader.loadTestsFromModule() still accepts
+ use_load_tests, but it is deprecated and ignored. A new keyword-only
+ attribute `pattern` is added and documented. Patch given by Robert Collins,
+ tweaked by Barry Warsaw.
+
- Issue #22226: First letter no longer is stripped from the "status" key in
the result of Treeview.heading().
- Issue #19524: Fixed resource leak in the HTTP connection when an invalid
response is received. Patch by Martin Panter.
+- Issue #20421: Add a .version() method to SSL sockets exposing the actual
+ protocol version in use.
+
+- Issue #19546: configparser exceptions no longer expose implementation details.
+ Chained KeyErrors are removed, which leads to cleaner tracebacks. Patch by
+ Claudiu Popa.
+
- Issue #22051: turtledemo no longer reloads examples to re-run them.
Initialization of variables and gui setup should be done in main(),
which is called each time a demo is run, but not on import.
@@ -836,23 +1527,57 @@ Library
- Issue #18132: Turtledemo buttons no longer disappear when the window is
shrunk. Original patches by Jan Kanis and Lita Cho.
+- Issue #22043: time.monotonic() is now always available.
+ ``threading.Lock.acquire()``, ``threading.RLock.acquire()`` and socket
+ operations now use a monotonic clock, instead of the system clock, when a
+ timeout is used.
+
+- Issue #21527: Add a default number of workers to ThreadPoolExecutor equal
+ to 5 times the number of CPUs. Patch by Claudiu Popa.
+
- Issue #22216: smtplib now resets its state more completely after a quit. The
most obvious consequence of the previous behavior was a STARTTLS failure
during a connect/starttls/quit/connect/starttls sequence.
+- Issue #22098: ctypes' BigEndianStructure and LittleEndianStructure now
+ define an empty __slots__ so that subclasses don't always get an instance
+ dict. Patch by Claudiu Popa.
+
- Issue #22185: Fix an occasional RuntimeError in threading.Condition.wait()
caused by mutation of the waiters queue without holding the lock. Patch
by Doug Zongker.
+- Issue #22287: On UNIX, _PyTime_gettimeofday() now uses
+ clock_gettime(CLOCK_REALTIME) if available. As a side effect, Python now
+ depends on the librt library on Solaris and on Linux (only with glibc older
+ than 2.17).
+
- Issue #22182: Use e.args to unpack exceptions correctly in
distutils.file_util.move_file. Patch by Claudiu Popa.
- The webbrowser module now uses subprocess's start_new_session=True rather
than a potentially risky preexec_fn=os.setsid call.
+- Issue #22042: signal.set_wakeup_fd(fd) now raises an exception if the file
+ descriptor is in blocking mode.
+
+- Issue #16808: inspect.stack() now returns a named tuple instead of a tuple.
+ Patch by Daniel Shahaf.
+
- Issue #22236: Fixed Tkinter images copying operations in NoDefaultRoot mode.
-- Issue #22191: Fix warnings.__all__.
+- Issue #2527: Add a *globals* argument to timeit functions, in order to
+ override the globals namespace in which the timed code is executed.
+ Patch by Ben Roberts.
+
+- Issue #22118: Switch urllib.parse to use RFC 3986 semantics for the
+ resolution of relative URLs, rather than RFCs 1808 and 2396.
+ Patch by Demian Brecht.
+
+- Issue #21549: Added the "members" parameter to TarFile.list().
+
+- Issue #19628: Allow compileall recursion depth to be specified with a -r
+ option.
- Issue #15696: Add a __sizeof__ implementation for mmap objects on Windows.
@@ -860,6 +1585,8 @@ Library
- Issue #22165: SimpleHTTPRequestHandler now supports undecodable file names.
+- Issue #15381: Optimized line reading in io.BytesIO.
+
- Issue #8797: Raise HTTPError on failed Basic Authentication immediately.
Initial patch by Sam Bull.
@@ -875,6 +1602,14 @@ Library
- Issue #17923: glob() patterns ending with a slash no longer match non-dirs on
AIX. Based on patch by Delhallt.
+- Issue #21725: Added support for RFC 6531 (SMTPUTF8) in smtpd.
+
+- Issue #22176: Update the ctypes module's libffi to v3.1. This release
+ adds support for the Linux AArch64 and POWERPC ELF ABIv2 little endian
+ architectures.
+
+- Issue #5411: Added support for the "xztar" format in the shutil module.
+
- Issue #21121: Don't force 3rd party C extensions to be built with
-Werror=declaration-after-statement.
@@ -882,18 +1617,57 @@ Library
when unpickling pickled sqlite3.Row). sqlite3.Row is now initialized in the
__new__() method.
+- Issue #20170: Convert posixmodule to use Argument Clinic.
+
+- Issue #21539: Add a *exists_ok* argument to `Pathlib.mkdir()` to mimic
+ `mkdir -p` and `os.makedirs()` functionality. When true, ignore
+ FileExistsErrors. Patch by Berker Peksag.
+
+- Issue #22127: Bypass IDNA for pure-ASCII host names in the socket module
+ (in particular for numeric IPs).
+
+- Issue #21047: set the default value for the *convert_charrefs* argument
+ of HTMLParser to True. Patch by Berker Peksag.
+
+- Add an __all__ to html.entities.
+
+- Issue #15114: the strict mode and argument of HTMLParser, HTMLParser.error,
+ and the HTMLParserError exception have been removed.
+
+- Issue #22085: Dropped support of Tk 8.3 in Tkinter.
+
- Issue #21580: Now Tkinter correctly handles bytes arguments passed to Tk.
In particular this allows to initialize images from binary data.
+- Issue #22003: When initialized from a bytes object, io.BytesIO() now
+ defers making a copy until it is mutated, improving performance and
+ memory use on some use cases. Patch by David Wilson.
+
+- Issue #22018: On Windows, signal.set_wakeup_fd() now also supports sockets.
+ A side effect is that Python depends to the WinSock library.
+
+- Issue #22054: Add os.get_blocking() and os.set_blocking() functions to get
+ and set the blocking mode of a file descriptor (False if the O_NONBLOCK flag
+ is set, True otherwise). These functions are not available on Windows.
+
- Issue #17172: Make turtledemo start as active on OS X even when run with
subprocess. Patch by Lita Cho.
- Issue #21704: Fix build error for _multiprocessing when semaphores
are not available. Patch by Arfrever Frehtes Taifersar Arahesis.
+- Issue #20173: Convert sha1, sha256, sha512 and md5 to ArgumentClinic.
+ Patch by Vajrasky Kok.
+
- Fix repr(_socket.socket) on Windows 64-bit: don't fail with OverflowError
on closed socket. repr(socket.socket) already works fine.
+- Issue #22033: Reprs of most Python implemened classes now contain actual
+ class name instead of hardcoded one.
+
+- Issue #21947: The dis module can now disassemble generator-iterator
+ objects based on their gi_code attribute. Patch by Clement Rouault.
+
- Issue #16133: The asynchat.async_chat.handle_read() method now ignores
BlockingIOError exceptions.
@@ -905,16 +1679,42 @@ Library
sequence is used on some terminal (ex: TERM=xterm-256color") to enable
support of 8 bit characters.
+- Issue #4350: Removed a number of out-of-dated and non-working for a long time
+ Tkinter methods.
+
+- Issue #6167: Scrollbar.activate() now returns the name of active element if
+ the argument is not specified. Scrollbar.set() now always accepts only 2
+ arguments.
+
+- Issue #15275: Clean up and speed up the ntpath module.
+
- Issue #21888: plistlib's load() and loads() now work if the fmt parameter is
specified.
+- Issue #22032: __qualname__ instead of __name__ is now always used to format
+ fully qualified class names of Python implemented classes.
+
+- Issue #22031: Reprs now always use hexadecimal format with the "0x" prefix
+ when contain an id in form " at 0x...".
+
+- Issue #22018: signal.set_wakeup_fd() now raises an OSError instead of a
+ ValueError on ``fstat()`` failure.
+
- Issue #21044: tarfile.open() now handles fileobj with an integer 'name'
attribute. Based on patch by Antoine Pietri.
-- Issue #21867: Prevent turtle crash due to invalid undo buffer size.
+- Issue #21966: Respect -q command-line option when code module is ran.
- Issue #19076: Don't pass the redundant 'file' argument to self.error().
+- Issue #16382: Improve exception message of warnings.warn() for bad
+ category. Initial patch by Phil Elson.
+
+- Issue #21932: os.read() now uses a :c:func:`Py_ssize_t` type instead of
+ :c:type:`int` for the size to support reading more than 2 GB at once. On
+ Windows, the size is truncted to INT_MAX. As any call to os.read(), the OS
+ may read less bytes than the number of requested bytes.
+
- Issue #21942: Fixed source file viewing in pydoc's server mode on Windows.
- Issue #11259: asynchat.async_chat().set_terminator() now raises a ValueError
@@ -932,8 +1732,8 @@ Library
- Issue #21714: Disallow the construction of invalid paths using
Path.with_name(). Original patch by Antony Lee.
-- Issue #21897: Fix a crash with the f_locals attribute with closure
- variables when frame.clear() has been called.
+- Issue #15014: Added 'auth' method to smtplib to make implementing auth
+ mechanisms simpler, and used it internally in the login method.
- Issue #21151: Fixed a segfault in the winreg module when ``None`` is passed
as a ``REG_BINARY`` value to SetValueEx. Patch by John Ehresman.
@@ -941,8 +1741,17 @@ Library
- Issue #21090: io.FileIO.readall() does not ignore I/O errors anymore. Before,
it ignored I/O errors if at least the first C call read() succeed.
+- Issue #5800: headers parameter of wsgiref.headers.Headers is now optional.
+ Initial patch by Pablo Torres Navarrete and SilentGhost.
+
- Issue #21781: ssl.RAND_add() now supports strings longer than 2 GB.
+- Issue #21679: Prevent extraneous fstat() calls during open(). Patch by
+ Bohuslav Kabrda.
+
+- Issue #21863: cProfile now displays the module name of C extension functions,
+ in addition to their own name.
+
- Issue #11453: asyncore: emit a ResourceWarning when an unclosed file_wrapper
object is destroyed. The destructor now closes the file if needed. The
close() method can now be called twice: the second call does nothing.
@@ -952,23 +1761,17 @@ Library
- Issue #21476: Make sure the email.parser.BytesParser TextIOWrapper is
discarded after parsing, so the input file isn't unexpectedly closed.
+- Issue #20295: imghdr now recognizes OpenEXR format images.
+
- Issue #21729: Used the "with" statement in the dbm.dumb module to ensure
files closing. Patch by Claudiu Popa.
- Issue #21491: socketserver: Fix a race condition in child processes reaping.
-- Issue #21832: Require named tuple inputs to be exact strings.
-
-- Issue #19145: The times argument for itertools.repeat now handles
- negative values the same way for keyword arguments as it does for
- positional arguments.
+- Issue #21719: Added the ``st_file_attributes`` field to os.stat_result on
+ Windows.
-- Issue #21812: turtle.shapetransform did not tranform the turtle on the
- first call. (Issue identified and fixed by Lita Cho.)
-
-- Issue #21635: The difflib SequenceMatcher.get_matching_blocks() method
- cache didn't match the actual result. The former was a list of tuples
- and the latter was a list of named tuples.
+- Issue #21832: Require named tuple inputs to be exact strings.
- Issue #21722: The distutils "upload" command now exits with a non-zero
return code when uploading fails. Patch by Martin Dengler.
@@ -976,24 +1779,35 @@ Library
- Issue #21723: asyncio.Queue: support any type of number (ex: float) for the
maximum size. Patch written by Vajrasky Kok.
+- Issue #21711: support for "site-python" directories has now been removed
+ from the site module (it was deprecated in 3.4).
+
+- Issue #17552: new socket.sendfile() method allowing to send a file over a
+ socket by using high-performance os.sendfile() on UNIX.
+ Patch by Giampaolo Rodola'.
+
+- Issue #18039: dbm.dump.open() now always creates a new database when the
+ flag has the value 'n'. Patch by Claudiu Popa.
+
- Issue #21326: Add a new is_closed() method to asyncio.BaseEventLoop.
run_forever() and run_until_complete() methods of asyncio.BaseEventLoop now
raise an exception if the event loop was closed.
-- Issue #21774: Fixed NameError for an incorrect variable reference in the
- XML Minidom code for creating processing instructions.
- (Found and fixed by Claudiu Popa.)
-
- Issue #21766: Prevent a security hole in CGIHTTPServer by URL unquoting paths
before checking for a CGI script at that path.
- Issue #21310: Fixed possible resource leak in failed open().
+- Issue #21256: Printout of keyword args should be in deterministic order in
+ a mock function call. This will help to write better doctests.
+
- Issue #21677: Fixed chaining nonnormalized exceptions in io close() methods.
- Issue #11709: Fix the pydoc.help function to not fail when sys.stdin is not a
valid file.
+- Issue #21515: tempfile.TemporaryFile now uses os.O_TMPFILE flag is available.
+
- Issue #13223: Fix pydoc.writedoc so that the HTML documentation for methods
that use 'self' in the example code is generated correctly.
@@ -1004,6 +1818,9 @@ Library
limits would otherwise allow. On systems with a functioning /proc/self/fd
or /dev/fd interface the max is now ignored and all fds are closed.
+- Issue #20383: Introduce importlib.util.module_from_spec() as the preferred way
+ to create a new module.
+
- Issue #21552: Fixed possible integer overflow of too long string lengths in
the tkinter module on 64-bit platforms.
@@ -1012,8 +1829,14 @@ Library
error bubble up as this "bad data" appears in many real world zip files in
the wild and is ignored by other zip tools.
+- Issue #13742: Added "key" and "reverse" parameters to heapq.merge().
+ (First draft of patch contributed by Simon Sapin.)
+
- Issue #21402: tkinter.ttk now works when default root window is not set.
+- Issue #3015: _tkinter.create() now creates tkapp object with wantobject=1 by
+ default.
+
- Issue #10203: sqlite3.Row now truly supports sequence protocol. In particulr
it supports reverse() and negative indices. Original patch by Claudiu Popa.
@@ -1021,97 +1844,21 @@ Library
interpreter aliases (python, python3) are now created by copying rather than
symlinking.
-- Issue #14710: pkgutil.get_loader() no longer raises an exception when None is
- found in sys.modules.
+- Issue #20197: Added support for the WebP image type in the imghdr module.
+ Patch by Fabrice Aneche and Claudiu Popa.
-- Issue #14710: pkgutil.find_loader() no longer raises an exception when a
- module doesn't exist.
+- Issue #21513: Speedup some properties of IP addresses (IPv4Address,
+ IPv6Address) such as .is_private or .is_multicast.
-- Issue #21481: Argparse equality and inequality tests now return
- NotImplemented when comparing to an unknown type.
-
-- Issue #8743: Fix interoperability between set objects and the
- collections.Set() abstract base class.
-
-- Issue #13355: random.triangular() no longer fails with a ZeroDivisionError
- when low equals high.
+- Issue #21137: Improve the repr for threading.Lock() and its variants
+ by showing the "locked" or "unlocked" status. Patch by Berker Peksag.
- Issue #21538: The plistlib module now supports loading of binary plist files
when reference or offset size is not a power of two.
-- Issue #21801: Validate that __signature__ is None or an instance of Signature.
-
-- Issue #21923: Prevent AttributeError in distutils.sysconfig.customize_compiler
- due to possible uninitialized _config_vars.
-
-- Issue #21323: Fix http.server to again handle scripts in CGI subdirectories,
- broken by the fix for security issue #19435. Patch by Zach Byrne.
-
-Extension Modules
------------------
-
-- Issue #22176: Update the ctypes module's libffi to v3.1. This release
- adds support for the Linux AArch64 and POWERPC ELF ABIv2 little endian
- architectures.
-
-Build
------
-
-- Issue #15661: python.org OS X installers are now distributed as signed
- installer packages compatible with the Gatekeeper security feature.
-
-- Issue #21958: Define HAVE_ROUND when building with Visual Studio 2013 and
- above. Patch by Zachary Turner.
-
-- Issue #15759: "make suspicious", "make linkcheck" and "make doctest" in Doc/
- now display special message when and only when there are failures.
-
-- Issue #17095: Fix Modules/Setup *shared* support.
-
-- Issue #21811: Anticipated fixes to support OS X versions > 10.9.
-
-- Issue #21166: Prevent possible segfaults and other random failures of
- python --generate-posix-vars in pybuilddir.txt build target.
-
-IDLE
-----
-
-- Issue #17390: Adjust Editor window title; remove 'Python',
- move version to end.
-
-- Issue #14105: Idle debugger breakpoints no longer disappear
- when inseting or deleting lines.
-
-- Issue #17172: Turtledemo can now be run from Idle.
- Currently, the entry is on the Help menu, but it may move to Run.
- Patch by Ramchandra Apt and Lita Cho.
-
-- Issue #21765: Add support for non-ascii identifiers to HyperParser.
-
-- Issue #21940: Add unittest for WidgetRedirector. Initial patch by Saimadhav
- Heblikar.
-
-- Issue #18592: Add unittest for SearchDialogBase. Patch by Phil Webster.
-
-- Issue #21694: Add unittest for ParenMatch. Patch by Saimadhav Heblikar.
-
-- Issue #21686: add unittest for HyperParser. Original patch by Saimadhav
- Heblikar.
-
-- Issue #12387: Add missing upper(lower)case versions of default Windows key
- bindings for Idle so Caps Lock does not disable them. Patch by Roger Serwy.
-
-- Issue #21695: Closing a Find-in-files output window while the search is
- still in progress no longer closes Idle.
-
-- Issue #18910: Add unittest for textView. Patch by Phil Webster.
+- Issue #21455: Add a default backlog to socket.listen().
-- Issue #18292: Add unittest for AutoExpand. Patch by Saihadhav Heblikar.
-
-- Issue #18409: Add unittest for AutoComplete. Patch by Phil Webster.
-
-Tests
------
+- Issue #21525: Most Tkinter methods which accepted tuples now accept lists too.
- Issue #22166: with the assistance of a new internal _codecs._forget_codec
helping function, test_codecs now clears the encoding caches to avoid the
@@ -1120,100 +1867,19 @@ Tests
- Issue #22236: Tkinter tests now don't reuse default root window. New root
window is created for every test class.
-- Issue #20746: Fix test_pdb to run in refleak mode (-R). Patch by Xavier
- de Gaye.
-
-- Issue #22060: test_ctypes has been somewhat cleaned up and simplified; it
- now uses unittest test discovery to find its tests.
-
-- Issue #22104: regrtest.py no longer holds a reference to the suite of tests
- loaded from test modules that don't define test_main().
-
-- Issue #22002: Added ``load_package_tests`` function to test.support and used
- it to implement/augment test discovery in test_asyncio, test_email,
- test_importlib, test_json, and test_tools.
-
-- Issue #21976: Fix test_ssl to accept LibreSSL version strings. Thanks
- to William Orr.
-
-- Issue #21918: Converted test_tools from a module to a package containing
- separate test files for each tested script.
-
-- Issue #20155: Changed HTTP method names in failing tests in test_httpservers
- so that packet filtering software (specifically Windows Base Filtering Engine)
- does not interfere with the transaction semantics expected by the tests.
-
-- Issue #19493: Refactored the ctypes test package to skip tests explicitly
- rather than silently.
-
-- Issue #18492: All resources are now allowed when tests are not run by
- regrtest.py.
-
-- Issue #21634: Fix pystone micro-benchmark: use floor division instead of true
- division to benchmark integers instead of floating point numbers. Set pystone
- version to 1.2. Patch written by Lennart Regebro.
-
-- Issue #21605: Added tests for Tkinter images.
-
-- Issue #21493: Added test for ntpath.expanduser(). Original patch by
- Claudiu Popa.
-
-- Issue #19925: Added tests for the spwd module. Original patch by Vajrasky Kok.
-
-- Issue #21522: Added Tkinter tests for Listbox.itemconfigure(),
- PanedWindow.paneconfigure(), and Menu.entryconfigure().
-
-Documentation
--------------
-
-- Issue #21777: The binary sequence methods on bytes and bytearray are now
- documented explicitly, rather than assuming users will be able to derive
- the expected behaviour from the behaviour of the corresponding str methods.
-
-Windows
--------
-
-- Issue #21671, #22160, CVE-2014-0224: The bundled version of OpenSSL has been
- updated to 1.0.1i.
-
-- Issue #10747: Use versioned labels in the Windows start menu.
- Patch by Olive Kilburn.
-
-Tools/Demos
------------
-
-- Issue #22201: Command-line interface of the zipfile module now correctly
- extracts ZIP files with directory entries. Patch by Ryan Wilson.
-
-- Issue #21906: Make Tools/scripts/md5sum.py work in Python 3.
- Patch by Zachary Ware.
-
-- Issue #21629: Fix Argument Clinic's "--converters" feature.
-
-
-What's New in Python 3.4.1?
-===========================
-
-Release date: 2014-05-18
-
-Core and Builtins
------------------
-
-- Issue #21418: Fix a crash in the builtin function super() when called without
- argument and without current frame (ex: embedded Python).
+- Issue #10744: Fix PEP 3118 format strings on ctypes objects with a nontrivial
+ shape.
-- Issue #21425: Fix flushing of standard streams in the interactive
- interpreter.
+- Issue #20826: Optimize ipaddress.collapse_addresses().
-- Issue #21435: In rare cases, when running finalizers on objects in cyclic
- trash a bad pointer dereference could occur due to a subtle flaw in
- internal iteration logic.
+- Issue #21487: Optimize ipaddress.summarize_address_range() and
+ ipaddress.{IPv4Network,IPv6Network}.subnets().
-Library
--------
+- Issue #21486: Optimize parsing of netmasks in ipaddress.IPv4Network and
+ ipaddress.IPv6Network.
-- Issue #10744: Fix PEP 3118 format strings on ctypes objects with a nontrivial
- shape.
+- Issue #13916: Disallowed the surrogatepass error handler for non UTF-*
+ encodings.
- Issue #20998: Fixed re.fullmatch() of repeated single character pattern
with ignore case. Original patch by Matthew Barnett.
@@ -1221,80 +1887,73 @@ Library
- Issue #21075: fileinput.FileInput now reads bytes from standard stream if
binary mode is specified. Patch by Sam Kimbrel.
-- Issue #21396: Fix TextIOWrapper(..., write_through=True) to not force a
- flush() on the underlying binary stream. Patch by akira.
+- Issue #19775: Add a samefile() method to pathlib Path objects. Initial
+ patch by Vajrasky Kok.
-- Issue #21470: Do a better job seeding the random number generator by
- using enough bytes to span the full state space of the Mersenne Twister.
+- Issue #21226: Set up modules properly in PyImport_ExecCodeModuleObject
+ (and friends).
- Issue #21398: Fix an unicode error in the pydoc pager when the documentation
contains characters not encodable to the stdout encoding.
-Tests
------
-
-- Issue #17756: Fix test_code test when run from the installed location.
-
-- Issue #17752: Fix distutils tests when run from the installed location.
+- Issue #16531: ipaddress.IPv4Network and ipaddress.IPv6Network now accept
+ an (address, netmask) tuple argument, so as to easily construct network
+ objects from existing addresses.
-IDLE
-----
-
-- Issue #18104: Add idlelib/idle_test/htest.py with a few sample tests to begin
- consolidating and improving human-validated tests of Idle. Change other files
- as needed to work with htest. Running the module as __main__ runs all tests.
-
-
-What's New in Python 3.4.1rc1?
-==============================
+- Issue #21156: importlib.abc.InspectLoader.source_to_code() is now a
+ staticmethod.
-Release date: 2014-05-05
+- Issue #21424: Simplified and optimized heaqp.nlargest() and nmsmallest()
+ to make fewer tuple comparisons.
-Core and Builtins
------------------
-
-- Issue #21274: Define PATH_MAX for GNU/Hurd in Python/pythonrun.c.
+- Issue #21396: Fix TextIOWrapper(..., write_through=True) to not force a
+ flush() on the underlying binary stream. Patch by akira.
-- Issue #21209: Fix sending tuples to custom generator objects with the yield
- from syntax.
+- Issue #18314: Unlink now removes junctions on Windows. Patch by Kim Gräsman
-- Issue #21134: Fix segfault when str is called on an uninitialized
- UnicodeEncodeError, UnicodeDecodeError, or UnicodeTranslateError object.
+- Issue #21088: Bugfix for curses.window.addch() regression in 3.4.0.
+ In porting to Argument Clinic, the first two arguments were reversed.
-- Issue #19537: Fix PyUnicode_DATA() alignment under m68k. Patch by
- Andreas Schwab.
+- Issue #21407: _decimal: The module now supports function signatures.
-- Issue #20929: Add a type cast to avoid shifting a negative number.
+- Issue #10650: Remove the non-standard 'watchexp' parameter from the
+ Decimal.quantize() method in the Python version. It had never been
+ present in the C version.
-- Issue #20731: Properly position in source code files even if they
- are opened in text mode. Patch by Serhiy Storchaka.
+- Issue #21469: Reduced the risk of false positives in robotparser by
+ checking to make sure that robots.txt has been read or does not exist
+ prior to returning True in can_fetch().
-- Issue #20637: Key-sharing now also works for instance dictionaries of
- subclasses. Patch by Peter Ingebretson.
+- Issue #19414: Have the OrderedDict mark deleted links as unusable.
+ This gives an early failure if the link is deleted during iteration.
-- Issue #12546: Allow \x00 to be used as a fill character when using str, int,
- float, and complex __format__ methods.
+- Issue #21421: Add __slots__ to the MappingViews ABC.
+ Patch by Josh Rosenberg.
-- Issue #13598: Modify string.Formatter to support auto-numbering of
- replacement fields. It now matches the behavior of str.format() in
- this regard. Patches by Phil Elson and Ramchandra Apte.
+- Issue #21101: Eliminate double hashing in the C speed-up code for
+ collections.Counter().
-Library
--------
+- Issue #21321: itertools.islice() now releases the reference to the source
+ iterator when the slice is exhausted. Patch by Anton Afanasyev.
-- Issue #21088: Bugfix for curses.window.addch() regression in 3.4.0.
- In porting to Argument Clinic, the first two arguments were reversed.
+- Issue #21057: TextIOWrapper now allows the underlying binary stream's
+ read() or read1() method to return an arbitrary bytes-like object
+ (such as a memoryview). Patch by Nikolaus Rath.
-- Issue #21469: Reduced the risk of false positives in robotparser by
- checking to make sure that robots.txt has been read or does not exist
- prior to returning True in can_fetch().
+- Issue #20951: SSLSocket.send() now raises either SSLWantReadError or
+ SSLWantWriteError on a non-blocking socket if the operation would block.
+ Previously, it would return 0. Patch by Nikolaus Rath.
-- Issue #21321: itertools.islice() now releases the reference to the source
- iterator when the slice is exhausted. Patch by Anton Afanasyev.
+- Issue #13248: removed previously deprecated asyncore.dispatcher __getattr__
+ cheap inheritance hack.
- Issue #9815: assertRaises now tries to clear references to local variables
in the exception's traceback.
+- Issue #19940: ssl.cert_time_to_seconds() now interprets the given time
+ string in the UTC timezone (as specified in RFC 5280), not the local
+ timezone.
+
- Issue #13204: Calling sys.flags.__new__ would crash the interpreter,
now it raises a TypeError.
@@ -1318,9 +1977,25 @@ Library
- Issue #12220: mindom now raises a custom ValueError indicating it doesn't
support spaces in URIs instead of letting a 'split' ValueError bubble up.
+- Issue #21068: The ssl.PROTOCOL* constants are now enum members.
+
+- Issue #21276: posixmodule: Don't define USE_XATTRS on KFreeBSD and the Hurd.
+
+- Issue #21262: New method assert_not_called for Mock.
+ It raises AssertionError if the mock has been called.
+
+- Issue #21238: New keyword argument `unsafe` to Mock. It raises
+ `AttributeError` incase of an attribute startswith assert or assret.
+
+- Issue #20896: ssl.get_server_certificate() now uses PROTOCOL_SSLv23, not
+ PROTOCOL_SSLv3, for maximum compatibility.
+
- Issue #21239: patch.stopall() didn't work deterministically when the same
name was patched more than once.
+- Issue #21203: Updated fileConfig and dictConfig to remove inconsistencies.
+ Thanks to Jure Koren for the patch.
+
- Issue #21222: Passing name keyword argument to mock.create_autospec now
works.
@@ -1350,17 +2025,31 @@ Library
- Issue #21171: Fixed undocumented filter API of the rot13 codec.
Patch by Berker Peksag.
+- Issue #20539: Improved math.factorial error message for large positive inputs
+ and changed exception type (OverflowError -> ValueError) for large negative
+ inputs.
+
- Issue #21172: isinstance check relaxed from dict to collections.Mapping.
- Issue #21155: asyncio.EventLoop.create_unix_server() now raises a ValueError
if path and sock are specified at the same time.
+- Issue #21136: Avoid unnecessary normalization of Fractions resulting from
+ power and other operations. Patch by Raymond Hettinger.
+
+- Issue #17621: Introduce importlib.util.LazyLoader.
+
+- Issue #21076: signal module constants were turned into enums.
+ Patch by Giampaolo Rodola'.
+
+- Issue #20636: Improved the repr of Tkinter widgets.
+
+- Issue #19505: The items, keys, and values views of OrderedDict now support
+ reverse iteration using reversed().
+
- Issue #21149: Improved thread-safety in logging cleanup during interpreter
shutdown. Thanks to Devin Jeanpierre for the patch.
-- Issue #20145: `assertRaisesRegex` and `assertWarnsRegex` now raise a
- TypeError if the second argument is not a string or compiled regex.
-
- Issue #21058: Fix a leak of file descriptor in
:func:`tempfile.NamedTemporaryFile`, close the file descriptor if
:func:`io.open` fails
@@ -1370,6 +2059,9 @@ Library
- Issue #21013: Enhance ssl.create_default_context() when used for server side
sockets to provide better security by default.
+- Issue #20145: `assertRaisesRegex` and `assertWarnsRegex` now raise a
+ TypeError if the second argument is not a string or compiled regex.
+
- Issue #20633: Replace relative import by absolute import.
- Issue #20980: Stop wrapping exception when using ThreadPool.
@@ -1383,6 +2075,8 @@ Library
curve for ECDH key exchange on OpenSSL 1.0.2 and later, and otherwise
default to "prime256v1".
+- Issue #21000: Improve the command-line interface of json.tool.
+
- Issue #20995: Enhance default ciphers used by the ssl module to enable
better security an prioritize perfect forward secrecy.
@@ -1390,6 +2084,24 @@ Library
- Issue #21499: Ignore __builtins__ in several test_importlib.test_api tests.
+- Issue #20627: xmlrpc.client.ServerProxy is now a context manager.
+
+- Issue #19165: The formatter module now raises DeprecationWarning instead of
+ PendingDeprecationWarning.
+
+- Issue #13936: Remove the ability of datetime.time instances to be considered
+ false in boolean contexts.
+
+- Issue 18931: selectors module now supports /dev/poll on Solaris.
+ Patch by Giampaolo Rodola'.
+
+- Issue #19977: When the ``LC_TYPE`` locale is the POSIX locale (``C`` locale),
+ :py:data:`sys.stdin` and :py:data:`sys.stdout` are now using the
+ ``surrogateescape`` error handler, instead of the ``strict`` error handler.
+
+- Issue #20574: Implement incremental decoder for cp65001 code (Windows code
+ page 65001, Microsoft UTF-8).
+
- Issue #20879: Delay the initialization of encoding and decoding tables for
base32, ascii85 and base85 codecs in the base64 module, and delay the
initialization of the unquote_to_bytes() table of the urllib.parse module, to
@@ -1424,6 +2136,14 @@ Library
- Issue #19748: On AIX, time.mktime() now raises an OverflowError for year
outsize range [1902; 2037].
+- Issue #19573: inspect.signature: Use enum for parameter kind constants.
+
+- Issue #20726: inspect.signature: Make Signature and Parameter picklable.
+
+- Issue #17373: Add inspect.Signature.from_callable method.
+
+- Issue #20378: Improve repr of inspect.Signature and inspect.Parameter.
+
- Issue #20816: Fix inspect.getcallargs() to raise correct TypeError for
missing keyword-only arguments. Patch by Jeremiah Lowin.
@@ -1440,6 +2160,12 @@ Library
positional-or-keyword arguments passed as keyword arguments become
keyword-only.
+- Issue #20334: inspect.Signature and inspect.Parameter are now hashable.
+ Thanks to Antony Lee for bug reports and suggestions.
+
+- Issue #15916: doctest.DocTestSuite returns an empty unittest.TestSuite instead
+ of raising ValueError if it finds no tests
+
- Issue #21209: Fix asyncio.tasks.CoroWrapper to workaround a bug
in yield-from implementation in CPythons prior to 3.4.1.
@@ -1452,16 +2178,90 @@ Library
- Issue #11571: Ensure that the turtle window becomes the topmost window
when launched on OS X.
-Extension Modules
------------------
+- Issue #21801: Validate that __signature__ is None or an instance of Signature.
-- Issue #21276: posixmodule: Don't define USE_XATTRS on KFreeBSD and the Hurd.
-- Issue #21226: Set up modules properly in PyImport_ExecCodeModuleObject
- (and friends).
+- Issue #21923: Prevent AttributeError in distutils.sysconfig.customize_compiler
+ due to possible uninitialized _config_vars.
+
+- Issue #21323: Fix http.server to again handle scripts in CGI subdirectories,
+ broken by the fix for security issue #19435. Patch by Zach Byrne.
+
+- Issue #22733: Fix ffi_prep_args not zero-extending argument values correctly
+ on 64-bit Windows.
+
+- Issue #23302: Default to TCP_NODELAY=1 upon establishing an HTTPConnection.
+ Removed use of hard-coded MSS as it's an optimization that's no longer needed
+ with Nagle disabled.
IDLE
----
+- Issue #20577: Configuration of the max line length for the FormatParagraph
+ extension has been moved from the General tab of the Idle preferences dialog
+ to the FormatParagraph tab of the Config Extensions dialog.
+ Patch by Tal Einat.
+
+- Issue #16893: Update Idle doc chapter to match current Idle and add new
+ information.
+
+- Issue #3068: Add Idle extension configuration dialog to Options menu.
+ Changes are written to HOME/.idlerc/config-extensions.cfg.
+ Original patch by Tal Einat.
+
+- Issue #16233: A module browser (File : Class Browser, Alt+C) requires a
+ editor window with a filename. When Class Browser is requested otherwise,
+ from a shell, output window, or 'Untitled' editor, Idle no longer displays
+ an error box. It now pops up an Open Module box (Alt+M). If a valid name
+ is entered and a module is opened, a corresponding browser is also opened.
+
+- Issue #4832: Save As to type Python files automatically adds .py to the
+ name you enter (even if your system does not display it). Some systems
+ automatically add .txt when type is Text files.
+
+- Issue #21986: Code objects are not normally pickled by the pickle module.
+ To match this, they are no longer pickled when running under Idle.
+
+- Issue #17390: Adjust Editor window title; remove 'Python',
+ move version to end.
+
+- Issue #14105: Idle debugger breakpoints no longer disappear
+ when inseting or deleting lines.
+
+- Issue #17172: Turtledemo can now be run from Idle.
+ Currently, the entry is on the Help menu, but it may move to Run.
+ Patch by Ramchandra Apt and Lita Cho.
+
+- Issue #21765: Add support for non-ascii identifiers to HyperParser.
+
+- Issue #21940: Add unittest for WidgetRedirector. Initial patch by Saimadhav
+ Heblikar.
+
+- Issue #18592: Add unittest for SearchDialogBase. Patch by Phil Webster.
+
+- Issue #21694: Add unittest for ParenMatch. Patch by Saimadhav Heblikar.
+
+- Issue #21686: add unittest for HyperParser. Original patch by Saimadhav
+ Heblikar.
+
+- Issue #12387: Add missing upper(lower)case versions of default Windows key
+ bindings for Idle so Caps Lock does not disable them. Patch by Roger Serwy.
+
+- Issue #21695: Closing a Find-in-files output window while the search is
+ still in progress no longer closes Idle.
+
+- Issue #18910: Add unittest for textView. Patch by Phil Webster.
+
+- Issue #18292: Add unittest for AutoExpand. Patch by Saihadhav Heblikar.
+
+- Issue #18409: Add unittest for AutoComplete. Patch by Phil Webster.
+
+- Issue #21477: htest.py - Improve framework, complete set of tests.
+ Patches by Saimadhav Heblikar
+
+- Issue #18104: Add idlelib/idle_test/htest.py with a few sample tests to begin
+ consolidating and improving human-validated tests of Idle. Change other files
+ as needed to work with htest. Running the module as __main__ runs all tests.
+
- Issue #21139: Change default paragraph width to 72, the PEP 8 recommendation.
- Issue #21284: Paragraph reformat test passes after user changes reformat width.
@@ -1469,10 +2269,52 @@ IDLE
- Issue #17654: Ensure IDLE menus are customized properly on OS X for
non-framework builds and for all variants of Tk.
+- Issue #23180: Rename IDLE "Windows" menu item to "Window".
+ Patch by Al Sweigart.
+
Build
-----
-- The Windows build now includes OpenSSL 1.0.1g
+- Issue #15506: Use standard PKG_PROG_PKG_CONFIG autoconf macro in the configure
+ script.
+
+- Issue #22935: Allow the ssl module to be compiled if openssl doesn't support
+ SSL 3.
+
+- Issue #22592: Drop support of the Borland C compiler to build Python. The
+ distutils module still supports it to build extensions.
+
+- Issue #22591: Drop support of MS-DOS, especially of the DJGPP compiler
+ (MS-DOS port of GCC).
+
+- Issue #16537: Check whether self.extensions is empty in setup.py. Patch by
+ Jonathan Hosmer.
+
+- Issue #22359: Remove incorrect uses of recursive make. Patch by Jonas
+ Wagner.
+
+- Issue #21958: Define HAVE_ROUND when building with Visual Studio 2013 and
+ above. Patch by Zachary Turner.
+
+- Issue #18093: the programs that embed the CPython runtime are now in a
+ separate "Programs" directory, rather than being kept in the Modules
+ directory.
+
+- Issue #15759: "make suspicious", "make linkcheck" and "make doctest" in Doc/
+ now display special message when and only when there are failures.
+
+- Issue #21141: The Windows build process no longer attempts to find Perl,
+ instead relying on OpenSSL source being configured and ready to build. The
+ ``PCbuild\build_ssl.py`` script has been re-written and re-named to
+ ``PCbuild\prepare_ssl.py``, and takes care of configuring OpenSSL source
+ for both 32 and 64 bit platforms. OpenSSL sources obtained from
+ svn.python.org will always be pre-configured and ready to build.
+
+- Issue #21037: Add a build option to enable AddressSanitizer support.
+
+- Issue #19962: The Windows build process now creates "python.bat" in the
+ root of the source tree, which passes all arguments through to the most
+ recently built interpreter.
- Issue #21285: Refactor and fix curses configure check to always search
in a ncursesw directory.
@@ -1481,12 +2323,60 @@ Build
include directories if they aren't already being searched. This avoids
an explicit runtime library dependency.
+- Issue #17861: Tools/scripts/generate_opcode_h.py automatically regenerates
+ Include/opcode.h from Lib/opcode.py if the later gets any change.
+
- Issue #20644: OS X installer build support for documentation build changes
in 3.4.1: assume externally supplied sphinx-build is available in /usr/bin.
+- Issue #20022: Eliminate use of deprecated bundlebuilder in OS X builds.
+
+- Issue #15968: Incorporated Tcl, Tk, and Tix builds into the Windows build
+ solution.
+
+- Issue #17095: Fix Modules/Setup *shared* support.
+
+- Issue #21811: Anticipated fixes to support OS X versions > 10.9.
+
+- Issue #21166: Prevent possible segfaults and other random failures of
+ python --generate-posix-vars in pybuilddir.txt build target.
+
+- Issue #18096: Fix library order returned by python-config.
+
+- Issue #17219: Add library build dir for Python extension cross-builds.
+
+- Issue #22919: Windows build updated to support VC 14.0 (Visual Studio 2015),
+ which will be used for the official release.
+
+- Issue #21236: Build _msi.pyd with cabinet.lib instead of fci.lib
+
+- Issue #17128: Use private version of OpenSSL for OS X 10.5+ installer.
+
C API
-----
+- Issue #14203: Remove obsolete support for view==NULL in PyBuffer_FillInfo(),
+ bytearray_getbuffer(), bytesiobuf_getbuffer() and array_buffer_getbuf().
+ All functions now raise BufferError in that case.
+
+- Issue #22445: PyBuffer_IsContiguous() now implements precise contiguity
+ tests, compatible with NumPy's NPY_RELAXED_STRIDES_CHECKING compilation
+ flag. Previously the function reported false negatives for corner cases.
+
+- Issue #22079: PyType_Ready() now checks that statically allocated type has
+ no dynamically allocated bases.
+
+- Issue #22453: Removed non-documented macro PyObject_REPR().
+
+- Issue #18395: Rename ``_Py_char2wchar()`` to :c:func:`Py_DecodeLocale`,
+ rename ``_Py_wchar2char()`` to :c:func:`Py_EncodeLocale`, and document
+ these functions.
+
+- Issue #21233: Add new C functions: PyMem_RawCalloc(), PyMem_Calloc(),
+ PyObject_Calloc(), _PyObject_GC_Calloc(). bytes(int) is now using
+ ``calloc()`` instead of ``malloc()`` for large objects which is faster and
+ use less memory.
+
- Issue #20942: PyImport_ImportFrozenModuleObject() no longer sets __file__ to
match what importlib does; this affects _frozen_importlib as well as any
module loaded using imp.init_frozen().
@@ -1494,9 +2384,29 @@ C API
Documentation
-------------
+- Issue #19548: Update the codecs module documentation to better cover the
+ distinction between text encodings and other codecs, together with other
+ clarifications. Patch by Martin Panter.
+
+- Issue #22394: Doc/Makefile now supports ``make venv PYTHON=../python`` to
+ create a venv for generating the documentation, e.g.,
+ ``make html PYTHON=venv/bin/python3``.
+
+- Issue #21514: The documentation of the json module now refers to new JSON RFC
+ 7159 instead of obsoleted RFC 4627.
+
+- Issue #21777: The binary sequence methods on bytes and bytearray are now
+ documented explicitly, rather than assuming users will be able to derive
+ the expected behaviour from the behaviour of the corresponding str methods.
+
+- Issue #6916: undocument deprecated asynchat.fifo class.
+
- Issue #17386: Expanded functionality of the ``Doc/make.bat`` script to make
it much more comparable to ``Doc/Makefile``.
+- Issue #21312: Update the thread_foobar.h template file to include newer
+ threading APIs. Patch by Jack McCracken.
+
- Issue #21043: Remove the recommendation for specific CA organizations and to
mention the ability to load the OS certificates.
@@ -1514,6 +2424,73 @@ Documentation
Tests
-----
+- Issue #18982: Add tests for CLI of the calendar module.
+
+- Issue #19548: Added some additional checks to test_codecs to ensure that
+ statements in the updated documentation remain accurate. Patch by Martin
+ Panter.
+
+- Issue #22838: All test_re tests now work with unittest test discovery.
+
+- Issue #22173: Update lib2to3 tests to use unittest test discovery.
+
+- Issue #16000: Convert test_curses to use unittest.
+
+- Issue #21456: Skip two tests in test_urllib2net.py if _ssl module not
+ present. Patch by Remi Pointel.
+
+- Issue #20746: Fix test_pdb to run in refleak mode (-R). Patch by Xavier
+ de Gaye.
+
+- Issue #22060: test_ctypes has been somewhat cleaned up and simplified; it
+ now uses unittest test discovery to find its tests.
+
+- Issue #22104: regrtest.py no longer holds a reference to the suite of tests
+ loaded from test modules that don't define test_main().
+
+- Issue #22111: Assorted cleanups in test_imaplib. Patch by Milan Oberkirch.
+
+- Issue #22002: Added ``load_package_tests`` function to test.support and used
+ it to implement/augment test discovery in test_asyncio, test_email,
+ test_importlib, test_json, and test_tools.
+
+- Issue #21976: Fix test_ssl to accept LibreSSL version strings. Thanks
+ to William Orr.
+
+- Issue #21918: Converted test_tools from a module to a package containing
+ separate test files for each tested script.
+
+- Issue #9554: Use modern unittest features in test_argparse. Initial patch by
+ Denver Coneybeare and Radu Voicilas.
+
+- Issue #20155: Changed HTTP method names in failing tests in test_httpservers
+ so that packet filtering software (specifically Windows Base Filtering Engine)
+ does not interfere with the transaction semantics expected by the tests.
+
+- Issue #19493: Refactored the ctypes test package to skip tests explicitly
+ rather than silently.
+
+- Issue #18492: All resources are now allowed when tests are not run by
+ regrtest.py.
+
+- Issue #21634: Fix pystone micro-benchmark: use floor division instead of true
+ division to benchmark integers instead of floating point numbers. Set pystone
+ version to 1.2. Patch written by Lennart Regebro.
+
+- Issue #21605: Added tests for Tkinter images.
+
+- Issue #21493: Added test for ntpath.expanduser(). Original patch by
+ Claudiu Popa.
+
+- Issue #19925: Added tests for the spwd module. Original patch by Vajrasky Kok.
+
+- Issue #21522: Added Tkinter tests for Listbox.itemconfigure(),
+ PanedWindow.paneconfigure(), and Menu.entryconfigure().
+
+- Issue #17756: Fix test_code test when run from the installed location.
+
+- Issue #17752: Fix distutils tests when run from the installed location.
+
- Issue #18604: Consolidated checks for GUI availability. All platforms now
at least check whether Tk can be instantiated when the GUI resource is
requested.
@@ -1531,6 +2508,8 @@ Tests
- Issue #21097: Move test_namespace_pkgs into test_importlib.
+- Issue #21503: Use test_both() consistently in test_importlib.
+
- Issue #20939: Avoid various network test failures due to new
redirect of http://www.python.org/ to https://www.python.org:
use http://www.example.com instead.
@@ -1541,9 +2520,41 @@ Tests
- Issue #21093: Prevent failures of ctypes test_macholib on OS X if a
copy of libz exists in $HOME/lib or /usr/local/lib.
+- Issue #22770: Prevent some Tk segfaults on OS X when running gui tests.
+
+- Issue #23211: Workaround test_logging failure on some OS X 10.6 systems.
+
+- Issue #23345: Prevent test_ssl failures with large OpenSSL patch level
+ values (like 0.9.8zc).
+
Tools/Demos
-----------
+- Issue #22314: pydoc now works when the LINES environment variable is set.
+
+- Issue #22615: Argument Clinic now supports the "type" argument for the
+ int converter. This permits using the int converter with enums and
+ typedefs.
+
+- Issue #20076: The makelocalealias.py script no longer ignores UTF-8 mapping.
+
+- Issue #20079: The makelocalealias.py script now can parse the SUPPORTED file
+ from glibc sources and supports command line options for source paths.
+
+- Issue #22201: Command-line interface of the zipfile module now correctly
+ extracts ZIP files with directory entries. Patch by Ryan Wilson.
+
+- Issue #22120: For functions using an unsigned integer return converter,
+ Argument Clinic now generates a cast to that type for the comparison
+ to -1 in the generated code. (This supresses a compilation warning.)
+
+- Issue #18974: Tools/scripts/diff.py now uses argparse instead of optparse.
+
+- Issue #21906: Make Tools/scripts/md5sum.py work in Python 3.
+ Patch by Zachary Ware.
+
+- Issue #21629: Fix Argument Clinic's "--converters" feature.
+
- Add support for ``yield from`` to 2to3.
- Add support for the PEP 465 matrix multiplication operator to 2to3.
@@ -1556,6 +2567,31 @@ Tools/Demos
- Issue #20535: PYTHONWARNING no longer affects the run_tests.py script.
Patch by Arfrever Frehtes Taifersar Arahesis.
+Windows
+-------
+
+- Issue #23260: Update Windows installer
+
+- The bundled version of Tcl/Tk has been updated to 8.6.3. The most visible
+ result of this change is the addition of new native file dialogs when
+ running on Windows Vista or newer. See Tcl/Tk's TIP 432 for more
+ information. Also, this version of Tcl/Tk includes support for Windows 10.
+
+- Issue #17896: The Windows build scripts now expect external library sources
+ to be in ``PCbuild\..\externals`` rather than ``PCbuild\..\..``.
+
+- Issue #17717: The Windows build scripts now use a copy of NASM pulled from
+ svn.python.org to build OpenSSL.
+
+- Issue #21907: Improved the batch scripts provided for building Python.
+
+- Issue #22644: The bundled version of OpenSSL has been updated to 1.0.1j.
+
+- Issue #10747: Use versioned labels in the Windows start menu.
+ Patch by Olive Kilburn.
+
+- Issue #22980: .pyd files with a version and platform tag (for example,
+ ".cp35-win32.pyd") will now be loaded in preference to those without tags.
What's New in Python 3.4.0?
===========================
@@ -5669,6 +6705,10 @@ C-API
Documentation
-------------
+- Issue #23006: Improve the documentation and indexing of dict.__missing__.
+ Add an entry in the language datamodel special methods section.
+ Revise and index its discussion in the stdtypes mapping/dict section.
+
- Issue #17701: Improving strftime documentation.
- Issue #18440: Clarify that `hash()` can truncate the value returned from an
@@ -5831,4141 +6871,4 @@ Windows
- Issue #18569: The installer now adds .py to the PATHEXT variable when extensions
are registered. Patch by Paul Moore.
-
-What's New in Python 3.3.0?
-===========================
-
-*Release date: 29-Sep-2012*
-
-Core and Builtins
------------------
-
-- Issue #16046: Fix loading sourceless legacy .pyo files.
-
-- Issue #16060: Fix refcounting bug when `__trunc__()` returns an object whose
- `__int__()` gives a non-integer. Patch by Serhiy Storchaka.
-
-Extension Modules
------------------
-
-- Issue #16012: Fix a regression in pyexpat. The parser's `UseForeignDTD()`
- method doesn't require an argument again.
-
-
-What's New in Python 3.3.0 Release Candidate 3?
-===============================================
-
-*Release date: 23-Sep-2012*
-
-Core and Builtins
------------------
-
-- Issue #15900: Fix reference leak in `PyUnicode_TranslateCharmap()`.
-
-- Issue #15926: Fix crash after multiple reinitializations of the interpreter.
-
-- Issue #15895: Fix FILE pointer leak in one error branch of
- `PyRun_SimpleFileExFlags()` when filename points to a pyc/pyo file, closeit is
- false an and set_main_loader() fails.
-
-- Fixes for a few crash and memory leak regressions found by Coverity.
-
-Library
--------
-
-- Issue #15882: Change `_decimal` to accept any coefficient tuple when
- constructing infinities. This is done for backwards compatibility with
- decimal.py: Infinity coefficients are undefined in _decimal (in accordance
- with the specification).
-
-- Issue #15925: Fix a regression in `email.util` where the `parsedate()` and
- `parsedate_tz()` functions did not return None anymore when the argument could
- not be parsed.
-
-Extension Modules
------------------
-
-- Issue #15973: Fix a segmentation fault when comparing datetime timezone
- objects.
-
-- Issue #15977: Fix memory leak in Modules/_ssl.c when the function
- _set_npn_protocols() is called multiple times, thanks to Daniel Sommermann.
-
-- Issue #15969: `faulthandler` module: rename dump_tracebacks_later() to
- dump_traceback_later() and cancel_dump_tracebacks_later() to
- cancel_dump_traceback_later().
-
-- _decimal module: use only C 89 style comments.
-
-
-What's New in Python 3.3.0 Release Candidate 2?
-===============================================
-
-*Release date: 09-Sep-2012*
-
-Core and Builtins
------------------
-
-- Issue #13992: The trashcan mechanism is now thread-safe. This eliminates
- sporadic crashes in multi-thread programs when several long deallocator chains
- ran concurrently and involved subclasses of built-in container types.
-
-- Issue #15784: Modify `OSError`.__str__() to better distinguish between errno
- error numbers and Windows error numbers.
-
-- Issue #15781: Fix two small race conditions in import's module locking.
-
-Library
--------
-
-- Issue #17158: Add 'symbols' to help() welcome message; clarify
- 'modules spam' messages.
-
-- Issue #15847: Fix a regression in argparse, which did not accept tuples as
- argument lists anymore.
-
-- Issue #15828: Restore support for C extensions in `imp.load_module()`.
-
-- Issue #15340: Fix importing the random module when ``/dev/urandom`` cannot be
- opened. This was a regression caused by the hash randomization patch.
-
-- Issue #10650: Deprecate the watchexp parameter of the `Decimal.quantize()`
- method.
-
-- Issue #15785: Modify `window.get_wch()` API of the curses module: return a
- character for most keys, and an integer for special keys, instead of always
- returning an integer. So it is now possible to distinguish special keys like
- keypad keys.
-
-- Issue #14223: Fix `window.addch()` of the curses module for special characters
- like curses.ACS_HLINE: the Python function addch(int) and addch(bytes) is now
- calling the C function waddch()/mvwaddch() (as it was done in Python 3.2),
- instead of wadd_wch()/mvwadd_wch(). The Python function addch(str) is still
- calling the C function wadd_wch()/mvwadd_wch() if the Python curses is linked
- to libncursesw.
-
-Build
------
-
-- Issue #15822: Really ensure 2to3 grammar pickles are properly installed
- (replaces fixes for Issue #15645).
-
-Documentation
--------------
-
-- Issue #15814: The memoryview enhancements in 3.3.0 accidentally permitted the
- hashing of multi-dimensional memorviews and memoryviews with multi-byte item
- formats. The intended restrictions have now been documented - they will be
- correctly enforced in 3.3.1.
-
-
-What's New in Python 3.3.0 Release Candidate 1?
-===============================================
-
-*Release date: 25-Aug-2012*
-
-Core and Builtins
------------------
-
-- Issue #15573: memoryview comparisons are now performed by value with full
- support for any valid struct module format definition.
-
-- Issue #15316: When an item in the fromlist for `__import__()` doesn't exist,
- don't raise an error, but if an exception is raised as part of an import do
- let that propagate.
-
-- Issue #15778: Ensure that ``str(ImportError(msg))`` returns a str even when
- msg isn't a str.
-
-- Issue #2051: Source file permission bits are once again correctly copied to
- the cached bytecode file. (The migration to importlib reintroduced this
- problem because these was no regression test. A test has been added as part of
- this patch)
-
-- Issue #15761: Fix crash when ``PYTHONEXECUTABLE`` is set on Mac OS X.
-
-- Issue #15726: Fix incorrect bounds checking in PyState_FindModule. Patch by
- Robin Schreiber.
-
-- Issue #15604: Update uses of `PyObject_IsTrue()` to check for and handle
- errors correctly. Patch by Serhiy Storchaka.
-
-- Issue #14846: `importlib.FileFinder` now handles the case where the directory
- being searched is removed after a previous import attempt.
-
-Library
--------
-
-- Issue #13370: Ensure that ctypes works on Mac OS X when Python is compiled
- using the clang compiler.
-
-- Issue #13072: The array module's 'u' format code is now deprecated and will be
- removed in Python 4.0.
-
-- Issue #15544: Fix Decimal.__float__ to work with payload-carrying NaNs.
-
-- Issue #15776: Allow pyvenv to work in existing directory with --clean.
-
-- Issue #15249: email's BytesGenerator now correctly mangles From lines (when
- requested) even if the body contains undecodable bytes.
-
-- Issue #15777: Fix a refleak in _posixsubprocess.
-
-- Issue ##665194: Update `email.utils.localtime` to use datetime.astimezone and
- correctly handle historic changes in UTC offsets.
-
-- Issue #15199: Fix JavaScript's default MIME type to application/javascript.
- Patch by Bohuslav Kabrda.
-
-- Issue #12643: `code.InteractiveConsole` now respects `sys.excepthook` when
- displaying exceptions. Patch by Aaron Iles.
-
-- Issue #13579: `string.Formatter` now understands the 'a' conversion specifier.
-
-- Issue #15595: Fix ``subprocess.Popen(universal_newlines=True)`` for certain
- locales (utf-16 and utf-32 family). Patch by Chris Jerdonek.
-
-- Issue #15477: In cmath and math modules, add workaround for platforms whose
- system-supplied log1p function doesn't respect signs of zeros.
-
-- Issue #15715: `importlib.__import__()` will silence an ImportError when the
- use of fromlist leads to a failed import.
-
-- Issue #14669: Fix pickling of connections and sockets on Mac OS X by
- sending/receiving an acknowledgment after file descriptor transfer.
- TestPicklingConnection has been reenabled for Mac OS X.
-
-- Issue #11062: Fix adding a message from file to Babyl mailbox.
-
-- Issue #15646: Prevent equivalent of a fork bomb when using `multiprocessing`
- on Windows without the ``if __name__ == '__main__'`` idiom.
-
-IDLE
-----
-
-- Issue #15678: Fix IDLE menus when started from OS X command line (3.3.0b2
- regression).
-
-Documentation
--------------
-
-- Touched up the Python 2 to 3 porting guide.
-
-- Issue #14674: Add a discussion of the `json` module's standard compliance.
- Patch by Chris Rebert.
-
-- Create a 'Concurrent Execution' section in the docs, and split up the
- 'Optional Operating System Services' section to use a more user-centric
- classification scheme (splitting them across the new CE section, IPC and text
- processing). Operating system limitations can be reflected with the Sphinx
- ``:platform:`` tag, it doesn't make sense as part of the Table of Contents.
-
-- Issue #4966: Bring the sequence docs up to date for the Py3k transition and
- the many language enhancements since they were original written.
-
-- The "path importer" misnomer has been replaced with Eric Snow's
- more-awkward-but-at-least-not-wrong suggestion of "path based finder" in the
- import system reference docs.
-
-- Issue #15640: Document `importlib.abc.Finder` as deprecated.
-
-- Issue #15630: Add an example for "continue" stmt in the tutorial. Patch by
- Daniel Ellis.
-
-Tests
------
-
-- Issue #15747: ZFS always returns EOPNOTSUPP when attempting to set the
- UF_IMMUTABLE flag (via either chflags or lchflags); refactor affected tests in
- test_posix.py to account for this.
-
-- Issue #15285: Refactor the approach for testing connect timeouts using two
- external hosts that have been configured specifically for this type of test.
-
-- Issue #15743: Remove the deprecated method usage in `urllib` tests. Patch by
- Jeff Knupp.
-
-- Issue #15615: Add some tests for the `json` module's handling of invalid input
- data. Patch by Kushal Das.
-
-Build
------
-
-- Output lib files for PGO build into PGO directory.
-
-- Pick up 32-bit launcher from PGO directory on 64-bit PGO build.
-
-- Drop ``PC\python_nt.h`` as it's not used. Add input dependency on custom
- build step.
-
-- Issue #15511: Drop explicit dependency on pythonxy.lib from _decimal amd64
- configuration.
-
-- Add missing PGI/PGO configurations for pywlauncher.
-
-- Issue #15645: Ensure 2to3 grammar pickles are properly installed.
-
-
-What's New in Python 3.3.0 Beta 2?
-==================================
-
-*Release date: 12-Aug-2012*
-
-Core and Builtins
------------------
-
-- Issue #15568: Fix the return value of ``yield from`` when StopIteration is
- raised by a custom iterator.
-
-- Issue #13119: `sys.stdout` and `sys.stderr` are now using "\r\n" newline on
- Windows, as Python 2.
-
-- Issue #15534: Fix the fast-search function for non-ASCII Unicode strings.
-
-- Issue #15508: Fix the docstring for `__import__()` to have the proper default
- value of 0 for 'level' and to not mention negative levels since they are not
- supported.
-
-- Issue #15425: Eliminated traceback noise from more situations involving
- importlib.
-
-- Issue #14578: Support modules registered in the Windows registry again.
-
-- Issue #15466: Stop using TYPE_INT64 in marshal, to make importlib.h (and other
- byte code files) equal between 32-bit and 64-bit systems.
-
-- Issue #1692335: Move initial exception args assignment to
- `BaseException.__new__()` to help pickling of naive subclasses.
-
-- Issue #12834: Fix `PyBuffer_ToContiguous()` for non-contiguous arrays.
-
-- Issue #15456: Fix code `__sizeof__()` after #12399 change. Patch by Serhiy
- Storchaka.
-
-- Issue #15404: Refleak in PyMethodObject repr.
-
-- Issue #15394: An issue in `PyModule_Create()` that caused references to be
- leaked on some error paths has been fixed. Patch by Julia Lawall.
-
-- Issue #15368: An issue that caused bytecode generation to be non-deterministic
- has been fixed.
-
-- Issue #15202: Consistently use the name "follow_symlinks" for new parameters
- in os and shutil functions.
-
-- Issue #15314: ``__main__.__loader__`` is now set correctly during interpreter
- startup.
-
-- Issue #15111: When a module imported using 'from import' has an ImportError
- inside itself, don't mask that fact behind a generic ImportError for the
- module itself.
-
-- Issue #15293: Add GC support to the AST base node type.
-
-- Issue #15291: Fix a memory leak where AST nodes where not properly
- deallocated.
-
-- Issue #15110: Fix the tracebacks generated by "import xxx" to not show the
- importlib stack frames.
-
-- Issue #16369: Global PyTypeObjects not initialized with PyType_Ready(...).
-
-- Issue #15020: The program name used to search for Python's path is now
- "python3" under Unix, not "python".
-
-- Issue #15897: zipimport.c doesn't check return value of fseek().
- Patch by Felipe Cruz.
-
-- Issue #15033: Fix the exit status bug when modules invoked using -m switch,
- return the proper failure return value (1). Patch contributed by Jeff Knupp.
-
-- Issue #15229: An `OSError` subclass whose __init__ doesn't call back
- OSError.__init__ could produce incomplete instances, leading to crashes when
- calling str() on them.
-
-- Issue #15307: Virtual environments now use symlinks with framework builds on
- Mac OS X, like other POSIX builds.
-
-Library
--------
-
-- Issue #14590: configparser now correctly strips inline comments when delimiter
- occurs earlier without preceding space.
-
-- Issue #15424: Add a `__sizeof__()` implementation for array objects. Patch by
- Ludwig Hähne.
-
-- Issue #15576: Allow extension modules to act as a package's __init__ module.
-
-- Issue #15502: Have `importlib.invalidate_caches()` work on `sys.meta_path`
- instead of `sys.path_importer_cache`.
-
-- Issue #15163: Pydoc shouldn't list __loader__ as module data.
-
-- Issue #15471: Do not use mutable objects as defaults for
- `importlib.__import__()`.
-
-- Issue #15559: To avoid a problematic failure mode when passed to the bytes
- constructor, objects in the ipaddress module no longer implement `__index__()`
- (they still implement `__int__()` as appropriate).
-
-- Issue #15546: Fix handling of pathological input data in the peek() and
- read1() methods of the BZ2File, GzipFile and LZMAFile classes.
-
-- Issue #12655: Instead of requiring a custom type, `os.sched_getaffinity()` and
- `os.sched_setaffinity()` now use regular sets of integers to represent the
- CPUs a process is restricted to.
-
-- Issue #15538: Fix compilation of the `socket.getnameinfo()` /
- `socket.getaddrinfo()` emulation code. Patch by Philipp Hagemeister.
-
-- Issue #15519: Properly expose WindowsRegistryFinder in importlib (and use the
- correct term for it). Original patch by Eric Snow.
-
-- Issue #15502: Bring the importlib ABCs into line with the current state of the
- import protocols given PEP 420. Original patch by Eric Snow.
-
-- Issue #15499: Launching a webbrowser in Unix used to sleep for a few seconds.
- Original patch by Anton Barkovsky.
-
-- Issue #15463: The faulthandler module truncates strings to 500 characters,
- instead of 100, to be able to display long file paths.
-
-- Issue #6056: Make `multiprocessing` use setblocking(True) on the sockets it
- uses. Original patch by J Derek Wilson.
-
-- Issue #15364: Fix sysconfig.get_config_var('srcdir') to be an absolute path.
-
-- Issue #15413: `os.times()` had disappeared under Windows.
-
-- Issue #15402: An issue in the struct module that caused `sys.getsizeof()` to
- return incorrect results for struct.Struct instances has been fixed. Initial
- patch by Serhiy Storchaka.
-
-- Issue #15232: When mangle_from is True, `email.Generator` now correctly
- mangles lines that start with 'From ' that occur in a MIME preamble or
- epilogue.
-
-- Issue #15094: Incorrectly placed #endif in _tkinter.c. Patch by Serhiy
- Storchaka.
-
-- Issue #13922: `argparse` no longer incorrectly strips '--'s that appear after
- the first one.
-
-- Issue #12353: `argparse` now correctly handles null argument values.
-
-- Issue #10017, issue #14998: Fix TypeError using pprint on dictionaries with
- user-defined types as keys or other unorderable keys.
-
-- Issue #15397: `inspect.getmodulename()` is now based directly on importlib via
- a new `importlib.machinery.all_suffixes()` API.
-
-- Issue #14635: `telnetlib` will use poll() rather than select() when possible to
- avoid failing due to the select() file descriptor limit.
-
-- Issue #15180: Clarify posixpath.join() error message when mixing str & bytes.
-
-- Issue #15343: pkgutil now includes an iter_importer_modules implementation for
- importlib.machinery.FileFinder (similar to the way it already handled
- zipimport.zipimporter).
-
-- Issue #15314: runpy now sets __main__.__loader__ correctly.
-
-- Issue #15357: The import emulation in pkgutil is now deprecated. pkgutil uses
- importlib internally rather than the emulation.
-
-- Issue #15233: Python now guarantees that callables registered with the atexit
- module will be called in a deterministic order.
-
-- Issue #15238: `shutil.copystat()` now copies Linux "extended attributes".
-
-- Issue #15230: runpy.run_path now correctly sets __package__ as described in
- the documentation.
-
-- Issue #15315: Support VS 2010 in distutils cygwincompiler.
-
-- Issue #15294: Fix a regression in pkgutil.extend_path()'s handling of nested
- namespace packages.
-
-- Issue #15056: `imp.cache_from_source()` and `imp.source_from_cache()` raise
- NotImplementedError when `sys.implementation.cache_tag` is set to None.
-
-- Issue #15256: Grammatical mistake in exception raised by `imp.find_module()`.
-
-- Issue #5931: `wsgiref` environ variable SERVER_SOFTWARE will specify an
- implementation specific term like CPython, Jython instead of generic "Python".
-
-- Issue #13248: Remove obsolete argument "max_buffer_size" of BufferedWriter and
- BufferedRWPair, from the io module.
-
-- Issue #13248: Remove obsolete argument "version" of `argparse.ArgumentParser`.
-
-- Issue #14814: Implement more consistent ordering and sorting behaviour for
- ipaddress objects.
-
-- Issue #14814: `ipaddress` network objects correctly return NotImplemented when
- compared to arbitrary objects instead of raising TypeError.
-
-- Issue #14990: Correctly fail with SyntaxError on invalid encoding declaration.
-
-- Issue #14814: `ipaddress` now provides more informative error messages when
- constructing instances directly (changes permitted during beta due to
- provisional API status).
-
-- Issue #15247: `io.FileIO` now raises an error when given a file descriptor
- pointing to a directory.
-
-- Issue #15261: Stop os.stat(fd) crashing on Windows when fd not open.
-
-- Issue #15166: Implement `imp.get_tag()` using `sys.implementation.cache_tag`.
-
-- Issue #15210: Catch KeyError when `importlib.__init__()` can't find
- _frozen_importlib in sys.modules, not ImportError.
-
-- Issue #15030: `importlib.abc.PyPycLoader` now supports the new source size
- header field in .pyc files.
-
-- Issue #5346: Preserve permissions of mbox, MMDF and Babyl mailbox files on
- flush().
-
-- Issue #10571: Fix the "--sign" option of distutils' upload command. Patch by
- Jakub Wilk.
-
-- Issue #9559: If messages were only added, a new file is no longer created and
- renamed over the old file when flush() is called on an mbox, MMDF or Babyl
- mailbox.
-
-- Issue #10924: Fixed `crypt.mksalt()` to use a RNG that is suitable for
- cryptographic purpose.
-
-- Issue #15184: Ensure consistent results of OS X configuration tailoring for
- universal builds by factoring out common OS X-specific customizations from
- sysconfig, distutils.sysconfig, distutils.util, and distutils.unixccompiler
- into a new module _osx_support.
-
-C API
------
-
-- Issue #15610: `PyImport_ImportModuleEx()` now uses a 'level' of 0 instead of -1.
-
-- Issue #15169, issue #14599: Strip out the C implementation of
- `imp.source_from_cache()` used by PyImport_ExecCodeModuleWithPathnames() and
- used the Python code instead. Leads to PyImport_ExecCodeModuleObject() to not
- try to infer the source path from the bytecode path as
- PyImport_ExecCodeModuleWithPathnames() does.
-
-Extension Modules
------------------
-
-- Issue #6493: An issue in ctypes on Windows that caused structure bitfields of
- type `ctypes.c_uint32` and width 32 to incorrectly be set has been fixed.
-
-- Issue #15194: Update libffi to the 3.0.11 release.
-
-IDLE
-----
-
-- Issue #13052: Fix IDLE crashing when replace string in Search/Replace dialog
- ended with ``\``. Patch by Roger Serwy.
-
-Tools/Demos
------------
-
-- Issue #15458: python-config gets a new option --configdir to print the $LIBPL
- value.
-
-- Move importlib.test.benchmark to Tools/importbench.
-
-- Issue #12605: The gdb hooks for debugging CPython (within Tools/gdb) have been
- enhanced to show information on more C frames relevant to CPython within the
- "py-bt" and "py-bt-full" commands:
-
- * C frames that are waiting on the GIL
- * C frames that are garbage-collecting
- * C frames that are due to the invocation of a PyCFunction
-
-Documentation
--------------
-
-- Issue #15041: Update "see also" list in tkinter documentation.
-
-- Issue #15444: Use proper spelling for non-ASCII contributor names. Patch by
- Serhiy Storchaka.
-
-- Issue #15295: Reorganize and rewrite the documentation on the import system.
-
-- Issue #15230: Clearly document some of the limitations of the runpy module and
- nudge readers towards importlib when appropriate.
-
-- Issue #15053: Copy Python 3.3 import lock change notice to all relevant
- functions in imp instead of just at the top of the relevant section.
-
-- Issue #15288: Link to the term "loader" in notes in pkgutil about how things
- won't work as expected in Python 3.3 and mark the requisite functions as
- "changed" since they will no longer work with modules directly imported by
- import itself.
-
-- Issue #13557: Clarify effect of giving two different namespaces to `exec()` or
- `execfile()`.
-
-- Issue #15250: Document that `filecmp.dircmp()` compares files shallowly. Patch
- contributed by Chris Jerdonek.
-
-- Issue #15442: Expose the default list of directories ignored by
- `filecmp.dircmp()` as a module attribute, and expand the list to more modern
- values.
-
-Tests
------
-
-- Issue #15467: Move helpers for `__sizeof__()` tests into test_support. Patch
- by Serhiy Storchaka.
-
-- Issue #15320: Make iterating the list of tests thread-safe when running tests
- in multiprocess mode. Patch by Chris Jerdonek.
-
-- Issue #15168: Move `importlib.test` to `test.test_importlib`.
-
-- Issue #15091: Reactivate a test on UNIX which was failing thanks to a
- forgotten `importlib.invalidate_caches()` call.
-
-- Issue #15230: Adopted a more systematic approach in the runpy tests.
-
-- Issue #15300: Ensure the temporary test working directories are in the same
- parent folder when running tests in multiprocess mode from a Python build.
- Patch by Chris Jerdonek.
-
-- Issue #15284: Skip {send,recv}msg tests in test_socket when IPv6 is not
- enabled. Patch by Brian Brazil.
-
-- Issue #15277: Fix a resource leak in support.py when IPv6 is disabled. Patch
- by Brian Brazil.
-
-Build
------
-
-- Issue #11715: Fix multiarch detection without having Debian development tools
- (dpkg-dev) installed.
-
-- Issue #15037: Build OS X installers with local copy of ncurses 5.9 libraries
- to avoid curses.unget_wch bug present in older versions of ncurses such as
- those shipped with OS X.
-
-- Issue #15560: Fix building _sqlite3 extension on OS X with an SDK. Also, for
- OS X installers, ensure consistent sqlite3 behavior and feature availability
- by building a local copy of libsqlite3 rather than depending on the wide range
- of versions supplied with various OS X releases.
-
-- Issue #8847: Disable COMDAT folding in Windows PGO builds.
-
-- Issue #14018: Fix OS X Tcl/Tk framework checking when using OS X SDKs.
-
-- Issue #16256: OS X installer now sets correct permissions for doc directory.
-
-- Issue #15431: Add _freeze_importlib project to regenerate importlib.h on
- Windows. Patch by Kristján Valur Jónsson.
-
-- Issue #14197: For OS X framework builds, ensure links to the shared library
- are created with the proper ABI suffix.
-
-- Issue #14330: For cross builds, don't use host python, use host search paths
- for host compiler.
-
-- Issue #15235: Allow Berkley DB versions up to 5.3 to build the dbm module.
-
-- Issue #15268: Search curses.h in /usr/include/ncursesw.
-
-
-What's New in Python 3.3.0 Beta 1?
-==================================
-
-*Release date: 27-Jun-2012*
-
-Core and Builtins
------------------
-
-- Fix a (most likely) very rare memory leak when calling main() and not being
- able to decode a command-line argument.
-
-- Issue #14815: Use Py_ssize_t instead of long for the object hash, to
- preserve all 64 bits of hash on Win64.
-
-- Issue #12268: File readline, readlines and read() or readall() methods
- no longer lose data when an underlying read system call is interrupted.
- IOError is no longer raised due to a read system call returning EINTR
- from within these methods.
-
-- Issue #11626: Add _SizeT functions to stable ABI.
-
-- Issue #15142: Fix reference leak when deallocating instances of types
- created using PyType_FromSpec().
-
-- Issue #10053: Don't close FDs when FileIO.__init__ fails. Loosely based on
- the work by Hirokazu Yamamoto.
-
-- Issue #15096: Removed support for ur'' as the raw notation isn't
- compatible with Python 2.x's raw unicode strings.
-
-- Issue #13783: Generator objects now use the identifier APIs internally
-
-- Issue #14874: Restore charmap decoding speed to pre-PEP 393 levels.
- Patch by Serhiy Storchaka.
-
-- Issue #15026: utf-16 encoding is now significantly faster (up to 10x).
- Patch by Serhiy Storchaka.
-
-- Issue #11022: open() and io.TextIOWrapper are now calling
- locale.getpreferredencoding(False) instead of locale.getpreferredencoding()
- in text mode if the encoding is not specified. Don't change temporary the
- locale encoding using locale.setlocale(), use the current locale encoding
- instead of the user preferred encoding.
-
-- Issue #14673: Add Eric Snow's sys.implementation implementation.
-
-- Issue #15038: Optimize python Locks on Windows.
-
-Library
--------
-
-- Issue #12288: Consider '0' and '0.0' as valid initialvalue
- for tkinter SimpleDialog.
-
-- Issue #15512: Add a __sizeof__ implementation for parser.
- Patch by Serhiy Storchaka.
-
-- Issue #15469: Add a __sizeof__ implementation for deque objects.
- Patch by Serhiy Storchaka.
-
-- Issue #15489: Add a __sizeof__ implementation for BytesIO objects.
- Patch by Serhiy Storchaka.
-
-- Issue #15487: Add a __sizeof__ implementation for buffered I/O objects.
- Patch by Serhiy Storchaka.
-
-- Issue #15514: Correct __sizeof__ support for cpu_set.
- Patch by Serhiy Storchaka.
-
-- Issue #15177: Added dir_fd parameter to os.fwalk().
-
-- Issue #15061: Re-implemented hmac.compare_digest() in C to prevent further
- timing analysis and to support all buffer protocol aware objects as well as
- ASCII only str instances safely.
-
-- Issue #15164: Change return value of platform.uname() from a
- plain tuple to a collections.namedtuple.
-
-- Support Mageia Linux in the platform module.
-
-- Issue #11678: Support Arch linux in the platform module.
-
-- Issue #15118: Change return value of os.uname() and os.times() from
- plain tuples to immutable iterable objects with named attributes
- (structseq objects).
-
-- Speed up _decimal by another 10-15% by caching the thread local context
- that was last accessed. In the pi benchmark (64-bit platform, prec=9),
- _decimal is now only 1.5x slower than float.
-
-- Remove the packaging module, which is not ready for prime time.
-
-- Issue #15154: Add "dir_fd" parameter to os.rmdir, remove "rmdir"
- parameter from os.remove / os.unlink.
-
-- Issue #4489: Add a shutil.rmtree that isn't susceptible to symlink attacks.
- It is used automatically on platforms supporting the necessary os.openat()
- and os.unlinkat() functions. Main code by Martin von Löwis.
-
-- Issue #15156: HTMLParser now uses the new "html.entities.html5" dictionary.
-
-- Issue #11113: add a new "html5" dictionary containing the named character
- references defined by the HTML5 standard and the equivalent Unicode
- character(s) to the html.entities module.
-
-- Issue #15114: the strict mode of HTMLParser and the HTMLParseError exception
- are deprecated now that the parser is able to parse invalid markup.
-
-- Issue #3665: \u and \U escapes are now supported in unicode regular
- expressions. Patch by Serhiy Storchaka.
-
-- Issue #15153: Added inspect.getgeneratorlocals to simplify white box
- testing of generator state updates
-
-- Issue #13062: Added inspect.getclosurevars to simplify testing stateful
- closures
-
-- Issue #11024: Fixes and additional tests for Time2Internaldate.
-
-- Issue #14626: Large refactoring of functions / parameters in the os module.
- Many functions now support "dir_fd" and "follow_symlinks" parameters;
- some also support accepting an open file descriptor in place of a path
- string. Added os.support_* collections as LBYL helpers. Removed many
- functions only previously seen in 3.3 alpha releases (often starting with
- "f" or "l", or ending with "at"). Originally suggested by Serhiy Storchaka;
- implemented by Larry Hastings.
-
-- Issue #15008: Implement PEP 362 "Signature Objects".
- Patch by Yury Selivanov.
-
-- Issue: #15138: base64.urlsafe_{en,de}code() are now 3-4x faster.
-
-- Issue #444582: Add shutil.which, for finding programs on the system path.
- Original patch by Erik Demaine, with later iterations by Jan Killian
- and Brian Curtin.
-
-- Issue #14837: SSL errors now have ``library`` and ``reason`` attributes
- describing precisely what happened and in which OpenSSL submodule. The
- str() of a SSLError is also enhanced accordingly.
-
-- Issue #9527: datetime.astimezone() method will now supply a class
- timezone instance corresponding to the system local timezone when
- called with no arguments.
-
-- Issue #14653: email.utils.mktime_tz() no longer relies on system
- mktime() when timezone offest is supplied.
-
-- Issue #14684: zlib.compressobj() and zlib.decompressobj() now support the use
- of predefined compression dictionaries. Original patch by Sam Rushing.
-
-- Fix GzipFile's handling of filenames given as bytes objects.
-
-- Issue #14772: Return destination values from some shutil functions.
-
-- Issue #15064: Implement context manager protocol for multiprocessing types
-
-- Issue #15101: Make pool finalizer avoid joining current thread.
-
-- Issue #14657: The frozen instance of importlib used for bootstrap is now
- also the module imported as importlib._bootstrap.
-
-- Issue #14055: Add __sizeof__ support to _elementtree.
-
-- Issue #15054: A bug in tokenize.tokenize that caused string literals
- with 'b' prefixes to be incorrectly tokenized has been fixed.
- Patch by Serhiy Storchaka.
-
-- Issue #15006: Allow equality comparison between naive and aware
- time or datetime objects.
-
-- Issue #15036: Mailbox no longer throws an error if a flush is done
- between operations when removing or changing multiple items in mbox,
- MMDF, or Babyl mailboxes.
-
-- Issue #14059: Implement multiprocessing.Barrier.
-
-- Issue #15061: The inappropriately named hmac.secure_compare has been
- renamed to hmac.compare_digest, restricted to operating on bytes inputs
- only and had its documentation updated to more accurately reflect both its
- intent and its limitations
-
-- Issue #13841: Make child processes exit using sys.exit() on Windows.
-
-- Issue #14936: curses_panel was converted to PEP 3121 and PEP 384 API.
- Patch by Robin Schreiber.
-
-- Issue #1667546: On platforms supporting tm_zone and tm_gmtoff fields
- in struct tm, time.struct_time objects returned by time.gmtime(),
- time.localtime() and time.strptime() functions now have tm_zone and
- tm_gmtoff attributes. Original patch by Paul Boddie.
-
-- Rename adjusted attribute to adjustable in time.get_clock_info() result.
-
-- Issue #3518: Remove references to non-existent BaseManager.from_address()
- method.
-
-- Issue #13857: Added textwrap.indent() function (initial patch by Ezra
- Berch)
-
-- Issue #2736: Added datetime.timestamp() method.
-
-- Issue #13854: Make multiprocessing properly handle non-integer
- non-string argument to SystemExit.
-
-- Issue #12157: Make pool.map() empty iterables correctly. Initial
- patch by mouad.
-
-- Issue #11823: disassembly now shows argument counts on calls with keyword args.
-
-- Issue #14711: os.stat_float_times() has been deprecated.
-
-- LZMAFile now accepts the modes "rb"/"wb"/"ab" as synonyms of "r"/"w"/"a".
-
-- The bz2 and lzma modules now each contain an open() function, allowing
- compressed files to readily be opened in text mode as well as binary mode.
-
-- BZ2File.__init__() and LZMAFile.__init__() now accept a file object as their
- first argument, rather than requiring a separate "fileobj" argument.
-
-- gzip.open() now accepts file objects as well as filenames.
-
-- Issue #14992: os.makedirs(path, exist_ok=True) would raise an OSError
- when the path existed and had the S_ISGID mode bit set when it was
- not explicitly asked for. This is no longer an exception as mkdir
- cannot control if the OS sets that bit for it or not.
-
-- Issue #14989: Make the CGI enable option to http.server available via command
- line.
-
-- Issue #14987: Add a missing import statement to inspect.
-
-- Issue #1079: email.header.decode_header now correctly parses all the examples
- in RFC2047. There is a necessary visible behavior change: the leading and/or
- trailing whitespace on ASCII parts is now preserved.
-
-- Issue #14969: Better handling of exception chaining in contextlib.ExitStack
-
-- Issue #14963: Convert contextlib.ExitStack.__exit__ to use an iterative
- algorithm (Patch by Alon Horev)
-
-- Issue #14785: Add sys._debugmallocstats() to help debug low-level memory
- allocation issues
-
-- Issue #14443: Ensure that .py files are byte-compiled with the correct Python
- executable within bdist_rpm even on older versions of RPM
-
-C-API
------
-
-- Issue #15146: Add PyType_FromSpecWithBases. Patch by Robin Schreiber.
-
-- Issue #15042: Add PyState_AddModule and PyState_RemoveModule. Add version
- guard for Py_LIMITED_API additions. Patch by Robin Schreiber.
-
-- Issue #13783: Inadvertent additions to the public C API in the PEP 380
- implementation have either been removed or marked as private interfaces.
-
-Extension Modules
------------------
-
-- Issue #15000: Support the "unique" x32 architecture in _posixsubprocess.c.
-
-IDLE
-----
-
-- Issue #9803: Don't close IDLE on saving if breakpoint is open.
- Patch by Roger Serwy.
-
-- Issue #14962: Update text coloring in IDLE shell window after changing
- options. Patch by Roger Serwy.
-
-Documentation
--------------
-
-- Issue #15176: Clarified behavior, documentation, and implementation
- of os.listdir().
-
-- Issue #14982: Document that pkgutil's iteration functions require the
- non-standard iter_modules() method to be defined by an importer (something
- the importlib importers do not define).
-
-- Issue #15081: Document PyState_FindModule.
- Patch by Robin Schreiber.
-
-- Issue #14814: Added first draft of ipaddress module API reference
-
-Tests
------
-
-- Issue #15187: Bugfix: remove temporary directories test_shutil was leaving
- behind.
-
-- Issue #14769: test_capi now has SkipitemTest, which cleverly checks
- for "parity" between PyArg_ParseTuple() and the Python/getargs.c static
- function skipitem() for all possible "format units".
-
-- test_nntplib now tolerates being run from behind NNTP gateways that add
- "X-Antivirus" headers to articles
-
-- Issue #15043: test_gdb is now skipped entirely if gdb security settings
- block loading of the gdb hooks
-
-- Issue #14963: Add test cases for exception handling behaviour
- in contextlib.ExitStack (Initial patch by Alon Horev)
-
-Build
------
-
-- Issue #13590: Improve support for OS X Xcode 4:
- * Try to avoid building Python or extension modules with problematic
- llvm-gcc compiler.
- * Since Xcode 4 removes ppc support, extension module builds now
- check for ppc compiler support and automatically remove ppc and
- ppc64 archs when not available.
- * Since Xcode 4 no longer install SDKs in default locations,
- extension module builds now revert to using installed headers
- and libs if the SDK used to build the interpreter is not
- available.
- * Update ./configure to use better defaults for universal builds;
- in particular, --enable-universalsdk=yes uses the Xcode default
- SDK and --with-universal-archs now defaults to "intel" if ppc
- not available.
-
-- Issue #14225: Fix Unicode support for curses (#12567) on OS X
-
-- Issue #14928: Fix importlib bootstrap issues by using a custom executable
- (Modules/_freeze_importlib) to build Python/importlib.h.
-
-
-What's New in Python 3.3.0 Alpha 4?
-===================================
-
-*Release date: 31-May-2012*
-
-Core and Builtins
------------------
-
-- Issue #14835: Make plistlib output empty arrays & dicts like OS X.
- Patch by Sidney San Martín.
-
-- Issue #14744: Use the new _PyUnicodeWriter internal API to speed up
- str%args and str.format(args).
-
-- Issue #14930: Make memoryview objects weakrefable.
-
-- Issue #14775: Fix a potential quadratic dict build-up due to the garbage
- collector repeatedly trying to untrack dicts.
-
-- Issue #14857: fix regression in references to PEP 3135 implicit __class__
- closure variable (Reopens issue #12370)
-
-- Issue #14712 (PEP 405): Virtual environments. Implemented by Vinay Sajip.
-
-- Issue #14660 (PEP 420): Namespace packages. Implemented by Eric Smith.
-
-- Issue #14494: Fix __future__.py and its documentation to note that
- absolute imports are the default behavior in 3.0 instead of 2.7.
- Patch by Sven Marnach.
-
-- Issue #9260: A finer-grained import lock. Most of the import sequence
- now uses per-module locks rather than the global import lock, eliminating
- well-known issues with threads and imports.
-
-- Issue #14624: UTF-16 decoding is now 3x to 4x faster on various inputs.
- Patch by Serhiy Storchaka.
-
-- asdl_seq and asdl_int_seq are now Py_ssize_t sized.
-
-- Issue #14133 (PEP 415): Implement suppression of __context__ display with an
- attribute on BaseException. This replaces the original mechanism of PEP 409.
-
-- Issue #14417: Mutating a dict during lookup now restarts the lookup instead
- of raising a RuntimeError (undoes issue #14205).
-
-- Issue #14738: Speed-up UTF-8 decoding on non-ASCII data. Patch by Serhiy
- Storchaka.
-
-- Issue #14700: Fix two broken and undefined-behaviour-inducing overflow checks
- in old-style string formatting.
-
-Library
--------
-
-- Issue #14690: Use monotonic clock instead of system clock in the sched,
- subprocess and trace modules.
-
-- Issue #14443: Tell rpmbuild to use the correct version of Python in
- bdist_rpm. Initial patch by Ross Lagerwall.
-
-- Issue #12515: email now registers a defect if it gets to EOF while parsing
- a MIME part without seeing the closing MIME boundary.
-
-- Issue #1672568: email now always decodes base64 payloads, adding padding and
- ignoring non-base64-alphabet characters if needed, and registering defects
- for any such problems.
-
-- Issue #14925: email now registers a defect when the parser decides that there
- is a missing header/body separator line. MalformedHeaderDefect, which the
- existing code would never actually generate, is deprecated.
-
-- Issue #10365: File open dialog now works instead of crashing even when
- the parent window is closed before the dialog. Patch by Roger Serwy.
-
-- Issue #8739: Updated smtpd to support RFC 5321, and added support for the
- RFC 1870 SIZE extension.
-
-- Issue #665194: Added a localtime function to email.utils to provide an
- aware local datetime for use in setting Date headers.
-
-- Issue #12586: Added new provisional policies that implement convenient
- unicode support for email headers. See What's New for details.
-
-- Issue #14731: Refactored email Policy framework to support full backward
- compatibility with Python 3.2 by default yet allow for the introduction of
- new features through new policies. Note that Policy.must_be_7bit is renamed
- to cte_type.
-
-- Issue #14876: Use user-selected font for highlight configuration.
-
-- Issue #14920: Fix the help(urllib.parse) failure on locale C on terminals.
- Have ascii characters in help.
-
-- Issue #14548: Make multiprocessing finalizers check pid before
- running to cope with possibility of gc running just after fork.
-
-- Issue #14036: Add an additional check to validate that port in urlparse does
- not go in illegal range and returns None.
-
-- Issue #14862: Add missing names to os.__all__
-
-- Issue #14875: Use float('inf') instead of float('1e66666') in the json module.
-
-- Issue #13585: Added contextlib.ExitStack
-
-- PEP 3144, Issue #14814: Added the ipaddress module
-
-- Issue #14426: Correct the Date format in Expires attribute of Set-Cookie
- Header in Cookie.py.
-
-- Issue #14588: The types module now provide new_class() and prepare_class()
- functions to support PEP 3115 compliant dynamic class creation. Patch by
- Daniel Urban and Nick Coghlan.
-
-- Issue #13152: Allow to specify a custom tabsize for expanding tabs in
- textwrap. Patch by John Feuerstein.
-
-- Issue #14721: Send the correct 'Content-length: 0' header when the body is an
- empty string ''. Initial Patch contributed by Arve Knudsen.
-
-- Issue #14072: Fix parsing of 'tel' URIs in urlparse by making the check for
- ports stricter.
-
-- Issue #9374: Generic parsing of query and fragment portions of url for any
- scheme. Supported both by RFC3986 and RFC2396.
-
-- Issue #14798: Fix the functions in pyclbr to raise an ImportError
- when the first part of a dotted name is not a package. Patch by
- Xavier de Gaye.
-
-- Issue #12098: multiprocessing on Windows now starts child processes
- using the same sys.flags as the current process. Initial patch by
- Sergey Mezentsev.
-
-- Issue #13031: Small speed-up for tarfile when unzipping tarfiles.
- Patch by Justin Peel.
-
-- Issue #14780: urllib.request.urlopen() now has a ``cadefault`` argument
- to use the default certificate store. Initial patch by James Oakley.
-
-- Issue #14829: Fix bisect and range() indexing with large indices
- (>= 2 ** 32) under 64-bit Windows.
-
-- Issue #14732: The _csv module now uses PEP 3121 module initialization.
- Patch by Robin Schreiber.
-
-- Issue #14809: Add HTTP status codes introduced by RFC 6585 to http.server
- and http.client. Patch by EungJun Yi.
-
-- Issue #14777: tkinter may return undecoded UTF-8 bytes as a string when
- accessing the Tk clipboard. Modify clipboad_get() to first request type
- UTF8_STRING when no specific type is requested in an X11 windowing
- environment, falling back to the current default type STRING if that fails.
- Original patch by Thomas Kluyver.
-
-- Issue #14773: Fix os.fwalk() failing on dangling symlinks.
-
-- Issue #12541: Be lenient with quotes around Realm field of HTTP Basic
- Authentation in urllib2.
-
-- Issue #14807: move undocumented tarfile.filemode() to stat.filemode() and add
- doc entry. Add tarfile.filemode alias with deprecation warning.
-
-- Issue #13815: TarFile.extractfile() now returns io.BufferedReader objects.
-
-- Issue #14532: Add a secure_compare() helper to the hmac module, to mitigate
- timing attacks. Patch by Jon Oberheide.
-
-- Add importlib.util.resolve_name().
-
-- Issue #14366: Support lzma compression in zip files.
- Patch by Serhiy Storchaka.
-
-- Issue #13959: Introduce importlib.find_loader() and document
- imp.find_module/load_module as deprecated.
-
-- Issue #14082: shutil.copy2() now copies extended attributes, if possible.
- Patch by Hynek Schlawack.
-
-- Issue #13959: Make importlib.abc.FileLoader.load_module()/get_filename() and
- importlib.machinery.ExtensionFileLoader.load_module() have their single
- argument be optional. Allows for the replacement (and thus deprecation) of
- imp.load_source()/load_package()/load_compiled().
-
-- Issue #13959: imp.get_suffixes() has been deprecated in favour of the new
- attributes on importlib.machinery: SOURCE_SUFFIXES, DEBUG_BYTECODE_SUFFIXES,
- OPTIMIZED_BYTECODE_SUFFIXES, BYTECODE_SUFFIXES, and EXTENSION_SUFFIXES. This
- led to an indirect deprecation of inspect.getmoduleinfo().
-
-- Issue #14662: Prevent shutil failures on OS X when destination does not
- support chflag operations. Patch by Hynek Schlawack.
-
-- Issue #14157: Fix time.strptime failing without a year on February 29th.
- Patch by Hynek Schlawack.
-
-- Issue #14753: Make multiprocessing's handling of negative timeouts
- the same as it was in Python 3.2.
-
-- Issue #14583: Fix importlib bug when a package's __init__.py would first
- import one of its modules then raise an error.
-
-- Issue #14741: Fix missing support for Ellipsis ('...') in parser module.
-
-- Issue #14697: Fix missing support for set displays and set comprehensions in
- parser module.
-
-- Issue #14701: Fix missing support for 'raise ... from' in parser module.
-
-- Add support for timeouts to the acquire() methods of
- multiprocessing's lock/semaphore/condition proxies.
-
-- Issue #13989: Add support for text mode to gzip.open().
-
-- Issue #14127: The os.stat() result object now provides three additional
- fields: st_ctime_ns, st_mtime_ns, and st_atime_ns, providing those times as an
- integer with nanosecond resolution. The functions os.utime(), os.lutimes(),
- and os.futimes() now accept a new parameter, ns, which accepts mtime and atime
- as integers with nanosecond resolution.
-
-- Issue #14127 and #10148: shutil.copystat now preserves exact mtime and atime
- on filesystems providing nanosecond resolution.
-
-IDLE
-----
-
-- Issue #14958: Change IDLE systax highlighting to recognize all string and
- byte literals supported in Python 3.3.
-
-- Issue #10997: Prevent a duplicate entry in IDLE's "Recent Files" menu.
-
-- Issue #14929: Stop IDLE 3.x from closing on Unicode decode errors when
- grepping. Patch by Roger Serwy.
-
-- Issue #12510: Attempting to get invalid tooltip no longer closes IDLE.
- Other tooltipss have been corrected or improved and the number of tests
- has been tripled. Original patch by Roger Serwy.
-
-Tools/Demos
------------
-
-- Issue #14695: Bring Tools/parser/unparse.py support up to date with
- the Python 3.3 Grammar.
-
-Build
------
-
-- Issue #14472: Update .gitignore. Patch by Matej Cepl.
-
-- Upgrade Windows library versions: bzip 1.0.6, OpenSSL 1.0.1c.
-
-- Issue #14693: Under non-Windows platforms, hashlib's fallback modules are
- always compiled, even if OpenSSL is present at build time.
-
-- Issue #13210: Windows build now uses VS2010, ported from VS2008.
-
-C-API
------
-
-- Issue #14705: The PyArg_Parse() family of functions now support the 'p' format
- unit, which accepts a "boolean predicate" argument. It converts any Python
- value into an integer--0 if it is "false", and 1 otherwise.
-
-Documentation
--------------
-
-- Issue #14863: Update the documentation of os.fdopen() to reflect the
- fact that it's only a thin wrapper around open() anymore.
-
-- Issue #14588: The language reference now accurately documents the Python 3
- class definition process. Patch by Nick Coghlan.
-
-- Issue #14943: Correct a default argument value for winreg.OpenKey
- and correctly list the argument names in the function's explanation.
-
-
-What's New in Python 3.3.0 Alpha 3?
-===================================
-
-*Release date: 01-May-2012*
-
-Core and Builtins
------------------
-
-- Issue #14699: Fix calling the classmethod descriptor directly.
-
-- Issue #14433: Prevent msvcrt crash in interactive prompt when stdin is closed.
-
-- Issue #14521: Make result of float('nan') and float('-nan') more consistent
- across platforms.
-
-- Issue #14646: __import__() sets __loader__ if the loader did not.
-
-- Issue #14605: No longer have implicit entries in sys.meta_path. If
- sys.meta_path is found to be empty, raise ImportWarning.
-
-- Issue #14605: No longer have implicit entries in sys.path_hooks. If
- sys.path_hooks is found to be empty, a warning will be raised. None is now
- inserted into sys.path_importer_cache if no finder was discovered. This also
- means imp.NullImporter is no longer implicitly used.
-
-- Issue #13903: Implement PEP 412. Individual dictionary instances can now share
- their keys with other dictionaries. Classes take advantage of this to share
- their instance dictionary keys for improved memory and performance.
-
-- Issue #11603 (again): Setting __repr__ to __str__ now raises a RuntimeError
- when repr() or str() is called on such an object.
-
-- Issue #14658: Fix binding a special method to a builtin implementation of a
- special method with a different name.
-
-- Issue #14630: Fix a memory access bug for instances of a subclass of int
- with value 0.
-
-- Issue #14339: Speed improvements to bin, oct and hex functions. Patch by
- Serhiy Storchaka.
-
-- Issue #14385: It is now possible to use a custom type for the __builtins__
- namespace, instead of a dict. It can be used for sandboxing for example.
- Raise also a NameError instead of ImportError if __build_class__ name if not
- found in __builtins__.
-
-- Issue #12599: Be more strict in accepting None compared to a false-like
- object for importlib.util.module_for_loader and
- importlib.machinery.PathFinder.
-
-- Issue #14612: Fix jumping around with blocks by setting f_lineno.
-
-- Issue #14592: Attempting a relative import w/o __package__ or __name__ set in
- globals raises a KeyError.
-
-- Issue #14607: Fix keyword-only arguments which started with ``__``.
-
-- Issue #10854: The ImportError raised when an extension module on Windows
- fails to import now uses the new path and name attributes from
- Issue #1559549.
-
-- Issue #13889: Check and (if necessary) set FPU control word before calling
- any of the dtoa.c string <-> float conversion functions, on MSVC builds of
- Python. This fixes issues when embedding Python in a Delphi app.
-
-- __import__() now matches PEP 328 and documentation by defaulting 'index' to 0
- instead of -1 and removing support for negative values.
-
-- Issue #2377: Make importlib the implementation of __import__().
-
-- Issue #1559549: ImportError now has 'name' and 'path' attributes that are set
- using keyword arguments to its constructor. They are currently not set by
- import as they are meant for use by importlib.
-
-- Issue #14474: Save and restore exception state in thread.start_new_thread()
- while writing error message if the thread leaves a unhandled exception.
-
-- Issue #13019: Fix potential reference leaks in bytearray.extend(). Patch
- by Suman Saha.
-
-Library
--------
-
-- Issue #14768: os.path.expanduser('~/a') doesn't works correctly when HOME is '/'.
-
-- Issue #14371: Support bzip2 in zipfile module. Patch by Serhiy Storchaka.
-
-- Issue #13183: Fix pdb skipping frames after hitting a breakpoint and running
- step. Patch by Xavier de Gaye.
-
-- Issue #14696: Fix parser module to understand 'nonlocal' declarations.
-
-- Issue #10941: Fix imaplib.Internaldate2tuple to produce correct result near
- the DST transition. Patch by Joe Peterson.
-
-- Issue #9154: Fix parser module to understand function annotations.
-
-- Issue #6085: In http.server.py SimpleHTTPServer.address_string returns the
- client ip address instead client hostname. Patch by Charles-François Natali.
-
-- Issue #14309: Deprecate time.clock(), use time.perf_counter() or
- time.process_time() instead.
-
-- Issue #14428: Implement the PEP 418. Add time.get_clock_info(),
- time.perf_counter() and time.process_time() functions, and rename
- time.steady() to time.monotonic().
-
-- Issue #14646: importlib.util.module_for_loader() now sets __loader__ and
- __package__ (when possible).
-
-- Issue #14664: It is now possible to use @unittest.skip{If,Unless} on a
- test class that doesn't inherit from TestCase (i.e. a mixin).
-
-- Issue #4892: multiprocessing Connections can now be transferred over
- multiprocessing Connections. Patch by Richard Oudkerk (sbt).
-
-- Issue #14160: TarFile.extractfile() failed to resolve symbolic links when
- the links were not located in an archive subdirectory.
-
-- Issue #14638: pydoc now treats non-string __name__ values as if they
- were missing, instead of raising an error.
-
-- Issue #13684: Fix httplib tunnel issue of infinite loops for certain sites
- which send EOF without trailing \r\n.
-
-- Issue #14605: Add importlib.abc.FileLoader, importlib.machinery.(FileFinder,
- SourceFileLoader, SourcelessFileLoader, ExtensionFileLoader).
-
-- Issue #13959: imp.cache_from_source()/source_from_cache() now follow
- os.path.join()/split() semantics for path manipulation instead of its prior,
- custom semantics of caring the right-most path separator forward in path
- joining.
-
-- Issue #2193: Allow ":" character in Cookie NAME values.
-
-- Issue #14629: tokenizer.detect_encoding will specify the filename in the
- SyntaxError exception if found at readline.__self__.name.
-
-- Issue #14629: Raise SyntaxError in tokenizer.detect_encoding if the
- first two lines have non-UTF-8 characters without an encoding declaration.
-
-- Issue #14308: Fix an exception when a "dummy" thread is in the threading
- module's active list after a fork().
-
-- Issue #11750: The Windows API functions scattered in the _subprocess and
- _multiprocessing.win32 modules now live in a single module "_winapi".
- Patch by sbt.
-
-- Issue #14087: multiprocessing: add Condition.wait_for(). Patch by sbt.
-
-- Issue #14538: HTMLParser can now parse correctly start tags that contain
- a bare '/'.
-
-- Issue #14452: SysLogHandler no longer inserts a UTF-8 BOM into the message.
-
-- Issue #14386: Expose the dict_proxy internal type as types.MappingProxyType.
-
-- Issue #13959: Make imp.reload() always use a module's __loader__ to perform
- the reload.
-
-- Issue #13959: Add imp.py and rename the built-in module to _imp, allowing for
- re-implementing parts of the module in pure Python.
-
-- Issue #13496: Fix potential overflow in bisect.bisect algorithm when applied
- to a collection of size > sys.maxsize / 2.
-
-- Have importlib take advantage of ImportError's new 'name' and 'path'
- attributes.
-
-- Issue #14399: zipfile now recognizes that the archive has been modified even
- if only the comment is changed. In addition, the TypeError that results from
- trying to set a non-binary value as a comment is now raised at the time
- the comment is set rather than at the time the zipfile is written.
-
-- trace.CoverageResults.is_ignored_filename() now ignores any name that starts
- with "<" and ends with ">" instead of special-casing "<string>" and
- "<doctest ".
-
-- Issue #12537: The mailbox module no longer depends on knowledge of internal
- implementation details of the email package Message object.
-
-- Issue #7978: socketserver now restarts the select() call when EINTR is
- returned. This avoids crashing the server loop when a signal is received.
- Patch by Jerzy Kozera.
-
-- Issue #14522: Avoid duplicating socket handles in multiprocessing.connection.
- Patch by sbt.
-
-- Don't Py_DECREF NULL variable in io.IncrementalNewlineDecoder.
-
-- Issue #3033: Add displayof parameter to tkinter font. Patch by Guilherme Polo.
-
-- Issue #14482: Raise a ValueError, not a NameError, when trying to create
- a multiprocessing Client or Listener with an AF_UNIX type address under
- Windows. Patch by Popa Claudiu.
-
-- Issue #802310: Generate always unique tkinter font names if not directly passed.
-
-- Issue #14151: Raise a ValueError, not a NameError, when trying to create
- a multiprocessing Client or Listener with an AF_PIPE type address under
- non-Windows platforms. Patch by Popa Claudiu.
-
-- Issue #14493: Use gvfs-open or xdg-open in webbrowser.
-
-Build
------
-
-- "make touch" will now touch generated files that are checked into Mercurial,
- after a "hg update" which failed to bring the timestamps into the right order.
-
-Tests
------
-
-- Issue #14026: In test_cmd_line_script, check that sys.argv is populated
- correctly for the various invocation approaches (Patch by Jason Yeo)
-
-- Issue #14032: Fix incorrect variable name in test_cmd_line_script debugging
- message (Patch by Jason Yeo)
-
-- Issue #14589: Update certificate chain for sha256.tbs-internet.com, fixing
- a test failure in test_ssl.
-
-- Issue #14355: Regrtest now supports the standard unittest test loading, and
- will use it if a test file contains no `test_main` method.
-
-IDLE
-----
-
-- Issue #8515: Set __file__ when run file in IDLE.
- Initial patch by Bruce Frederiksen.
-
-- Issue #14496: Fix wrong name in idlelib/tabbedpages.py.
- Patch by Popa Claudiu.
-
-Tools / Demos
--------------
-
-- Issue #3561: The Windows installer now has an option, off by default, for
- placing the Python installation into the system "Path" environment variable.
-
-- Issue #13165: stringbench is now available in the Tools/stringbench folder.
- It used to live in its own SVN project.
-
-C-API
------
-
-- Issue #14098: New functions PyErr_GetExcInfo and PyErr_SetExcInfo.
- Patch by Stefan Behnel.
-
-
-What's New in Python 3.3.0 Alpha 2?
-===================================
-
-*Release date: 01-Apr-2012*
-
-Core and Builtins
------------------
-
-- Issue #1683368: object.__new__ and object.__init__ raise a TypeError if they
- are passed arguments and their complementary method is not overridden.
-
-- Issue #14378: Fix compiling ast.ImportFrom nodes with a "__future__" string as
- the module name that was not interned.
-
-- Issue #14331: Use significantly less stack space when importing modules by
- allocating path buffers on the heap instead of the stack.
-
-- Issue #14334: Prevent in a segfault in type.__getattribute__ when it was not
- passed strings.
-
-- Issue #1469629: Allow cycles through an object's __dict__ slot to be
- collected. (For example if ``x.__dict__ is x``).
-
-- Issue #14205: dict lookup raises a RuntimeError if the dict is modified
- during a lookup.
-
-- Issue #14220: When a generator is delegating to another iterator with the
- yield from syntax, it needs to have its ``gi_running`` flag set to True.
-
-- Issue #14435: Remove dedicated block allocator from floatobject.c and rely
- on the PyObject_Malloc() api like all other objects.
-
-- Issue #14471: Fix a possible buffer overrun in the winreg module.
-
-- Issue #14288: Allow the serialization of builtin iterators
-
-Library
--------
-
-- Issue #14300: Under Windows, sockets created using socket.dup() now allow
- overlapped I/O. Patch by sbt.
-
-- Issue #13872: socket.detach() now marks the socket closed (as mirrored
- in the socket repr()). Patch by Matt Joiner.
-
-- Issue #14406: Fix a race condition when using ``concurrent.futures.wait(
- return_when=ALL_COMPLETED)``. Patch by Matt Joiner.
-
-- Issue #5136: deprecate old, unused functions from tkinter.
-
-- Issue #14416: syslog now defines the LOG_ODELAY and LOG_AUTHPRIV constants
- if they are defined in <syslog.h>.
-
-- Issue #14295: Add unittest.mock
-
-- Issue #7652: Add --with-system-libmpdec option to configure for linking
- the _decimal module against an installed libmpdec.
-
-- Issue #14380: MIMEText now defaults to utf-8 when passed non-ASCII unicode
- with no charset specified.
-
-- Issue #10340: asyncore - properly handle EINVAL in dispatcher constructor on
- OSX; avoid to call handle_connect in case of a disconnected socket which
- was not meant to connect.
-
-- Issue #14204: The ssl module now has support for the Next Protocol
- Negotiation extension, if available in the underlying OpenSSL library.
- Patch by Colin Marc.
-
-- Issue #3035: Unused functions from tkinter are marked as pending deprecated.
-
-- Issue #12757: Fix the skipping of doctests when python is run with -OO so
- that it works in unittest's verbose mode as well as non-verbose mode.
-
-- Issue #7652: Integrate the decimal floating point libmpdec library to speed
- up the decimal module. Performance gains of the new C implementation are
- between 10x and 100x, depending on the application.
-
-- Issue #14269: SMTPD now conforms to the RFC and requires a HELO command
- before MAIL, RCPT, or DATA.
-
-- Issue #13694: asynchronous connect in asyncore.dispatcher does not set addr
- attribute.
-
-- Issue #14344: fixed the repr of email.policy objects.
-
-- Issue #11686: Added missing entries to email package __all__ lists
- (mostly the new Bytes classes).
-
-- Issue #14335: multiprocessing's custom Pickler subclass now inherits from
- the C-accelerated implementation. Patch by sbt.
-
-- Issue #10484: Fix the CGIHTTPServer's PATH_INFO handling problem.
-
-- Issue #11199: Fix the with urllib which hangs on particular ftp urls.
-
-- Improve the memory utilization and speed of functools.lru_cache.
-
-- Issue #14222: Use the new time.steady() function instead of time.time() for
- timeout in queue and threading modules to not be affected of system time
- update.
-
-- Issue #13248: Remove lib2to3.pytree.Base.get_prefix/set_prefix.
-
-- Issue #14234: CVE-2012-0876: Randomize hashes of xml attributes in the hash
- table internal to the pyexpat module's copy of the expat library to avoid a
- denial of service due to hash collisions. Patch by David Malcolm with some
- modifications by the expat project.
-
-- Issue #12818: format address no longer needlessly \ escapes ()s in names when
- the name ends up being quoted.
-
-- Issue #14062: BytesGenerator now correctly folds Header objects,
- including using linesep when folding.
-
-- Issue #13839: When invoked on the command-line, the pstats module now
- accepts several filenames of profile stat files and merges them all.
- Patch by Matt Joiner.
-
-- Issue #14291: Email now defaults to utf-8 for non-ASCII unicode headers
- instead of raising an error. This fixes a regression relative to 2.7.
-
-- Issue #989712: Support using Tk without a mainloop.
-
-- Issue #3835: Refuse to use unthreaded Tcl in threaded Python.
-
-- Issue #2843: Add new Tk API to Tkinter.
-
-- Issue #14184: Increase the default stack size for secondary threads on
- Mac OS X to avoid interpreter crashes when using threads on 10.7.
-
-- Issue #14180: datetime.date.fromtimestamp(),
- datetime.datetime.fromtimestamp() and datetime.datetime.utcfromtimestamp()
- now raise an OSError instead of ValueError if localtime() or gmtime() failed.
-
-- Issue #14180: time.ctime(), gmtime(), time.localtime(),
- datetime.date.fromtimestamp(), datetime.datetime.fromtimestamp() and
- datetime.datetime.utcfromtimestamp() now raises an OverflowError, instead of
- a ValueError, if the timestamp does not fit in time_t.
-
-- Issue #14180: datetime.datetime.fromtimestamp() and
- datetime.datetime.utcfromtimestamp() now round microseconds towards zero
- instead of rounding to nearest with ties going away from zero.
-
-- Issue #10543: Fix unittest test discovery with Jython bytecode files.
-
-- Issue #1178863: Separate initialisation from setting when initializing
- Tkinter.Variables; harmonize exceptions to ValueError; only delete variables
- that have not been deleted; assert that variable names are strings.
-
-- Issue #14104: Implement time.monotonic() on Mac OS X, patch written by
- Nicholas Riley.
-
-- Issue #13394: the aifc module now uses warnings.warn() to signal warnings.
-
-- Issue #14252: Fix subprocess.Popen.terminate() to not raise an error under
- Windows when the child process has already exited.
-
-- Issue #14223: curses.addch() is no more limited to the range 0-255 when the
- Python curses is not linked to libncursesw. It was a regression introduced
- in Python 3.3a1.
-
-- Issue #14168: Check for presence of Element._attrs in minidom before
- accessing it.
-
-- Issue #12328: Fix multiprocessing's use of overlapped I/O on Windows.
- Also, add a multiprocessing.connection.wait(rlist, timeout=None) function
- for polling multiple objects at once. Patch by sbt.
-
-- Issue #14007: Accept incomplete TreeBuilder objects (missing start, end,
- data or close method) for the Python implementation as well.
- Drop the no-op TreeBuilder().xml() method from the C implementation.
-
-- Issue #14210: pdb now has tab-completion not only for command names, but
- also for their arguments, wherever possible.
-
-- Issue #14310: Sockets can now be with other processes on Windows using
- the api socket.socket.share() and socket.fromshare().
-
-- Issue #10576: The gc module now has a 'callbacks' member that will get
- called when garbage collection takes place.
-
-Build
------
-
-- Issue #14557: Fix extensions build on HP-UX. Patch by Adi Roiban.
-
-- Issue #14387: Do not include accu.h from Python.h.
-
-- Issue #14359: Only use O_CLOEXEC in _posixmodule.c if it is defined.
- Based on patch from Hervé Coatanhay.
-
-- Issue #14321: Do not run pgen during the build if files are up to date.
-
-Documentation
--------------
-
-- Issue #14034: added the argparse tutorial.
-
-- Issue #14324: Fix configure tests for cross builds.
-
-- Issue #14327: Call AC_CANONICAL_HOST in configure.ac and check in
- config.{guess,sub}. Don't use uname calls for cross builds.
-
-Extension Modules
------------------
-
-- Issue #9041: An issue in ctypes.c_longdouble, ctypes.c_double, and
- ctypes.c_float that caused an incorrect exception to be returned in the
- case of overflow has been fixed.
-
-- Issue #14212: The re module didn't retain a reference to buffers it was
- scanning, resulting in segfaults.
-
-- Issue #14259: The finditer() method of re objects did not take any
- keyword arguments, contrary to the documentation.
-
-- Issue #10142: Support for SEEK_HOLE/SEEK_DATA (for example, under ZFS).
-
-Tests
------
-
-- Issue #14442: Add missing errno import in test_smtplib.
-
-- Issue #8315: (partial fix) python -m unittest test.test_email now works.
-
-
-What's New in Python 3.3.0 Alpha 1?
-===================================
-
-*Release date: 05-Mar-2012*
-
-Core and Builtins
------------------
-
-- Issue #14172: Fix reference leak when marshalling a buffer-like object
- (other than a bytes object).
-
-- Issue #13521: dict.setdefault() now does only one lookup for the given key,
- making it "atomic" for many purposes. Patch by Filip Gruszczyński.
-
-- PEP 409, Issue #6210: "raise X from None" is now supported as a means of
- suppressing the display of the chained exception context. The chained
- context still remains available as the __context__ attribute.
-
-- Issue #10181: New memoryview implementation fixes multiple ownership
- and lifetime issues of dynamically allocated Py_buffer members (#9990)
- as well as crashes (#8305, #7433). Many new features have been added
- (See whatsnew/3.3), and the documentation has been updated extensively.
- The ndarray test object from _testbuffer.c implements all aspects of
- PEP-3118, so further development towards the complete implementation
- of the PEP can proceed in a test-driven manner.
-
- Thanks to Nick Coghlan, Antoine Pitrou and Pauli Virtanen for review
- and many ideas.
-
-- Issue #12834: Fix incorrect results of memoryview.tobytes() for
- non-contiguous arrays.
-
-- Issue #5231: Introduce memoryview.cast() method that allows changing
- format and shape without making a copy of the underlying memory.
-
-- Issue #14084: Fix a file descriptor leak when importing a module with a
- bad encoding.
-
-- Upgrade Unicode data to Unicode 6.1.
-
-- Issue #14040: Remove rarely used file name suffixes for C extensions
- (under POSIX mainly).
-
-- Issue #14051: Allow arbitrary attributes to be set of classmethod and
- staticmethod.
-
-- Issue #13703: oCERT-2011-003: Randomize hashes of str and bytes to protect
- against denial of service attacks due to hash collisions within the dict and
- set types. Patch by David Malcolm, based on work by Victor Stinner.
-
-- Issue #13020: Fix a reference leak when allocating a structsequence object
- fails. Patch by Suman Saha.
-
-- Issue #13908: Ready types returned from PyType_FromSpec.
-
-- Issue #11235: Fix OverflowError when trying to import a source file whose
- modification time doesn't fit in a 32-bit timestamp.
-
-- Issue #12705: A SyntaxError exception is now raised when attempting to
- compile multiple statements as a single interactive statement.
-
-- Fix the builtin module initialization code to store the init function for
- future reinitialization.
-
-- Issue #8052: The posix subprocess module would take a long time closing
- all possible file descriptors in the child process rather than just open
- file descriptors. It now closes only the open fds if possible for the
- default close_fds=True behavior.
-
-- Issue #13629: Renumber the tokens in token.h so that they match the indexes
- into _PyParser_TokenNames.
-
-- Issue #13752: Add a casefold() method to str.
-
-- Issue #13761: Add a "flush" keyword argument to the print() function,
- used to ensure flushing the output stream.
-
-- Issue #13645: pyc files now contain the size of the corresponding source
- code, to avoid timestamp collisions (especially on filesystems with a low
- timestamp resolution) when checking for freshness of the bytecode.
-
-- PEP 380, Issue #11682: Add "yield from <x>" to support easy delegation to
- subgenerators (initial patch by Greg Ewing, integration into 3.3 by
- Renaud Blanch, Ryan Kelly, Zbigniew Jędrzejewski-Szmek and Nick Coghlan)
-
-- Issue #13748: Raw bytes literals can now be written with the ``rb`` prefix
- as well as ``br``.
-
-- Issue #12736: Use full unicode case mappings for upper, lower, and title case.
-
-- Issue #12760: Add a create mode to open(). Patch by David Townshend.
-
-- Issue #13738: Simplify implementation of bytes.lower() and bytes.upper().
-
-- Issue #13577: Built-in methods and functions now have a __qualname__.
- Patch by sbt.
-
-- Issue #6695: Full garbage collection runs now clear the freelist of set
- objects. Initial patch by Matthias Troffaes.
-
-- Fix OSError.__init__ and OSError.__new__ so that each of them can be
- overriden and take additional arguments (followup to issue #12555).
-
-- Fix the fix for issue #12149: it was incorrect, although it had the side
- effect of appearing to resolve the issue. Thanks to Mark Shannon for
- noticing.
-
-- Issue #13505: Pickle bytes objects in a way that is compatible with
- Python 2 when using protocols <= 2.
-
-- Issue #11147: Fix an unused argument in _Py_ANNOTATE_MEMORY_ORDER. (Fix
- given by Campbell Barton).
-
-- Issue #13503: Use a more efficient reduction format for bytearrays with
- pickle protocol >= 3. The old reduction format is kept with older protocols
- in order to allow unpickling under Python 2. Patch by Irmen de Jong.
-
-- Issue #7111: Python can now be run without a stdin, stdout or stderr
- stream. It was already the case with Python 2. However, the corresponding
- sys module entries are now set to None (instead of an unusable file object).
-
-- Issue #11849: Ensure that free()d memory arenas are really released
- on POSIX systems supporting anonymous memory mappings. Patch by
- Charles-François Natali.
-
-- PEP 3155 / issue #13448: Qualified name for classes and functions.
-
-- Issue #13436: Fix a bogus error message when an AST object was passed
- an invalid integer value.
-
-- Issue #13411: memoryview objects are now hashable when the underlying
- object is hashable.
-
-- Issue #13338: Handle all enumerations in _Py_ANNOTATE_MEMORY_ORDER
- to allow compiling extension modules with -Wswitch-enum on gcc.
- Initial patch by Floris Bruynooghe.
-
-- Issue #10227: Add an allocation cache for a single slice object. Patch by
- Stefan Behnel.
-
-- Issue #13393: BufferedReader.read1() now asks the full requested size to
- the raw stream instead of limiting itself to the buffer size.
-
-- Issue #13392: Writing a pyc file should now be atomic under Windows as well.
-
-- Issue #13333: The UTF-7 decoder now accepts lone surrogates (the encoder
- already accepts them).
-
-- Issue #13389: Full garbage collection passes now clear the freelists for
- list and dict objects. They already cleared other freelists in the
- interpreter.
-
-- Issue #13327: Remove the need for an explicit None as the second argument
- to os.utime, os.lutimes, os.futimes, os.futimens, os.futimesat, in
- order to update to the current time. Also added keyword argument
- handling to os.utimensat in order to remove the need for explicit None.
-
-- Issue #13350: Simplify some C code by replacing most usages of
- PyUnicode_Format by PyUnicode_FromFormat.
-
-- Issue #13342: input() used to ignore sys.stdin's and sys.stdout's unicode
- error handler in interactive mode (when calling into PyOS_Readline()).
-
-- Issue #9896: Add start, stop, and step attributes to range objects.
-
-- Issue #13343: Fix a SystemError when a lambda expression uses a global
- variable in the default value of a keyword-only argument: ``lambda *,
- arg=GLOBAL_NAME: None``
-
-- Issue #12797: Added custom opener parameter to builtin open() and
- FileIO.open().
-
-- Issue #10519: Avoid unnecessary recursive function calls in
- setobject.c.
-
-- Issue #10363: Deallocate global locks in Py_Finalize().
-
-- Issue #13018: Fix reference leaks in error paths in dictobject.c.
- Patch by Suman Saha.
-
-- Issue #13201: Define '==' and '!=' to compare range objects based on
- the sequence of values they define (instead of comparing based on
- object identity).
-
-- Issue #1294232: In a few cases involving metaclass inheritance, the
- interpreter would sometimes invoke the wrong metaclass when building a new
- class object. These cases now behave correctly. Patch by Daniel Urban.
-
-- Issue #12753: Add support for Unicode name aliases and named sequences.
- Both ``unicodedata.lookup()`` and '\N{...}' now resolve aliases,
- and ``unicodedata.lookup()`` resolves named sequences too.
-
-- Issue #12170: The count(), find(), rfind(), index() and rindex() methods
- of bytes and bytearray objects now accept an integer between 0 and 255
- as their first argument. Patch by Petri Lehtinen.
-
-- Issue #12604: VTRACE macro expanded to no-op in _sre.c to avoid compiler
- warnings. Patch by Josh Triplett and Petri Lehtinen.
-
-- Issue #12281: Rewrite the MBCS codec to handle correctly replace and ignore
- error handlers on all Windows versions. The MBCS codec is now supporting all
- error handlers, instead of only replace to encode and ignore to decode.
-
-- Issue #13188: When called without an explicit traceback argument,
- generator.throw() now gets the traceback from the passed exception's
- ``__traceback__`` attribute. Patch by Petri Lehtinen.
-
-- Issue #13146: Writing a pyc file is now atomic under POSIX.
-
-- Issue #7833: Extension modules built using distutils on Windows will no
- longer include a "manifest" to prevent them failing at import time in some
- embedded situations.
-
-- PEP 3151 / issue #12555: reworking the OS and IO exception hierarchy.
-
-- Add internal API for static strings (_Py_identifier et al.).
-
-- Issue #13063: the Windows error ERROR_NO_DATA (numbered 232 and described
- as "The pipe is being closed") is now mapped to POSIX errno EPIPE
- (previously EINVAL).
-
-- Issue #12911: Fix memory consumption when calculating the repr() of huge
- tuples or lists.
-
-- PEP 393: flexible string representation. Thanks to Torsten Becker for the
- initial implementation, and Victor Stinner for various bug fixes.
-
-- Issue #14081: The 'sep' and 'maxsplit' parameter to str.split, bytes.split,
- and bytearray.split may now be passed as keyword arguments.
-
-- Issue #13012: The 'keepends' parameter to str.splitlines may now be passed
- as a keyword argument: "my_string.splitlines(keepends=True)". The same
- change also applies to bytes.splitlines and bytearray.splitlines.
-
-- Issue #7732: Don't open a directory as a file anymore while importing a
- module. Ignore the direcotry if its name matchs the module name (e.g.
- "__init__.py") and raise a ImportError instead.
-
-- Issue #13021: Missing decref on an error path. Thanks to Suman Saha for
- finding the bug and providing a patch.
-
-- Issue #12973: Fix overflow checks that relied on undefined behaviour in
- list_repeat (listobject.c) and islice_next (itertoolsmodule.c). These bugs
- caused test failures with recent versions of Clang.
-
-- Issue #12904: os.utime, os.futimes, os.lutimes, and os.futimesat now write
- atime and mtime with nanosecond precision on modern POSIX platforms.
-
-- Issue #12802: the Windows error ERROR_DIRECTORY (numbered 267) is now
- mapped to POSIX errno ENOTDIR (previously EINVAL).
-
-- Issue #9200: The str.is* methods now work with strings that contain non-BMP
- characters even in narrow Unicode builds.
-
-- Issue #12791: Break reference cycles early when a generator exits with
- an exception.
-
-- Issue #12773: Make __doc__ mutable on user-defined classes.
-
-- Issue #12766: Raise a ValueError when creating a class with a class variable
- that conflicts with a name in __slots__.
-
-- Issue #12266: Fix str.capitalize() to correctly uppercase/lowercase
- titlecased and cased non-letter characters.
-
-- Issue #12732: In narrow unicode builds, allow Unicode identifiers which fall
- outside the BMP.
-
-- Issue #12575: Validate user-generated AST before it is compiled.
-
-- Make type(None), type(Ellipsis), and type(NotImplemented) callable. They
- return the respective singleton instances.
-
-- Forbid summing bytes with sum().
-
-- Verify the types of AST strings and identifiers provided by the user before
- compiling them.
-
-- Issue #12647: The None object now has a __bool__() method that returns False.
- Formerly, bool(None) returned False only because of special case logic
- in PyObject_IsTrue().
-
-- Issue #12579: str.format_map() now raises a ValueError if used on a
- format string that contains positional fields. Initial patch by
- Julian Berman.
-
-- Issue #10271: Allow warnings.showwarning() be any callable.
-
-- Issue #11627: Fix segfault when __new__ on a exception returns a
- non-exception class.
-
-- Issue #12149: Update the method cache after a type's dictionary gets
- cleared by the garbage collector. This fixes a segfault when an instance
- and its type get caught in a reference cycle, and the instance's
- deallocator calls one of the methods on the type (e.g. when subclassing
- IOBase). Diagnosis and patch by Davide Rizzo.
-
-- Issue #9611, Issue #9015: FileIO.read() clamps the length to INT_MAX on Windows.
-
-- Issue #9642: Uniformize the tests on the availability of the mbcs codec, add
- a new HAVE_MBCS define.
-
-- Issue #9642: Fix filesystem encoding initialization: use the ANSI code page
- on Windows if the mbcs codec is not available, and fail with a fatal error if
- we cannot get the locale encoding (if nl_langinfo(CODESET) is not available)
- instead of using UTF-8.
-
-- When a generator yields, do not retain the caller's exception state on the
- generator.
-
-- Issue #12475: Prevent generators from leaking their exception state into the
- caller's frame as they return for the last time.
-
-- Issue #12291: You can now load multiple marshalled objects from a stream,
- with other data interleaved between marshalled objects.
-
-- Issue #12356: When required positional or keyword-only arguments are not
- given, produce a informative error message which includes the name(s) of the
- missing arguments.
-
-- Issue #12370: Fix super with no arguments when __class__ is overriden in the
- class body.
-
-- Issue #12084: os.stat on Windows now works properly with relative symbolic
- links when called from any directory.
-
-- Loosen type restrictions on the __dir__ method. __dir__ can now return any
- sequence, which will be converted to a list and sorted by dir().
-
-- Issue #12265: Make error messages produced by passing an invalid set of
- arguments to a function more informative.
-
-- Issue #12225: Still allow Python to build if Python is not in its hg repo or
- mercurial is not installed.
-
-- Issue #1195: my_fgets() now always clears errors before calling fgets(). Fix
- the following case: sys.stdin.read() stopped with CTRL+d (end of file),
- raw_input() interrupted by CTRL+c.
-
-- Issue #12216: Allow unexpected EOF errors to happen on any line of the file.
-
-- Issue #12199: The TryExcept and TryFinally and AST nodes have been unified
- into a Try node.
-
-- Issue #9670: Increase the default stack size for secondary threads on
- Mac OS X and FreeBSD to reduce the chances of a crash instead of a
- "maximum recursion depth" RuntimeError exception.
- (patch by Ronald Oussoren)
-
-- Issue #12106: The use of the multiple-with shorthand syntax is now reflected
- in the AST.
-
-- Issue #12190: Try to use the same filename object when compiling unmarshalling
- a code objects in the same file.
-
-- Issue #12166: Move implementations of dir() specialized for various types into
- the __dir__() methods of those types.
-
-- Issue #5715: In socketserver, close the server socket in the child process.
-
-- Correct lookup of __dir__ on objects. Among other things, this causes errors
- besides AttributeError found on lookup to be propagated.
-
-- Issue #12060: Use sig_atomic_t type and volatile keyword in the signal
- module. Patch written by Charles-François Natali.
-
-- Issue #1746656: Added the if_nameindex, if_indextoname, if_nametoindex
- methods to the socket module.
-
-- Issue #12044: Fixed subprocess.Popen when used as a context manager to
- wait for the process to end when exiting the context to avoid unintentionally
- leaving zombie processes around.
-
-- Issue #1195: Fix input() if it is interrupted by CTRL+d and then CTRL+c,
- clear the end-of-file indicator after CTRL+d.
-
-- Issue #1856: Avoid crashes and lockups when daemon threads run while the
- interpreter is shutting down; instead, these threads are now killed when
- they try to take the GIL.
-
-- Issue #9756: When calling a method descriptor or a slot wrapper descriptor,
- the check of the object type doesn't read the __class__ attribute anymore.
- Fix a crash if a class override its __class__ attribute (e.g. a proxy of the
- str type). Patch written by Andreas Stührk.
-
-- Issue #10517: After fork(), reinitialize the TLS used by the PyGILState_*
- APIs, to avoid a crash with the pthread implementation in RHEL 5. Patch
- by Charles-François Natali.
-
-- Issue #10914: Initialize correctly the filesystem codec when creating a new
- subinterpreter to fix a bootstrap issue with codecs implemented in Python, as
- the ISO-8859-15 codec.
-
-- Issue #11918: OS/2 and VMS are no more supported because of the lack of
- maintainer.
-
-- Issue #6780: fix starts/endswith error message to mention that tuples are
- accepted too.
-
-- Issue #5057: fix a bug in the peepholer that led to non-portable pyc files
- between narrow and wide builds while optimizing BINARY_SUBSCR on non-BMP
- chars (e.g. "\U00012345"[0]).
-
-- Issue #11845: Fix typo in rangeobject.c that caused a crash in
- compute_slice_indices. Patch by Daniel Urban.
-
-- Issue #5673: Added a `timeout` keyword argument to subprocess.Popen.wait,
- subprocess.Popen.communicated, subprocess.call, subprocess.check_call, and
- subprocess.check_output. If the blocking operation takes more than `timeout`
- seconds, the `subprocess.TimeoutExpired` exception is raised.
-
-- Issue #11650: PyOS_StdioReadline() retries fgets() if it was interrupted
- (EINTR), for example if the program is stopped with CTRL+z on Mac OS X. Patch
- written by Charles-Francois Natali.
-
-- Issue #9319: Include the filename in "Non-UTF8 code ..." syntax error.
-
-- Issue #10785: Store the filename as Unicode in the Python parser.
-
-- Issue #11619: _PyImport_LoadDynamicModule() doesn't encode the path to bytes
- on Windows.
-
-- Issue #10998: Remove mentions of -Q, sys.flags.division_warning and
- Py_DivisionWarningFlag left over from Python 2.
-
-- Issue #11244: Remove an unnecessary peepholer check that was preventing
- negative zeros from being constant-folded properly.
-
-- Issue #11395: io.FileIO().write() clamps the data length to 32,767 bytes on
- Windows if the file is a TTY to workaround a Windows bug. The Windows console
- returns an error (12: not enough space error) on writing into stdout if
- stdout mode is binary and the length is greater than 66,000 bytes (or less,
- depending on heap usage).
-
-- Issue #11320: fix bogus memory management in Modules/getpath.c, leading to
- a possible crash when calling Py_SetPath().
-
-- Issue #11432: A bug was introduced in subprocess.Popen on posix systems with
- 3.2.0 where the stdout or stderr file descriptor being the same as the stdin
- file descriptor would raise an exception. webbrowser.open would fail. fixed.
-
-- Issue #9856: Change object.__format__ with a non-empty format string
- to be a DeprecationWarning. In 3.2 it was a PendingDeprecationWarning.
- In 3.4 it will be a TypeError.
-
-- Issue #11244: The peephole optimizer is now able to constant-fold
- arbitrarily complex expressions. This also fixes a 3.2 regression where
- operations involving negative numbers were not constant-folded.
-
-- Issue #11450: Don't truncate hg version info in Py_GetBuildInfo() when
- there are many tags (e.g. when using mq). Patch by Nadeem Vawda.
-
-- Issue #11335: Fixed a memory leak in list.sort when the key function
- throws an exception.
-
-- Issue #8923: When a string is encoded to UTF-8 in strict mode, the result is
- cached into the object. Examples: str.encode(), str.encode('utf-8'),
- PyUnicode_AsUTF8String() and PyUnicode_AsEncodedString(unicode, "utf-8",
- NULL).
-
-- Issue #10829: Refactor PyUnicode_FromFormat(), use the same function to parse
- the format string in the 3 steps, fix crashs on invalid format strings.
-
-- Issue #13007: whichdb should recognize gdbm 1.9 magic numbers.
-
-- Issue #11286: Raise a ValueError from calling PyMemoryView_FromBuffer with
- a buffer struct having a NULL data pointer.
-
-- Issue #11272: On Windows, input() strips '\r' (and not only '\n'), and
- sys.stdin uses universal newline (replace '\r\n' by '\n').
-
-- Issue #11828: startswith and endswith now accept None as slice index.
- Patch by Torsten Becker.
-
-- Issue #11168: Remove filename debug variable from PyEval_EvalFrameEx().
- It encoded the Unicode filename to UTF-8, but the encoding fails on
- undecodable filename (on surrogate characters) which raises an unexpected
- UnicodeEncodeError on recursion limit.
-
-- Issue #11187: Remove bootstrap code (use ASCII) of
- PyUnicode_AsEncodedString(), it was replaced by a better fallback (use the
- locale encoding) in PyUnicode_EncodeFSDefault().
-
-- Check for NULL result in PyType_FromSpec.
-
-- Issue #10516: New copy() and clear() methods for lists and bytearrays.
-
-- Issue #11386: bytearray.pop() now throws IndexError when the bytearray is
- empty, instead of OverflowError.
-
-- Issue #12380: The rjust, ljust and center methods of bytes and bytearray
- now accept a bytearray argument.
-
-Library
--------
-
-- Issue #14195: An issue that caused weakref.WeakSet instances to incorrectly
- return True for a WeakSet instance 'a' in both 'a < a' and 'a > a' has been
- fixed.
-
-- Issue #14166: Pickler objects now have an optional ``dispatch_table``
- attribute which allows to set custom per-pickler reduction functions.
- Patch by sbt.
-
-- Issue #14177: marshal.loads() now raises TypeError when given an unicode
- string. Patch by Guilherme Gonçalves.
-
-- Issue #13550: Remove the debug machinery from the threading module: remove
- verbose arguments from all threading classes and functions.
-
-- Issue #14159: Fix the len() of weak containers (WeakSet, WeakKeyDictionary,
- WeakValueDictionary) to return a better approximation when some objects
- are dead or dying. Moreover, the implementation is now O(1) rather than
- O(n).
-
-- Issue #11841: Fix comparison bug with 'rc' versions in packaging.version.
- Patch by Filip Gruszczyński.
-
-- Issue #6884: Fix long-standing bugs with MANIFEST.in parsing in distutils
- on Windows. Also fixed in packaging.
-
-- Issue #8033: sqlite3: Fix 64-bit integer handling in user functions
- on 32-bit architectures. Initial patch by Philippe Devalkeneer.
-
-- HTMLParser is now able to handle slashes in the start tag.
-
-- Issue #13641: Decoding functions in the base64 module now accept ASCII-only
- unicode strings. Patch by Catalin Iacob.
-
-- Issue #14043: Speed up importlib's _FileFinder by at least 8x, and add a
- new importlib.invalidate_caches() function.
-
-- Issue #14001: CVE-2012-0845: xmlrpc: Fix an endless loop in
- SimpleXMLRPCServer upon malformed POST request.
-
-- Issue #13961: Move importlib over to using os.replace() for atomic renaming.
-
-- Do away with ambiguous level values (as suggested by PEP 328) in
- importlib.__import__() by raising ValueError when level < 0.
-
-- Issue #2489: pty.spawn could consume 100% cpu when it encountered an EOF.
-
-- Issue #13014: Fix a possible reference leak in SSLSocket.getpeercert().
-
-- Issue #13777: Add PF_SYSTEM sockets on OS X.
- Patch by Michael Goderbauer.
-
-- Issue #13015: Fix a possible reference leak in defaultdict.__repr__.
- Patch by Suman Saha.
-
-- Issue #1326113: distutils' and packaging's build_ext commands option now
- correctly parses multiple values (separated by whitespace or commas) given
- to their --libraries option.
-
-- Issue #10287: nntplib now queries the server's CAPABILITIES first before
- sending MODE READER, and only sends it if not already in READER mode.
- Patch by Hynek Schlawack.
-
-- Issue #13993: HTMLParser is now able to handle broken end tags when
- strict=False.
-
-- Issue #13930: lib2to3 now supports writing converted output files to another
- directory tree as well as copying unchanged files and altering the file
- suffix.
-
-- Issue #9750: Fix sqlite3.Connection.iterdump on tables and fields
- with a name that is a keyword or contains quotes. Patch by Marko
- Kohtala.
-
-- Issue #10287: nntplib now queries the server's CAPABILITIES again after
- authenticating (since the result may change, according to RFC 4643).
- Patch by Hynek Schlawack.
-
-- Issue #13590: On OS X 10.7 and 10.6 with Xcode 4.2, building
- Distutils-based packages with C extension modules may fail because
- Apple has removed gcc-4.2, the version used to build python.org
- 64-bit/32-bit Pythons. If the user does not explicitly override
- the default C compiler by setting the CC environment variable,
- Distutils will now attempt to compile extension modules with clang
- if gcc-4.2 is required but not found. Also as a convenience, if
- the user does explicitly set CC, substitute its value as the default
- compiler in the Distutils LDSHARED configuration variable for OS X.
- (Note, the python.org 32-bit-only Pythons use gcc-4.0 and the 10.4u
- SDK, neither of which are available in Xcode 4. This change does not
- attempt to override settings to support their use with Xcode 4.)
-
-- Issue #13960: HTMLParser is now able to handle broken comments when
- strict=False.
-
-- When '' is a path (e.g. in sys.path), make sure __file__ uses the current
- working directory instead of '' in importlib.
-
-- Issue #13609: Add two functions to query the terminal size:
- os.get_terminal_size (low level) and shutil.get_terminal_size (high level).
- Patch by Zbigniew Jędrzejewski-Szmek.
-
-- Issue #13845: On Windows, time.time() now uses GetSystemTimeAsFileTime()
- instead of ftime() to have a resolution of 100 ns instead of 1 ms (the clock
- accuracy is between 0.5 ms and 15 ms).
-
-- Issue #13846: Add time.monotonic(), monotonic clock.
-
-- Issue #8184: multiprocessing: On Windows, don't set SO_REUSEADDR on
- Connection sockets, and set FILE_FLAG_FIRST_PIPE_INSTANCE on named pipes, to
- make sure two listeners can't bind to the same socket/pipe (or any existing
- socket/pipe).
-
-- Issue #10811: Fix recursive usage of cursors. Instead of crashing,
- raise a ProgrammingError now.
-
-- Issue #13734: Add os.fwalk(), a directory walking function yielding file
- descriptors.
-
-- Issue #2945: Make the distutils upload command aware of bdist_rpm products.
-
-- Issue #13712: pysetup create should not convert package_data to extra_files.
-
-- Issue #11805: package_data in setup.cfg should allow more than one value.
-
-- Issue #13676: Handle strings with embedded zeros correctly in sqlite3.
-
-- Issue #8828: Add new function os.replace(), for cross-platform renaming
- with overwriting.
-
-- Issue #13848: open() and the FileIO constructor now check for NUL
- characters in the file name. Patch by Hynek Schlawack.
-
-- Issue #13806: The size check in audioop decompression functions was too
- strict and could reject valid compressed data. Patch by Oleg Plakhotnyuk.
-
-- Issue #13812: When a multiprocessing Process child raises an exception,
- flush stderr after printing the exception traceback.
-
-- Issue #13885: CVE-2011-3389: the _ssl module would always disable the CBC
- IV attack countermeasure.
-
-- Issue #13847: time.localtime() and time.gmtime() now raise an OSError instead
- of ValueError on failure. time.ctime() and time.asctime() now raises an
- OSError if localtime() failed. time.clock() now raises a RuntimeError if the
- processor time used is not available or its value cannot be represented
-
-- Issue #13772: In os.symlink() under Windows, do not try to guess the link
- target's type (file or directory). The detection was buggy and made the
- call non-atomic (therefore prone to race conditions).
-
-- Issue #6631: Disallow relative file paths in urllib urlopen methods.
-
-- Issue #13722: Avoid silencing ImportErrors when initializing the codecs
- registry.
-
-- Issue #13781: Fix GzipFile bug that caused an exception to be raised when
- opening for writing using a fileobj returned by os.fdopen().
-
-- Issue #13803: Under Solaris, distutils doesn't include bitness
- in the directory name.
-
-- Issue #10278: Add time.wallclock() function, monotonic clock.
-
-- Issue #13809: Fix regression where bz2 module wouldn't work when threads are
- disabled. Original patch by Amaury Forgeot d'Arc.
-
-- Issue #13589: Fix some serialization primitives in the aifc module.
- Patch by Oleg Plakhotnyuk.
-
-- Issue #13642: Unquote before b64encoding user:password during Basic
- Authentication. Patch contributed by Joonas Kuorilehto.
-
-- Issue #12364: Fix a hang in concurrent.futures.ProcessPoolExecutor.
- The hang would occur when retrieving the result of a scheduled future after
- the executor had been shut down.
-
-- Issue #13502: threading: Fix a race condition in Event.wait() that made it
- return False when the event was set and cleared right after.
-
-- Issue #9993: When the source and destination are on different filesystems,
- and the source is a symlink, shutil.move() now recreates a symlink on the
- destination instead of copying the file contents. Patch by Jonathan Niehof
- and Hynek Schlawack.
-
-- Issue #12926: Fix a bug in tarfile's link extraction.
-
-- Issue #13696: Fix the 302 Relative URL Redirection problem.
-
-- Issue #13636: Weak ciphers are now disabled by default in the ssl module
- (except when SSLv2 is explicitly asked for).
-
-- Issue #12715: Add an optional symlinks argument to shutil functions
- (copyfile, copymode, copystat, copy, copy2). When that parameter is
- true, symlinks aren't dereferenced and the operation instead acts on the
- symlink itself (or creates one, if relevant). Patch by Hynek Schlawack.
-
-- Add a flags parameter to select.epoll.
-
-- Issue #13626: Add support for SSL Diffie-Hellman key exchange, through the
- SSLContext.load_dh_params() method and the ssl.OP_SINGLE_DH_USE option.
-
-- Issue #11006: Don't issue low level warning in subprocess when pipe2() fails.
-
-- Issue #13620: Support for Chrome browser in webbrowser. Patch contributed
- by Arnaud Calmettes.
-
-- Issue #11829: Fix code execution holes in inspect.getattr_static for
- metaclasses with metaclasses. Patch by Andreas Stührk.
-
-- Issue #12708: Add starmap() and starmap_async() methods (similar to
- itertools.starmap()) to multiprocessing.Pool. Patch by Hynek Schlawack.
-
-- Issue #1785: Fix inspect and pydoc with misbehaving descriptors.
-
-- Issue #13637: "a2b" functions in the binascii module now accept ASCII-only
- unicode strings.
-
-- Issue #13634: Add support for querying and disabling SSL compression.
-
-- Issue #13627: Add support for SSL Elliptic Curve-based Diffie-Hellman
- key exchange, through the SSLContext.set_ecdh_curve() method and the
- ssl.OP_SINGLE_ECDH_USE option.
-
-- Issue #13635: Add ssl.OP_CIPHER_SERVER_PREFERENCE, so that SSL servers
- choose the cipher based on their own preferences, rather than on the
- client's.
-
-- Issue #11813: Fix inspect.getattr_static for modules. Patch by Andreas
- Stührk.
-
-- Issue #7502: Fix equality comparison for DocTestCase instances. Patch by
- Cédric Krier.
-
-- Issue #11870: threading: Properly reinitialize threads internal locks and
- condition variables to avoid deadlocks in child processes.
-
-- Issue #8035: urllib: Fix a bug where the client could remain stuck after a
- redirection or an error.
-
-- Issue #13560: os.strerror() now uses the current locale encoding instead of
- UTF-8.
-
-- Issue #8373: The filesystem path of AF_UNIX sockets now uses the filesystem
- encoding and the surrogateescape error handler, rather than UTF-8. Patch
- by David Watson.
-
-- Issue #10350: Read and save errno before calling a function which might
- overwrite it. Original patch by Hallvard B Furuseth.
-
-- Issue #11610: Introduce a more general way to declare abstract properties.
-
-- Issue #13591: A bug in importlib has been fixed that caused import_module
- to load a module twice.
-
-- Issue #13449 sched.scheduler.run() method has a new "blocking" parameter which
- when set to False makes run() execute the scheduled events due to expire
- soonest (if any) and then return. Patch by Giampaolo Rodolà.
-
-- Issue #8684 sched.scheduler class can be safely used in multi-threaded
- environments. Patch by Josiah Carlson and Giampaolo Rodolà.
-
-- Alias resource.error to OSError ala PEP 3151.
-
-- Issue #5689: Add support for lzma compression to the tarfile module.
-
-- Issue #13248: Turn 3.2's PendingDeprecationWarning into 3.3's
- DeprecationWarning. It covers 'cgi.escape', 'importlib.abc.PyLoader',
- 'importlib.abc.PyPycLoader', 'nntplib.NNTP.xgtitle', 'nntplib.NNTP.xpath',
- and private attributes of 'smtpd.SMTPChannel'.
-
-- Issue #5905, Issue #13560: time.strftime() is now using the current locale
- encoding, instead of UTF-8, if the wcsftime() function is not available.
-
-- Issue #13464: Add a readinto() method to http.client.HTTPResponse. Patch
- by Jon Kuhn.
-
-- tarfile.py: Correctly detect bzip2 compressed streams with blocksizes
- other than 900k.
-
-- Issue #13439: Fix many errors in turtle docstrings.
-
-- Issue #6715: Add a module 'lzma' for compression using the LZMA algorithm.
- Thanks to Per Øyvind Karlsen for the initial implementation.
-
-- Issue #13487: Make inspect.getmodule robust against changes done to
- sys.modules while it is iterating over it.
-
-- Issue #12618: Fix a bug that prevented py_compile from creating byte
- compiled files in the current directory. Initial patch by Sjoerd de Vries.
-
-- Issue #13444: When stdout has been closed explicitly, we should not attempt
- to flush it at shutdown and print an error.
-
-- Issue #12567: The curses module uses Unicode functions for Unicode arguments
- when it is linked to the ncurses library. It encodes also Unicode strings to
- the locale encoding instead of UTF-8.
-
-- Issue #12856: Ensure child processes do not inherit the parent's random
- seed for filename generation in the tempfile module. Patch by Brian
- Harring.
-
-- Issue #9957: SpooledTemporaryFile.truncate() now accepts an optional size
- parameter, as other file-like objects. Patch by Ryan Kelly.
-
-- Issue #13458: Fix a memory leak in the ssl module when decoding a
- certificate with a subjectAltName. Patch by Robert Xiao.
-
-- Issue #13415: os.unsetenv() doesn't ignore errors anymore.
-
-- Issue #13245: sched.scheduler class constructor's timefunc and
- delayfunct parameters are now optional.
- scheduler.enter and scheduler.enterabs methods gained a new kwargs parameter.
- Patch contributed by Chris Clark.
-
-- Issue #12328: Under Windows, refactor handling of Ctrl-C events and
- make _multiprocessing.win32.WaitForMultipleObjects interruptible when
- the wait_flag parameter is false. Patch by sbt.
-
-- Issue #13322: Fix BufferedWriter.write() to ensure that BlockingIOError is
- raised when the wrapped raw file is non-blocking and the write would block.
- Previous code assumed that the raw write() would raise BlockingIOError, but
- RawIOBase.write() is defined to returned None when the call would block.
- Patch by sbt.
-
-- Issue #13358: HTMLParser now calls handle_data only once for each CDATA.
-
-- Issue #4147: minidom's toprettyxml no longer adds whitespace around a text
- node when it is the only child of an element. Initial patch by Dan
- Kenigsberg.
-
-- Issue #13374: The Windows bytes API has been deprecated in the os module. Use
- Unicode filenames instead of bytes filenames to not depend on the ANSI code
- page anymore and to support any filename.
-
-- Issue #13297: Use bytes type to send and receive binary data through XMLRPC.
-
-- Issue #6397: Support "/dev/poll" polling objects in select module,
- under Solaris & derivatives.
-
-- Issues #1745761, #755670, #13357, #12629, #1200313: HTMLParser now correctly
- handles non-valid attributes, including adjacent and unquoted attributes.
-
-- Issue #13193: Fix distutils.filelist.FileList and packaging.manifest.Manifest
- under Windows.
-
-- Issue #13384: Remove unnecessary __future__ import in Lib/random.py
-
-- Issue #13149: Speed up append-only StringIO objects.
-
-- Issue #13373: multiprocessing.Queue.get() could sometimes block indefinitely
- when called with a timeout. Patch by Arnaud Ysmal.
-
-- Issue #13254: Fix Maildir initialization so that maildir contents
- are read correctly.
-
-- Issue #3067: locale.setlocale() now raises TypeError if the second
- argument is an invalid iterable. Its documentation and docstring
- were also updated. Initial patch by Jyrki Pulliainen.
-
-- Issue #13140: Fix the daemon_threads attribute of ThreadingMixIn.
-
-- Issue #13339: Fix compile error in posixmodule.c due to missing semicolon.
- Thanks to Robert Xiao.
-
-- Byte compilation in packaging is now isolated from the calling Python -B or
- -O options, instead of being disallowed under -B or buggy under -O.
-
-- Issue #10570: curses.putp() and curses.tparm() are now expecting a byte
- string, instead of a Unicode string.
-
-- Issue #13295: http.server now produces valid HTML 4.01 strict.
-
-- Issue #2892: preserve iterparse events in case of SyntaxError.
-
-- Issue #13287: urllib.request and urllib.error now contains an __all__
- attribute to expose only relevant classes and functions. Patch by Florent
- Xicluna.
-
-- Issue #670664: Fix HTMLParser to correctly handle the content of
- ``<script>...</script>`` and ``<style>...</style>``.
-
-- Issue #10817: Fix urlretrieve function to raise ContentTooShortError even
- when reporthook is None. Patch by Jyrki Pulliainen.
-
-- Fix the xmlrpc.client user agent to return something similar to
- urllib.request user agent: "Python-xmlrpc/3.3".
-
-- Issue #13293: Better error message when trying to marshal bytes using
- xmlrpc.client.
-
-- Issue #13291: NameError in xmlrpc package.
-
-- Issue #13258: Use callable() built-in in the standard library.
-
-- Issue #13273: fix a bug that prevented HTMLParser to properly detect some
- tags when strict=False.
-
-- Issue #11183: Add finer-grained exceptions to the ssl module, so that
- you don't have to inspect the exception's attributes in the common case.
-
-- Issue #13216: Add cp65001 codec, the Windows UTF-8 (CP_UTF8).
-
-- Issue #13226: Add RTLD_xxx constants to the os module. These constants can be
- used with sys.setdlopenflags().
-
-- Issue #10278: Add clock_getres(), clock_gettime() and CLOCK_xxx constants to
- the time module. time.clock_gettime(time.CLOCK_MONOTONIC) provides a
- monotonic clock
-
-- Issue #10332: multiprocessing: fix a race condition when a Pool is closed
- before all tasks have completed.
-
-- Issue #13255: wrong docstrings in array module.
-
-- Issue #8540: Remove deprecated Context._clamp attribute in Decimal module.
-
-- Issue #13235: Added DeprecationWarning to logging.warn() method and function.
-
-- Issue #9168: now smtpd is able to bind privileged port.
-
-- Issue #12529: fix cgi.parse_header issue on strings with double-quotes and
- semicolons together. Patch by Ben Darnell and Petri Lehtinen.
-
-- Issue #13227: functools.lru_cache() now has a option to distinguish
- calls with different argument types.
-
-- Issue #6090: zipfile raises a ValueError when a document with a timestamp
- earlier than 1980 is provided. Patch contributed by Petri Lehtinen.
-
-- Issue #13150: sysconfig no longer parses the Makefile and config.h files
- when imported, instead doing it at build time. This makes importing
- sysconfig faster and reduces Python startup time by 20%.
-
-- Issue #12448: smtplib now flushes stdout while running ``python -m smtplib``
- in order to display the prompt correctly.
-
-- Issue #12454: The mailbox module is now using ASCII, instead of the locale
- encoding, to read and write .mh_sequences files.
-
-- Issue #13194: zlib.compressobj().copy() and zlib.decompressobj().copy() are
- now available on Windows.
-
-- Issue #1673007: urllib.request now supports HEAD request via new method argument.
- Patch contributions by David Stanek, Patrick Westerhoff and Ezio Melotti.
-
-- Issue #12386: packaging does not fail anymore when writing the RESOURCES
- file.
-
-- Issue #13158: Fix decoding and encoding of GNU tar specific base-256 number
- fields in tarfile.
-
-- Issue #13025: mimetypes is now reading MIME types using the UTF-8 encoding,
- instead of the locale encoding.
-
-- Issue #10653: On Windows, use strftime() instead of wcsftime() because
- wcsftime() doesn't format time zone correctly.
-
-- Issue #13150: The tokenize module doesn't compile large regular expressions
- at startup anymore.
-
-- Issue #11171: Fix distutils.sysconfig.get_makefile_filename when Python was
- configured with different prefix and exec-prefix.
-
-- Issue #11254: Teach distutils and packaging to compile .pyc and .pyo files in
- PEP 3147-compliant __pycache__ directories.
-
-- Issue #7367: Fix pkgutil.walk_paths to skip directories whose
- contents cannot be read.
-
-- Issue #3163: The struct module gets new format characters 'n' and 'N'
- supporting C integer types ``ssize_t`` and ``size_t``, respectively.
-
-- Issue #13099: Fix sqlite3.Cursor.lastrowid under a Turkish locale.
- Reported and diagnosed by Thomas Kluyver.
-
-- Issue #13087: BufferedReader.seek() now always raises UnsupportedOperation
- if the underlying raw stream is unseekable, even if the seek could be
- satisfied using the internal buffer. Patch by John O'Connor.
-
-- Issue #7689: Allow pickling of dynamically created classes when their
- metaclass is registered with copyreg. Patch by Nicolas M. Thiéry and Craig
- Citro.
-
-- Issue #13034: When decoding some SSL certificates, the subjectAltName
- extension could be unreported.
-
-- Issue #12306: Expose the runtime version of the zlib C library as a constant,
- ZLIB_RUNTIME_VERSION, in the zlib module. Patch by Torsten Landschoff.
-
-- Issue #12959: Add collections.ChainMap to collections.__all__.
-
-- Issue #8933: distutils' PKG-INFO files and packaging's METADATA files will
- now correctly report Metadata-Version: 1.1 instead of 1.0 if a Classifier or
- Download-URL field is present.
-
-- Issue #12567: Add curses.unget_wch() function. Push a character so the next
- get_wch() will return it.
-
-- Issue #9561: distutils and packaging now writes egg-info files using UTF-8,
- instead of the locale encoding.
-
-- Issue #8286: The distutils command sdist will print a warning message instead
- of crashing when an invalid path is given in the manifest template.
-
-- Issue #12841: tarfile unnecessarily checked the existence of numerical user
- and group ids on extraction. If one of them did not exist the respective id
- of the current user (i.e. root) was used for the file and ownership
- information was lost.
-
-- Issue #12888: Fix a bug in HTMLParser.unescape that prevented it to escape
- more than 128 entities. Patch by Peter Otten.
-
-- Issue #12878: Expose a __dict__ attribute on io.IOBase and its subclasses.
-
-- Issue #12494: On error, call(), check_call(), check_output() and
- getstatusoutput() functions of the subprocess module now kill the process,
- read its status (to avoid zombis) and close pipes.
-
-- Issue #12720: Expose low-level Linux extended file attribute functions in os.
-
-- Issue #10946: The distutils commands bdist_dumb, bdist_wininst and bdist_msi
- now respect a --skip-build option given to bdist. The packaging commands
- were fixed too.
-
-- Issue #12847: Fix a crash with negative PUT and LONG_BINPUT arguments in
- the C pickle implementation.
-
-- Issue #11564: Avoid crashes when trying to pickle huge objects or containers
- (more than 2**31 items). Instead, in most cases, an OverflowError is raised.
-
-- Issue #12287: Fix a stack corruption in ossaudiodev module when the FD is
- greater than FD_SETSIZE.
-
-- Issue #12839: Fix crash in zlib module due to version mismatch.
- Fix by Richard M. Tew.
-
-- Issue #9923: The mailcap module now correctly uses the platform path
- separator for the MAILCAP environment variable on non-POSIX platforms.
-
-- Issue #12835: Follow up to #6560 that unconditionally prevents use of the
- unencrypted sendmsg/recvmsg APIs on SSL wrapped sockets. Patch by David
- Watson.
-
-- Issue #12803: SSLContext.load_cert_chain() now accepts a password argument
- to be used if the private key is encrypted. Patch by Adam Simpkins.
-
-- Issue #11657: Fix sending file descriptors over 255 over a multiprocessing
- Pipe.
-
-- Issue #12811: tabnanny.check() now promptly closes checked files. Patch by
- Anthony Briggs.
-
-- Issue #6560: The sendmsg/recvmsg API is now exposed by the socket module
- when provided by the underlying platform, supporting processing of
- ancillary data in pure Python code. Patch by David Watson and Heiko Wundram.
-
-- Issue #12326: On Linux, sys.platform doesn't contain the major version
- anymore. It is now always 'linux', instead of 'linux2' or 'linux3' depending
- on the Linux version used to build Python.
-
-- Issue #12213: Fix a buffering bug with interleaved reads and writes that
- could appear on BufferedRandom streams.
-
-- Issue #12778: Reduce memory consumption when JSON-encoding a large
- container of many small objects.
-
-- Issue #12650: Fix a race condition where a subprocess.Popen could leak
- resources (FD/zombie) when killed at the wrong time.
-
-- Issue #12744: Fix inefficient representation of integers between 2**31 and
- 2**63 on systems with a 64-bit C "long".
-
-- Issue #12646: Add an 'eof' attribute to zlib.Decompress, to make it easier to
- detect truncated input streams.
-
-- Issue #11513: Fix exception handling ``tarfile.TarFile.gzopen()`` when
- the file cannot be opened.
-
-- Issue #12687: Fix a possible buffering bug when unpickling text mode
- (protocol 0, mostly) pickles.
-
-- Issue #10087: Fix the html output format of the calendar module.
-
-- Issue #13121: add support for inplace math operators to collections.Counter.
-
-- Add support for unary plus and unary minus to collections.Counter.
-
-- Issue #12683: urlparse updated to include svn as schemes that uses relative
- paths. (svn from 1.5 onwards support relative path).
-
-- Issue #12655: Expose functions from sched.h in the os module: sched_yield(),
- sched_setscheduler(), sched_getscheduler(), sched_setparam(),
- sched_get_min_priority(), sched_get_max_priority(), sched_rr_get_interval(),
- sched_getaffinity(), sched_setaffinity().
-
-- Add ThreadError to threading.__all__.
-
-- Issues #11104, #8688: Fix the behavior of distutils' sdist command with
- manually-maintained MANIFEST files.
-
-- Issue #11281: smtplib.STMP gets source_address parameter, which adds the
- ability to bind to specific source address on a machine with multiple
- interfaces. Patch by Paulo Scardine.
-
-- Issue #12464: tempfile.TemporaryDirectory.cleanup() should not follow
- symlinks: fix it. Patch by Petri Lehtinen.
-
-- Issue #8887: "pydoc somebuiltin.somemethod" (or help('somebuiltin.somemethod')
- in Python code) now finds the doc of the method.
-
-- Issue #10968: Remove indirection in threading. The public names (Event,
- Condition, etc.) used to be factory functions returning instances of hidden
- classes (_Event, _Condition, etc.), because (if Guido recalls correctly) this
- code pre-dates the ability to subclass extension types. It is now possible
- to inherit from these classes, without having to import the private
- underscored names like multiprocessing did.
-
-- Issue #9723: Add shlex.quote functions, to escape filenames and command
- lines.
-
-- Issue #12603: Fix pydoc.synopsis() on files with non-negative st_mtime.
-
-- Issue #12514: Use try/finally to assure the timeit module restores garbage
- collections when it is done.
-
-- Issue #12607: In subprocess, fix issue where if stdin, stdout or stderr is
- given as a low fd, it gets overwritten.
-
-- Issue #12576: Fix urlopen behavior on sites which do not send (or obfuscates)
- ``Connection: close`` header.
-
-- Issue #12560: Build libpython.so on OpenBSD. Patch by Stefan Sperling.
-
-- Issue #1813: Fix codec lookup under Turkish locales.
-
-- Issue #12591: Improve support of "universal newlines" in the subprocess
- module: the piped streams can now be properly read from or written to.
-
-- Issue #12591: Allow io.TextIOWrapper to work with raw IO objects (without
- a read1() method), and add a *write_through* parameter to mandate
- unbuffered writes.
-
-- Issue #10883: Fix socket leaks in urllib.request when using FTP.
-
-- Issue #12592: Make Python build on OpenBSD 5 (and future major releases).
-
-- Issue #12372: POSIX semaphores are broken on AIX: don't use them.
-
-- Issue #12551: Provide a get_channel_binding() method on SSL sockets so as
- to get channel binding data for the current SSL session (only the
- "tls-unique" channel binding is implemented). This allows the implementation
- of certain authentication mechanisms such as SCRAM-SHA-1-PLUS. Patch by
- Jacek Konieczny.
-
-- Issue #665194: email.utils now has format_datetime and parsedate_to_datetime
- functions, allowing for round tripping of RFC2822 format dates.
-
-- Issue #12571: Add a plat-linux3 directory mirroring the plat-linux2
- directory, so that "import DLFCN" and other similar imports work on
- Linux 3.0.
-
-- Issue #7484: smtplib no longer puts <> around addresses in VRFY and EXPN
- commands; they aren't required and in fact postfix doesn't support that form.
-
-- Issue #12273: Remove ast.__version__. AST changes can be accounted for by
- checking sys.version_info or sys._mercurial.
-
-- Silence spurious "broken pipe" tracebacks when shutting down a
- ProcessPoolExecutor.
-
-- Fix potential resource leaks in concurrent.futures.ProcessPoolExecutor
- by joining all queues and processes when shutdown() is called.
-
-- Issue #11603: Fix a crash when __str__ is rebound as __repr__. Patch by
- Andreas Stührk.
-
-- Issue #11321: Fix a crash with multiple imports of the _pickle module when
- embedding Python. Patch by Andreas Stührk.
-
-- Issue #6755: Add get_wch() method to curses.window class. Patch by Iñigo
- Serna.
-
-- Add cgi.closelog() function to close the log file.
-
-- Issue #12502: asyncore: fix polling loop with AF_UNIX sockets.
-
-- Issue #4376: ctypes now supports nested structures in a endian different than
- the parent structure. Patch by Vlad Riscutia.
-
-- Raise ValueError when attempting to set the _CHUNK_SIZE attribute of a
- TextIOWrapper to a huge value, not TypeError.
-
-- Issue #12504: Close file handles in a timely manner in packaging.database.
- This fixes a bug with the remove (uninstall) feature on Windows.
-
-- Issues #12169 and #10510: Factor out code used by various packaging commands
- to make HTTP POST requests, and make sure it uses CRLF.
-
-- Issue #12016: Multibyte CJK decoders now resynchronize faster. They only
- ignore the first byte of an invalid byte sequence. For example,
- b'\xff\n'.decode('gb2312', 'replace') gives '\ufffd\n' instead of '\ufffd'.
-
-- Issue #12459: time.sleep() now raises a ValueError if the sleep length is
- negative, instead of an infinite sleep on Windows or raising an IOError on
- Linux for example, to have the same behaviour on all platforms.
-
-- Issue #12451: pydoc: html_getfile() now uses tokenize.open() to support
- Python scripts using a encoding different than UTF-8 (read the coding cookie
- of the script).
-
-- Issue #12493: subprocess: Popen.communicate() now also handles EINTR errors
- if the process has only one pipe.
-
-- Issue #12467: warnings: fix a race condition if a warning is emitted at
- shutdown, if globals()['__file__'] is None.
-
-- Issue #12451: pydoc: importfile() now opens the Python script in binary mode,
- instead of text mode using the locale encoding, to avoid encoding issues.
-
-- Issue #12451: runpy: run_path() now opens the Python script in binary mode,
- instead of text mode using the locale encoding, to support other encodings
- than UTF-8 (scripts using the coding cookie).
-
-- Issue #12451: xml.dom.pulldom: parse() now opens files in binary mode instead
- of the text mode (using the locale encoding) to avoid encoding issues.
-
-- Issue #12147: Adjust the new-in-3.2 smtplib.send_message method for better
- conformance to the RFCs: correctly handle Sender and Resent- headers.
-
-- Issue #12352: Fix a deadlock in multiprocessing.Heap when a block is freed by
- the garbage collector while the Heap lock is held.
-
-- Issue #12462: time.sleep() now immediately calls the (Python) signal handler
- if it is interrupted by a signal, instead of having to wait until the next
- instruction.
-
-- Issue #12442: new shutil.disk_usage function, providing total, used and free
- disk space statistics.
-
-- Issue #12451: The XInclude default loader of xml.etree now decodes files from
- UTF-8 instead of the locale encoding if the encoding is not specified. It now
- also opens XML files for the parser in binary mode instead of the text mode
- to avoid encoding issues.
-
-- Issue #12451: doctest.debug_script() doesn't create a temporary file
- anymore to avoid encoding issues.
-
-- Issue #12451: pydoc.synopsis() now reads the encoding cookie if available,
- to read the Python script from the right encoding.
-
-- Issue #12451: distutils now opens the setup script in binary mode to read the
- encoding cookie, instead of opening it in UTF-8.
-
-- Issue #9516: On Mac OS X, change Distutils to no longer globally attempt to
- check or set the MACOSX_DEPLOYMENT_TARGET environment variable for the
- interpreter process. This could cause failures in non-Distutils subprocesses
- and was unreliable since tests or user programs could modify the interpreter
- environment after Distutils set it. Instead, have Distutils set the
- deployment target only in the environment of each build subprocess. It is
- still possible to globally override the default by setting
- MACOSX_DEPLOYMENT_TARGET before launching the interpreter; its value must be
- greater or equal to the default value, the value with which the interpreter
- was built. Also, implement the same handling in packaging.
-
-- Issue #12422: In the copy module, don't store objects that are their own copy
- in the memo dict.
-
-- Issue #12303: Add sigwaitinfo() and sigtimedwait() to the signal module.
-
-- Issue #12404: Remove C89 incompatible code from mmap module. Patch by Akira
- Kitada.
-
-- Issue #1874: email now detects and reports as a defect the presence of
- any CTE other than 7bit, 8bit, or binary on a multipart.
-
-- Issue #12383: Fix subprocess module with env={}: don't copy the environment
- variables, start with an empty environment.
-
-- Issue #11637: Fix support for importing packaging setup hooks from the
- project directory.
-
-- Issue #6771: Moved the curses.wrapper function from the single-function
- wrapper module into __init__, eliminating the module. Since __init__ was
- already importing the function to curses.wrapper, there is no API change.
-
-- Issue #11584: email.header.decode_header no longer fails if the header
- passed to it is a Header object, and Header/make_header no longer fail
- if given binary unknown-8bit input.
-
-- Issue #11700: mailbox proxy object close methods can now be called multiple
- times without error.
-
-- Issue #11767: Correct file descriptor leak in mailbox's __getitem__ method.
-
-- Issue #12133: AbstractHTTPHandler.do_open() of urllib.request closes the HTTP
- connection if its getresponse() method fails with a socket error. Patch
- written by Ezio Melotti.
-
-- Issue #12240: Allow multiple setup hooks in packaging's setup.cfg files.
- Original patch by Erik Bray.
-
-- Issue #9284: Allow inspect.findsource() to find the source of doctest
- functions.
-
-- Issue #11595: Fix assorted bugs in packaging.util.cfg_to_args, a
- compatibility helper for the distutils-packaging transition. Original patch
- by Erik Bray.
-
-- Issue #12287: In ossaudiodev, check that the device isn't closed in several
- methods.
-
-- Issue #12009: Fixed regression in netrc file comment handling.
-
-- Issue #12246: Warn and fail when trying to install a third-party project from
- an uninstalled Python (built in a source checkout). Original patch by
- Tshepang Lekhonkhobe.
-
-- Issue #10694: zipfile now ignores garbage at the end of a zipfile.
-
-- Issue #12283: Fixed regression in smtplib quoting of leading dots in DATA.
-
-- Issue #10424: Argparse now includes the names of the missing required
- arguments in the missing arguments error message.
-
-- Issue #12168: SysLogHandler now allows NUL termination to be controlled using
- a new 'append_nul' attribute on the handler.
-
-- Issue #11583: Speed up os.path.isdir on Windows by using GetFileAttributes
- instead of os.stat.
-
-- Issue #12021: Make mmap's read() method argument optional. Patch by Petri
- Lehtinen.
-
-- Issue #9205: concurrent.futures.ProcessPoolExecutor now detects killed
- children and raises BrokenProcessPool in such a situation. Previously it
- would reliably freeze/deadlock.
-
-- Issue #12040: Expose a new attribute ``sentinel`` on instances of
- ``multiprocessing.Process``. Also, fix Process.join() to not use polling
- anymore, when given a timeout.
-
-- Issue #11893: Remove obsolete internal wrapper class ``SSLFakeFile`` in the
- smtplib module. Patch by Catalin Iacob.
-
-- Issue #12080: Fix a Decimal.power() case that took an unreasonably long time
- to compute.
-
-- Issue #12221: Remove __version__ attributes from pyexpat, pickle, tarfile,
- pydoc, tkinter, and xml.parsers.expat. This were useless version constants
- left over from the Mercurial transition
-
-- Named tuples now work correctly with vars().
-
-- Issue #12085: Fix an attribute error in subprocess.Popen destructor if the
- constructor has failed, e.g. because of an undeclared keyword argument. Patch
- written by Oleg Oshmyan.
-
-- Issue #12028: Make threading._get_ident() public, rename it to
- threading.get_ident() and document it. This function was already used using
- _thread.get_ident().
-
-- Issue #12171: IncrementalEncoder.reset() of CJK codecs (multibytecodec) calls
- encreset() instead of decreset().
-
-- Issue #12218: Removed wsgiref.egg-info.
-
-- Issue #12196: Add pipe2() to the os module.
-
-- Issue #985064: Make plistlib more resilient to faulty input plists.
- Patch by Mher Movsisyan.
-
-- Issue #1625: BZ2File and bz2.decompress() now support multi-stream files.
- Initial patch by Nir Aides.
-
-- Issue #12175: BufferedReader.read(-1) now calls raw.readall() if available.
-
-- Issue #12175: FileIO.readall() now only reads the file position and size
- once.
-
-- Issue #12175: RawIOBase.readall() now returns None if read() returns None.
-
-- Issue #12175: FileIO.readall() now raises a ValueError instead of an IOError
- if the file is closed.
-
-- Issue #11109: New service_action method for BaseServer, used by ForkingMixin
- class for cleanup. Initial Patch by Justin Warkentin.
-
-- Issue #12045: Avoid duplicate execution of command in
- ctypes.util._get_soname(). Patch by Sijin Joseph.
-
-- Issue #10818: Remove the Tk GUI and the serve() function of the pydoc module,
- pydoc -g has been deprecated in Python 3.2 and it has a new enhanced web
- server.
-
-- Issue #1441530: In imaplib, read the data in one chunk to speed up large
- reads and simplify code.
-
-- Issue #12070: Fix the Makefile parser of the sysconfig module to handle
- correctly references to "bogus variable" (e.g. "prefix=$/opt/python").
-
-- Issue #12100: Don't reset incremental encoders of CJK codecs at each call to
- their encode() method anymore, but continue to call the reset() method if the
- final argument is True.
-
-- Issue #12049: Add RAND_bytes() and RAND_pseudo_bytes() functions to the ssl
- module.
-
-- Issue #6501: os.device_encoding() returns None on Windows if the application
- has no console.
-
-- Issue #12105: Add O_CLOEXEC to the os module.
-
-- Issue #12079: Decimal('Infinity').fma(Decimal('0'), (3.91224318126786e+19+0j))
- now raises TypeError (reflecting the invalid type of the 3rd argument) rather
- than Decimal.InvalidOperation.
-
-- Issue #12124: zipimport doesn't keep a reference to zlib.decompress() anymore
- to be able to unload the module.
-
-- Add the packaging module, an improved fork of distutils (also known as
- distutils2).
-
-- Issue #12065: connect_ex() on an SSL socket now returns the original errno
- when the socket's timeout expires (it used to return None).
-
-- Issue #8809: The SMTP_SSL constructor and SMTP.starttls() now support
- passing a ``context`` argument pointing to an ssl.SSLContext instance.
- Patch by Kasun Herath.
-
-- Issue #9516: Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET
- is set in shell.
-
-- Issue #8650: Make zlib module 64-bit clean. compress(), decompress() and
- their incremental counterparts now raise OverflowError if given an input
- larger than 4GB, instead of silently truncating the input and returning
- an incorrect result.
-
-- Issue #12050: zlib.decompressobj().decompress() now clears the unconsumed_tail
- attribute when called without a max_length argument.
-
-- Issue #12062: Fix a flushing bug when doing a certain type of I/O sequence
- on a file opened in read+write mode (namely: reading, seeking a bit forward,
- writing, then seeking before the previous write but still within buffered
- data, and writing again).
-
-- Issue #9971: Write an optimized implementation of BufferedReader.readinto().
- Patch by John O'Connor.
-
-- Issue #11799: urllib.request Authentication Handlers will raise a ValueError
- when presented with an unsupported Authentication Scheme. Patch contributed
- by Yuval Greenfield.
-
-- Issue #10419, #6011: build_scripts command of distutils handles correctly
- non-ASCII path (path to the Python executable). Open and write the script in
- binary mode, but ensure that the shebang is decodable from UTF-8 and from the
- encoding of the script.
-
-- Issue #8498: In socket.accept(), allow to specify 0 as a backlog value in
- order to accept exactly one connection. Patch by Daniel Evers.
-
-- Issue #12011: signal.signal() and signal.siginterrupt() raise an OSError,
- instead of a RuntimeError: OSError has an errno attribute.
-
-- Issue #3709: add a flush_headers method to BaseHTTPRequestHandler, which
- manages the sending of headers to output stream and flushing the internal
- headers buffer. Patch contribution by Andrew Schaaf
-
-- Issue #11743: Rewrite multiprocessing connection classes in pure Python.
-
-- Issue #11164: Stop trying to use _xmlplus in the xml module.
-
-- Issue #11888: Add log2 function to math module. Patch written by Mark
- Dickinson.
-
-- Issue #12012: ssl.PROTOCOL_SSLv2 becomes optional.
-
-- Issue #8407: The signal handler writes the signal number as a single byte
- instead of a nul byte into the wakeup file descriptor. So it is possible to
- wait more than one signal and know which signals were raised.
-
-- Issue #8407: Add pthread_kill(), sigpending() and sigwait() functions to the
- signal module.
-
-- Issue #11927: SMTP_SSL now uses port 465 by default as documented. Patch
- by Kasun Herath.
-
-- Issue #12002: ftplib's abort() method raises TypeError.
-
-- Issue #11916: Add a number of MacOSX specific definitions to the errno module.
- Patch by Pierre Carrier.
-
-- Issue #11999: fixed sporadic sync failure mailbox.Maildir due to its trying to
- detect mtime changes by comparing to the system clock instead of to the
- previous value of the mtime.
-
-- Issue #11072: added MLSD command (RFC-3659) support to ftplib.
-
-- Issue #8808: The IMAP4_SSL constructor now allows passing an SSLContext
- parameter to control parameters of the secure channel. Patch by Sijin
- Joseph.
-
-- ntpath.samefile failed to notice that "a.txt" and "A.TXT" refer to the same
- file on Windows XP. As noticed in issue #10684.
-
-- Issue #12000: When a SSL certificate has a subjectAltName without any
- dNSName entry, ssl.match_hostname() should use the subject's commonName.
- Patch by Nicolas Bareil.
-
-- Issue #10775: assertRaises, assertRaisesRegex, assertWarns, and
- assertWarnsRegex now accept a keyword argument 'msg' when used as context
- managers. Initial patch by Winston Ewert.
-
-- Issue #10684: shutil.move used to delete a folder on case insensitive
- filesystems when the source and destination name where the same except
- for the case.
-
-- Issue #11647: objects created using contextlib.contextmanager now support
- more than one call to the function when used as a decorator. Initial patch
- by Ysj Ray.
-
-- Issue #11930: Removed deprecated time.accept2dyear variable.
- Removed year >= 1000 restriction from datetime.strftime.
-
-- logging: don't define QueueListener if Python has no thread support.
-
-- functools.cmp_to_key() now works with collections.Hashable().
-
-- Issue #11277: mmap.mmap() calls fcntl(fd, F_FULLFSYNC) on Mac OS X to get
- around a mmap bug with sparse files. Patch written by Steffen Daode Nurpmeso.
-
-- Issue #8407: Add signal.pthread_sigmask() function to fetch and/or change the
- signal mask of the calling thread.
-
-- Issue #11858: configparser.ExtendedInterpolation expected lower-case section
- names.
-
-- Issue #11324: ConfigParser(interpolation=None) now works correctly.
-
-- Issue #11811: ssl.get_server_certificate() is now IPv6-compatible. Patch
- by Charles-François Natali.
-
-- Issue #11763: don't use difflib in TestCase.assertMultiLineEqual if the
- strings are too long.
-
-- Issue #11236: getpass.getpass responds to ctrl-c or ctrl-z on terminal.
-
-- Issue #11856: Speed up parsing of JSON numbers.
-
-- Issue #11005: threading.RLock()._release_save() raises a RuntimeError if the
- lock was not acquired.
-
-- Issue #11258: Speed up ctypes.util.find_library() under Linux by a factor
- of 5 to 10. Initial patch by Jonas H.
-
-- Issue #11382: Trivial system calls, such as dup() or pipe(), needn't
- release the GIL. Patch by Charles-François Natali.
-
-- Issue #11223: Add threading._info() function providing informations about
- the thread implementation.
-
-- Issue #11731: simplify/enhance email parser/generator API by introducing
- policy objects.
-
-- Issue #11768: The signal handler of the signal module only calls
- Py_AddPendingCall() for the first signal to fix a deadlock on reentrant or
- parallel calls. PyErr_SetInterrupt() writes also into the wake up file.
-
-- Issue #11492: fix several issues with header folding in the email package.
-
-- Issue #11852: Add missing imports and update tests.
-
-- Issue #11875: collections.OrderedDict's __reduce__ was temporarily
- mutating the object instead of just working on a copy.
-
-- Issue #11467: Fix urlparse behavior when handling urls which contains scheme
- specific part only digits. Patch by Santoso Wijaya.
-
-- collections.Counter().copy() now works correctly for subclasses.
-
-- Issue #11474: Fix the bug with url2pathname() handling of '/C|/' on Windows.
- Patch by Santoso Wijaya.
-
-- Issue #11684: complete email.parser bytes API by adding BytesHeaderParser.
-
-- The bz2 module now handles 4GiB+ input buffers correctly.
-
-- Issue #9233: Fix json.loads('{}') to return a dict (instead of a list), when
- _json is not available.
-
-- Issue #11830: Remove unnecessary introspection code in the decimal module.
-
-- Issue #11703: urllib2.geturl() does not return correct url when the original
- url contains #fragment.
-
-- Issue #10019: Fixed regression in json module where an indent of 0 stopped
- adding newlines and acted instead like 'None'.
-
-- Issue #11186: pydoc ignores a module if its name contains a surrogate
- character in the index of modules.
-
-- Issue #11815: Use a light-weight SimpleQueue for the result queue in
- concurrent.futures.ProcessPoolExecutor.
-
-- Issue #5162: Treat services like frozen executables to allow child spawning
- from multiprocessing.forking on Windows.
-
-- logging.basicConfig now supports an optional 'handlers' argument taking an
- iterable of handlers to be added to the root logger. Additional parameter
- checks were also added to basicConfig.
-
-- Issue #11814: Fix likely typo in multiprocessing.Pool._terminate().
-
-- Issue #11747: Fix range formatting in difflib.context_diff() and
- difflib.unified_diff().
-
-- Issue #8428: Fix a race condition in multiprocessing.Pool when terminating
- worker processes: new processes would be spawned while the pool is being
- shut down. Patch by Charles-François Natali.
-
-- Issue #2650: re.escape() no longer escapes the '_'.
-
-- Issue #11757: select.select() now raises ValueError when a negative timeout
- is passed (previously, a select.error with EINVAL would be raised). Patch
- by Charles-François Natali.
-
-- Issue #7311: fix html.parser to accept non-ASCII attribute values.
-
-- Issue #11605: email.parser.BytesFeedParser was incorrectly converting
- multipart subparts with an 8-bit CTE into unicode instead of preserving the
- bytes.
-
-- Issue #1690608: email.util.formataddr is now RFC 2047 aware: it now has a
- charset parameter that defaults to utf-8 and is used as the charset for RFC
- 2047 encoding when the realname contains non-ASCII characters.
-
-- Issue #10963: Ensure that subprocess.communicate() never raises EPIPE.
-
-- Issue #10791: Implement missing method GzipFile.read1(), allowing GzipFile
- to be wrapped in a TextIOWrapper. Patch by Nadeem Vawda.
-
-- Issue #11707: Added a fast C version of functools.cmp_to_key().
- Patch by Filip Gruszczyński.
-
-- Issue #11688: Add sqlite3.Connection.set_trace_callback(). Patch by
- Torsten Landschoff.
-
-- Issue #11746: Fix SSLContext.load_cert_chain() to accept elliptic curve
- private keys.
-
-- Issue #5863: Rewrite BZ2File in pure Python, and allow it to accept
- file-like objects using a new ``fileobj`` constructor argument. Patch by
- Nadeem Vawda.
-
-- unittest.TestCase.assertSameElements has been removed.
-
-- sys.getfilesystemencoding() raises a RuntimeError if initfsencoding() was not
- called yet: detect bootstrap (startup) issues earlier.
-
-- Issue #11393: Add the new faulthandler module.
-
-- Issue #11618: Fix the timeout logic in threading.Lock.acquire() under Windows.
-
-- Removed the 'strict' argument to email.parser.Parser, which has been
- deprecated since Python 2.4.
-
-- Issue #11256: Fix inspect.getcallargs on functions that take only keyword
- arguments.
-
-- Issue #11696: Fix ID generation in msilib.
-
-- itertools.accumulate now supports an optional *func* argument for
- a user-supplied binary function.
-
-- Issue #11692: Remove unnecessary demo functions in subprocess module.
-
-- Issue #9696: Fix exception incorrectly raised by xdrlib.Packer.pack_int when
- trying to pack a negative (in-range) integer.
-
-- Issue #11675: multiprocessing.[Raw]Array objects created from an integer size
- are now zeroed on creation. This matches the behaviour specified by the
- documentation.
-
-- Issue #7639: Fix short file name generation in bdist_msi
-
-- Issue #11635: Don't use polling in worker threads and processes launched by
- concurrent.futures.
-
-- Issue #5845: Automatically read readline configuration to enable completion
- in interactive mode.
-
-- Issue #6811: Allow importlib to change a code object's co_filename attribute
- to match the path to where the source code currently is, not where the code
- object originally came from.
-
-- Issue #8754: Have importlib use the repr of a module name in error messages.
-
-- Issue #11591: Prevent "import site" from modifying sys.path when python
- was started with -S.
-
-- collections.namedtuple() now adds a _source attribute to the generated
- class. This make the source more accessible than the outdated
- "verbose" option which prints to stdout but doesn't make the source
- string available.
-
-- Issue #11371: Mark getopt error messages as localizable. Patch by Filip
- Gruszczyński.
-
-- Issue #11333: Add __slots__ to collections ABCs.
-
-- Issue #11628: cmp_to_key generated class should use __slots__.
-
-- Issue #11666: let help() display named tuple attributes and methods
- that start with a leading underscore.
-
-- Issue #11662: Make urllib and urllib2 ignore redirections if the
- scheme is not HTTP, HTTPS or FTP (CVE-2011-1521).
-
-- Issue #5537: Fix time2isoz() and time2netscape() functions of
- httplib.cookiejar for expiration year greater than 2038 on 32-bit systems.
-
-- Issue #4391: Use proper gettext plural forms in optparse.
-
-- Issue #11127: Raise a TypeError when trying to pickle a socket object.
-
-- Issue #11563: ``Connection: close`` header is sent by requests using URLOpener
- class which helps in closing of sockets after connection is over. Patch
- contributions by Jeff McNeil and Nadeem Vawda.
-
-- Issue #11459: A ``bufsize`` value of 0 in subprocess.Popen() really creates
- unbuffered pipes, such that select() works properly on them.
-
-- Issue #5421: Fix misleading error message when one of socket.sendto()'s
- arguments has the wrong type. Patch by Nikita Vetoshkin.
-
-- Issue #10812: Add some extra posix functions to the os module.
-
-- Issue #10979: unittest stdout buffering now works with class and module
- setup and teardown.
-
-- Issue #11243: fix the parameter querying methods of Message to work if
- the headers contain un-encoded non-ASCII data.
-
-- Issue #11401: fix handling of headers with no value; this fixes a regression
- relative to Python2 and the result is now the same as it was in Python2.
-
-- Issue #9298: base64 bodies weren't being folded to line lengths less than 78,
- which was a regression relative to Python2. Unlike Python2, the last line
- of the folded body now ends with a carriage return.
-
-- Issue #11560: shutil.unpack_archive now correctly handles the format
- parameter. Patch by Evan Dandrea.
-
-- Issue #5870: Add `subprocess.DEVNULL` constant.
-
-- Issue #11133: fix two cases where inspect.getattr_static can trigger code
- execution. Patch by Andreas Stührk.
-
-- Issue #11569: use absolute path to the sysctl command in multiprocessing to
- ensure that it will be found regardless of the shell PATH. This ensures
- that multiprocessing.cpu_count works on default installs of MacOSX.
-
-- Issue #11501: disutils.archive_utils.make_zipfile no longer fails if zlib is
- not installed. Instead, the zipfile.ZIP_STORED compression is used to create
- the ZipFile. Patch by Natalia B. Bidart.
-
-- Issue #11289: `smtp.SMTP` class is now a context manager so it can be used
- in a `with` statement. Contributed by Giampaolo Rodola.
-
-- Issue #11554: Fixed support for Japanese codecs; previously the body output
- encoding was not done if euc-jp or shift-jis was specified as the charset.
-
-- Issue #11407: `TestCase.run` returns the result object used or created.
- Contributed by Janathan Hartley.
-
-- Issue #11500: Fixed a bug in the OS X proxy bypass code for fully qualified
- IP addresses in the proxy exception list.
-
-- Issue #11491: dbm.error is no longer raised when dbm.open is called with
- the "n" as the flag argument and the file exists. The behavior matches
- the documentation and general logic.
-
-- Issue #1162477: Postel Principle adjustment to email date parsing: handle the
- fact that some non-compliant MUAs use '.' instead of ':' in time specs.
-
-- Issue #11131: Fix sign of zero in decimal.Decimal plus and minus
- operations when the rounding mode is ROUND_FLOOR.
-
-- Issue #9935: Speed up pickling of instances of user-defined classes.
-
-- Issue #5622: Fix curses.wrapper to raise correct exception if curses
- initialization fails.
-
-- Issue #11408: In threading.Lock.acquire(), only call gettimeofday() when
- really necessary. Patch by Charles-François Natali.
-
-- Issue #11391: Writing to a mmap object created with
- ``mmap.PROT_READ|mmap.PROT_EXEC`` would segfault instead of raising a
- TypeError. Patch by Charles-François Natali.
-
-- Issue #9795: add context manager protocol support for nntplib.NNTP class.
-
-- Issue #11306: mailbox in certain cases adapts to an inability to open
- certain files in read-write mode. Previously it detected this by
- checking for EACCES, now it also checks for EROFS.
-
-- Issue #11265: asyncore now correctly handles EPIPE, EBADF and EAGAIN errors
- on accept(), send() and recv().
-
-- Issue #11377: Deprecate platform.popen() and reimplement it with os.popen().
-
-- Issue #8513: On UNIX, subprocess supports bytes command string.
-
-- Issue #10866: Add socket.sethostname(). Initial patch by Ross Lagerwall.
-
-- Issue #11140: Lock.release() now raises a RuntimeError when attempting
- to release an unacquired lock, as claimed in the threading documentation.
- The _thread.error exception is now an alias of RuntimeError. Patch by
- Filip Gruszczyński. Patch for _dummy_thread by Aymeric Augustin.
-
-- Issue #8594: ftplib now provides a source_address parameter to specify which
- (address, port) to bind to before connecting.
-
-- Issue #11326: Add the missing connect_ex() implementation for SSL sockets,
- and make it work for non-blocking connects.
-
-- Issue #11297: Add collections.ChainMap().
-
-- Issue #10755: Add the posix.flistdir() function. Patch by Ross Lagerwall.
-
-- Issue #4761: Add the ``*at()`` family of functions (openat(), etc.) to the
- posix module. Patch by Ross Lagerwall.
-
-- Issue #7322: Trying to read from a socket's file-like object after a timeout
- occurred now raises an error instead of silently losing data.
-
-- Issue #11291: poplib.POP no longer suppresses errors on quit().
-
-- Issue #11177: asyncore's create_socket() arguments can now be omitted.
-
-- Issue #6064: Add a ``daemon`` keyword argument to the threading.Thread
- and multiprocessing.Process constructors in order to override the
- default behaviour of inheriting the daemonic property from the current
- thread/process.
-
-- Issue #10956: Buffered I/O classes retry reading or writing after a signal
- has arrived and the handler returned successfully.
-
-- Issue #10784: New os.getpriority() and os.setpriority() functions.
-
-- Issue #11114: Fix catastrophic performance of tell() on text files (up
- to 1000x faster in some cases). It is still one to two order of magnitudes
- slower than binary tell().
-
-- Issue #10882: Add os.sendfile function.
-
-- Issue #10868: Allow usage of the register method of an ABC as a class
- decorator.
-
-- Issue #11224: Fixed a regression in tarfile that affected the file-like
- objects returned by TarFile.extractfile() regarding performance, memory
- consumption and failures with the stream interface.
-
-- Issue #10924: Adding salt and Modular Crypt Format to crypt library.
- Moved old C wrapper to _crypt, and added a Python wrapper with
- enhanced salt generation and simpler API for password generation.
-
-- Issue #11074: Make 'tokenize' so it can be reloaded.
-
-- Issue #11085: Moved collections abstract base classes into a separate
- module called collections.abc, following the pattern used by importlib.abc.
- For backwards compatibility, the names are imported into the collections
- module.
-
-- Issue #4681: Allow mmap() to work on file sizes and offsets larger than
- 4GB, even on 32-bit builds. Initial patch by Ross Lagerwall, adapted for
- 32-bit Windows.
-
-- Issue #11169: compileall module uses repr() to format filenames and paths to
- escape surrogate characters and show spaces.
-
-- Issue #11089: Fix performance issue limiting the use of ConfigParser()
- with large config files.
-
-- Issue #10276: Fix the results of zlib.crc32() and zlib.adler32() on buffers
- larger than 4GB. Patch by Nadeem Vawda.
-
-- Issue #11388: Added a clear() method to MutableSequence
-
-- Issue #11174: Add argparse.MetavarTypeHelpFormatter, which uses type names
- for the names of optional and positional arguments in help messages.
-
-- Issue #9348: Raise an early error if argparse nargs and metavar don't match.
-
-- Issue #9026: Fix order of argparse sub-commands in help messages.
-
-- Issue #9347: Fix formatting for tuples in argparse type= error messages.
-
-- Issue #12191: Added shutil.chown() to change user and/or group owner of a
- given path also specifying their names.
-
-- Issue #13988: The _elementtree accelerator is used whenever available.
- Now xml.etree.cElementTree becomes a deprecated alias to ElementTree.
-
-Build
------
-
-- Issue #6807: Run msisupport.mak earlier.
-
-- Issue #10580: Minor grammar change in Windows installer.
-
-- Issue #13326: Clean __pycache__ directories correctly on OpenBSD.
-
-- PEP 393: the configure option --with-wide-unicode is removed.
-
-- Issue #12852: Set _XOPEN_SOURCE to 700, instead of 600, to get POSIX 2008
- functions on OpenBSD (e.g. fdopendir).
-
-- Issue #11863: Remove support for legacy systems deprecated in Python 3.2
- (following PEP 11). These systems are systems using Mach C Threads,
- SunOS lightweight processes, GNU pth threads and IRIX threads.
-
-- Issue #8746: Correct faulty configure checks so that os.chflags() and
- os.lchflags() are once again built on systems that support these
- functions (BSD and OS X). Also add new stat file flags for OS X
- (UF_HIDDEN and UF_COMPRESSED).
-
-- Issue #10645: Installing Python no longer creates a
- Python-X.Y.Z-pyX.Y.egg-info file in the lib-dynload directory.
-
-- Do not accidentally include the directory containing sqlite.h twice when
- building sqlite3.
-
-- Issue #11217: For 64-bit/32-bit Mac OS X universal framework builds,
- ensure "make install" creates symlinks in --prefix bin for the "-32"
- files in the framework bin directory like the installer does.
-
-- Issue #11347: Use --no-as-needed when linking libpython3.so.
-
-- Issue #11411: Fix 'make DESTDIR=' with a relative destination.
-
-- Issue #11268: Prevent Mac OS X Installer failure if Documentation
- package had previously been installed.
-
-- Issue #11495: OSF support is eliminated. It was deprecated in Python 3.2.
-
-IDLE
-----
-
-- Issue #14409: IDLE now properly executes commands in the Shell window
- when it cannot read the normal config files on startup and
- has to use the built-in default key bindings.
- There was previously a bug in one of the defaults.
-
-- IDLE can be launched as python -m idlelib
-
-- Issue #3573: IDLE hangs when passing invalid command line args
- (directory(ies) instead of file(s)) (Patch by Guilherme Polo)
-
-- Issue #14200: IDLE shell crash on printing non-BMP unicode character.
-
-- Issue #5219: Prevent event handler cascade in IDLE.
-
-- Issue #964437: Make IDLE help window non-modal.
- Patch by Guilherme Polo and Roger Serwy.
-
-- Issue #13933: IDLE auto-complete did not work with some imported
- module, like hashlib. (Patch by Roger Serwy)
-
-- Issue #13506: Add '' to path for IDLE Shell when started and restarted with Restart Shell.
- Original patches by Marco Scataglini and Roger Serwy.
-
-- Issue #4625: If IDLE cannot write to its recent file or breakpoint files,
- display a message popup and continue rather than crash. Original patch by
- Roger Serwy.
-
-- Issue #8641: Update IDLE 3 syntax coloring to recognize b".." and not u"..".
- Patch by Tal Einat.
-
-- Issue #13296: Fix IDLE to clear compile __future__ flags on shell restart.
- (Patch by Roger Serwy)
-
-- Issue #9871: Prevent IDLE 3 crash when given byte stings
- with invalid hex escape sequences, like b'\x0'.
- (Original patch by Claudiu Popa.)
-
-- Issue #12636: IDLE reads the coding cookie when executing a Python script.
-
-- Issue #12540: Prevent zombie IDLE processes on Windows due to changes
- in os.kill().
-
-- Issue #12590: IDLE editor window now always displays the first line
- when opening a long file. With Tk 8.5, the first line was hidden.
-
-- Issue #11088: don't crash when using F5 to run a script in IDLE on MacOSX
- with Tk 8.5.
-
-- Issue #1028: Tk returns invalid Unicode null in %A: UnicodeDecodeError.
- With Tk < 8.5 _tkinter.c:PythonCmd() raised UnicodeDecodeError, caused
- IDLE to exit. Converted to valid Unicode null in PythonCmd().
-
-- Issue #11718: IDLE's open module dialog couldn't find the __init__.py
- file in a package.
-
-Tools/Demos
------------
-
-- Issue #14053: patchcheck.py ("make patchcheck") now works with MQ patches.
- Patch by Francisco Martín Brugué.
-
-- Issue #13930: 2to3 is now able to write its converted output files to another
- directory tree as well as copying unchanged files and altering the file
- suffix. See its new -o, -W and --add-suffix options. This makes it more
- useful in many automated code translation workflows.
-
-- Issue #13628: python-gdb.py is now able to retrieve more frames in the Python
- traceback if Python is optimized.
-
-- Issue #11996: libpython (gdb), replace "py-bt" command by "py-bt-full" and
- add a smarter "py-bt" command printing a classic Python traceback.
-
-- Issue #11179: Make ccbench work under Python 3.1 and 2.7 again.
-
-- Issue #10639: reindent.py no longer converts newlines and will raise
- an error if attempting to convert a file with mixed newlines.
- "--newline" option added to specify new line character.
-
-Extension Modules
------------------
-
-- Issue #16847: Fixed improper use of _PyUnicode_CheckConsistency() in
- non-pydebug builds. Several extension modules now compile cleanly when
- assert()s are enabled in standard builds (-DDEBUG flag).
-
-- Issue #13840: The error message produced by ctypes.create_string_buffer
- when given a Unicode string has been fixed.
-
-- Issue #9975: socket: Fix incorrect use of flowinfo and scope_id. Patch by
- Vilmos Nebehaj.
-
-- Issue #7777: socket: Add Reliable Datagram Sockets (PF_RDS) support.
-
-- Issue #13159: FileIO and BZ2Compressor/BZ2Decompressor now use a linear-time
- buffer growth strategy instead of a quadratic-time one.
-
-- Issue #10141: socket: Add SocketCAN (PF_CAN) support. Initial patch by
- Matthias Fuchs, updated by Tiago Gonçalves.
-
-- Issue #13070: Fix a crash when a TextIOWrapper caught in a reference cycle
- would be finalized after the reference to its underlying BufferedRWPair's
- writer got cleared by the GC.
-
-- Issue #12881: ctypes: Fix segfault with large structure field names.
-
-- Issue #13058: ossaudiodev: fix a file descriptor leak on error. Patch by
- Thomas Jarosch.
-
-- Issue #13013: ctypes: Fix a reference leak in PyCArrayType_from_ctype.
- Thanks to Suman Saha for finding the bug and providing a patch.
-
-- Issue #13022: Fix: _multiprocessing.recvfd() doesn't check that
- file descriptor was actually received.
-
-- Issue #1172711: Add 'long long' support to the array module.
- Initial patch by Oren Tirosh and Hirokazu Yamamoto.
-
-- Issue #12483: ctypes: Fix a crash when the destruction of a callback
- object triggers the garbage collector.
-
-- Issue #12950: Fix passing file descriptors in multiprocessing, under
- OpenIndiana/Illumos.
-
-- Issue #12764: Fix a crash in ctypes when the name of a Structure field is not
- a string.
-
-- Issue #11241: subclasses of ctypes.Array can now be subclassed.
-
-- Issue #9651: Fix a crash when ctypes.create_string_buffer(0) was passed to
- some functions like file.write().
-
-- Issue #10309: Define _GNU_SOURCE so that mremap() gets the proper
- signature. Without this, architectures where sizeof void* != sizeof int are
- broken. Patch given by Hallvard B Furuseth.
-
-- Issue #12051: Fix segfault in json.dumps() while encoding highly-nested
- objects using the C accelerations.
-
-- Issue #12017: Fix segfault in json.loads() while decoding highly-nested
- objects using the C accelerations.
-
-- Issue #1838: Prevent segfault in ctypes, when _as_parameter_ on a class is set
- to an instance of the class.
-
-Tests
------
-
-- Issue #13125: Silence spurious test_lib2to3 output when in non-verbose mode.
- Patch by Mikhail Novikov.
-
-- Issue #13447: Add a test file to host regression tests for bugs in the
- scripts found in the Tools directory.
-
-- Issue #10881: Fix test_site failure with OS X framework builds.
-
-- Issue #13901: Prevent test_distutils failures on OS X with --enable-shared.
-
-- Issue #13862: Fix spurious failure in test_zlib due to runtime/compile time
- minor versions not matching.
-
-- Issue #12804: Fix test_socket and test_urllib2net failures when running tests
- on a system without internet access.
-
-- Issue #13726: Fix the ambiguous -S flag in regrtest. It is -o/--slow for slow
- tests.
-
-- Issue #11659: Fix ResourceWarning in test_subprocess introduced by #11459.
- Patch by Ben Hayden.
-
-- Issue #11577: fix ResourceWarning triggered by improved binhex test coverage
-
-- Issue #11509: Significantly increase test coverage of fileinput.
- Patch by Denver Coneybeare at PyCon 2011 Sprints.
-
-- Issue #11689: Fix a variable scoping error in an sqlite3 test
-
-- Issue #13786: Remove unimplemented 'trace' long option from regrtest.py.
-
-- Issue #13725: Fix regrtest to recognize the documented -d flag.
- Patch by Erno Tukia.
-
-- Issue #13304: Skip test case if user site-packages disabled (-s or
- PYTHONNOUSERSITE). (Patch by Carl Meyer)
-
-- Issue #5661: Add a test for ECONNRESET/EPIPE handling to test_asyncore. Patch
- by Xavier de Gaye.
-
-- Issue #13218: Fix test_ssl failures on Debian/Ubuntu.
-
-- Re-enable lib2to3's test_parser.py tests, though with an expected failure
- (see issue 13125).
-
-- Issue #12656: Add tests for IPv6 and Unix sockets to test_asyncore.
-
-- Issue #6484: Add unit tests for mailcap module (patch by Gregory Nofi)
-
-- Issue #11651: Improve the Makefile test targets to run more of the test suite
- more quickly. The --multiprocess option is now enabled by default, reducing
- the amount of time needed to run the tests. "make test" and "make quicktest"
- now include some resource-intensive tests, but no longer run the test suite
- twice to check for bugs in .pyc generation. Tools/scripts/run_test.py provides
- an easy platform-independent way to run test suite with sensible defaults.
-
-- Issue #12331: The test suite for the packaging module can now run from an
- installed Python.
-
-- Issue #12331: The test suite for lib2to3 can now run from an installed
- Python.
-
-- Issue #12626: In regrtest, allow to filter tests using a glob filter
- with the ``-m`` (or ``--match``) option. This works with all test cases
- using the unittest module. This is useful with long test suites
- such as test_io or test_subprocess.
-
-- Issue #12624: It is now possible to fail after the first failure when
- running in verbose mode (``-v`` or ``-W``), by using the ``--failfast``
- (or ``-G``) option to regrtest. This is useful with long test suites
- such as test_io or test_subprocess.
-
-- Issue #12587: Correct faulty test file and reference in test_tokenize.
- (Patch by Robert Xiao)
-
-- Issue #12573: Add resource checks for dangling Thread and Process objects.
-
-- Issue #12549: Correct test_platform to not fail when OS X returns 'x86_64'
- as the processor type on some Mac systems.
-
-- Skip network tests when getaddrinfo() returns EAI_AGAIN, meaning a temporary
- failure in name resolution.
-
-- Issue #11812: Solve transient socket failure to connect to 'localhost'
- in test_telnetlib.py.
-
-- Solved a potential deadlock in test_telnetlib.py. Related to issue #11812.
-
-- Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
- an overzealous DNS service (e.g. OpenDNS) redirects to a placeholder
- Web site.
-
-- Avoid failing in test_urllibnet.test_bad_address when some overzealous
- DNS service (e.g. OpenDNS) resolves a non-existent domain name. The test
- is now skipped instead.
-
-- Issue #12440: When testing whether some bits in SSLContext.options can be
- reset, check the version of the OpenSSL headers Python was compiled against,
- rather than the runtime version of the OpenSSL library.
-
-- Issue #11512: Add a test suite for the cgitb module. Patch by Robbie Clemons.
-
-- Issue #12497: Install test/data to prevent failures of the various codecmaps
- tests.
-
-- Issue #12496: Install test/capath directory to prevent test_connect_capath
- testcase failure in test_ssl.
-
-- Issue #12469: Run wakeup and pending signal tests in a subprocess to run the
- test in a fresh process with only one thread and to not change signal
- handling of the parent process.
-
-- Issue #8716: Avoid crashes caused by Aqua Tk on OSX when attempting to run
- test_tk or test_ttk_guionly under a username that is not currently logged
- in to the console windowserver (as may be the case under buildbot or ssh).
-
-- Issue #12407: Explicitly skip test_capi.EmbeddingTest under Windows.
-
-- Issue #12400: regrtest -W doesn't rerun the tests twice anymore, but captures
- the output and displays it on failure instead. regrtest -v doesn't print the
- error twice anymore if there is only one error.
-
-- Issue #12141: Install copies of template C module file so that
- test_build_ext of test_distutils and test_command_build_ext of
- test_packaging are no longer silently skipped when
- run outside of a build directory.
-
-- Issue #8746: Add additional tests for os.chflags() and os.lchflags().
- Patch by Garrett Cooper.
-
-- Issue #10736: Fix test_ttk test_widgets failures with Cocoa Tk 8.5.9
- 2.8 + on Mac OS X. (Patch by Ronald Oussoren)
-
-- Issue #12057: Add tests for ISO 2022 codecs (iso2022_jp, iso2022_jp_2,
- iso2022_kr).
-
-- Issue #12096: Fix a race condition in test_threading.test_waitfor(). Patch
- written by Charles-François Natali.
-
-- Issue #11614: import __hello__ prints "Hello World!". Patch written by
- Andreas Stührk.
-
-- Issue #5723: Improve json tests to be executed with and without accelerations.
-
-- Issue #12041: Make test_wait3 more robust.
-
-- Issue #11873: Change regex in test_compileall to fix occasional failures when
- when the randomly generated temporary path happened to match the regex.
-
-- Issue #11958: Fix FTP tests for IPv6, bind to "::1" instead of "localhost".
- Patch written by Charles-Francois Natali.
-
-- Issue #8407, #11859: Fix tests of test_io using threads and an alarm: use
- pthread_sigmask() to ensure that the SIGALRM signal is received by the main
- thread.
-
-- Issue #11811: Factor out detection of IPv6 support on the current host
- and make it available as ``test.support.IPV6_ENABLED``. Patch by
- Charles-François Natali.
-
-- Issue #10914: Add a minimal embedding test to test_capi.
-
-- Issue #11223: Skip test_lock_acquire_interruption() and
- test_rlock_acquire_interruption() of test_threadsignals if a thread lock is
- implemented using a POSIX mutex and a POSIX condition variable. A POSIX
- condition variable cannot be interrupted by a signal (e.g. on Linux, the
- futex system call is restarted).
-
-- Issue #11790: Fix sporadic failures in test_multiprocessing.WithProcessesTestCondition.
-
-- Fix possible "file already exists" error when running the tests in parallel.
-
-- Issue #11719: Fix message about unexpected test_msilib skip on non-Windows
- platforms. Patch by Nadeem Vawda.
-
-- Issue #11727: Add a --timeout option to regrtest: if a test takes more than
- TIMEOUT seconds, dumps the traceback of all threads and exits.
-
-- Issue #11653: fix -W with -j in regrtest.
-
-- The email test suite now lives in the Lib/test/test_email package. The test
- harness code has also been modernized to allow use of new unittest features.
-
-- regrtest now discovers test packages as well as test modules.
-
-- Issue #11577: improve test coverage of binhex.py. Patch by Arkady Koplyarov.
-
-- New test_crashers added to exercise the scripts in the Lib/test/crashers
- directory and confirm they fail as expected
-
-- Issue #11578: added test for the timeit module. Patch by Michael Henry.
-
-- Issue #11503: improve test coverage of posixpath.py. Patch by Evan Dandrea.
-
-- Issue #11505: improves test coverage of string.py, increases granularity of
- string.Formatter tests. Initial patch by Alicia Arlen.
-
-- Issue #11548: Improve test coverage of the shutil module. Patch by
- Evan Dandrea.
-
-- Issue #11554: Reactivated test_email_codecs.
-
-- Issue #11505: improves test coverage of string.py. Patch by Alicia
- Arlen
-
-- Issue #11490: test_subprocess.test_leaking_fds_on_error no longer gives a
- false positive if the last directory in the path is inaccessible.
-
-- Issue #11223: Fix test_threadsignals to fail, not hang, when the
- non-semaphore implementation of locks is used under POSIX.
-
-- Issue #10911: Add tests on CGI with non-ASCII characters. Patch written by
- Pierre Quentel.
-
-- Issue #9931: Fix hangs in GUI tests under Windows in certain conditions.
- Patch by Hirokazu Yamamoto.
-
-- Issue #10512: Properly close sockets under test.test_cgi.
-
-- Issue #10992: Make tests pass under coverage.
-
-- Issue #10826: Prevent sporadic failure in test_subprocess on Solaris due
- to open door files.
-
-- Issue #10990: Prevent tests from clobbering a set trace function.
-
-C-API
------
-
-- Issue #13452: PyUnicode_EncodeDecimal() doesn't support error handlers
- different than "strict" anymore. The caller was unable to compute the
- size of the output buffer: it depends on the error handler.
-
-- Issue #13560: Add PyUnicode_DecodeLocale(), PyUnicode_DecodeLocaleAndSize()
- and PyUnicode_EncodeLocale() functions to the C API to decode/encode from/to
- the current locale encoding.
-
-- Issue #10831: PyUnicode_FromFormat() supports %li, %lli and %zi formats.
-
-- Issue #11246: Fix PyUnicode_FromFormat("%V") to decode the byte string from
- UTF-8 (with replace error handler) instead of ISO-8859-1 (in strict mode).
- Patch written by Ray Allen.
-
-- Issue #10830: Fix PyUnicode_FromFormatV("%c") for non-BMP characters on
- narrow build.
-
-- Add PyObject_GenericGetDict and PyObject_GeneriSetDict. They are generic
- implementations for the getter and setter of a ``__dict__`` descriptor of C
- types.
-
-- Issue #13727: Add 3 macros to access PyDateTime_Delta members:
- PyDateTime_DELTA_GET_DAYS, PyDateTime_DELTA_GET_SECONDS,
- PyDateTime_DELTA_GET_MICROSECONDS.
-
-- Issue #10542: Add 4 macros to work with surrogates: Py_UNICODE_IS_SURROGATE,
- Py_UNICODE_IS_HIGH_SURROGATE, Py_UNICODE_IS_LOW_SURROGATE,
- Py_UNICODE_JOIN_SURROGATES.
-
-- Issue #12724: Add Py_RETURN_NOTIMPLEMENTED macro for returning NotImplemented.
-
-- PY_PATCHLEVEL_REVISION has been removed, since it's meaningless with
- Mercurial.
-
-- Issue #12173: The first argument of PyImport_ImportModuleLevel is now `const
- char *` instead of `char *`.
-
-- Issue #12380: PyArg_ParseTuple now accepts a bytearray for the 'c' format.
-
-Documentation
--------------
-
-- Issue #23006: Improve the documentation and indexing of dict.__missing__.
- Add an entry in the language datamodel special methods section.
- Revise and index its discussion in the stdtypes mapping/dict section.
-
-- Issue #13989: Document that GzipFile does not support text mode, and give a
- more helpful error message when opened with an invalid mode string.
-
-- Issue #13921: Undocument and clean up sqlite3.OptimizedUnicode,
- which is obsolete in Python 3.x. It's now aliased to str for
- backwards compatibility.
-
-- Issue #12102: Document that buffered files must be flushed before being used
- with mmap. Patch by Steffen Daode Nurpmeso.
-
-- Issue #8982: Improve the documentation for the argparse Namespace object.
-
-- Issue #9343: Document that argparse parent parsers must be configured before
- their children.
-
-- Issue #13498: Clarify docs of os.makedirs()'s exist_ok argument. Done with
- great native-speaker help from R. David Murray.
-
-- Issues #13491 and #13995: Fix many errors in sqlite3 documentation.
- Initial patch for #13491 by Johannes Vogel.
-
-- Issue #13402: Document absoluteness of sys.executable.
-
-- Issue #13883: PYTHONCASEOK also works on OS X.
-
-- Issue #9021: Add an introduction to the copy module documentation.
-
-- Issue #6005: Examples in the socket library documentation use sendall, where
- relevant, instead send method.
-
-- Issue #12798: Updated the mimetypes documentation.
-
-- Issue #12949: Document the kwonlyargcount argument for the PyCode_New
- C API function.
-
-- Issue #13513: Fix io.IOBase documentation to correctly link to the
- io.IOBase.readline method instead of the readline module.
-
-- Issue #13237: Reorganise subprocess documentation to emphasise convenience
- functions and the most commonly needed arguments to Popen.
-
-- Issue #13141: Demonstrate recommended style for socketserver examples.
-
-- Issue #11818: Fix tempfile examples for Python 3.
-
-
**(For information about older versions, consult the HISTORY file.)**
diff --git a/Misc/Porting b/Misc/Porting
index 51f73e6..c283cb2 100644
--- a/Misc/Porting
+++ b/Misc/Porting
@@ -27,7 +27,7 @@ And you'll need a config.c file, which lists the built-in modules you
support. Start with Modules/config.c.in.
Finally, you'll run into some things that aren't supported on your
-target platform. Forget about the posix module for now -- simply take
+target platform. Forget about the posix module for now -- simply take
it out of the config.c file.
Bang on it until you get a >>> prompt. (You may have to disable the
diff --git a/Misc/coverity_model.c b/Misc/coverity_model.c
index 57f3aeb..493e7c1 100644
--- a/Misc/coverity_model.c
+++ b/Misc/coverity_model.c
@@ -85,7 +85,7 @@ PyObject *PyErr_SetFromErrnoWithFilename(PyObject *exc, const char *filename)
}
/* Python/fileutils.c */
-wchar_t *_Py_char2wchar(const char* arg, size_t *size)
+wchar_t *Py_DecodeLocale(const char* arg, size_t *size)
{
wchar_t *w;
__coverity_tainted_data_sink__(arg);
@@ -122,7 +122,8 @@ static long r_long(RFILE *p)
/* Coverity doesn't understand that fdopendir() may take ownership of fd. */
-DIR *fdopendir(int fd) {
+DIR *fdopendir(int fd)
+{
DIR *d;
if (d) {
__coverity_close__(fd);
@@ -130,3 +131,58 @@ DIR *fdopendir(int fd) {
return d;
}
+/* Modules/_datetime.c
+ *
+ * Coverity thinks that the input values for these function come from a
+ * tainted source PyDateTime_DATE_GET_* macros use bit shifting.
+ */
+static PyObject *
+build_struct_time(int y, int m, int d, int hh, int mm, int ss, int dstflag)
+{
+ PyObject *result;
+
+ __coverity_tainted_data_sanitize__(y);
+ __coverity_tainted_data_sanitize__(m);
+ __coverity_tainted_data_sanitize__(d);
+ __coverity_tainted_data_sanitize__(hh);
+ __coverity_tainted_data_sanitize__(mm);
+ __coverity_tainted_data_sanitize__(ss);
+ __coverity_tainted_data_sanitize__(dstflag);
+
+ return result;
+}
+
+static int
+ymd_to_ord(int year, int month, int day)
+{
+ int ord = 0;
+
+ __coverity_tainted_data_sanitize__(year);
+ __coverity_tainted_data_sanitize__(month);
+ __coverity_tainted_data_sanitize__(day);
+
+ return ord;
+}
+
+static int
+normalize_date(int *year, int *month, int *day)
+{
+ __coverity_tainted_data_sanitize__(*year);
+ __coverity_tainted_data_sanitize__(*month);
+ __coverity_tainted_data_sanitize__(*day);
+
+ return 0;
+}
+
+static int
+weekday(int year, int month, int day)
+{
+ int w = 0;
+
+ __coverity_tainted_data_sanitize__(year);
+ __coverity_tainted_data_sanitize__(month);
+ __coverity_tainted_data_sanitize__(day);
+
+ return w;
+}
+
diff --git a/Misc/gdbinit b/Misc/gdbinit
index 9484b51..3b6fe50 100644
--- a/Misc/gdbinit
+++ b/Misc/gdbinit
@@ -150,10 +150,10 @@ end
# generally useful macro to print a Unicode string
def pu
- set $uni = $arg0
+ set $uni = $arg0
set $i = 0
while (*$uni && $i++<100)
- if (*$uni < 0x80)
+ if (*$uni < 0x80)
print *(char*)$uni++
else
print /x *(short*)$uni++
diff --git a/Misc/python.man b/Misc/python.man
index ea9540c..6dbdba9 100644
--- a/Misc/python.man
+++ b/Misc/python.man
@@ -103,10 +103,10 @@ Python is also adaptable as an extension language for existing
applications.
See the internal documentation for hints.
.PP
-Documentation for installed Python modules and packages can be
-viewed by running the
+Documentation for installed Python modules and packages can be
+viewed by running the
.B pydoc
-program.
+program.
.SH COMMAND LINE OPTIONS
.TP
.B \-B
@@ -149,23 +149,20 @@ Further restrictions may be imposed to prevent the user from injecting
malicious code.
.TP
.BI "\-m " module-name
-Searches
-.I sys.path
-for the named module and runs the corresponding
-.I .py
+Searches
+.I sys.path
+for the named module and runs the corresponding
+.I .py
file as a script.
.TP
.B \-O
-Turn on basic optimizations. This changes the filename extension for
-compiled (bytecode) files from
-.I .pyc
-to \fI.pyo\fP. Given twice, causes docstrings to be discarded.
+Turn on basic optimizations. Given twice, causes docstrings to be discarded.
.TP
.B \-OO
Discard docstrings in addition to the \fB-O\fP optimizations.
.TP
.B \-q
-Do not print the version and copyright messages. These messages are
+Do not print the version and copyright messages. These messages are
also suppressed in non-interactive mode.
.TP
.B \-s
@@ -192,7 +189,7 @@ The text I/O layer will still be line-buffered.
.B \-v
Print a message each time a module is initialized, showing the place
(filename or built-in module) from which it is loaded. When given
-twice, print a message for each file that is checked for when
+twice, print a message for each file that is checked for when
searching for a module. Also provides information on module cleanup
at exit.
.TP
@@ -417,7 +414,7 @@ the \fB\-u\fP option.
.IP PYTHONVERBOSE
If this is set to a non-empty string it is equivalent to specifying
the \fB\-v\fP option. If set to an integer, it is equivalent to
-specifying \fB\-v\fP multiple times.
+specifying \fB\-v\fP multiple times.
.IP PYTHONWARNINGS
If this is set to a comma-separated string it is equivalent to
specifying the \fB\-W\fP option for each separate value.