From 6c4beb0ae7c204f2a50435120d489691b4709f24 Mon Sep 17 00:00:00 2001 From: "Jeong, YunWon" Date: Sat, 31 Jan 2026 23:28:44 +0900 Subject: [PATCH 1/2] gc is vm/stdlib --- crates/stdlib/src/lib.rs | 3 --- crates/vm/src/object/core.rs | 2 +- crates/{stdlib/src => vm/src/stdlib}/gc.rs | 3 +-- crates/vm/src/stdlib/mod.rs | 2 ++ 4 files changed, 4 insertions(+), 6 deletions(-) rename crates/{stdlib/src => vm/src/stdlib}/gc.rs (99%) diff --git a/crates/stdlib/src/lib.rs b/crates/stdlib/src/lib.rs index e61ae918a78..a0ae8f46201 100644 --- a/crates/stdlib/src/lib.rs +++ b/crates/stdlib/src/lib.rs @@ -18,8 +18,6 @@ mod bisect; mod cmath; mod contextvars; mod csv; -mod gc; - mod bz2; mod compression; // internal module #[cfg(not(any(target_os = "android", target_arch = "wasm32")))] @@ -126,7 +124,6 @@ pub fn stdlib_module_defs(ctx: &Context) -> Vec<&'static builtins::PyModuleDef> faulthandler::module_def(ctx), #[cfg(any(unix, target_os = "wasi"))] fcntl::module_def(ctx), - gc::module_def(ctx), #[cfg(all(unix, not(any(target_os = "android", target_os = "redox"))))] grp::module_def(ctx), hashlib::module_def(ctx), diff --git a/crates/vm/src/object/core.rs b/crates/vm/src/object/core.rs index 256d45070b3..21b789bac04 100644 --- a/crates/vm/src/object/core.rs +++ b/crates/vm/src/object/core.rs @@ -933,7 +933,7 @@ impl PyObject { /// Check if the object has been finalized (__del__ already called). /// _PyGC_FINALIZED in Py_GIL_DISABLED mode. #[inline] - pub fn gc_finalized(&self) -> bool { + pub(crate) fn gc_finalized(&self) -> bool { GcBits::from_bits_retain(self.0.gc_bits.load(Ordering::Relaxed)).contains(GcBits::FINALIZED) } diff --git a/crates/stdlib/src/gc.rs b/crates/vm/src/stdlib/gc.rs similarity index 99% rename from crates/stdlib/src/gc.rs rename to crates/vm/src/stdlib/gc.rs index 4887e35f584..82b0c68bd9e 100644 --- a/crates/stdlib/src/gc.rs +++ b/crates/vm/src/stdlib/gc.rs @@ -2,7 +2,7 @@ pub(crate) use gc::module_def; #[pymodule] mod gc { - use crate::vm::{ + use crate::{ PyObjectRef, PyResult, VirtualMachine, builtins::PyListRef, function::{FuncArgs, OptionalArg}, @@ -205,7 +205,6 @@ mod gc { /// Return True if the object has been finalized by the garbage collector. #[pyfunction] fn is_finalized(obj: PyObjectRef) -> bool { - // Check the per-object finalized flag directly obj.gc_finalized() } diff --git a/crates/vm/src/stdlib/mod.rs b/crates/vm/src/stdlib/mod.rs index 088abc5b4a6..1d401e50e02 100644 --- a/crates/vm/src/stdlib/mod.rs +++ b/crates/vm/src/stdlib/mod.rs @@ -7,6 +7,7 @@ mod codecs; mod collections; pub mod errno; mod functools; +mod gc; mod imp; pub mod io; mod itertools; @@ -84,6 +85,7 @@ pub fn builtin_module_defs(ctx: &Context) -> Vec<&'static PyModuleDef> { ctypes::module_def(ctx), errno::module_def(ctx), functools::module_def(ctx), + gc::module_def(ctx), imp::module_def(ctx), io::module_def(ctx), itertools::module_def(ctx), From 1b6548d7b877ae12c233762f66edee8586174dfe Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 1 Feb 2026 03:15:37 +0000 Subject: [PATCH 2/2] Auto-format: cargo fmt --all --- crates/stdlib/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/stdlib/src/lib.rs b/crates/stdlib/src/lib.rs index a0ae8f46201..ae69f6f8673 100644 --- a/crates/stdlib/src/lib.rs +++ b/crates/stdlib/src/lib.rs @@ -15,11 +15,11 @@ mod _asyncio; pub mod array; mod binascii; mod bisect; +mod bz2; mod cmath; +mod compression; // internal module mod contextvars; mod csv; -mod bz2; -mod compression; // internal module #[cfg(not(any(target_os = "android", target_arch = "wasm32")))] mod lzma; mod zlib;