| Home > Publications > Reports > Informatics (CW) |
CW 310
N. Mazur, P. Ross, G. Janssens, M. Bruynooghe
Practical aspects for a working compile time garbage collection system for Mercury
Abstract
Compile-time garbage collection is still a very uncommon feature within compilers. In previous work we have developed a compile-time structure reuse system for Mercury, a logic programming language. This system derives so called reuse information. This information indicates which datastructures can safely be reused at run-time. As preliminary experiments were promising, we have continued this work and have now a working and well performing near-to-ship compile-time garbage collection system built into the Melbourne Mercury Compiler. In this paper we present the multiple design decisions leading to this system, we report the results of using compile time garbage collection for a set of benchmarks, including real-world programs, and finally we discuss further possible improvements. Benchmarks show substantial memory savings and a noticeable reduction in execution time.
report.pdf / mailto: N. Mazur
