Changes between Version 5 and Version 6 of Library


Ignore:
Timestamp:
Jul 29, 2015 3:45:12 PM (4 years ago)
Author:
goldfire
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Library

    v5 v6  
    1 {{{#!box warning
    2 The content here is supposed to merged into the ReadingList page
    3 }}}
    4 
    5 = The GHC Library =
    6 
    7 This page is meant to serve as a one-stop shop for all papers that directly discuss aspects of GHC and how it is implemented. Naturally, these will fall out of date as GHC evolves, but it is immensely helpful to have the original, long-hand explanations around. If you're aware of work that belongs on this page (including your own, of course!), please by all means add it.
    8 
    9 '''Note on links:''' Because many of these papers are copyrighted by the publishing bodies, we cannot host copies of the papers here. Instead, each entry should have at least one stable link to the publishing body's version and, ideally, a link to a freely available copy. For example, the "System F with Type Equality Coercions" paper links both to [http://dx.doi.org/10.1145/1190315.1190324 the version behind the paywall] (often via a [http://doi.org doi] link) and [http://research.microsoft.com/en-us/um/people/simonpj/papers/ext-f/tldi22-sulzmann-with-appendix.pdf the version on Simon's web page]. This way, readers can access a PDF easily (via the second link) and we have some hope that the paper will still be discoverable in years' time (via the first link).
    10 
    11 == Implemented ==
    12 
    13 The ideas in these papers are implemented and merged into master.
    14 
    15 * '''Playing by the Rules: Rewriting as a Practical Optimisation Technique in GHC'''. Simon Peyton Jones, Andrew Tolmach, Tony Hoare. Haskell '01. [http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.130.2170 CiteSeer]
    16 
    17     Introduces `RULES`.
    18 
    19 * '''Template Meta-programming for Haskell'''. Tim Sheard, Simon Peyton Jones. Haskell '02. [http://dx.doi.org/10.1145/636517.636528 doi] [http://research.microsoft.com/en-us/um/people/simonpj/papers/meta-haskell/meta-haskell.pdf pdf]
    20 
    21     Introduces Template Haskell.
    22 
    23 * '''Scrap your Boilerplate: a Practical Design Pattern for Generic Programming'''. Ralf Lämmel, Simon Peyton Jones. TLDI '03. [http://dx.doi.org/10.1145/604174.604179 doi] [http://research.microsoft.com/en-us/um/people/simonpj/papers/hmap/index.htm pdfs]
    24 
    25     Introduces `Typeable` and `Data`.
    26 
    27 * '''Associated Types with Class'''. Manuel M. T. Chakravarty, Gabriele Keller, Simon Peyton Jones, Simon Marlow. POPL '05. [http://dx.doi.org/10.1145/1040305.1040306 doi] [http://research.microsoft.com/en-us/um/people/simonpj/Papers/assoc-types/assoc.pdf pdf]
    28 
    29     Introduces associated data families.
    30 
    31 * '''Associated Type Synonyms'''. Manuel M. T. Chakravarty, Gabriele Keller, Simon Peyton Jones. ICFP '05. [http://dx.doi.org/10.1145/1086365.1086397 doi] [http://research.microsoft.com/en-us/um/people/simonpj/papers/assoc-types/at-syns.pdf pdf]
    32 
    33     Introduces associated type families.
    34 
    35 * '''System F with Type Equality Coercions'''. Martin Sulzmann, Manuel Chakravarty, Simon Peyton Jones. TLDI '07. [http://dx.doi.org/10.1145/1190315.1190324 doi] [http://research.microsoft.com/en-us/um/people/simonpj/papers/ext-f/tldi22-sulzmann-with-appendix.pdf extended pdf]
    36 
    37     The original paper describing GHC's Core language, also called FC in academic literature.
    38 
    39 * '''Understanding Functional Dependencies via Constraint Handling Rules'''. Martin Sulzmann, Gregory J. Duck, Simon Peyton Jones, Peter J. Stuckey. JFP '07. [http://dx.doi.org/10.1017/S0956796806006137 doi] [http://research-srv.microsoft.com/en-us/um/people/simonpj/papers/fd-chr/jfp06.pdf pdf]
    40 
    41 * '''Practical Type Inference for Arbitrary-Rank Types'''. Simon Peyton Jones, Dimitrios Vytiniotis, Stephanie Weirich, Mark Shields. JFP '07. [http://dx.doi.org/10.1017/S0956796806006034 doi] [http://repository.upenn.edu/cis_papers/315/ pdf] [http://repository.upenn.edu/cis_reports/58/ technical appendix]
    42 
    43     Describes type inference for higher-rank types.
    44 
    45 * '''OutsideIn(X): Modular Type Inference with Local Assumptions'''. Dimitrios Vytiniotis, Simon Peyton Jones, Tom Schrijvers, Martin Sulzmann. JFP '11. [http://dx.doi.org/10.1017/S0956796811000098 doi] [http://research.microsoft.com:8082/en-us/um/people/simonpj/papers/constraints/jfp-outsidein.pdf pdf]
    46 
    47     Describes the type inference algorithm in detail, focusing on GADTs and type families.
    48 
    49 * '''Giving Haskell a Promotion'''. Brent Yorgey, Stephanie Weirich, Julien Cretin, Simon Peyton Jones, Dimitrios Vytiniotis, José Pedro Magalhães. TLDI '12. [http://dx.doi.org/10.1145/2103786.2103795 doi] [http://research.microsoft.com/en-us/um/people/simonpj/papers/ext-f/promotion.pdf pdf]
    50 
    51     This introduces the promoted datatypes, kind polymorphism, and the `Constraint` kind. It includes an updated version of FC.
    52 
    53 * '''Equality Proofs and Deferred Type Errors: A Compiler Pearl'''. Dimitrios Vytiniotis, Simon Peyton Jones, José Pedro Magalhães. ICFP '12. [http://dx.doi.org/10.1145/2364527.2364554 doi] [http://research.microsoft.com/en-us/um/people/simonpj/papers/ext-f/icfp12.pdf pdf]
    54 
    55     Introduces deferred type errors, and has some explanation of lifted vs. unlifted equality.
    56 
    57 
    58 * '''Evidence Normalization in System FC'''. Dimitrios Vytiniotis, Simon Peyton Jones. RTA '13. [http://dx.doi.org/10.4230/LIPIcs.RTA.2013.20 doi] [http://drops.dagstuhl.de/opus/volltexte/2013/4050/pdf/3.pdf pdf]
    59 
    60    Explains the coercion optimizer.
    61 
    62 * '''Closed Type Families with Overlapping Equations'''. Richard A. Eisenberg, Dimitrios Vytiniotis, Simon Peyton Jones, Stephanie Weirich. POPL '14. [http://dx.doi.org/10.1145/2535838.2535856 doi] [http://www.seas.upenn.edu/~sweirich/papers/popl14-axioms.pdf pdf] [http://repository.upenn.edu/cis_reports/990/ extended version]
    63 
    64     Introduces closed type families.
    65 
    66 * '''Safe Zero-Cost Coercions for Haskell'''. Joachim Breitner, Richard A. Eisenberg, Simon Peyton Jones, Stephanie Weirich. ICFP '14. [http://dx.doi.org/10.1145/2628136.2628141 doi] [http://research.microsoft.com/en-us/um/people/simonpj/papers/ext-f/coercible.pdf pdf] [http://www.seas.upenn.edu/~sweirich/papers/coercible-extended.pdf extended pdf]
    67 
    68     Introduces the `Coercible` mechanism.
    69 
    70 * '''Partial Type Signatures for Haskell''', Thomas Winant, Dominique Devriese, Frank Piessens, Tom Schrijvers.  PADL 2014 [https://lirias.kuleuven.be/bitstream/123456789/423475/3/paper.pdf pdf] [https://lirias.kuleuven.be/bitstream/123456789/424883/1/CW649.pdf TR] [http://dx.doi.org/10.1007/978-3-319-04132-2_2 doi]
    71 
    72     Introduces partial type signatures.
    73 
    74 == In progress ==
    75 
    76 These papers have an implementation in progress, but have not yet merged (July 2015).
    77 
    78 * '''System FC with Explicit Kind Equality'''. Stephanie Weirich, Justin Hsu, Richard A. Eisenberg. ICFP '13. [http://dx.doi.org/10.1145/2500365.2500599 doi] [http://www.seas.upenn.edu/~sweirich/papers/fckinds.pdf pdf]
    79 
    80     Merges types with kinds, allowing promotion of GADTs and type families.
    81 
    82 == Proposed ==
    83 
    84 These papers propose extensions to GHC, but have not yet started on an earnest implementation.
     1This page was created in error. Please use it for whatever purpose you like!