Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 6 additions & 2 deletions gc/mmtk/src/abi.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
use crate::api::RubyMutator;
use crate::{extra_assert, Ruby};
use crate::extra_assert;
use crate::Ruby;
use libc::c_int;
use mmtk::scheduler::GCWorker;
use mmtk::util::{Address, ObjectReference, VMMutatorThread, VMWorkerThread};
use mmtk::util::Address;
use mmtk::util::ObjectReference;
use mmtk::util::VMMutatorThread;
use mmtk::util::VMWorkerThread;

// For the C binding
pub const OBJREF_OFFSET: usize = 8;
Expand Down
11 changes: 8 additions & 3 deletions gc/mmtk/src/collection.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,17 @@ use crate::abi::GCThreadTLS;

use crate::api::RubyMutator;
use crate::heap::RubyHeapTrigger;
use crate::{mmtk, upcalls, Ruby};
use crate::mmtk;
use crate::upcalls;
use crate::Ruby;
use mmtk::memory_manager;
use mmtk::scheduler::*;
use mmtk::util::heap::GCTriggerPolicy;
use mmtk::util::{VMMutatorThread, VMThread, VMWorkerThread};
use mmtk::vm::{Collection, GCThreadContext};
use mmtk::util::VMMutatorThread;
use mmtk::util::VMThread;
use mmtk::util::VMWorkerThread;
use mmtk::vm::Collection;
use mmtk::vm::GCThreadContext;
use std::sync::atomic::AtomicBool;
use std::sync::atomic::Ordering;
use std::thread;
Expand Down
3 changes: 2 additions & 1 deletion gc/mmtk/src/heap/ruby_heap_trigger.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use std::sync::atomic::{AtomicUsize, Ordering};
use std::sync::atomic::AtomicUsize;
use std::sync::atomic::Ordering;

use mmtk::util::heap::GCTriggerPolicy;
use mmtk::util::heap::SpaceStats;
Expand Down
7 changes: 5 additions & 2 deletions gc/mmtk/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,11 @@ use std::sync::Mutex;
use std::thread::ThreadId;

use abi::RubyUpcalls;
use binding::{RubyBinding, RubyBindingFast, RubyConfiguration};
use mmtk::vm::slot::{SimpleSlot, UnimplementedMemorySlice};
use binding::RubyBinding;
use binding::RubyBindingFast;
use binding::RubyConfiguration;
use mmtk::vm::slot::SimpleSlot;
use mmtk::vm::slot::UnimplementedMemorySlice;
use mmtk::vm::VMBinding;
use mmtk::MMTK;
use once_cell::sync::OnceCell;
Expand Down
13 changes: 9 additions & 4 deletions gc/mmtk/src/object_model.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
use std::ptr::copy_nonoverlapping;

use crate::abi::{RubyObjectAccess, MIN_OBJ_ALIGN, OBJREF_OFFSET};
use crate::{abi, Ruby};
use crate::abi;
use crate::abi::RubyObjectAccess;
use crate::abi::MIN_OBJ_ALIGN;
use crate::abi::OBJREF_OFFSET;
use crate::Ruby;
use mmtk::util::constants::BITS_IN_BYTE;
use mmtk::util::copy::{CopySemantics, GCWorkerCopyContext};
use mmtk::util::{Address, ObjectReference};
use mmtk::util::copy::CopySemantics;
use mmtk::util::copy::GCWorkerCopyContext;
use mmtk::util::Address;
use mmtk::util::ObjectReference;
use mmtk::vm::*;

pub struct VMObjectModel {}
Expand Down
19 changes: 11 additions & 8 deletions gc/mmtk/src/pinning_registry.rs
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
use std::sync::Mutex;

use mmtk::{
memory_manager,
scheduler::{GCWork, GCWorker, WorkBucketStage},
util::{ObjectReference, VMWorkerThread},
MMTK,
};

use crate::{abi::GCThreadTLS, upcalls, Ruby};
use mmtk::memory_manager;
use mmtk::scheduler::GCWork;
use mmtk::scheduler::GCWorker;
use mmtk::scheduler::WorkBucketStage;
use mmtk::util::ObjectReference;
use mmtk::util::VMWorkerThread;
use mmtk::MMTK;

use crate::abi::GCThreadTLS;
use crate::upcalls;
use crate::Ruby;

pub struct PinningRegistry {
pinning_objs: Mutex<Vec<ObjectReference>>,
Expand Down
16 changes: 12 additions & 4 deletions gc/mmtk/src/scanning.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
use crate::abi::GCThreadTLS;

use crate::upcalls;
use crate::utils::ChunkedVecCollector;
use crate::{upcalls, Ruby, RubySlot};
use mmtk::scheduler::{GCWork, GCWorker, WorkBucketStage};
use mmtk::util::{ObjectReference, VMWorkerThread};
use mmtk::vm::{ObjectTracer, RootsWorkFactory, Scanning, SlotVisitor};
use crate::Ruby;
use crate::RubySlot;
use mmtk::scheduler::GCWork;
use mmtk::scheduler::GCWorker;
use mmtk::scheduler::WorkBucketStage;
use mmtk::util::ObjectReference;
use mmtk::util::VMWorkerThread;
use mmtk::vm::ObjectTracer;
use mmtk::vm::RootsWorkFactory;
use mmtk::vm::Scanning;
use mmtk::vm::SlotVisitor;
use mmtk::Mutator;

pub struct VMScanning {}
Expand Down
7 changes: 5 additions & 2 deletions gc/mmtk/src/utils.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
use std::sync::atomic::{AtomicUsize, Ordering};
use std::sync::atomic::AtomicUsize;
use std::sync::atomic::Ordering;

use atomic_refcell::AtomicRefCell;
use mmtk::scheduler::{GCWork, GCWorker, WorkBucketStage};
use mmtk::scheduler::GCWork;
use mmtk::scheduler::GCWorker;
use mmtk::scheduler::WorkBucketStage;

use crate::Ruby;
use sysinfo::System;
Expand Down
16 changes: 9 additions & 7 deletions gc/mmtk/src/weak_proc.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
use std::sync::Mutex;

use mmtk::{
scheduler::{GCWork, GCWorker, WorkBucketStage},
util::ObjectReference,
vm::ObjectTracerContext,
};

use crate::{abi::GCThreadTLS, upcalls, Ruby};
use mmtk::scheduler::GCWork;
use mmtk::scheduler::GCWorker;
use mmtk::scheduler::WorkBucketStage;
use mmtk::util::ObjectReference;
use mmtk::vm::ObjectTracerContext;

use crate::abi::GCThreadTLS;
use crate::upcalls;
use crate::Ruby;

pub struct WeakProcessor {
/// Objects that needs `obj_free` called when dying.
Expand Down