Skip to content

Development focus areas for 2026-2027 #785

Open

Description

@JukkaL

I'd like us to make progress in some of these areas in 2026 and into 2027. Feel free to propose more areas!

Python feature support

Add support for missing Python features. At least these are important:

  • Real support for generator expressions
  • Nested classes
  • Descriptors

Robustness and safety

  • Major focus on fixing bugs, focusing on deviations from CPython semantics, including crashes.
  • Fix type and memory safety issues.

Examples include generally fixing open bugs, safer # type: ignore comments, and remaining unwanted thread safety issues related to free threading.

Peak performance

  • Support unsigned native integer types like u64.
  • Support fast direct access to native integer/float buffers via new librt features (beyond vec types to avoid copying).
  • Support direct C calls into C extensions built separately (also non-mypyc C extensions).
  • Support value/record/struct types.

Usability

Improve usability. This includes improvements to the command line interface, and error handling and messages.

Performance bottlenecks

Address some of the worst performance bottlenecks in generated code. Focus particularly on cases where performance is worse than CPython, and cases where we generate inefficient code for common use cases.

Compilation speed

Improve compilation speed through incremental compilation, parallel compilation, etc.

Build system integration

Document how to integrate mypyc into build systems, and improve features that support build system integration.

Activity

  1. changed the title [-][RFC] Development focus areas for 2021[/-] [+]Development focus areas for 2021[/+] on Dec 29, 2020
  2. JukkaL commented on Jun 8, 2021

    @JukkaL
    CollaboratorAuthor

    Focus area update

    Currently loop/list/integer heavy code can be quite slow relative to lower-level languages. We are faster than CPython, but major performance improvements seem possible here.

    Promising improvements include fixed-width integers, packed arrays, and the removal of redundant reference count ops and runtime type checks.

    This could also help with compilation speed, since mypyc itself contains a lot of code that currently isn't very efficient (e.g. data flow analysis). If we can speed up compilation, there's more room to implement additional optimizations.

  3. pinned this issue on Jan 14, 2023
  4. changed the title [-]Development focus areas for 2021[/-] [+]Development focus areas for 2023[/+] on Apr 17, 2023
  5. JukkaL commented on Apr 17, 2023

    @JukkaL
    CollaboratorAuthor

    Updated the focus areas for 2023 (edited the original summary in place).

  6. JukkaL commented on Apr 22, 2023

    @JukkaL
    CollaboratorAuthor

    Added multiple subinterpreter support (#993) as a focus area.

  7. changed the title [-]Development focus areas for 2023[/-] [+]Development focus areas for 2024[/+] on May 18, 2024
  8. JukkaL commented on May 18, 2024

    @JukkaL
    CollaboratorAuthor

    Updated for 2024 goals. The main new goal is no-gil support (#1038) -- this seems higher priority than multiple subinterpreters, though both are promising.

  9. JukkaL commented on Jan 13, 2025

    @JukkaL
    CollaboratorAuthor

    Updated for 2025 goals. They are mostly similar to what we had before, but I made some minor changes. I'm hoping that we'll make good progress this year!

  10. changed the title [-]Development focus areas for 2024[/-] [+]Development focus areas for 2025[/+] on Jan 13, 2025
  11. changed the title [-]Development focus areas for 2025[/-] [+]Development focus areas for 2026-2027[/+] on Oct 8, 2026
  12. JukkaL commented on Oct 8, 2026

    @JukkaL
    CollaboratorAuthor

    Updated for remaining 2026 goals and initial 2027 goals. We've reached some goals so those were removed, and I'm hoping that we'll make process in multiple goals in the next year!

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions