Changes between Version 7 and Version 8 of GhcPapers


Ignore:
Timestamp:
Aug 11, 2009 12:16:28 PM (5 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GhcPapers

    v7 v8  
    22 
    33Here we've collected together lots of documentation and papers that 
    4 generally describe stuff we've implemented in GHC. 
     4generally describe stuff we've implemented in GHC.  
     5 
     6Many of these papers are old.  For more up-to-date ones look on: 
     7 * [http://research.microsoft.com/~simonpj Simon PJ's home page] 
     8 * [http://research.microsoft.com/~simonpj/papers Simon PJ's papers page] 
     9 * [http://research.microsoft.com/~simonmar Simon Marlow's home page] 
    510 
    611All docs are gzipped A4 Postscript unless otherwise specified. 
    7  
    8  * [http://www.haskell.org/ghc/docs/papers/threads.ps.gz The Concurrent Haskell Foreign Function Interface].  This document is a draft Haskell addendum that describes GHC's approach to concurrency and its interaction with the FFI and OS threads. 
    912 
    1013 * [http://www.haskell.org/ghc/docs/latest/html/ext-core/core.pdf An External Representation for the GHC Core Language].  This document describes the syntax of GHC Core (.hcr) files, which can be used to feed GHC intermediate code to other (non-GHC) back-end processors. 
     
    1215 * [http://www.haskell.org/ghc/docs/papers/hep.ps.gz Haskell Execution Platform] design document.  This document describes the design for an integrated compiler/interpreter API for executing Haskell programs, which forms the heart of the combined Hugs/GHC system. 
    1316 
    14  * [http://www.haskell.org/ghc/docs/papers/run-time-system.ps.gz Run-time System document].  This document (is supposed to) describe the new run-time system in GHC 4.xx.  Be warned that the implementation and this document are evolving in parallel, so they might not be quite in sync. 
     17== The innards of the complier == 
    1518 
    1619 * [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]. 
    17  
    18 == The innards of the complier == 
    1920 
    2021 * [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". 
     
    3031 * [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. 
    3132 
     33== Runtime system == 
    3234 
    33 == Runtime system == 
     35 * [http://www.haskell.org/ghc/docs/papers/run-time-system.ps.gz Run-time System document].  This document (is supposed to) describe the new run-time system in GHC 4.xx.  Be warned that the implementation and this document are evolving in parallel, so they might not be quite in sync. 
     36 
    3437 * [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. 
    3538 
     
    5154== The awkward squad: I/O, concurrency, exceptions, and foreign functions == 
    5255 
    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] 
     56 * [http://www.haskell.org/ghc/docs/papers/threads.ps.gz The Concurrent Haskell Foreign Function Interface].  This document is a draft Haskell addendum that describes GHC's approach to concurrency and its interaction with the FFI and OS threads. 
    5457 
    5558 * [2001] [http://www.haskell.org/~simonmar/papers/async.ps.gz Asynchronous Exceptions in Haskell].  The ideas here are fully implemented in GHC.   
     
    5760 * [1996] [http://www.haskell.org/ghc/docs/papers/concurrent-haskell.ps.gz Concurrent Haskell]. The original paper about Concurrent Haskell, fully implemented. 
    5861 
     62 * [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] 
    5963 
    6064== Profiling ==