diff --git a/crates/stdlib/src/lib.rs b/crates/stdlib/src/lib.rs index e61ae918a78..ae69f6f8673 100644 --- a/crates/stdlib/src/lib.rs +++ b/crates/stdlib/src/lib.rs @@ -15,13 +15,11 @@ mod _asyncio; pub mod array; mod binascii; mod bisect; +mod bz2; mod cmath; +mod compression; // internal module mod contextvars; mod csv; -mod gc; - -mod bz2; -mod compression; // internal module #[cfg(not(any(target_os = "android", target_arch = "wasm32")))] mod lzma; mod zlib; @@ -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),