Commit c1004b85 authored by Łukasz Langa's avatar Łukasz Langa

Python 3.8.0a4

parent f7b494c4
......@@ -20,10 +20,10 @@
#define PY_MINOR_VERSION 8
#define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
#define PY_RELEASE_SERIAL 3
#define PY_RELEASE_SERIAL 4
/* Version as a string */
#define PY_VERSION "3.8.0a3+"
#define PY_VERSION "3.8.0a4"
/*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
......
This diff is collapsed.
This diff is collapsed.
Remove references to "aix3" and "aix4".
Patch by M. Felt.
``python-config --ldflags`` no longer includes flags of the
``LINKFORSHARED`` variable. The ``LINKFORSHARED`` variable must only be used
to build executables.
Fix regression introduced in bpo-36146 refactoring setup.py
setup.py now correctly reports missing OpenSSL headers and libraries again.
Release builds and debug builds are now ABI compatible: defining the
``Py_DEBUG`` macro no longer implies the ``Py_TRACE_REFS`` macro, which
introduces the only ABI incompatibility. The ``Py_TRACE_REFS`` macro, which
adds the :func:`sys.getobjects` function and the :envvar:`PYTHONDUMPREFS`
environment variable, can be set using the new ``./configure --with-trace-refs``
build option.
``make tags`` and ``make TAGS`` now also parse ``Modules/_io/*.c`` and
``Modules/_io/*.h``.
Add ``-fmax-type-align=8`` to CFLAGS when clang compiler is detected. The
pymalloc memory allocator aligns memory on 8 bytes. On x86-64, clang expects
alignment on 16 bytes by default and so uses MOVAPS instruction which can
lead to segmentation fault. Instruct clang that Python is limited to
alignemnt on 8 bytes to use MOVUPS instruction instead: slower but don't
trigger a SIGSEGV if the memory is not aligned on 16 bytes. Sadly, the flag
must be added to ``CFLAGS`` and not just ``CFLAGS_NODIST``, since third party C
extensions can have the same issue.
Change ``PyAPI_FUNC(type)``, ``PyAPI_DATA(type)`` and ``PyMODINIT_FUNC``
macros of ``pyport.h`` when ``Py_BUILD_CORE_MODULE`` is defined. The
``Py_BUILD_CORE_MODULE`` define must be now be used to build a C extension
as a dynamic library accessing Python internals: export the PyInit_xxx()
function in DLL exports on Windows.
``./configure --with-pymalloc`` no longer adds the ``m`` flag to SOABI
(sys.implementation.cache_tag). Enabling or disabling pymalloc has no impact
on the ABI.
On Unix, C extensions are no longer linked to libpython except on Android.
It is now possible for a statically linked Python to load a C extension built
using a shared library Python.
When Python is embedded, ``libpython`` must not be loaded with ``RTLD_LOCAL``,
but ``RTLD_GLOBAL`` instead. Previously, using ``RTLD_LOCAL``, it was already
not possible to load C extensions which were not linked to ``libpython``, such
as C extensions of the standard library built by the ``*shared*`` section of
``Modules/Setup``.
distutils, python-config and python-config.py have been modified.
Modify ``PyObject_Init`` to correctly increase the refcount of heap-
allocated Type objects. Also fix the refcounts of the heap-allocated types
that were either doing this manually or not decreasing the type's refcount
in tp_dealloc
Fixed an accidental change to the datetime C API where the arguments to the
:c:func:`PyDate_FromTimestamp` function were incorrectly interpreted as a
single timestamp rather than an arguments tuple, which causes existing code to
start raising :exc:`TypeError`. The backwards-incompatible change was only
present in alpha releases of Python 3.8. Patch by Paul Ganssle.
Since Python 3.7.0, calling :c:func:`Py_DecodeLocale` before
:c:func:`Py_Initialize` produces mojibake if the ``LC_CTYPE`` locale is coerced
and/or if the UTF-8 Mode is enabled by the user configuration. The LC_CTYPE
coercion and UTF-8 Mode are now disabled by default to fix the mojibake issue.
They must now be enabled explicitly (opt-in) using the new
:c:func:`_Py_PreInitialize` API with ``_PyPreConfig``.
Change the value of ``CLEANBYTE``, ``DEADDYTE`` and ``FORBIDDENBYTE`` internal
constants used by debug hooks on Python memory allocators
(:c:func:`PyMem_SetupDebugHooks` function). Byte patterns ``0xCB``, ``0xDB``
and ``0xFB`` have been replaced with ``0xCD``, ``0xDD`` and ``0xFD`` to use the
same values than Windows CRT debug ``malloc()`` and ``free()``.
:c:macro:`PyDoc_VAR(name)` and :c:macro:`PyDoc_STRVAR(name,str)` now create
``static const char name[]`` instead of ``static char name[]``. Patch by Inada Naoki.
Fix memory leak in :c:func:`Py_SetStandardStreamEncoding`: release memory if
the function is called twice.
Add missing :c:func:`PyObject_GC_Track` calls in the :mod:`pickle` module.
Patch by Zackery Spytz.
Regenerate :mod:`keyword` from the Grammar and Tokens file using pgen. Patch
by Pablo Galindo.
Include node names in ``ParserError`` messages, instead of numeric IDs.
Patch by A. Skrobov.
Fix a possible reference leak in :func:`itertools.count`.
Fix a possible double ``PyMem_FREE()`` due to tokenizer.c's ``tok_nextc()``.
Changing ``dict`` keys during iteration of the dict itself, ``keys()``,
``values()``, or ``items()`` will now be detected in certain corner cases where
keys are deleted/added so that the number of keys isn't changed.
A `RuntimeError` will be raised after ``len(dict)`` iterations.
Contributed by Thomas Perl.
Fixed support of the surrogatepass error handler in the UTF-8 incremental
decoder.
Fix running script with encoding cookie and LF line ending
may fail on Windows.
Fix signed integer overflow in _ctypes.c's ``PyCArrayType_new()``.
:c:func:`PyEval_AcquireLock` and :c:func:`PyEval_AcquireThread` now
terminate the current thread if called while the interpreter is
finalizing, making them consistent with :c:func:`PyEval_RestoreThread`,
:c:func:`Py_END_ALLOW_THREADS`, and :c:func:`PyGILState_Ensure`.
\ No newline at end of file
Implement :pep:`570` (Python positional-only parameters). Patch by Pablo
Galindo.
Change str.capitalize to use titlecase for the first character instead of
uppercase.
On AIX, :attr:`sys.platform` doesn't contain the major version anymore.
Always return ``'aix'``, instead of ``'aix3'`` .. ``'aix7'``. Since
older Python versions include the version number, it is recommended to
always use ``sys.platform.startswith('aix')``.
Contributed by M. Felt.
Debug memory allocators: disable serialno field by default from debug hooks on
Python memory allocators to reduce the memory footprint by 5%. Enable
:mod:`tracemalloc` to get the traceback where a memory block has been allocated
when a fatal memory error is logged to decide where to put a breakpoint.
Compile Python with ``PYMEM_DEBUG_SERIALNO`` defined to get back the field.
``dict.pop()`` is now up to 33% faster thanks to Argument Clinic. Patch by
Inada Naoki.
Remove parser headers and related function declarations that lack
implementations after the removal of pgen.
Fix Python Initialization code on FreeBSD to detect properly when stdin file
descriptor (fd 0) is invalid.
In debug build, import now also looks for C extensions compiled in release
mode and for C extensions compiled in the stable ABI.
The :func:`~inspect.getfullargspec` function in the :mod:`inspect` module is
deprecated in favor of the :func:`inspect.signature` API. Contributed by
Pablo Galindo.
@typing.type_check_only now allows type stubs to mark functions and classes not available during runtime.
\ No newline at end of file
Updates the docs.python.org page with the addition of a 'Contributing to Docs' link at the end of the page (between 'Reporting Bugs' and 'About Documentation'). Updates the 'Found a Bug' page with additional links and information in the Documentation Bugs section.
\ No newline at end of file
Added Documention for PyInterpreterState_Main().
\ No newline at end of file
Using the code of the ``Tools/scripts/serve.py`` script as an example in the
:mod:`wsgiref` documentation. Contributed by Stéphane Wirtel.
Avoid the duplication of code from ``Tools/scripts/serve.py`` in using the
:rst:dir:`literalinclude` directive for the basic wsgiref-based web server in the
documentation of :mod:`wsgiref`. Contributed by Stéphane Wirtel.
New documentation translation: `Simplified Chinese
<https://docs.python.org/zh-cn/>`_.
Remove obsolete comments from docstrings in fractions.Fraction
Fix starting IDLE with pyshell. Add idlelib.pyshell alias at top; remove
pyshell alias at bottom. Remove obsolete __name__=='__main__' command.
Fix ``setup.py check --restructuredtext`` for
files containing ``include`` directives.
Fix the multiprocessing.semaphore_tracker so it is reused by child processes
Do not raise AttributeError when calling the inspect functions
isgeneratorfunction, iscoroutinefunction, isasyncgenfunction on a method
created from an arbitrary callable. Instead, return False.
Implemented Happy Eyeballs in `asyncio.create_connection()`. Added two new
arguments, *happy_eyeballs_delay* and *interleave*,
to specify Happy Eyeballs behavior.
:func:`xml.sax.parse` now supports :term:`path-like <path-like object>`.
Patch by Mickaël Schoentgen.
:class:`wsgiref.handlers.BaseHandler` now handles abrupt client connection
terminations gracefully. Patch by Petter Strandmark.
Don't return deleted attributes when calling dir on a
:class:`unittest.mock.Mock`.
Add transparency methods to :class:`tkinter.PhotoImage`. Patch by Zackery
Spytz.
Fix potential resource warnings in distutils. Patch by Mickaël Schoentgen.
Add support for :func:`classmethod` and :func:`staticmethod` to
:func:`unittest.mock.create_autospec`. Initial patch by Felipe Ochoa.
Added :meth:`~socket.create_server()` and :meth:`~socket.has_dualstack_ipv6()`
convenience functions to automate the necessary tasks usually involved when
creating a server socket, including accepting both IPv4 and IPv6 connections
on the same socket. (Contributed by Giampaolo Rodola in :issue:`17561`.)
:mod:`modulefinder` no longer crashes when encountering syntax errors in followed imports.
Patch by Brandt Bucher.
\ No newline at end of file
:mod:`modulefinder` correctly handles modules that have the same name as a bad package.
Patch by Brandt Bucher.
\ No newline at end of file
:mod:`modulefinder` no longer depends on the deprecated :mod:`imp` module, and the initializer for :class:`modulefinder.ModuleFinder` now has immutable default arguments.
Patch by Brandt Bucher.
\ No newline at end of file
Added new alternate constructors :meth:`datetime.date.fromisocalendar` and
:meth:`datetime.datetime.fromisocalendar`, which construct date objects from
ISO year, week number and weekday; these are the inverse of each class's
``isocalendar`` method. Patch by Paul Ganssle.
Added support for keyword arguments `default_namespace` and `xml_declaration` in functions
ElementTree.tostring() and ElementTree.tostringlist().
Add time module support and fix test_time faiures for VxWorks.
The :meth:`imap.IMAP4.logout` method no longer ignores silently arbitrary
exceptions.
Calling ``stop()`` on an unstarted or stopped :func:`unittest.mock.patch`
object will now return `None` instead of raising :exc:`RuntimeError`,
making the method idempotent.
Patch by Karthikeyan Singaravelan.
inspect.getdoc() can now find docstrings for member objects when __slots__
is a dictionary.
Fixed wrong indentation writing for CDATA section in xml.dom.minidom.
Patch by Vladimir Surjaninov.
Errors during writing to a ZIP file no longer prevent to properly close it.
Stop rejecting IPv4 octets for being ambiguously octal. Leading zeros are ignored, and no longer are assumed to specify octal octets. Octets are always decimal numbers. Octets must still be no more than three digits, including leading zeroes.
``os.path.normcase()`` relies on ``os.fspath()`` to check the type of its argument. Redundant checks have been removed from its ``posixpath.normcase()`` and ``ntpath.normcase()`` implementations.
Patch by Wolfgang Maier.
Deprecated passing required arguments like *func* as keyword arguments
in functions which should accept arbitrary keyword arguments and pass them
to other function. Arbitrary keyword arguments (even with names "self" and
"func") can now be passed to these functions if the required arguments are
passed as positional arguments.
If *debuglevel* is set to >0 in :mod:`http.client`, print all values for headers with multiple values for the same header name. Patch by Matt Houglum.
Optimized ``http.client.HTTPResponse.read()`` for large response. Patch by
Inada Naoki.
Improve error message when trying to open existing DBM database that
actually doesn't exist. Patch by Marco Rougeth.
Fix :func:`time.mktime` error handling on AIX for year before 1970.
Set backlog=None as the default for socket.create_server.
The random module now prefers the lean internal _sha512 module over hashlib
for seed(version=2) to optimize import time.
``json.loads`` now emits ``DeprecationWarning`` when ``encoding`` option is
specified. Patch by Matthias Bussonnier.
The ``_lsprof`` module now uses internal timer same to ``time.perf_counter()`` by default.
``gettimeofday(2)`` was used on Unix. New timer has better resolution on most Unix
platforms and timings are no longer impacted by system clock updates since ``perf_counter()``
is monotonic. Patch by Inada Naoki.
In development mode (:option:`-X` ``dev``) and in debug build, the
:class:`io.IOBase` destructor now logs ``close()`` exceptions. These exceptions
are silent by default in release mode.
Fix ``isinstance`` check for Mock objects with spec when the code is
executed under tracing. Patch by Karthikeyan Singaravelan.
Fix :mod:`asyncio` wait() not removing callback if exception
\ No newline at end of file
Path expressions in xml.etree.ElementTree can now avoid explicit namespace
prefixes for tags (or the "{namespace}tag" notation) by passing a default
namespace with an empty string prefix.
improve performance of ``IPNetwork.__contains__()``
\ No newline at end of file
:func:`shutil.which` and :func:`distutils.spawn.find_executable` now use
``os.confstr("CS_PATH")`` if available instead of :data:`os.defpath`, if the
``PATH`` environment variable is not set. Moreover, don't use
``os.confstr("CS_PATH")`` nor :data:`os.defpath` if the ``PATH`` environment
variable is set to an empty string.
Fix :mod:`distutils.sysconfig` if :data:`sys.executable` is ``None`` or an
empty string: use :func:`os.getcwd` to initialize ``project_base``. Fix
also the distutils build command: don't use :data:`sys.executable` if it is
``None`` or an empty string.
The C version of functools.lru_cache() was treating calls with an empty
``**kwargs`` dictionary as being distinct from calls with no keywords at all.
This did not result in an incorrect answer, but it did trigger an unexpected
cache miss.
The TreeBuilder and XMLPullParser in xml.etree.ElementTree gained support
for parsing comments and processing instructions.
Patch by Stefan Behnel.
The XMLParser() in xml.etree.ElementTree provides namespace prefix context to the
parser target if it defines the callback methods "start_ns()" and/or "end_ns()".
Patch by Stefan Behnel.
Add missing matrix multiplication operator support to weakref.proxy.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment