From 9b35565c14a1e0f09add2981ad36014377a56ecb Mon Sep 17 00:00:00 2001 From: Eduardo Souza Date: Thu, 6 Feb 2025 23:07:42 +0000 Subject: [PATCH 1/2] Adding usings_backedges root --- mmtk/src/julia_scanning.rs | 6 ++++++ mmtk/src/julia_types.rs | 29 ++++++++++++++++------------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/mmtk/src/julia_scanning.rs b/mmtk/src/julia_scanning.rs index ca9a6def..91313a85 100644 --- a/mmtk/src/julia_scanning.rs +++ b/mmtk/src/julia_scanning.rs @@ -132,6 +132,12 @@ pub unsafe fn scan_julia_object>(obj: Address, clos } process_slot(closure, Address::from_ptr(parent_slot)); + let usings_backeges_slot = ::std::ptr::addr_of!((*m).usings_backedges); + if PRINT_OBJ_TYPE { + println!(" - scan parent: {:?}\n", usings_backeges_slot); + } + process_slot(closure, Address::from_ptr(usings_backeges_slot)); + // m.usings.items may be inlined in the module when the array list size <= AL_N_INLINE (cf. arraylist_new) // In that case it may be an mmtk object and not a malloced address. // If it is an mmtk object, (*m).usings.items will then be an internal pointer to the module diff --git a/mmtk/src/julia_types.rs b/mmtk/src/julia_types.rs index 530c2d96..1b014db9 100644 --- a/mmtk/src/julia_types.rs +++ b/mmtk/src/julia_types.rs @@ -1985,6 +1985,7 @@ pub struct _jl_module_t { pub bindingkeyset: u64, pub file: *mut jl_sym_t, pub line: i32, + pub usings_backedges: *mut jl_value_t, pub usings: arraylist_t, pub build_id: jl_uuid_t, pub uuid: jl_uuid_t, @@ -2000,7 +2001,7 @@ pub struct _jl_module_t { } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { - ["Size of _jl_module_t"][::std::mem::size_of::<_jl_module_t>() - 376usize]; + ["Size of _jl_module_t"][::std::mem::size_of::<_jl_module_t>() - 384usize]; ["Alignment of _jl_module_t"][::std::mem::align_of::<_jl_module_t>() - 8usize]; ["Offset of field: _jl_module_t::name"][::std::mem::offset_of!(_jl_module_t, name) - 0usize]; ["Offset of field: _jl_module_t::parent"] @@ -2011,27 +2012,29 @@ const _: () = { [::std::mem::offset_of!(_jl_module_t, bindingkeyset) - 24usize]; ["Offset of field: _jl_module_t::file"][::std::mem::offset_of!(_jl_module_t, file) - 32usize]; ["Offset of field: _jl_module_t::line"][::std::mem::offset_of!(_jl_module_t, line) - 40usize]; + ["Offset of field: _jl_module_t::usings_backedges"] + [::std::mem::offset_of!(_jl_module_t, usings_backedges) - 48usize]; ["Offset of field: _jl_module_t::usings"] - [::std::mem::offset_of!(_jl_module_t, usings) - 48usize]; + [::std::mem::offset_of!(_jl_module_t, usings) - 56usize]; ["Offset of field: _jl_module_t::build_id"] - [::std::mem::offset_of!(_jl_module_t, build_id) - 304usize]; - ["Offset of field: _jl_module_t::uuid"][::std::mem::offset_of!(_jl_module_t, uuid) - 320usize]; + [::std::mem::offset_of!(_jl_module_t, build_id) - 312usize]; + ["Offset of field: _jl_module_t::uuid"][::std::mem::offset_of!(_jl_module_t, uuid) - 328usize]; ["Offset of field: _jl_module_t::counter"] - [::std::mem::offset_of!(_jl_module_t, counter) - 336usize]; + [::std::mem::offset_of!(_jl_module_t, counter) - 344usize]; ["Offset of field: _jl_module_t::nospecialize"] - [::std::mem::offset_of!(_jl_module_t, nospecialize) - 340usize]; + [::std::mem::offset_of!(_jl_module_t, nospecialize) - 348usize]; ["Offset of field: _jl_module_t::optlevel"] - [::std::mem::offset_of!(_jl_module_t, optlevel) - 344usize]; + [::std::mem::offset_of!(_jl_module_t, optlevel) - 352usize]; ["Offset of field: _jl_module_t::compile"] - [::std::mem::offset_of!(_jl_module_t, compile) - 345usize]; + [::std::mem::offset_of!(_jl_module_t, compile) - 353usize]; ["Offset of field: _jl_module_t::infer"] - [::std::mem::offset_of!(_jl_module_t, infer) - 346usize]; + [::std::mem::offset_of!(_jl_module_t, infer) - 354usize]; ["Offset of field: _jl_module_t::istopmod"] - [::std::mem::offset_of!(_jl_module_t, istopmod) - 347usize]; + [::std::mem::offset_of!(_jl_module_t, istopmod) - 355usize]; ["Offset of field: _jl_module_t::max_methods"] - [::std::mem::offset_of!(_jl_module_t, max_methods) - 348usize]; - ["Offset of field: _jl_module_t::lock"][::std::mem::offset_of!(_jl_module_t, lock) - 352usize]; - ["Offset of field: _jl_module_t::hash"][::std::mem::offset_of!(_jl_module_t, hash) - 368usize]; + [::std::mem::offset_of!(_jl_module_t, max_methods) - 356usize]; + ["Offset of field: _jl_module_t::lock"][::std::mem::offset_of!(_jl_module_t, lock) - 360usize]; + ["Offset of field: _jl_module_t::hash"][::std::mem::offset_of!(_jl_module_t, hash) - 376usize]; }; pub type jl_module_t = _jl_module_t; #[repr(C)] From 544c6d3d9d420d6c05f47b5d47b9b826e52c83e4 Mon Sep 17 00:00:00 2001 From: Eduardo Souza Date: Fri, 7 Feb 2025 00:24:42 +0000 Subject: [PATCH 2/2] Skipping Distributed tests --- .github/scripts/ci-test-stdlib.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/scripts/ci-test-stdlib.sh b/.github/scripts/ci-test-stdlib.sh index f2858768..f50d9b73 100755 --- a/.github/scripts/ci-test-stdlib.sh +++ b/.github/scripts/ci-test-stdlib.sh @@ -22,6 +22,8 @@ declare -a tests_to_skip=( "SparseArrays" # Running LinearAlgebra in a separate job "LinearAlgebra" + # Skipping Distributed tests + "Distributed" ) # These tests need multiple workers. declare -a tests_with_multi_workers=(