Closed Bug 744609 Opened 13 years ago Closed 13 years ago

GC: expose BufferableRef API

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED INVALID

People

(Reporter: terrence, Assigned: terrence)

References

Details

Attachments

(1 file)

There are 4 write buffers with known types: pointer-to-id, pointer-to-value, pointer-to-object, and reference-to-slot. The GC will know the internal details of these and make them fast, because they are the common cases. There is also a 5th, catch-all "general" write buffer that stores the long-tail in a slower, GC-opaque format. Items storable in the generic write buffer need to derive from the pure-virtual class BufferableRef. Even though we won't have a real writebuffer implementation in-tree for awhile yet, it would be very nice to have the places where we need manual post barriers in-tree because: - They won't get broken or lost. - In many cases I'm going to be removing automatic post barriers when I add manual post barriers: this way the reviews can cover both changes at once. - It will be possible for SpiderMonkey features developed in the next few months to be "generational-ready" (I'll skip the logo requirements) without coordinating with me specifically.
Blocks: 744612
Blocks: 744615
Attached patch v0Splinter Review
Attachment #614479 - Flags: review?(wmccloskey)
Comment on attachment 614479 [details] [diff] [review] v0 Review of attachment 614479 [details] [diff] [review]: ----------------------------------------------------------------- Could you add something to the comment so people know that it's for generational GC? ::: js/src/gc/StoreBuffer.h @@ +16,5 @@ > +namespace js { > +namespace gc { > + > +/* > + * Represents an abstract reference. Entries in the store buffer that cannot be One space after the period. @@ +17,5 @@ > +namespace gc { > + > +/* > + * Represents an abstract reference. Entries in the store buffer that cannot be > + * represented with the simple pointer-to-a-pointer scheme, must derive from No comma here.
Attachment #614479 - Flags: review?(wmccloskey)
Thanks for taking a look at this! I've updated my atrocious grammar. I see a way now where we won't need to expose BufferableRef outside of #ifdef JSGC_GENERATIONAL, so I'm going to fold this into the generational mega-patch.
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: