[GHC] #8255: GC Less Operation
GHC
ghc-devs at haskell.org
Sun Sep 8 21:18:47 CEST 2013
#8255: GC Less Operation
-------------------------------------+-------------------------------------
Reporter: sirinath | Owner:
Type: feature request | Status: new
Priority: lowest | Milestone: _|_
Component: Compiler | Version: 7.7
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture: Unknown/Multiple
Type of failure: Runtime | Difficulty: Project (more
performance bug | than a week)
Test Case: | Blocked By:
Blocking: | Related Tickets:
-------------------------------------+-------------------------------------
Changes (by ezyang):
* priority: highest => lowest
* difficulty: Unknown => Project (more than a week)
* version: 7.6.3 => 7.7
* milestone: => _|_
Comment:
A very interesting research question! It should be possible, but there are
a number of problems you have to overcome (and if overcome, would probably
be a very interesting publication):
* GHC programs generate a lot of garbage, and it is probably still better
to do tracing GC for nurseries (if it's dead, a reference counting
implementation has to traverse it anyway) and only turn to reference
counts when objects graduate. So you'll want to actually implement some
sort of deferred reference counting such as
[http://grothoff.org/christian/teaching/2007/4705/urc-oopsla-2003.pdf
Ulterior Reference Counting], where non-nursery is reference counted.
* Reference counting schemes have to deal with data cycles. Immutability
gets you part of the way there, since a non-cyclic immutable data
structure is guaranteed to remain non-cyclic. But mutually recursive
definitions as well as traditional mutation would have to be dealt with,
or you'd have garbage.
* And of course, you'd have to actually implement reference counting.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8255#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list