diff --git a/gc/mmtk/Cargo.lock b/gc/mmtk/Cargo.lock index 237a5e1..b68a682 100644 --- a/gc/mmtk/Cargo.lock +++ b/gc/mmtk/Cargo.lock @@ -440,8 +440,8 @@ checksum = "6b947ae49db0d222b1dbc6b113ce7248a3fc3a6ca21b696717bfc000ba4484d8" [[package]] name = "mmtk" -version = "0.32.0" -source = "git+https://github.com/mmtk/mmtk-core.git?rev=8f806d56469c1c706fd1f88b757c33620bae85ba#8f806d56469c1c706fd1f88b757c33620bae85ba" +version = "0.33.0" +source = "git+https://github.com/mmtk/mmtk-core.git?rev=0fc014f8d05db7fcb6f49ebe20ddd43a3fe2abdf#0fc014f8d05db7fcb6f49ebe20ddd43a3fe2abdf" dependencies = [ "atomic", "atomic-traits", @@ -475,8 +475,8 @@ dependencies = [ [[package]] name = "mmtk-macros" -version = "0.32.0" -source = "git+https://github.com/mmtk/mmtk-core.git?rev=8f806d56469c1c706fd1f88b757c33620bae85ba#8f806d56469c1c706fd1f88b757c33620bae85ba" +version = "0.33.0" +source = "git+https://github.com/mmtk/mmtk-core.git?rev=0fc014f8d05db7fcb6f49ebe20ddd43a3fe2abdf#0fc014f8d05db7fcb6f49ebe20ddd43a3fe2abdf" dependencies = [ "proc-macro-error", "proc-macro2", diff --git a/gc/mmtk/Cargo.toml b/gc/mmtk/Cargo.toml index f274935..6f24036 100644 --- a/gc/mmtk/Cargo.toml +++ b/gc/mmtk/Cargo.toml @@ -25,7 +25,7 @@ features = ["vo_bit", "object_pinning", "sticky_immix_non_moving_nursery"] # Uncomment the following lines to use mmtk-core from the official repository. git = "https://github.com/mmtk/mmtk-core.git" -rev = "8f806d56469c1c706fd1f88b757c33620bae85ba" +rev = "0fc014f8d05db7fcb6f49ebe20ddd43a3fe2abdf" # Uncomment the following line to use mmtk-core from a local repository. # path = "../../../mmtk-core" diff --git a/gc/mmtk/src/object_model.rs b/gc/mmtk/src/object_model.rs index d673ca1..6dcc520 100644 --- a/gc/mmtk/src/object_model.rs +++ b/gc/mmtk/src/object_model.rs @@ -19,6 +19,8 @@ impl VMObjectModel { } impl ObjectModel for VMObjectModel { + const GLOBAL_FIELD_UNLOG_BIT_SPEC: VMGlobalFieldUnlogBitSpec = + VMGlobalFieldUnlogBitSpec::side_first(); const GLOBAL_LOG_BIT_SPEC: VMGlobalLogBitSpec = VMGlobalLogBitSpec::side_first(); // We overwrite the prepended word which were used to hold object sizes. @@ -78,6 +80,14 @@ impl ObjectModel for VMObjectModel { to_obj } + fn try_copy( + from: ObjectReference, + semantics: CopySemantics, + copy_context: &mut GCWorkerCopyContext, + ) -> Option { + Some(Self::copy(from, semantics, copy_context)) + } + fn copy_to(_from: ObjectReference, _to: ObjectReference, _region: Address) -> Address { unimplemented!( "This function cannot be called because we do not support MarkCompact for Ruby." diff --git a/gc/mmtk/src/scanning.rs b/gc/mmtk/src/scanning.rs index 355a2e7..34314ab 100644 --- a/gc/mmtk/src/scanning.rs +++ b/gc/mmtk/src/scanning.rs @@ -25,10 +25,10 @@ impl Scanning for VMScanning { false } - fn scan_object>( + fn scan_object( _tls: VMWorkerThread, _object: ObjectReference, - _slot_visitor: &mut EV, + _slot_visitor: &mut impl SlotVisitor, ) { unreachable!("We have not enabled slot enqueuing for any types, yet."); }