Kunshan Wang

Results 273 comments of Kunshan Wang

As we discussed in today's meeting, there may be an alternative solution. We provide an API that simply asks the VM how much memory it wants to count into the...

# Ruby status quo Note: This section is about the **vanilla Ruby**, *without* MMTk binding. Ruby has its own mmtk counter. Ruby wraps `malloc` and `free` into `ruby_xmalloc` and `ruby_xfree`,...

@qinsoon Maybe. I am not sure. Yes if we consider a slot to "use only some bits (not the whole word) to hold a reference". In this way, when we...

We discussed this in today's meeting. We can load from the edge and check if contains a reference, before we enqueue the edge. The point is, when we are scanning...

While we may remove the support of setting options via environment variables, it is still a useful feature in the early development stages of a VM binding, because it may...

With `MMTKBuilder` added, we solved the problems related to `Options` and the `UnsafeOptionsWrapper`. With another refactoring that moves global states from `BasePlan` to a dedicated `GlobalStates` struct, we have a...

We implemented object enqueuing by wrapping `ProcessEdgesWork`. https://github.com/mmtk/mmtk-core/pull/628 Ruby now uses the new VM-specific weak reference processing API: https://github.com/mmtk/mmtk-core/pull/700 This makes the changes of the built-in reference processors unnecessary. Actually...

I didn't include `VMObjectModel::LOCAL_FORWARDING_POINTER_SPEC` in https://github.com/mmtk/mmtk-core/pull/753. I should include that for consistency even though the overhead may be too large if we put the forwarding pointer on the side.

Those types originate from the MMTk in JikesRVM. The documentation in the original JikesRVM is good enough to explain the main ideas of those types, but may not accurately reflect...

With `VMLayout` introduced in https://github.com/mmtk/mmtk-core/commit/039055ab9a94ac48919a8f3fac090248e406373d, the heap start and the heap end are no longer compile-time constants, but can be configured by the VM binding. Since then, `memory_manager::{starting,last}_heap_address()` return `VMLayout::heap_{start,end}`,...