Proceedings of the 2009 International Symposium on Memory Management 2009
DOI: 10.1145/1542431.1542438
|View full text |Cite
|
Sign up to set email alerts
|

Precise garbage collection for C

Abstract: Magpie is a source-to-source transformation for C programs that enables precise garbage collection, where precise means that integers are not confused with pointers, and the liveness of a pointer is apparent at the source level. Precise GC is primarily useful for long-running programs and programs that interact with untrusted components. In particular, we have successfully deployed precise GC in the C implementation of a language run-time system that was originally designed to use conservative GC. We also repo… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
45
0

Year Published

2012
2012
2022
2022

Publication Types

Select...
4
3
1

Relationship

0
8

Authors

Journals

citations
Cited by 36 publications
(46 citation statements)
references
References 34 publications
0
45
0
Order By: Relevance
“…These examples include the checking of bounds information for validating array references [2,3], the con rmation of type information to validate cast operations [24], and the collection of object pointer information to perform garbage collection [33].…”
Section: Defending One Speci C Type Of Errorsmentioning
confidence: 99%
“…These examples include the checking of bounds information for validating array references [2,3], the con rmation of type information to validate cast operations [24], and the collection of object pointer information to perform garbage collection [33].…”
Section: Defending One Speci C Type Of Errorsmentioning
confidence: 99%
“…Racket's precise single-threaded generational collector [11,5]. The main challenge in this implementation is Racket's page-granularity write barriers.…”
Section: This Work Presents An Implementation Of Clustered Collectionmentioning
confidence: 99%
“…We implemented Clustered Collection as a modification to the precise collector in Racket [11,5] version v5.90.0.9. The Racket collector is a single-threaded generational copying collector.…”
Section: Chapter 4 Implementationmentioning
confidence: 99%
“…Second, when transferring the data structures that are found to have been modified after the old version has completed startup operations-and thus cannot be automatically restored by mutable reinitialization-precise knowledge on data types in memory-which generally imposes a nontrivial annotation effort at full coverage [23,30]is only necessary for updated data structures that need to be type-transformed between versions. Building on this observation, MCR relies on a combination of precise [44] and conservative [16,17] garbage collection (GC) techniques to trace data structures and transfer them between versions even with partial type information. This mutable tracing strategy can drastically reduce the number of user-maintained annotations, only required when data structures with ambiguous type information-and thus normally traced conservatively-are changed by the update-and thus require precise tracing to unambiguously apply type transformations.…”
Section: Introductionmentioning
confidence: 99%