[GHC] #8255: GC Less Operation

GHC ghc-devs at haskell.org
Mon Sep 9 04:12:14 CEST 2013


#8255: GC Less Operation
-------------------------------------+-------------------------------------
        Reporter:  sirinath          |            Owner:
            Type:  feature request   |           Status:  closed
        Priority:  lowest            |        Milestone:  _|_
       Component:  Compiler          |          Version:  7.7
      Resolution:  invalid           |         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:
-------------------------------------+-------------------------------------

Comment (by thoughtpolice):

 I'm not entirely sure what you're proposing. First, GHC's runtime stack is
 quite different from a traditional C stack - it also must be managed
 completely by the runtime system. The is no such thing like a difference
 between 'stack allocation' and 'heap allocation' at the language level
 like in another language - the stack is used to store continuations when
 evaluating to WHNF. Objects are always allocated on the heap - even stacks
 are (since they must grow and be chained.) Just removing stacks through
 aggressive optimization or some analysis would not remove the need for a
 GC.

 > Also allocation / de allocation can be in bocks in Haskell opposed to
 object at a time based on memory allocation in execution locality.

 Based on this, I assume you mean something more like region inference,
 where the compiler attempts to infer memory regions which may be 'stacked'
 or nested in each other, and are allocated in bulk, more like a
 traditional call stack in an imperative language?

 These schemes are still quite theoretical; Tofte and Talpin introduced
 this in Standard ML, and to my knowledge there's still some work here on
 Region/GC integration. The JHC (and AJHC) Haskell compilers also employ a
 form of region inference, although I am not sure if the author, John
 Meacham, ever got it truly working - he too eventually included a garbage
 collector

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8255#comment:7>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler




More information about the ghc-tickets mailing list