Skip to content

Development focus areas for 2025 #785

@JukkaL

Description

@JukkaL

I'd like us to make progress in some of these areas in 2025. Feel free to propose more areas!

Python feature support

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

  • Missing asyncio features
  • Real support for generator expressions
  • Descriptors
  • The final unsupported dunders (at least those that are commonly used)

Robustness and safety

  • Fix bugs, focusing on deviations from CPython semantics.
  • Fix type and memory safety issues.
  • Improve testing.

Examples include safe # type: ignore comments and detecting stack overflows.

Consider adapting parts of the CPython test suite. Compile more open source code as regression tests.

Peak performance

Support low-level features such as packed arrays and faster string/bytes parsing and building. This will improve the maximum performance achievable with mypyc.

Reduce overhead of other fundamental operations, such as list operations, reference counting, boxing/unboxing and async functions.

Support free threading (no-GIL CPython builds)

Now that CPython is adding free threading support, it would great for mypyc to also support it.

Multiple subinterpreters

Support multiple subinterpreters with separate GILs on Python 3.12 (#993).

Usability

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

Explore ways to make it easier for users to replace "slow" operations in code being compiled with "fast"operations. It's impractical to make all Python operations fast when compiled, but currently it's also too difficult to learn which operations to avoid.

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, making mypyc faster, generating smaller C code, etc.

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