Skip to content

deprecations for v1 #402

Closed
Closed

Description

@cjdoris
  • unsafe functions (e.g. pynew, pycopy!, unsafe_pynext, PyNULL) - can mostly be avoided already; could have a safe pynext which returns nothing if iteration has finished
  • CONFIG
  • C.CTX
  • more?

Activity

  1. added this to the v1 milestone on Nov 4, 2023
  2. cjdoris commented on Sep 20, 2025

    @cjdoris
    MemberAuthor

    In particular, we can make Py immutable by making the ptr field const. Then pynew, pycopy! must be removed.

  3. cjdoris commented on Sep 20, 2025

    @cjdoris
    MemberAuthor

    On the safe pynext front we could add a method pynext(x, d) which returns d if there is no next item, then you can do pynext(it, nothing) or whatever.

    Aha this is actually what next does in python anyway.

  4. cjdoris commented on May 31, 2026

    @cjdoris
    MemberAuthor

    In particular, we can make Py immutable by making the ptr field const. Then pynew, pycopy! must be removed.

    But this means we cannot have pydel!, which needs to set the ptr to NULL.

  5. cjdoris commented on May 31, 2026

    @cjdoris
    MemberAuthor

    On the safe pynext front we could add a method pynext(x, d) which returns d if there is no next item, then you can do pynext(it, nothing) or whatever.

    Aha this is actually what next does in python anyway.

    This is now on main.

  6. cjdoris commented on May 31, 2026

    @cjdoris
    MemberAuthor

    Reviewing exports.jl and publics.jl, there is nothing exported to deprecate, but we should remove these publics:

    • Old config system: CONFIG (replace with env vars and preferences).
    • Unsafe API: getptr, pycopy!, pyisnull, pynew, PyNULL, unsafe_pynext.
    • pydel! should be renamed to unsafe_pydel.
  7. cjdoris commented on Jun 4, 2026

    @cjdoris
    MemberAuthor

    Resolved by #785, #786, #787 and #788.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions