Changes between Version 6 and Version 7 of GhcPapers


Ignore:
Timestamp:
Aug 11, 2009 12:12:52 PM (6 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GhcPapers

    v6 v7  
    1616 * [http://research.microsoft.com/en-us/um/people/simonpj/papers/spineless-tagless-gmachine.ps.gz#26pub=34  The Spineless Tagless G-Machine].  This paper describes the execution model used by GHC.  It is most relevant to GHC up to version 3.xx---in version 4 we made some changes which are described in the [http://www.haskell.org/ghc/docs/papers/run-time-system.ps.gz RTS document]. 
    1717 
    18  * The UsageSP analysis (ghc/compiler/usageSP/) is described in Keith Wansbrough and Simon Peyton Jones, [http://www.cl.cam.ac.uk/users/kw217/research/phd/usptr-10pt.ps.gz Once Upon a Polymorphic Type], Technical Report TR-1998-19, Department of Computing Science, University of Glasgow, 1998.  Conference version [http://www.cl.cam.ac.uk/users/kw217/research/phd/popl99-usage.ps.gz Once Upon a Polymorphic Type], in The Twenty-sixth ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 20-22, 1999, San Antonio, Texas. 
     18== The innards of the complier == 
    1919 
    20  *  GHC's typechecker implementation is described in the paper [http://research.microsoft.com/~simonpj/Papers/classhask.ps.gz  Type classes in Haskell], CV Hall, K Hammond, SL Peyton Jones, and PL Wadler, European Symposium On Programming, LNCS 788, Springer Verlag, pp.  241-256, April 1994. 
     20 * [2002] [http://www.research.microsoft.com/~simonpj/Papers/inlining/index.htm Secrets of the GHC inliner] is still highly relevant; it is still a more-or-less accurate description of GHC's "simplifier". 
    2121 
    22  * [http://www.haskell.org/ghc/docs/papers/new-rts.ps.gz The New GHC/Hugs Runtime System]---a summary of the [http://www.haskell.org/ghc/docs/papers/run-time-system.ps.gz RTS document]. 
    23  
    24  * [http://www.haskell.org/~simonmar/papers/async.ps.gz Asynchronous Exceptions in Haskell] 
    25  
    26  * [http://research.microsoft.com/~simonpj/Papers/records.htm Lightweight Extensible Records for Haskell] 
    27  
    28  * [http://research.microsoft.com/~simonpj/Papers/derive.htm Derivable Type Classes] 
    29  
    30  * [http://research.microsoft.com/~simonpj/Papers/pat.htm Pattern Guards and Transformational Patterns] 
    31  
    32  * [http://www.research.microsoft.com/~simonpj/Papers/inlining/index.htm Secrets of the GHC inliner] 
    33  
    34  * [http://research.microsoft.com/~simonpj/Papers/inc-gc.htm Non-stop Haskell] the workings of an incremental garbage collector (not included in GHC, so far). 
    35  
    36  * [http://www.haskell.org/ghc/docs/papers/concurrent-haskell.ps.gz Concurrent Haskell] 
    37  
    38  * [http://research.microsoft.com/~simonpj/Papers/imprecise-exn-sem.htm Imprecise Exceptions, Co-Inductively] 
    39  
    40  * [http://www.haskell.org/ghc/docs/papers/except_ps.gz A semantics for imprecise exceptions] 
    41  
    42  * [http://www.haskell.org/ghc/docs/papers/imperative.ps.gz Imperative Functional Programming]  
    43  
    44  * [http://www.haskell.org/ghc/docs/papers/lazy-functional-state-threads.ps.gz Lazy Functional State Threads] 
    45  
    46  * [http://www.haskell.org/ghc/docs/papers/unboxed-values.ps.gz Unboxed Values as First-Class Citizens]  
    47  
    48  * [http://www.haskell.org/ghc/docs/papers/profiling.ps.gz Time and Space Profiling for non-strict, higher-order functional programs] 
    49  
    50  * [http://www.haskell.org/ghc/docs/papers/grasp-jfit.ps.gz The Glasgow Haskell Compiler - a Technical Overview] - from 1992, not entirely relevant any more. 
     22 * [1993] [http://www.haskell.org/ghc/docs/papers/grasp-jfit.ps.gz The Glasgow Haskell Compiler - a Technical Overview] - from 1992, not entirely relevant any more. 
    5123 
    5224 * [http://www.haskell.org/ghc/docs/papers/extendGHC.ps.gz Adding an Optimisation Pass to the Glasgow Haskell Compiler] (Olaf Chitil).  Somewhat out of date. 
     25 
     26== Types and typechecking ==  
     27 
     28 *  [1994] GHC's typechecker implementation is described in the paper [http://research.microsoft.com/~simonpj/Papers/classhask.ps.gz  Type classes in Haskell], CV Hall, K Hammond, SL Peyton Jones, and PL Wadler, European Symposium On Programming, LNCS 788, Springer Verlag, pp.  241-256, April 1994. 
     29 
     30 * [1998] The !UsageSP analysis is described in Keith Wansbrough and Simon Peyton Jones, [http://www.cl.cam.ac.uk/users/kw217/research/phd/usptr-10pt.ps.gz Once Upon a Polymorphic Type], Technical Report TR-1998-19, Department of Computing Science, University of Glasgow, 1998.  Conference version [http://www.cl.cam.ac.uk/users/kw217/research/phd/popl99-usage.ps.gz Once Upon a Polymorphic Type], in The Twenty-sixth ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 20-22, 1999, San Antonio, Texas.  This work isn't in GHC. 
     31 
     32 
     33== Runtime system == 
     34 * [2000] [http://research.microsoft.com/~simonpj/Papers/inc-gc.htm Non-stop Haskell] the workings of an incremental garbage collecton.  Not included in GHC, so far. 
     35 
     36 * [1999] [http://www.haskell.org/ghc/docs/papers/new-rts.ps.gz The New GHC/Hugs Runtime System]---a summary of the [http://www.haskell.org/ghc/docs/papers/run-time-system.ps.gz RTS document]. 
     37 
     38== Language design ==  
     39 
     40 * [1999] [http://www.haskell.org/ghc/docs/papers/except_ps.gz A semantics for imprecise exceptions] describes how exceptions work in GHC.  A follow-up paper is [http://research.microsoft.com/~simonpj/Papers/imprecise-exn-sem.htm Imprecise Exceptions, Co-Inductively] 
     41 
     42 * [1999] [http://research.microsoft.com/~simonpj/Papers/records.htm Lightweight Extensible Records for Haskell].  This design is not implemented. 
     43 
     44 * [2000] [http://research.microsoft.com/~simonpj/Papers/derive.htm Derivable Type Classes].  Fully implemented in GHC. 
     45 
     46 * [2000] [http://research.microsoft.com/~simonpj/Papers/pat.htm Pattern Guards and Transformational Patterns].  This isn't implemented, but a related idea, called [wiki:ViewPatterns view patterns] is. 
     47 
     48 * [1991] [http://www.haskell.org/ghc/docs/papers/unboxed-values.ps.gz Unboxed Values as First-Class Citizens].   Fully implemented. 
     49 
     50 
     51== The awkward squad: I/O, concurrency, exceptions, and foreign functions == 
     52 
     53 * [1993] [http://www.haskell.org/ghc/docs/papers/imperative.ps.gz Imperative Functional Programming]. The original introduction of monads for I/O and state in Haskell, this paper won a 10-year impact award for POPL. A follow-up paper is [http://www.haskell.org/ghc/docs/papers/lazy-functional-state-threads.ps.gz Lazy Functional State Threads] 
     54 
     55 * [2001] [http://www.haskell.org/~simonmar/papers/async.ps.gz Asynchronous Exceptions in Haskell].  The ideas here are fully implemented in GHC.   
     56 
     57 * [1996] [http://www.haskell.org/ghc/docs/papers/concurrent-haskell.ps.gz Concurrent Haskell]. The original paper about Concurrent Haskell, fully implemented. 
     58 
     59 
     60== Profiling ==  
     61 
     62 * [http://www.haskell.org/ghc/docs/papers/profiling.ps.gz Time and Space Profiling for non-strict, higher-order functional programs].  Fully implemented. 
     63 
     64