Commit Graph

31 Commits

Author SHA1 Message Date
Shahar Naveh
440b8de763 Move Instruction enum to its own file (#6693)
* Move `Instruction` to its own file

* Fix codegen and frame.rs

* Adjust script
2026-01-11 10:04:24 +09:00
Shahar Naveh
6ff7b3ed27 LoadClassDeref -> LoadFromDictOrDeref (#6692) 2026-01-10 23:16:11 +09:00
Shahar Naveh
a400386774 Remove _dis module (#6690)
* Remove `_dis` module

* Adjust CodeFlag
2026-01-10 22:11:53 +09:00
Jeong, YunWon
aa9fc7fede Pseudo ops (#6678)
* better expect

* pseudo instruction

* Fix CallKw narg

* Auto-format: cargo fmt --all

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-10 19:49:58 +09:00
Jeong, YunWon
de0bc732c9 Replace CallMethod/LoadMethod opcodes with plain Call (#6674)
* implementing call the correct way

stack is [Option<PyObjectRef>]

* fix again

* list custom instructions

* Auto-format: cargo fmt --all

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-10 08:25:56 +09:00
Shahar Naveh
c2bfdf30bd Assign opcode ids (#6637) 2026-01-09 22:52:47 +09:00
Copilot
a3425b435e Track symbol table cursors to avoid exhaustion (#6670)
* Handle missing symbol table without panic

* Update symbol table error message

* Track symbol table cursors to avoid exhaustion

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: youknowone <69878+youknowone@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-09 06:32:12 +09:00
Shahar Naveh
ead7e0c39c Make use of Unary opcodes (#6647)
* Make use of `Unary` opcodes

* Add `Reserved140` opcode

* re-add support for UnaryPositive in JIT

* JIT support for `ToBool` instruction
2026-01-05 23:40:41 +09:00
Jeong, YunWon
eee360822c Rework compiler about exception handling (#6638)
* asyncgen

* fix coroutine

* rewrite compiler

* tests

* set pyc magic number
2026-01-04 09:15:38 +09:00
Jeong, YunWon
b3b97cac7c fix symtable for named_expressions (#6604)
* check duplicated type parameter

* typealias

* fix self.in_comp_inner_loop_target
2025-12-31 15:02:08 +09:00
Ashwin Naren
4cf5697e06 Symboltable updates (#5861)
* symboltable updates

* Fix symboltable

---------

Co-authored-by: Jeong YunWon <jeong@youknowone.org>
2025-12-31 11:57:42 +09:00
Jeong, YunWon
e79a1a1a66 Fix traceback (#6569)
* Fix traceback

* Update traceback from CPython 3.13.11

* unmark test_traceback

* fix code

* fix debug range

* fix tests
2025-12-30 16:58:53 +09:00
Terry Tianlin Luan
1464d5ca43 Adding + Fixing Clippy rules to better align with #[no_std] (#6570)
* * Added alloc_instead_of_core, std_instead_of_alloc, and std_instead_of_core clippy rules
* Manually changed part of the code to use core/alloc

* use clippy --fix to fix issues in stdlib

* * Used clippy --fix to fix issues in vm
* Imported Range in vm/src/anystr.rs

* * Used clippy --fix to fix issues in common
2025-12-30 13:10:14 +09:00
Jeong, YunWon
5b20c458af Implement more except* (#6545)
* clean build documentation

* SetExcInfo

* fix EG subclass

* test_except_star
2025-12-27 23:03:23 +09:00
Shahar Naveh
b704f42158 Reduce usage JumpIfTrueOrPop & JumpIfFalseOrPop opcdes. Refactor compile_compare (#6524)
* Remove `JumpIfTrueOrPop` & `JumpIfFalseOrPop` opcdes

* Use correct instruction name

* Extract `compile_cmpop` to its own method

* Better alignment with CPython code

* Restore `PopJumpIf` instructions

* Revert PopJumpIfFalse for comparisons
2025-12-27 00:16:16 +09:00
Jeong, YunWon
4a6e8fb29e Add except* support (#6530) 2025-12-26 21:54:23 +09:00
Shahar Naveh
bcdf37bef1 Align opcode names in dis (#6526)
* opcodes dis repr like cpython. POP-> POP_TOP

* Adjust frame.rs

* Fix codegen

* snapshots

* Add doc for `PopTop`

* fix jit
2025-12-25 22:17:31 +09:00
Shahar Naveh
569bee103f Use ruff_python_ast::visitor::Visitor for detecting await (#6466) 2025-12-22 12:43:58 +09:00
Shahar Naveh
75dcf8042e Tidy codegen::ir::BlockIdx api (#6413)
* Tidy `codegen::ir::BlockIdx` api

* Update crates/codegen/src/ir.rs

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-12-12 20:05:31 +09:00
Jeong, YunWon
bfd873a8b8 a few unreachable->unimplemented, clippy (#6405)
* unreachable -> unimplemented

* Fix clippy on 1.92
2025-12-12 01:13:28 +09:00
Jeong, YunWon
98fff96f1c __doc__ handing in the right way (#6390) 2025-12-10 20:04:09 +09:00
Shahar Naveh
2b90e826ec Use rust idioms for accessing a Vec in codegen/src/compile.rs (#6326)
* Use rust idioms for accessing a `Vec`

* clippy

* Remove `unsafe`
2025-12-04 09:17:04 +09:00
Shahar Naveh
f49c18578a Move PrintExpr to IntristicFunction1 (#6324) 2025-12-03 21:17:36 +09:00
Shahar Naveh
305fb489e7 Remove ImportNameless bytecode (#6325) 2025-12-03 07:07:33 +09:00
Shahar Naveh
26d5307520 Align f-string related bytecodes with 3.13 (#6321)
* Align `f-string` related bytecodes with 3.13

* Resolve name collision

* Adjust for ruff return value
2025-12-03 07:05:16 +09:00
Shahar Naveh
9130dd8068 Unify BINARY_OP bytecodes (#6317)
* Unify BINARY_OP bytecodes

* Add missing op to `as_inplace`

* Fix doc example

* Fix jit

* Fix doc

* Use correct opname

* Fix dis fmt

* Inplace ops support in JIT
2025-12-02 09:00:26 +09:00
Shahar Naveh
4051becc9e Ensure BuildSlice oparg to be either 2 or 3 (#6313)
* Force `BuildSlice` oparg to be either 2 or 3

* `compile_slice` to return `BuildSliceArgCount`
2025-11-30 09:05:29 +09:00
Shahar Naveh
7d8f0b989c Split TestOperator instruction (#6306)
* Split `TestOperator` inatruction

* Update snapshot

* Set as have label
2025-11-29 09:02:52 +09:00
Shahar Naveh
fef9de22c4 Remove Rotate* & Duplicate* instructions (#6303)
* Remove `Instruction::Duplicate2?`

* Remove `Instruction::Rotate*` instructions

* Fix jit

* Update snapshot
2025-11-29 00:46:27 +09:00
Shahar Naveh
f7ddcd2795 Break after annotation future found (#6284) 2025-11-19 01:00:41 +09:00
Shahar Naveh
7f45ba4c9c Move compiler/codegen -> crates/codegen (#6260) 2025-11-15 18:25:46 +09:00