2021 H2 static Python roadmap
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 15/100
Hướng nghiên cứu
Issue này là một roadmap phạm vi rộng bao quát trình biên dịch tĩnh, trình tải module, trình kiểm tra kiểu, runtime, JIT và công việc về hiệu năng, thay vì một thay đổi đơn lẻ có phạm vi rõ ràng. Hãy bắt đầu bằng cách chọn một mục ưu tiên duy nhất và xác định subsystem liên quan; việc hoàn thành phải được xác định bởi hành vi cụ thể và việc validation của mục đó, không phải bởi toàn bộ roadmap.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Usability
- [P0] Make static python consumable easily for any Cinder user
- Module loader in cinder
- Consolidate rewriter logic into static compiler (out of strict modules)
- minimum runtime version for static pycs
- [P0] Make static python type checker run as a linter
- [P0] Fix module dependency tracking for pyc invalidation
- [P1] Support Enums defined in static modules
- [P1] Expand Static Python reference guide
- How to improve perf: primitives, CheckedDict...
- Things that aren’t supported: multiple inheritance, metaclasses...
- Gotchas: cbool comparison results
- [P1] Don’t JIT all static functions
- As we adopt more code into Static Python, not all static functions will be hot enough to deserve JIT, this should be left up to the JIT list to determine.
- [P1] support prod_assert
- [P1] support primitive floats
- [P1] cross-module import always sees consistent (DeclarationVisit only) view of imported module types
- [P1] fix patching of static functions with compatible but keyword-requiring signatures
- [P2] improve type inference of primitive int literals
Performance
- [P0] CheckedList
- [P0] Optimize calls to types
- [P0] Improved descriptor support:
- Properties
- Cached properties
- class methods
- [P1] Primitives in method calls
- [P1] Primitives in type calls
- [P1] More typed built-in methods
- [P1] Dataclass intrinsic
- [P1] Run declaration visitor on nonstatic dependency code and stubs so we can generate invokes against them
- make sure the failure mode is appropriate Python error, not crash
- also emit CAST on return value (helps with narrowing and Pyre compat for usability)
- [P1] Support for runtime-checking small unions
- [P1] avoid checking types of default argument values
- [P1] return type of async functions
- type-specialized await?
- eager evaluation?
- [P1] type-preserving user-defined decorators (util.etc, statsd.timer)
- [P1] Declarable Exact types
- Unlocks more non-GC containers, can declare they contain only Exact[str], which is non-GC
- Unlocks other optimizations and statically known types also, subclasses of Python builtins can do crazy things
- [P2] inlining decorators at compile time
- [P2] Fixed size arrays
- [P2] Perhaps some exploratory work around object lifetimes? Would be great to get some objects out of the GC.
- Multiple return values that box to tuples but don’t allocate might be something slightly related
- Ngôn ngữ chính
- Python
- Star
- 3.8k
- Fork
- 139
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của facebookincubator/MetaPython
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
facebookincubator/MetaPython#147 ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
facebookincubator/MetaPython#146 · 2 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
facebookincubator/MetaPython#145 · 4 bình luận ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 30/100
facebookincubator/MetaPython#144 · 1 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 20/100
facebookincubator/MetaPython#129 · 2 bình luận ·
Tất cả issue của facebookincubator/MetaPython
Issue tương tự
-
triage/confirmed
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
agentscope-ai/agentscope#2775 ·
-
comp/desktop P3 type/bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
NousResearch/hermes-agent#118866 ·
-
bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
apache/cloudstack#14222 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100