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

Development focus areas for 2024 #785

Open
JukkaL opened this issue Nov 28, 2020 · 4 comments
Open

Development focus areas for 2024 #785

JukkaL opened this issue Nov 28, 2020 · 4 comments
Labels

Comments

@JukkaL
Copy link
Collaborator

JukkaL commented Nov 28, 2020

I'd like us to make progress in some of these areas in 2024. 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
  • Missing asyncio features
  • 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 unboxed floats and packed arrays to improve the maximum performance achievable with mypyc.

Reduce overhead of other fundamental operations, such as int and list operations.

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.

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 bad code for common use cases.

Compilation speed

Improve compilation speed through incremental compilation, parallel compilation, making mypyc faster, generating smaller C code, etc.

@JukkaL JukkaL changed the title [RFC] Development focus areas for 2021 Development focus areas for 2021 Dec 29, 2020
@JukkaL
Copy link
Collaborator Author

JukkaL commented Jun 8, 2021

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.

@ichard26 ichard26 added the meta label Jan 14, 2023
@ichard26 ichard26 pinned this issue Jan 14, 2023
@JukkaL JukkaL changed the title Development focus areas for 2021 Development focus areas for 2023 Apr 17, 2023
@JukkaL
Copy link
Collaborator Author

JukkaL commented Apr 17, 2023

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

@JukkaL
Copy link
Collaborator Author

JukkaL commented Apr 22, 2023

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

@JukkaL JukkaL changed the title Development focus areas for 2023 Development focus areas for 2024 May 18, 2024
@JukkaL
Copy link
Collaborator Author

JukkaL commented May 18, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants