Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
f20fb34
time: use CLOCK_UPTIME_RAW for monotonic/perf_counter on Apple
moreal Sep 7, 2026
d427717
vm: derive f_lineno lazily instead of tracking prev_line per instruction
moreal Sep 7, 2026
e67cc57
vm: coalesce per-call thread-locals into one FRAME_SLOT_CACHE
moreal Sep 7, 2026
ae7ce96
vm: fold stop/finalizing checks into EVAL_BREAKER
moreal Sep 7, 2026
2f8eb35
gc: set the TRACKED bit with a plain store for freshly allocated objects
moreal Sep 7, 2026
364bb76
vm: skip thread exception publish when pushing/popping a None exc slot
moreal Sep 7, 2026
4a14b04
vm: allocation-free keyword-call fast path and super() MRO walk
moreal Sep 7, 2026
57c75d4
builtins: cheaper enumerate and zip iteration
moreal Sep 7, 2026
f5b2871
_asyncio: cache module objects and use native set/dict operations
moreal Sep 7, 2026
07c31da
perf: use mimalloc as global allocator for rustpython CLI
moreal Sep 7, 2026
6ed9a1a
vm: cap dict/set table shrink and compact holes on resize
moreal Sep 7, 2026
db9e765
_functools: add native _lru_cache_wrapper
moreal Sep 7, 2026
2a59cad
sre_engine: ASCII fast path for \d \s \w unicode category checks
moreal Sep 7, 2026
78cca65
vm: skip VM attach for no-op generator/coroutine __del__
moreal Sep 7, 2026
96018cf
_asyncio: skip full __import__ dispatch on module-cache hot path
moreal Sep 7, 2026
3f06556
vm: skip VM-attach section in with_vm when already on the current int…
moreal Sep 7, 2026
01619c2
vm: general sys.modules fast path for vm.import
moreal Sep 7, 2026
7573dde
_asyncio: bypass generic context.run dispatch in task_eager_start
moreal Sep 7, 2026
61f3684
vm: drop scopeguard::defer! from generator/coroutine resume hot path
moreal Sep 7, 2026
08d938d
vm: run generator bodies through the call trampoline
moreal Sep 7, 2026
580eab9
vm: run a `yield from` chain in one eval loop
moreal Sep 7, 2026
b3e46c1
vm: reset the oparg prefix when a signal unwinds a frame
moreal Sep 7, 2026
c41d05a
bytecode: fetch a code unit with one 16-bit acquire load
moreal Sep 7, 2026
4a008a2
vm: compute the cache-entry count after dispatch, not before
moreal Sep 7, 2026
8530edf
vm: move the eval-breaker body out of the dispatch loop
moreal Sep 7, 2026
654880e
vm: always inline the eval stack push/pop primitives
moreal Sep 7, 2026
66a38f2
vm: carry the instruction fetch state in loop locals
moreal Sep 7, 2026
1889376
bytecode: hoist the instruction array base out of the dispatch loop
moreal Sep 8, 2026
42aca22
common: an immortal bit in the refcount word
moreal Sep 8, 2026
fce1a8e
vm: make the singletons, small ints, interned strings and static type…
moreal Sep 8, 2026
bffef2e
codecs: fast-path utf-8 decode, skipping the codec registry round trip
moreal Sep 8, 2026
50934b9
codecs: fast-path utf-8/ascii/latin-1 encode and ascii/latin-1 decode
moreal Sep 8, 2026
ebf53f0
vm: make the runtime safe for borrowed stack entries
moreal Sep 8, 2026
54d7782
vm: read consumed stack entries in place instead of owning them
moreal Sep 8, 2026
0ad8ae3
vm: turn LOAD_FAST_BORROW into an actual borrow
moreal Sep 8, 2026
b95c00f
vm: exact-dict fast path for DICT_MERGE and CALL_FUNCTION_EX kwargs
moreal Sep 8, 2026
cbcc4b2
vm: skip the recursion guard hashing exact ints inside a tuple
moreal Sep 8, 2026
e308bde
vm: wire slot descriptors from __slots__ into C-level type slots
moreal Sep 8, 2026
ece684e
frame: stop allocating cold data to close a generator
moreal Sep 8, 2026
4508c40
function: bind exact args straight into a generator's frame
moreal Sep 8, 2026
00bb6a5
frame: drain a dead frame in place instead of moving it out
moreal Sep 8, 2026
be4d920
vm: don't raise a TypeError to ask an iterator for its length
moreal Sep 8, 2026
0c490ae
gc: track a generator and its frame in one pass
moreal Sep 8, 2026
13c0304
dict_inner: fast-path exact-int equality in key_eq
moreal Sep 8, 2026
0bf140b
vm: let the modulus type handle a three-argument pow
moreal Sep 8, 2026
000a972
vm: add a feature-gated opcode-pair histogram
moreal Sep 8, 2026
791e7a0
vm: let boolean producers run the branch that follows them
moreal Sep 8, 2026
5f48272
Adapt yield-from resume to optional generator frames
youknowone Sep 19, 2026
91928bb
Fix clippy and cr_origin after try_to_bool/f_lineno changes
youknowone Sep 19, 2026
7111aad
Convert fd filenames without the os ToPyObject impl
youknowone Sep 19, 2026
0abc5c9
Gate fd path helpers on the host_env feature
youknowone Sep 19, 2026
a8df5cd
Drop redundant pickle try_to_bool clones after rebase
youknowone Sep 19, 2026
11d6a20
Document why enumerate keeps a Counter beside BigInt
youknowone Sep 19, 2026
aa7a8b1
Move fd path helpers into ospath_fd under host_env
youknowone Sep 19, 2026
105ad02
Group threading eval-breaker bits in one module
youknowone Sep 19, 2026
9d8c910
Make InterpreterFrame construction unsafe
youknowone Sep 19, 2026
aa1298b
Move OsPathOrFd re-export to the top of ospath.rs
youknowone Sep 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .cspell.dict/rustpython.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
atfork
cfgs
csascii
csisolatin
genshi
mimalloc
miri
py
pyarg
Expand Down Expand Up @@ -29,6 +32,7 @@ pystone
pystr
pystruct
pystructseq
pyperformance
pytype
qsbr
rustix
Expand Down
19 changes: 19 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ license.workspace = true

[features]
capi = ["dep:rustpython-capi", "threading"]
default = ["threading", "stdlib", "stdio", "importlib", "ssl-rustls-aws-lc", "host_env"]
default = ["threading", "stdlib", "stdio", "importlib", "ssl-rustls-aws-lc", "host_env", "mimalloc"]
mimalloc = ["dep:mimalloc"]
host_env = ["rustpython-vm/host_env", "rustpython-stdlib?/host_env"]
importlib = ["rustpython-vm/importlib"]
encodings = ["rustpython-vm/encodings"]
Expand All @@ -20,6 +21,7 @@ stdlib = ["rustpython-stdlib", "rustpython-pylib", "encodings"]
flame-it = ["rustpython-vm/flame-it", "rustpython-stdlib/flame-it", "flame", "flamescope"]
freeze-stdlib = ["stdlib", "rustpython-vm/freeze-stdlib", "rustpython-pylib?/freeze-stdlib"]
jit = ["rustpython-vm/jit"]
opcode-histogram = ["rustpython-vm/opcode-histogram"]
threading = ["rustpython-vm/threading", "rustpython-stdlib/threading"]
sqlite = ["rustpython-stdlib/sqlite"]
ssl = ["host_env", "rustpython-stdlib?/ssl"]
Expand Down Expand Up @@ -55,6 +57,7 @@ libc = { workspace = true }

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
rustyline = { workspace = true }
mimalloc = { version = "0.1", optional = true, default-features = false }

[dev-dependencies]
criterion = { workspace = true }
Expand Down
Loading
Loading