Important Notice: Our web hosting provider recently started charging us for additional visits, which was unexpected. In response, we're seeking donations. Depending on the situation, we may explore different monetization options for our Community and Expert Contributors. It's crucial to provide more returns for their expertise and offer more Expert Validated Answers or AI Validated Answers. Learn more about our hosting issue here.

Why was the Grip abstraction from the original VM design removed?

0
Posted

Why was the Grip abstraction from the original VM design removed?

0

Re: changeset 4423 The original rational for Grips was to provide an abstraction for object references that does not involve write barriers. Apart from that, it was pretty much an exact mirror of the ReferenceScheme. The thinking was that the GC should be written against grips as it does not need to update write barriers. However, it turns out that object reference fix up is done via Pointers in the current GC implementations and I don’t see why this won’t/can’t be true for any other GC. That is, we had a whole extra (and confusing) abstraction whose whole reason for existence was not being used! Additionally, even if references were being fixed up via Reference.setReference(…) and Reference.writeReference(…) instead of Pointer.setReference(…) and Pointer.writeReference(…) there is still no need for an extra abstraction. It would be far simpler to annotate the method(s) doing the update with an annotation (e.g. @NO_BARRIERS) that would instruct the compiler not to insert write

Related Questions

What is your question?

*Sadly, we had to bring back ads too. Hopefully more targeted.

Experts123