Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

array: Add 'w' type and deprecate 'u' type. #80480

Closed
methane opened this issue Mar 15, 2019 · 22 comments
Closed

array: Add 'w' type and deprecate 'u' type. #80480

methane opened this issue Mar 15, 2019 · 22 comments
Labels
3.13 new features, bugs and security fixes extension-modules C modules in the Modules dir type-feature A feature request or enhancement

Comments

@methane
Copy link
Member

methane commented Mar 15, 2019

BPO 36299
Nosy @terryjreedy, @ncoghlan, @methane, @skrah, @serhiy-storchaka
PRs
  • bpo-36299: array('u') uses Py_UCS4 instead of Py_UNICODE  #12497
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = None
    closed_at = None
    created_at = <Date 2019-03-15.05:50:02.657>
    labels = ['3.8', 'library']
    title = "array: Deprecate 'u' type in array module"
    updated_at = <Date 2020-04-23.00:47:43.731>
    user = 'https://github.com/methane'

    bugs.python.org fields:

    activity = <Date 2020-04-23.00:47:43.731>
    actor = 'methane'
    assignee = 'none'
    closed = False
    closed_date = None
    closer = None
    components = ['Library (Lib)']
    creation = <Date 2019-03-15.05:50:02.657>
    creator = 'methane'
    dependencies = []
    files = []
    hgrepos = []
    issue_num = 36299
    keywords = ['patch']
    message_count = 12.0
    messages = ['337967', '338031', '338595', '338598', '338607', '338608', '338609', '338610', '338611', '367000', '367044', '367065']
    nosy_count = 5.0
    nosy_names = ['terry.reedy', 'ncoghlan', 'methane', 'skrah', 'serhiy.storchaka']
    pr_nums = ['12497']
    priority = 'normal'
    resolution = None
    stage = None
    status = 'open'
    superseder = None
    type = None
    url = 'https://bugs.python.org/issue36299'
    versions = ['Python 3.8']

    Linked PRs

    @methane
    Copy link
    Member Author

    methane commented Mar 15, 2019

    The doc says:

    'u' will be removed together with the rest of the Py_UNICODE API.
    Deprecated since version 3.3, will be removed in version 4.0.
    https://docs.python.org/3/library/array.html

    But DeprecationWarning is not raised yet. Let's raise it.

    • 3.8 -- PendingDeprecationWarning
    • 3.9 -- DeprecationWarning
    • 4.0 or 3.10 -- Remove it.

    @methane methane added 3.8 only security fixes stdlib Python modules in the Lib dir labels Mar 15, 2019
    @terryjreedy
    Copy link
    Member

    '4.0' is a stand-in for 'sometime after 2.7.final', scheduled for Jan 2020. A Pending... for 3.8.0, scheduled for Oct 2019, seems reasonable to me. Perhaps we should have a pydev discussion for the general issue of post 2.7 removals of already deprecated items.

    @methane
    Copy link
    Member Author

    methane commented Mar 22, 2019

    https://mail.python.org/pipermail/python-dev/2019-March/156807.html

    We may able to convert 'u' to wchar_t to int32_t and un-deprecate it.

    @methane
    Copy link
    Member Author

    methane commented Mar 22, 2019

    I found converting Py_UNICODE to Py_UCS4 wad happened, and reverted.
    ref: https://bugs.python.org/issue13072

    @methane methane changed the title Deprecate 'u' type in array module array: Deprecate 'u' type in array module Mar 22, 2019
    @skrah
    Copy link
    Mannequin

    skrah mannequin commented Mar 22, 2019

    I think the problem is still whether to use 'u' == UCS2 and 'w' == UCS4 like in PEP-3118.

    For the project I'm currently working on I'd need these for buffer exports:

    >>> from xnd import *
    >>> x = xnd(["abc", "xyz"], dtype="fixed_string(10, 'utf16')")
    >>> y = xnd(["abc", "xyz"], dtype="fixed_string(10, 'utf32')")
    >>> 
    >>> memoryview(x)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: type is not supported by the buffer protocol

    The use case is not an array that represents a single utf16 string, but
    an array *of* fixed strings with different encodings.

    So x would be exported with format 'u' and y with format 'w'.

    @skrah
    Copy link
    Mannequin

    skrah mannequin commented Mar 22, 2019

    Just to demonstrate what the format would look like, this is working
    for an array of fixed bytes:

    >>> x = xnd([b"123", b"23456"], dtype="fixed_bytes(size=10)")
    >>> memoryview(x).format
    '10s'

    So the formats in the previous message would be '10u' and '10w'.

    @serhiy-storchaka
    Copy link
    Member

    array('u') is not tied with the legacy Unicode C API. It is possible to use the modern wchar_t based Unicode C API for it. See bpo-36346.

    There are benefits from getting rid of the legacy Unicode C API, but not from array('u').

    @skrah
    Copy link
    Mannequin

    skrah mannequin commented Mar 22, 2019

    array() uses struct module characters except for 'u'. PEP-3118 was
    supposed to be implemented in the struct module.

    If array() continues to use 'u', the only sensible thing would be
    to remove (or rename) 'a', 'u' and 'w' from PEP-3118.

    @skrah
    Copy link
    Mannequin

    skrah mannequin commented Mar 22, 2019

    The funny thing is that array() already knows this:

    >>> import array
    >>> a = array.array("u", "123")
    >>> memoryview(a).format
    'w'

    @methane
    Copy link
    Member Author

    methane commented Apr 22, 2020

    I closed #56706 (Py_UNICODE -> Py_UCS4).
    I created #63852 (Py_UNICODE -> wchar_t) instead.

    @terryjreedy
    Copy link
    Member

    Should this issue be closed, possibly as superseded by bpo-36346, the issue for the new PR-19653?

    @methane
    Copy link
    Member Author

    methane commented Apr 23, 2020

    While array('u') doesn't use deprecated API with #63852, I still don't like 'u' because:

    • I don't have any reason to use platform dependant wchar_t. 1
    • It is not consistent with PEP-3118.

    How about this plan?

    • Add 'w' for Py_UCS4.
    • Deprecate 'u', and remove it in the future.

    @ezio-melotti ezio-melotti transferred this issue from another repository Apr 10, 2022
    @methane methane removed the 3.8 only security fixes label May 20, 2022
    @ezio-melotti
    Copy link
    Member

    Even though this has been deprecated in the docs since 3.3, it doesn't seem to raise a DeprecationWarning. If we want to remove it we should add the warning, and then remove it in a later version. The documentation should also be updated according to the plan (see #93986).

    hugovk added a commit to hugovk/cpython that referenced this issue Aug 6, 2022
    hugovk added a commit to hugovk/cpython that referenced this issue Aug 7, 2022
    hugovk added a commit to hugovk/cpython that referenced this issue Aug 7, 2022
    hugovk added a commit to hugovk/cpython that referenced this issue Aug 7, 2022
    hugovk added a commit to hugovk/cpython that referenced this issue Aug 7, 2022
    hugovk added a commit to hugovk/cpython that referenced this issue Aug 7, 2022
    hugovk added a commit to hugovk/cpython that referenced this issue Aug 7, 2022
    hugovk added a commit to hugovk/cpython that referenced this issue Aug 7, 2022
    hugovk added a commit to hugovk/cpython that referenced this issue Aug 7, 2022
    @hugovk
    Copy link
    Member

    hugovk commented Aug 7, 2022

    Please see PR #95760 to emit a DeprecationWarning.

    @hugovk
    Copy link
    Member

    hugovk commented Nov 27, 2022

    • Add 'w' for Py_UCS4.

    @methane Would you be able to look into this? It would be good to have the replacement ready when we start emitting deprecation warnings.

    @hugovk
    Copy link
    Member

    hugovk commented May 2, 2023

    The 3.12 beta feature freeze is in a week, so we will likely need to target changing this in 3.13 with removal in 3.15.

    @arhadthedev arhadthedev added 3.13 new features, bugs and security fixes extension-modules C modules in the Modules dir type-feature A feature request or enhancement and removed stdlib Python modules in the Lib dir labels May 5, 2023
    @encukou
    Copy link
    Member

    encukou commented May 9, 2023

    How about:

    • Add 'w' for Py_UCS4.
    • Wait until all Python versions that don't have w reach end of life
    • Deprecate 'u', and remove it in the future.

    Is there a reason to rush this?

    @methane
    Copy link
    Member Author

    methane commented May 10, 2023

    array('u') will cause bugs and almost no valid use case for it.
    So waiting deprecation 5+ years seems too slow.

    On the other hand, I don't hurry about removing it.
    I can wait 3+ releases instead of minimum 2 releases.

    My plan is:

    • Add 'w' and deprecate 'u' in Python 3.13
    • Remove 'u' in Python 3.16+ (Postpone removal if some users still use 'u').

    @methane methane changed the title array: Deprecate 'u' type in array module array: Add 'w' type and deprecate 'u' type. May 10, 2023
    @vstinner
    Copy link
    Member

    vstinner commented Jun 6, 2023

    @methane added array.array('w') format to Python 3.13.

    @methane: Would you mind to also document the addition with versionchanged in https://docs.python.org/dev/library/array.html ? Currently, it's only documented at: https://docs.python.org/dev/whatsnew/3.13.html#array

    @vstinner
    Copy link
    Member

    vstinner commented Jun 6, 2023

    I dislike the fact that array.array('u') is only deprecated in the doc. I would prefer to either emit a DeprecationWarning at runtime, or remove the deprecation. See also issue #105373. I'm fine with really deprecating it if someone wants to submit a PR (@methane ?).

    @hugovk
    Copy link
    Member

    hugovk commented Jun 6, 2023

    @vstinner PR already open at #95760 :)

    @hugovk
    Copy link
    Member

    hugovk commented Jun 11, 2023

    array('u') will cause bugs and almost no valid use case for it. So waiting deprecation 5+ years seems too slow.

    On the other hand, I don't hurry about removing it. I can wait 3+ releases instead of minimum 2 releases.

    My plan is:

    • Add 'w' and deprecate 'u' in Python 3.13

    Done in #105242 and #95760.

    • Remove 'u' in Python 3.16+ (Postpone removal if some users still use 'u').

    Let's close this issue and come back to this in four years.

    @hugovk hugovk closed this as completed Jun 11, 2023
    TheShermanTanker added a commit to TheShermanTanker/cpython that referenced this issue Jun 14, 2023
    commit 74c2422
    Author: Guido van Rossum <guido@python.org>
    Date:   Wed Jun 14 08:19:24 2023 -0700
    
        Update DSL docs for cases generator (python#105753)
    
        * Clarify things around goto error/ERROR_IF a bit
        * Remove docs for super-instructions
        * Add pseudo; fix heading markup
    
    commit 1d857da
    Author: Mark Shannon <mark@hotpy.org>
    Date:   Wed Jun 14 16:15:08 2023 +0100
    
        pythonGH-77273: Better bytecodes for f-strings (pythonGH-6132)
    
    commit 307bcea
    Author: Victor Stinner <vstinner@python.org>
    Date:   Wed Jun 14 17:00:40 2023 +0200
    
        xmlrpc.client uses datetime.datetime.isoformat() (python#105741)
    
        Reimplement _iso8601_format() using the datetime isoformat() method.
        Ignore the timezone.
    
        Co-Authored-by: Paul Ganssle <1377457+pganssle@users.noreply.github.com>
    
    commit 7b1f0f2
    Author: Alex Waygood <Alex.Waygood@Gmail.com>
    Date:   Wed Jun 14 15:58:41 2023 +0100
    
        pythongh-105570: Deprecate unusual ways of creating empty TypedDicts (python#105780)
    
        Deprecate two methods of creating typing.TypedDict classes with 0 fields using the functional syntax: `TD = TypedDict("TD")` and `TD = TypedDict("TD", None)`. Both will be disallowed in Python 3.15. To create a TypedDict class with 0 fields, either use `class TD(TypedDict): pass` or `TD = TypedDict("TD", {})`.
    
    commit d32e8d6
    Author: TATHAGATA ROY <royzen9495@gmail.com>
    Date:   Wed Jun 14 19:51:30 2023 +0530
    
        pythongh-105196: Fix indentations of section headings in C API docs (python#105672)
    
    commit 4a113e2
    Author: Alex Waygood <Alex.Waygood@Gmail.com>
    Date:   Wed Jun 14 15:19:27 2023 +0100
    
        Typing docs: move the deprecated stuff below the non-deprecated stuff (python#105781)
    
    commit 7199584
    Author: Mark Shannon <mark@hotpy.org>
    Date:   Wed Jun 14 13:46:37 2023 +0100
    
        pythonGH-100987: Allow objects other than code objects as the "executable" of an internal frame. (pythonGH-105727)
    
        * Add table describing possible executable classes for out-of-process debuggers.
    
        * Remove shim code object creation code as it is no longer needed.
    
        * Make lltrace a bit more robust w.r.t. non-standard frames.
    
    commit ad56340
    Author: Alex Waygood <Alex.Waygood@Gmail.com>
    Date:   Wed Jun 14 13:38:49 2023 +0100
    
        pythongh-105566: Deprecate unusual ways of creating `typing.NamedTuple` classes (python#105609)
    
        Deprecate creating a typing.NamedTuple class using keyword arguments to denote the fields (`NT = NamedTuple("NT", x=int, y=str)`). This will be disallowed in Python 3.15. Use the class-based syntax or the functional syntax instead.
    
        Two methods of creating `NamedTuple` classes with 0 fields using the functional syntax are also deprecated, and will be disallowed in Python 3.15: `NT = NamedTuple("NT")` and `NT = NamedTuple("NT", None)`. To create a `NamedTuple` class with 0 fields, either use `class NT(NamedTuple): pass` or `NT = NamedTuple("NT", [])`.
    
    commit fc8037d
    Author: Jelle Zijlstra <jelle.zijlstra@gmail.com>
    Date:   Wed Jun 14 05:35:06 2023 -0700
    
        pythongh-104873: Add typing.get_protocol_members and typing.is_protocol (python#104878)
    
        Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
    
    commit ba516e7
    Author: Kirill Podoprigora <kirill.bast9@mail.ru>
    Date:   Wed Jun 14 15:17:12 2023 +0300
    
        pythongh-102541: Hide traceback in help prompt (pythongh-102614)
    
    commit 0316063
    Author: Victor Stinner <vstinner@python.org>
    Date:   Wed Jun 14 12:30:22 2023 +0200
    
        gdb libpython.py: Remove compatibility code (python#105739)
    
        Remove compatibility code for Python 2 and early Python 3 versions.
    
        * Remove os_fsencode() reimplementation: use os.fsencode() directly.
          os.fsencode() was added to Python 3.2.
        * Remove references to Python 2 and "Python 3": just say "Python".
        * Remove outdated u'' string format: use '' instead.
    
    commit e5d45b7
    Author: Nikita Sobolev <mail@sobolevn.me>
    Date:   Wed Jun 14 13:29:16 2023 +0300
    
        pythongh-105745: Fix open method of webbrowser.Konqueror (python#105746)
    
    commit 67f69db
    Author: Nikita Sobolev <mail@sobolevn.me>
    Date:   Wed Jun 14 13:26:20 2023 +0300
    
        pythongh-105687: Remove deprecated objects from `re` module (python#105688)
    
    commit fb655e0
    Author: Victor Stinner <vstinner@python.org>
    Date:   Wed Jun 14 12:12:25 2023 +0200
    
        _ctypes callbacks.c uses _Py_COMP_DIAG_IGNORE_DEPR_DECLS (python#105732)
    
        Replace #pragma with _Py_COMP_DIAG_PUSH,
        _Py_COMP_DIAG_IGNORE_DEPR_DECLS and _Py_COMP_DIAG_POP to ease Python
        maintenance. Also add a comment explaining why callbacks.c ignores a
        deprecation warning.
    
    commit 5cdd5ba
    Author: Jelle Zijlstra <jelle.zijlstra@gmail.com>
    Date:   Wed Jun 14 00:26:48 2023 -0700
    
        tarfile: Fix positional-only syntax in docs (pythonGH-105770)
    
        The syntax used in the current docs (a / before any args) is invalid.
    
        I think the right approach is for the arguments to arbitrary
        filter functions to be treated as positional-only, meaning that users
        can supply filter functions with any names for the argument. tarfile.py
        only calls the filter function with positional arguments.
    
    commit 6199fe3
    Author: Eddie Elizondo <eduardo.elizondorueda@gmail.com>
    Date:   Wed Jun 14 00:33:32 2023 -0400
    
        pythongh-105587: Remove assertion from `_PyStaticObject_CheckRefcnt` (python#105638)
    
    commit dab5a3e
    Author: Barney Gale <barney.gale@gmail.com>
    Date:   Wed Jun 14 05:06:58 2023 +0100
    
        pythonGH-89812: Clean up pathlib tests. (python#104829)
    
        Clean up pathlib tests.
    
        Merge `PurePathTest` into `_BasePurePathTest`, and `PathTest` into
        `_BasePathTest`.
    
    commit b95de96
    Author: Victor Stinner <vstinner@python.org>
    Date:   Wed Jun 14 05:34:11 2023 +0200
    
        pythongh-105751: test_ctypes avoids "from ctypes import *" (python#105768)
    
        Using "import *" prevents linters like pyflakes to detect undefined names
        (usually missing imports).
    
        Replace c_voidp with c_void_p.
    
    commit 381a1dc
    Author: Victor Stinner <vstinner@python.org>
    Date:   Wed Jun 14 04:47:01 2023 +0200
    
        pythongh-105751: test_ctypes.test_numbers uses top level imports (python#105762)
    
        Moroever, c_ulonglong and c_bool are always available.
    
    commit ac7b551
    Author: Victor Stinner <vstinner@python.org>
    Date:   Wed Jun 14 04:46:47 2023 +0200
    
        pythongh-105751: test_ctypes gets Windows attrs from ctypes (python#105758)
    
        test_ctypes now gets attributes specific to Windows from the ctypes
        module, rather than relying on "from ctypes import *".
    
        Attributes:
    
        * ctypes.FormatError
        * ctypes.WINFUNCTYPE
        * ctypes.WinError
        * ctypes.WinDLL
        * ctypes.windll
        * ctypes.oledll
        * ctypes.get_last_error()
        * ctypes.set_last_error()
    
    commit b87d288
    Author: Eric Snow <ericsnowcurrently@gmail.com>
    Date:   Tue Jun 13 18:58:23 2023 -0600
    
        pythongh-105699: Use a Thread-Local Variable for PKGCONTEXT (pythongh-105740)
    
        This fixes a race during import. The existing _PyRuntimeState.imports.pkgcontext is shared between interpreters, and occasionally this would cause a crash when multiple interpreters were importing extensions modules at the same time.  To solve this we add a thread-local variable for the value.  We also leave the existing state (and infrequent race) in place for platforms that do not support thread-local variables.
    
    commit fcf0647
    Author: Eric Snow <ericsnowcurrently@gmail.com>
    Date:   Tue Jun 13 18:39:18 2023 -0600
    
        pythongh-104812: Skip Pending Calls Tests if No Threading (pythongh-105761)
    
        This fixes the WASM buildbots.
    
    commit b542972
    Author: Victor Stinner <vstinner@python.org>
    Date:   Wed Jun 14 02:33:00 2023 +0200
    
        pythongh-105387: Limited C API implements Py_INCREF() as func (python#105388)
    
        In the limited C API version 3.12, Py_INCREF() and Py_DECREF()
        functions are now implemented as opaque function calls to hide
        implementation details.
    
    commit f3266c0
    Author: zentarim <33746047+zentarim@users.noreply.github.com>
    Date:   Wed Jun 14 02:45:47 2023 +0300
    
        pythonGH-104554: Add RTSPS support to `urllib/parse.py` (python#104605)
    
        * pythonGH-104554: Add RTSPS support to `urllib/parse.py`
    
        RTSPS is the permanent scheme defined in
        https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml
        alongside RTSP and RTSPU schemes.
    
        * 📜🤖 Added by blurb_it.
    
        ---------
    
        Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
    
    commit 4cefe3c
    Author: Steve Dower <steve.dower@python.org>
    Date:   Wed Jun 14 00:00:16 2023 +0100
    
        pythongh-105436: Ignore unrelated errors when checking empty env (pythonGH-105742)
    
    commit 457a459
    Author: Victor Stinner <vstinner@python.org>
    Date:   Wed Jun 14 00:32:12 2023 +0200
    
        pythongh-98040: Fix importbench: use types.ModuleType() (python#105743)
    
        Replace removed imp.new_module(name) with types.ModuleType(name).
    
    commit 757b402
    Author: Eric Snow <ericsnowcurrently@gmail.com>
    Date:   Tue Jun 13 15:02:19 2023 -0600
    
        pythongh-104812: Run Pending Calls in any Thread (pythongh-104813)
    
        For a while now, pending calls only run in the main thread (in the main interpreter).  This PR changes things to allow any thread run a pending call, unless the pending call was explicitly added for the main thread to run.
    
    commit 4e80082
    Author: Łukasz Langa <lukasz@langa.pl>
    Date:   Tue Jun 13 20:44:27 2023 +0000
    
        pythongh-102613: Bump recursion limit to fix running test_pathlib under Coverage (python#105744)
    
    commit be2779c
    Author: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
    Date:   Tue Jun 13 21:42:03 2023 +0100
    
        pythongh-105481: add flags to each instr in the opcode metadata table, to replace opcode.hasarg/hasname/hasconst (python#105482)
    
    commit 2211454
    Author: Victor Stinner <vstinner@python.org>
    Date:   Tue Jun 13 20:16:26 2023 +0200
    
        pythongh-105733: Deprecate ctypes SetPointerType() and ARRAY() (python#105734)
    
    commit b97e14a
    Author: Eric Snow <ericsnowcurrently@gmail.com>
    Date:   Tue Jun 13 11:08:32 2023 -0600
    
        pythongh-105603: Change the PyInterpreterConfig.own gil Field (pythongh-105620)
    
        We are changing it to be more flexible that a strict bool can be for possible future expanded used cases.
    
    commit abfbab6
    Author: Lysandros Nikolaou <lisandrosnik@gmail.com>
    Date:   Tue Jun 13 17:18:11 2023 +0200
    
        pythongh-105718: Fix buffer allocation in tokenizer with readline (python#105728)
    
    commit d0f1afd
    Author: Victor Stinner <vstinner@python.org>
    Date:   Tue Jun 13 13:49:36 2023 +0200
    
        pythongh-105373: Remove PyArg_Parse() deprecation (python#105394)
    
        There is no plan to deprecate PyArg_Parse().
    
        The deprecation was added as a comment in the C API documentation in
        2007 by commit 85eb8c1.
    
    commit ed8217b
    Author: Lysandros Nikolaou <lisandrosnik@gmail.com>
    Date:   Tue Jun 13 12:39:29 2023 +0200
    
        pythongh-105713: Document that tokenize raises when mixing tabs/spaces (python#105723)
    
        * pythongh-105713: Document that tokenize raises when mixing tabs/spaces
        * Update Doc/whatsnew/3.12.rst
    
        Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
    
    commit c3d2d64
    Author: Mark Shannon <mark@hotpy.org>
    Date:   Tue Jun 13 10:34:27 2023 +0100
    
        Fix magic number (pythonGH-105722)
    
    commit 09ffa69
    Author: Mark Shannon <mark@hotpy.org>
    Date:   Tue Jun 13 09:51:05 2023 +0100
    
        pythonGH-105678: Split MAKE_FUNCTION into MAKE_FUNCTION and SET_FUNCTION_ATTRIBUTE (pythonGH-105680)
    
    commit 217589d
    Author: Erlend E. Aasland <erlend.aasland@protonmail.com>
    Date:   Tue Jun 13 10:38:01 2023 +0200
    
        pythongh-105375: Improve error handling in _Unpickler_SetInputStream() (python#105667)
    
        Prevent exceptions from possibly being overwritten in case of multiple
        failures.
    
    commit 840d02f
    Author: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
    Date:   Tue Jun 13 11:36:40 2023 +0530
    
        pythonGH-105684: Require `asyncio.Task` implementations to support `set_name` method (python#105685)
    
    commit 829ac13
    Author: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
    Date:   Tue Jun 13 11:11:34 2023 +0530
    
        pythonGH-104787: use bitfields in `_asyncio` (python#104788)
    
    commit 8da9d1b
    Author: Guido van Rossum <guido@python.org>
    Date:   Mon Jun 12 14:55:15 2023 -0700
    
        pythongh-105540: Fix code generator tests (python#105707)
    
        This involves expanding PEEK, POKE and JUMPBY macros,
        and removing super and register tests (those features no longer exist).
    
    commit ca3cc4b
    Author: Erlend E. Aasland <erlend.aasland@protonmail.com>
    Date:   Mon Jun 12 23:35:07 2023 +0200
    
        pythongh-105375: Explicitly initialise all {Pickler,Unpickler}Object fields (python#105686)
    
        All fields must be explicitly initialised to prevent manipulation of
        uninitialised fields in dealloc.
    
        Align initialisation order with the layout of the object structs.
    
    commit f0fb782
    Author: Jay <74105438+weijay0804@users.noreply.github.com>
    Date:   Tue Jun 13 04:29:02 2023 +0800
    
        pythongh-105331: Change `asyncio.sleep` to raise ``ValueError` for nan (python#105641)
    
        Co-authored-by: Guido van Rossum <gvanrossum@gmail.com>
        Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
    
    commit 9544948
    Author: Guido van Rossum <guido@python.org>
    Date:   Mon Jun 12 11:19:04 2023 -0700
    
        Remove support for legacy bytecode instructions (python#105705)
    
        (A legacy instruction is of the form `instr(FOOBAR)`,
        i.e. missing the `(... -- ...)` stack/cache effect annotation.)
    
    commit b9e7dc7
    Author: Guido van Rossum <guido@python.org>
    Date:   Mon Jun 12 10:47:08 2023 -0700
    
        pythongh-105229: Remove syntactic support for super-instructions (python#105703)
    
        It will not be used again.
    
    commit 4f7d3b6
    Author: Dora203 <66343334+sku2000@users.noreply.github.com>
    Date:   Tue Jun 13 00:14:55 2023 +0800
    
        pythongh-105436: The environment block should end with two null wchar_t values (pythonGH-105495)
    
    commit 2b90796
    Author: Petr Viktorin <encukou@gmail.com>
    Date:   Mon Jun 12 17:45:49 2023 +0200
    
        pythongh-103968: PyType_FromMetaclass: Allow metaclasses with tp_new=NULL (pythonGH-105386)
    
    commit 58f0bda
    Author: Steve Dower <steve.dower@python.org>
    Date:   Mon Jun 12 16:09:14 2023 +0100
    
        ARM64 clamping bug also exists in MSVC 14.35 (pythonGH-105679)
    
    commit a8d69fe
    Author: Nikita Sobolev <mail@sobolevn.me>
    Date:   Mon Jun 12 11:47:56 2023 +0300
    
        pythongh-105673: Fix uninitialized warning in sysmodule.c (python#105674)
    
        In sys_add_xoption(), 'value' may be uninitialized for some error paths.
    
    commit 58f5227
    Author: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
    Date:   Sun Jun 11 22:31:59 2023 +0100
    
        pythongh-105481: add pseudo-instructions to the bytecodes DSL (python#105506)
    
    commit 20a56d8
    Author: Erlend E. Aasland <erlend.aasland@protonmail.com>
    Date:   Sun Jun 11 22:18:46 2023 +0200
    
        pythongh-105375: Harden pyexpat initialisation (python#105606)
    
        Add proper error handling to add_errors_module() to prevent exceptions
        from possibly being overwritten.
    
    commit 41cddc2
    Author: Erlend E. Aasland <erlend.aasland@protonmail.com>
    Date:   Sun Jun 11 22:02:49 2023 +0200
    
        pythongh-105375: Improve error handling in the sys extension module (python#105611)
    
        In _PySys_AddXOptionWithError() and sys_add_xoption(),
        bail on first error to prevent exceptions from possibly being
        overwritten.
    
    commit e8998e4
    Author: Erlend E. Aasland <erlend.aasland@protonmail.com>
    Date:   Sun Jun 11 21:46:19 2023 +0200
    
        pythongh-105375: Improve error handling in _ctypes (python#105593)
    
        Prevent repeated PyLong_FromVoidPtr() from possibly overwriting the
        current exception.
    
    commit 555be81
    Author: Erlend E. Aasland <erlend.aasland@protonmail.com>
    Date:   Sun Jun 11 21:29:19 2023 +0200
    
        pythongh-105375: Improve error handling in PyUnicode_BuildEncodingMap() (python#105491)
    
        Bail on first error to prevent exceptions from possibly being overwritten.
    
    commit 567d6ae
    Author: Erlend E. Aasland <erlend.aasland@protonmail.com>
    Date:   Sun Jun 11 21:23:28 2023 +0200
    
        pythongh-105375: Improve PyErr_WarnExplicit() error handling (python#105610)
    
        Bail on first error to prevent exceptions from possibly being
        overwritten.
    
    commit 3f7c081
    Author: Samet YASLAN <sametyaslan@gmail.com>
    Date:   Sun Jun 11 20:51:21 2023 +0200
    
        bpo-44185: Added close() to mock_open __exit__ (python#26902)
    
    commit 18d16e9
    Author: Tomas R <tomas.roun8@gmail.com>
    Date:   Sun Jun 11 17:50:34 2023 +0200
    
        pythongh-102676: Add more convenience properties to `dis.Instruction` (python#103969)
    
        Adds start_offset, cache_offset, end_offset, baseopcode,
        baseopname, jump_target and oparg to dis.Instruction.
    
        Also slightly improves the disassembly output by allowing
        opnames to overflow into the space reserved for opargs.
    
    commit 845e593
    Author: litlighilit <97860435+litlighilit@users.noreply.github.com>
    Date:   Sun Jun 11 22:06:42 2023 +0800
    
        Fix typo in configparser module docstring (python#105652)
    
        "zc.buildbot" -> "zc.buildout"
    
    commit d4fa529
    Author: Erlend E. Aasland <erlend.aasland@protonmail.com>
    Date:   Sun Jun 11 12:20:43 2023 +0200
    
        pythongh-105375: Improve error handling in the builtins extension module (python#105585)
    
    commit c932f72
    Author: Erlend E. Aasland <erlend.aasland@protonmail.com>
    Date:   Sun Jun 11 12:06:06 2023 +0200
    
        pythongh-105375: Improve _decimal error handling (python#105605)
    
        Fix a bug where an exception could end up being overwritten.
    
    commit 16d4968
    Author: Erlend E. Aasland <erlend.aasland@protonmail.com>
    Date:   Sun Jun 11 12:03:09 2023 +0200
    
        pythongh-105375: Harden _datetime initialisation (python#105604)
    
        Improve error handling so init bails on the first exception.
    
    commit 35cff54
    Author: Erlend E. Aasland <erlend.aasland@protonmail.com>
    Date:   Sun Jun 11 11:58:08 2023 +0200
    
        pythongh-105375: Improve array.array exception handling (python#105594)
    
        Fix a bug where 'tp_richcompare' could end up overwriting an exception.
    
    commit 01f4230
    Author: Erlend E. Aasland <erlend.aasland@protonmail.com>
    Date:   Sun Jun 11 11:56:32 2023 +0200
    
        pythongh-105375: Harden _ssl initialisation (python#105599)
    
        Add proper error handling to prevent reference leaks and overwritten
        exceptions.
    
    commit cc87948
    Author: Hugo van Kemenade <hugovk@users.noreply.github.com>
    Date:   Sun Jun 11 12:17:35 2023 +0300
    
        pythongh-80480: Emit DeprecationWarning for array's 'u' type code (python#95760)
    
    commit 3a314f7
    Author: Gregory P. Smith <greg@krypto.org>
    Date:   Sat Jun 10 12:09:20 2023 -0700
    
        pythongh-99108: Mention HACL\* in the hashlib docs. (python#105634)
    
    commit 0d1d6ab
    Author: Gregory P. Smith <greg@krypto.org>
    Date:   Sat Jun 10 11:49:06 2023 -0700
    
        Cleanup and clarify our hashlib docs. (python#105624)
    
        Clarify and improve our hashlib docs. Now with 50% less mess!
    
    commit d636d7d
    Author: Erlend E. Aasland <erlend.aasland@protonmail.com>
    Date:   Fri Jun 9 23:53:33 2023 +0200
    
        pythongh-105375: Harden error handling in `_testcapi/heaptype.c` (python#105608)
    
        Bail on first error in heapctypesubclasswithfinalizer_finalize()
    
    commit 33c92c4
    Author: Nikita Sobolev <mail@sobolevn.me>
    Date:   Sat Jun 10 00:48:54 2023 +0300
    
        pythongh-105375: Improve error handling in `zoneinfo` module (python#105586)
    
        Fix bugs where exceptions could end up being overwritten
        because of deferred error handling.
    
        Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
    
    commit 91441bf
    Author: Erlend E. Aasland <erlend.aasland@protonmail.com>
    Date:   Fri Jun 9 23:14:02 2023 +0200
    
        Docs: fix formatting in 2023-06-09-12-59-18 NEWS item (python#105607)
    
    commit b047fa5
    Author: Pablo Galindo Salgado <Pablogsal@gmail.com>
    Date:   Fri Jun 9 21:39:01 2023 +0100
    
        pythongh-105549: Tokenize separately NUMBER and NAME tokens and allow 0-prefixed literals (python#105555)
    
    commit 00b599a
    Author: Erlend E. Aasland <erlend.aasland@protonmail.com>
    Date:   Fri Jun 9 22:35:03 2023 +0200
    
        pythongh-105375: Improve error handling in _elementtree (python#105591)
    
        Fix bugs where exceptions could end up being overwritten.
    
    commit f668f73
    Author: Erlend E. Aasland <erlend.aasland@protonmail.com>
    Date:   Fri Jun 9 22:07:47 2023 +0200
    
        pythongh-105375: Improve posix error handling (python#105592)
    
        Fix a bug where an IndexError could end up being overwritten.
    
    commit eede1d2
    Author: Erlend E. Aasland <erlend.aasland@protonmail.com>
    Date:   Fri Jun 9 21:57:25 2023 +0200
    
        pythongh-105375: Improve errnomodule error handling (python#105590)
    
        Bail immediately if an exception is set, to prevent exceptions from
        being overwritten.
    
    commit 89aac6f
    Author: Erlend E. Aasland <erlend.aasland@protonmail.com>
    Date:   Fri Jun 9 19:09:53 2023 +0200
    
        pythongh-105375: Improve _pickle error handling (python#105475)
    
        Error handling was deferred in some cases, which could potentially lead
        to exceptions being overwritten.
    
    commit 6c832dd
    Author: Erlend E. Aasland <erlend.aasland@protonmail.com>
    Date:   Fri Jun 9 18:55:53 2023 +0200
    
        pythongh-105375: Improve error handling in compiler_enter_scope() (python#105494)
    
    commit d7f46bc
    Author: Pablo Galindo Salgado <Pablogsal@gmail.com>
    Date:   Fri Jun 9 17:01:26 2023 +0100
    
        pythongh-105564: Don't include artificial newlines in the line attribute of tokens (python#105565)
    
    commit 1dd267a
    Author: Pablo Galindo Salgado <Pablogsal@gmail.com>
    Date:   Fri Jun 9 16:59:37 2023 +0100
    
        Clarify the supported cases in the tokenize module (python#105569)
    
    commit 59f009e
    Author: Ethan Furman <ethan@stoneleaf.us>
    Date:   Fri Jun 9 08:56:05 2023 -0700
    
        pythongh-105497: [Enum] Fix Flag inversion when alias/mask members exist. (pythonGH-105542)
    
        When inverting a Flag member (or boundary STRICT), only consider other canonical flags; when inverting an IntFlag member (or boundary KEEP), also consider aliases.
    
    commit 8e75592
    Author: Alex Waygood <Alex.Waygood@Gmail.com>
    Date:   Fri Jun 9 16:08:57 2023 +0100
    
        Miscellaneous improvements to the typing docs (python#105529)
    
        Mostly, these are changes so that we use shorter sentences and shorter paragraphs. In particular, I've tried to make the first sentence introducing each object in the typing API short and declarative.
    
    commit b8fa7bd
    Author: Erlend E. Aasland <erlend.aasland@protonmail.com>
    Date:   Fri Jun 9 15:36:59 2023 +0200
    
        pythongh-105557: Remove duplicate sqlite3 test method (python#105558)
    
        test_func_return_too_large_int() was defined twice.
        Keep only the redefined method, as that also checks the tracebacks.
    
    commit 9bf8d82
    Author: Thomas Grainger <tagrain@gmail.com>
    Date:   Fri Jun 9 14:29:09 2023 +0100
    
        pythongh-94924: support `inspect.iscoroutinefunction` in `create_autospec(async_def)` (python#94962)
    
        * support inspect.iscoroutinefunction in create_autospec(async_def)
    
        * test create_autospec with inspect.iscoroutine and inspect.iscoroutinefunction
    
        * test when create_autospec functions check their signature
    
    commit 0f885ff
    Author: Victor Stinner <vstinner@python.org>
    Date:   Fri Jun 9 14:50:31 2023 +0200
    
        pythongh-105407: Remove unused imports (python#105554)
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    3.13 new features, bugs and security fixes extension-modules C modules in the Modules dir type-feature A feature request or enhancement
    Projects
    None yet
    Development

    No branches or pull requests

    8 participants