Changes between Version 8 and Version 9 of Status/Oct12


Ignore:
Timestamp:
Oct 31, 2012 10:26:15 AM (2 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Status/Oct12

    v8 v9  
    11= GHC Status October 2012 = 
    22 
    3 == The last 6 months == 
     3We made a bug-fix release of GHC 7.4.2 in June, and a completely new release of GHC 7.6 in August.  As well as the usual raft of general improvements, GHC 7.6 included some new features: 
     4 * Multi-way if, and `\case`. 
     5 * Kind polymorphism and data kinds [7]. 
     6 * Deferred type errors [6] 
     7 * The ability to change ''at runtime'' the number of processors running Haskell threads. 
     8 * The first supported GHC for 64-bit Windows. 
    49 
    5  * 7.4.2 released 
     10Here is what we have been up to in the last six months: 
    611 
    7  * 7.6.1 released 
     12 * '''Kind polymorphism and data kinds''' is a major new feature 
     13 of GHC 7.6. It's 
     14 described in "Giving Haskell a promotion" [7], and has already 
     15 been used in interesting ways ("The right kind of generic 
     16 programming" [8], "Dependently Typed Programming with Singletons" [9]).  Leading up to the GHC 7.6 release 
     17 Simon PJ has been working hard on making kind polymorphism work 
     18 properly, which was a lot more work than he anticipated. Plenty 
     19 more to do: see below. 
    820 
    9  * The RTS now supports changing the number of capabilities at runtime with Control.Concurrent.setNumCapabilities 
    10  
    11  * Win64 
    12  
    13  * polymorphis kinds, datakinds 
    14  
    15  * deferred type errors 
    16  
    17  * Multi-way if, and `\case` 
    18  
    19 == The next 6 months == 
    20  
    21  * 7.6.2 plans: early 2013? 
    22  
    23  * 7.8 plans: early 2013? 
     21 * '''Type holes'''. Thijs Alkemade and Sean Leather have been working on another variant of deferred error messages, that would allow you to write a program that contains as-yet-unwritten sub-terms, or "holes" and have GHC report a fairly precise type for the hole. The HEAD now has an initial implementation (`-XTypeHoles`), and there are ongoing discussions about how to make it better still.  Details on their wiki page [10]. 
    2422 
    2523 * '''Data parallelism.''' We are currently completely rewriting our implementation of ''vectorisation avoidance'' [1] in GHC's vectoriser. This leads to an overall much simpler and more robust vectoriser. In particular, it will be more liberal in allowing scalar subcomputations imported from modules compiled without vectorisation (such as the standard Prelude). This should finally enable us to get rid of the specialised, mini-Prelude in the DPH libraries. 
     
    3129 * dynlibs-by-default 
    3230 
    33  * type holes 
    34   
    3531 * new codegen by default 
    3632 
    3733 * '''Improved floating point register allocation.''' On x86-64 there are now six machine registers available for any mixture of floating-point types. Previously a maximum of four values of type Float and two values of type Double could simultaneously be kept in machine registers. 
    3834 
    39  * '''SIMD primitives.''' The simd branch now supports passing SSE vector values in machine registers. We expect the simd branch to be merged in time for 7.8. 
     35 * '''SIMD primitives.''' The `simd` branch now supports passing SSE vector values in machine registers. We expect the `simd` branch to be merged in time for 7.8. 
    4036 
    41 [1] http://www.cse.unsw.edu.au/~chak/papers/KCLLP12.html [[BR]] 
    42 [2] http://www.cse.unsw.edu.au/~chak/papers/LCKLP12.html [[BR]] 
     37As always there is far more to do than we can handle, and there is loads of space for people to contribute.  Do join us! 
     38 
     39 
     40[1] Vectorisation avoidance, Gabriele Keller et al, HS'12 [http://www.cse.unsw.edu.au/~chak/papers/KCLLP12.html] [[BR]] 
     41[2] Work-efficient higher-order vectorisation, Ben Lippmeier et al, ICFP'12 [http://www.cse.unsw.edu.au/~chak/papers/LCKLP12.html] [[BR]] 
     42[6] Equality proofs and deferred type errors, Dimitrios Vytiniotis et al, ICFP'12, [http://research.microsoft.com/en-us/um/people/simonpj/papers/ext-f/] [[BR]] 
     43[7] Givng Haskell a promotion, Brent Yorgey et al, TLDI'12 [http://research.microsoft.com/en-us/um/people/simonpj/papers/ext-f/] [[BR]] 
     44[8] The right kind of generic programming, Pedro Magalhaes, WGP'13 [http://dreixel.net/index.php?content=research] [[BR]] 
     45[9] Dependently typed programming with singletons, Richard Eisenberge et al, HS'12 [http://www.cis.upenn.edu/~eir/pubs.html]  [[BR]] 
     46[10] Holes in GHC:  [http://hackage.haskell.org/trac/ghc/wiki/Holes]