Changes between Version 25 and Version 26 of Internships


Ignore:
Timestamp:
Mar 13, 2009 10:37:22 AM (6 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Internships

    v25 v26  
    3636  * Roshan James wrote a parallel garbage collector 
    3737 
    38 == Current projects == 
    39  
    40 Here is a list of some possible future projects we have in mind.  But feel free to suggest your own! 
    41  
    42 === Programming environment and tools === 
    43  
    44   * Update/improve [http://www.haskell.org/visualhaskell Visual Haskell] to use the (free) [http://msdn2.microsoft.com/en-us/vsx2008/products/bb933751.aspx Visual Studio Shell]. 
    45  
    46   * Work on the [http://www.haskell.org/haskellwiki/Ghci/Debugger GHCi debugger] 
    47  
    48   * Make GHC work with [http://research.sun.com/projects/gcspy/ GCSpy], a generic heap visualiser tool. 
    49  
    50   * Maintaining an explicit call stack [wiki:ExplicitCallStack] 
    51  
    52 === Turning GHC into a platform === 
    53  
    54 Projects aimed at making GHC into a user-extensible plug-in platform, and less of a monolithic compiler. 
    55   * '''Allow much finer and more modular control over the way in which rewrite rules and inlining directives are ordered'''.  See this [http://www.haskell.org/pipermail/haskell-cafe/2008-January/038196.html email thread] 
    56    
    57   * '''Support dynamically-linked Core-to-Core plug-ins''', so that people can add passes simply by writing a Core-to-Core function, and dynamically linking it to GHC.  This would need to be supported by an extensible mechanism like ``attributes`` in mainstream OO languages, so that programmers can add declarative information to the source program that guides the transformation pass.  Likewise the pass might want to construct information that is accessible later.  This mechanism could obviously be used for optimisations, but also for program verifiers, and perhaps also for domain-specific code generation (the pass generates a GPU file, say, replacing the Core code with a foreign call to the GPU program). See [wiki:Plugins] for some early thoughts on this. 
    58  
    59     * '''Improve the GHC API''', whereby you can import GHC as a library.  We make improvements now and then, but it would benefit from some sustained attention.  A particular project would be to port the Haskell refactorer [http://www.cs.kent.ac.uk/projects/refactor-fp/hare.html HaRE] to use the GHC API. 
    60  
    61 === Types === 
    62  
    63  * '''Allow unboxed tuples as function arguments'''.   Currently unboxed tuples are second class; fixing this would be a nice simplification. 
    64  
    65   * '''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.  
    66  
    67  * '''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. 
    68  
    69  * '''Extensible constraint domains'''.  Andrew Kennedy shows how to incorporate [http://research.microsoft.com/~akenn/units/index.html dimensional analysis] 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.   
    70  
    71  * Implement [http://repetae.net/john/recent/out/classalias.html John Meacham's class alias proposal] 
    72  
    73 === Parallel stuff === 
    74  
    75   * Experiment with multiprocessor Haskell and/or STM by building and measuring applications, investigate improvements 
    76   * Continue work on parallel GC: particularly independent minor-generation collections. 
    77  
    78 === Other stuff === 
    79  
    80   * Back end and code generation.  This is an active area at the moment, but there is sure to be more to do.  See suggestions in [wiki:BackEndNotes] 
     38Here a [wiki:ProjectSuggestions bunch of suggestions]. 
    8139 
    8240 
    83 === Build system === 
    84  
    85   * Build a Windows-native version of GHC (using MS tools instead of gcc). 
    8641 
    8742