... | ... | @@ -12,13 +12,13 @@ Here are some suggestions for projects related to GHC that could be undertaken b |
|
|
|
|
|
- **Implement overlap and exhaustiveness checking for pattern matching**. GHC's current overlap and exhaustiveness checker is old and inadequate. Furthermore, it takes no account of GADTs and type families. See [\#595](https://gitlab.haskell.org//ghc/ghc/issues/595) and [\#2395](https://gitlab.haskell.org//ghc/ghc/issues/2395). There's an excellent selection of background material:
|
|
|
|
|
|
- [ Warnings for pattern matching](http://pauillac.inria.fr/~maranget/papers/warn/warn.pdf) by Luc Maranget (JFP 17(3), 2007)
|
|
|
- [ Focusing on pattern matching](http://www.cs.cmu.edu/~neelk/pattern-popl09.pdf) by Neelakantan Krishnaswami (POPL 2009)
|
|
|
- [ Compiling pattern matching to good decision trees](http://pauillac.inria.fr/~maranget/papers/ml05e-maranget.pdf) by Luc Maranget, ML Workshop 2008
|
|
|
- [Warnings for pattern matching](http://pauillac.inria.fr/~maranget/papers/warn/warn.pdf) by Luc Maranget (JFP 17(3), 2007)
|
|
|
- [Focusing on pattern matching](http://www.cs.cmu.edu/~neelk/pattern-popl09.pdf) by Neelakantan Krishnaswami (POPL 2009)
|
|
|
- [Compiling pattern matching to good decision trees](http://pauillac.inria.fr/~maranget/papers/ml05e-maranget.pdf) by Luc Maranget, ML Workshop 2008
|
|
|
|
|
|
- **Improve parallel profiling tools**. Starting with [ ThreadScope](http://research.microsoft.com/en-us/projects/threadscope/), incorporate performance-counter events, visualise more runtime events, include source-code information in the profile.
|
|
|
- **Improve parallel profiling tools**. Starting with [ThreadScope](http://research.microsoft.com/en-us/projects/threadscope/), incorporate performance-counter events, visualise more runtime events, include source-code information in the profile.
|
|
|
|
|
|
- **Implement some low-level C-- optimisations**. During 2011 we expect to have the new C-- code generation route in place, and that will open up new opportunities for doing classic compiler-course optimisations on the imperative C-- code. There is more than routine stuff here, because we can use our [ generic dataflow framework](http://research.microsoft.com/~simonpj/papers/c--) to do the heavy lifting. Here are some [particular ideas for optimisations](back-end-notes) we'd like to implement.
|
|
|
- **Implement some low-level C-- optimisations**. During 2011 we expect to have the new C-- code generation route in place, and that will open up new opportunities for doing classic compiler-course optimisations on the imperative C-- code. There is more than routine stuff here, because we can use our [generic dataflow framework](http://research.microsoft.com/~simonpj/papers/c--) to do the heavy lifting. Here are some [particular ideas for optimisations](back-end-notes) we'd like to implement.
|
|
|
|
|
|
---
|
|
|
|
... | ... | @@ -33,7 +33,7 @@ Here are some suggestions for projects related to GHC that could be undertaken b |
|
|
|
|
|
Projects aimed at making GHC into a user-extensible plug-in platform, and less of a monolithic compiler.
|
|
|
|
|
|
- **Allow much finer and more modular control over the way in which rewrite rules and inlining directives are ordered**. See this [ email thread](http://www.haskell.org/pipermail/haskell-cafe/2008-January/038196.html)
|
|
|
- **Allow much finer and more modular control over the way in which rewrite rules and inlining directives are ordered**. See this [email thread](http://www.haskell.org/pipermail/haskell-cafe/2008-January/038196.html)
|
|
|
|
|
|
### Types
|
|
|
|
... | ... | @@ -41,7 +41,7 @@ Projects aimed at making GHC into a user-extensible plug-in platform, and less o |
|
|
|
|
|
- **Extend kinds beyond \* and k1-\>k2**. With GADTs etc we clearly want to have kinds like `Nat`, so that advanced hackery at the type level can be done in a typed language; currently it's all effectively untyped. A neat approach would be to re-use any data type declaration as a kind declaration.
|
|
|
|
|
|
- **Extensible constraint domains**. Andrew Kennedy shows how to incorporate [ dimensional analysis](http://research.microsoft.com/~akenn/units/index.html) into an ML-like type system. Maybe we could do an extensible version of this, so that it wasn't restricted to dimensions. Integer arithmetic is another obvious domain.
|
|
|
- **Extensible constraint domains**. Andrew Kennedy shows how to incorporate [dimensional analysis](http://research.microsoft.com/~akenn/units/index.html) into an ML-like type system. Maybe we could do an extensible version of this, so that it wasn't restricted to dimensions. Integer arithmetic is another obvious domain.
|
|
|
|
|
|
### Runtime system
|
|
|
|
... | ... | @@ -69,8 +69,8 @@ Projects for people who want a decent-sized hacking project, with less research |
|
|
|
|
|
Whole-program dead-code detection (with `--make`).
|
|
|
Whole-program overloading elimination (with `--make`).
|
|
|
Evolve a better ordering for the optimisation passes using [ Acovea](http://www.coyotegulch.com/products/acovea/).
|
|
|
Build system[\#989](https://gitlab.haskell.org//ghc/ghc/issues/989)Build GHC on Windows using Microsoft toolchainToolsUpdate/improve [ Visual Haskell](http://www.haskell.org/visualhaskell) to use the (free) [ Visual Studio Shell](http://msdn2.microsoft.com/en-us/vsx2008/products/bb933751.aspx).
|
|
|
Evolve a better ordering for the optimisation passes using [Acovea](http://www.coyotegulch.com/products/acovea/).
|
|
|
Build system[\#989](https://gitlab.haskell.org//ghc/ghc/issues/989)Build GHC on Windows using Microsoft toolchainToolsUpdate/improve [Visual Haskell](http://www.haskell.org/visualhaskell) to use the (free) [Visual Studio Shell](http://msdn2.microsoft.com/en-us/vsx2008/products/bb933751.aspx).
|
|
|
Download in other formats:[Plain Text](ProjectSuggestions?version=22&format=txt)[](http://trac.edgewall.org/)Powered by [Trac 1.2.2](/trac/ghc/about)
|
|
|
|
|
|
By [Edgewall Software](http://www.edgewall.org/).Visit the Trac open source project at
|
... | ... | |