Changes between Version 13 and Version 14 of Status/May13


Ignore:
Timestamp:
Apr 29, 2013 1:53:29 PM (22 months ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Status/May13

    v13 v14  
    1  
    21= GHC Status Report May 2013 = 
    32 
    4 [work in progress] 
     3As planned, we made another minor release 7.6.2 from the 7.6 branch in January 2013. This included only bug and performance fixes; no new features were added. 
     4We plan to put out a new major release 7.8.1 soon after ICFP 2013, including 
     5some significant changes described below. 
    56 
    6 As planned, we made another minor release 7.6.2 from the 7.6 branch in January 2013. This included only bug and performance fixes; no new features were added. 
     7There remains more to do than we will ever have time for, so please do come and join in the fun! 
    78 
    8 We plan to put out a new major release 7.8.1 in November 2013. This will include several significant changes, including: 
     9== Source language and type system == 
     10 
     11Simon and Dimitrios overhauled the solver for type constraints, 
     12once more.  No new functionality, but the result is smaller, 
     13faster, and lacks many of the bugs of its predecessor.  You don't 
     14want to know all the details, but it reminded us again of how 
     15valuable it is that the constraint solve is now one coherent 
     16piece of code, with a well-defined task, than being spread out in 
     17bits and pieces across the type checker. 
     18 
     19Meanwhile others have been adding new features. 
    920 
    1021  * '''Poly-kinded `Typeable`.''' 
    11   The `Typeable` class is now poly-kinded, meaning we can finally drop the boilerplate `TypeableN` classes. 
     22  The `Typeable` class is now kind-polymorphic, meaning we can finally drop the boilerplate `TypeableN` classes. 
    1223  The new definition of `Typeable` is as follows: 
    1324 
     
    2738  for all datatypes and classes defined in the module. 
    2839 
    29   * major improvements in DPH (vectorisation avoidance, new vectoriser) ['''Ben Lippmeier'''] 
     40  * Type holes ['''Thijs Alkemade'''] 
    3041 
    31   * type holes ['''Thijs Alkemade'''] 
    32  
    33   * '''Rebindable list syntax.''' A GHC extension called OverloadedLists was added. When this is turned on, the way GHC desugars explicit lists and lists in arithmetic sequence notation is changed. Instead of directly desugaring to built-in lists, a polymorphic witness function is used, similar to the desugaring of numeric literals. This allows for a more flexible use of list notations, supporting many different list-like types. In addition, the functions used in this desugaring process are completely rebindable. 
    34  
    35   * major changes to the type inference engine ['''Simon Peyton Jones'''] 
     42  * '''Rebindable list syntax.''' A GHC extension called [wiki:OverloadedLists overloaded lists] was added by Achim Krause, George Giorgidze, and colleagues. When this is turned on, the way GHC desugars explicit lists and lists in arithmetic sequence notation is changed. Instead of directly desugaring to built-in lists, a polymorphic witness function is used, similar to the desugaring of numeric literals. This allows for a more flexible use of list notations, supporting many different list-like types. In addition, the functions used in this desugaring process are completely rebindable. 
    3643 
    3744  * type level natural numbers ['''Iavor S. Diatchki'''] 
    3845 
    3946  * overlapping type families ['''Richard Eisenberg'''] 
     47 
     48== Back end and code generation == 
    4049 
    4150  * '''The new code generator.''' [entry copied from Oct 2012 status report] Several years since this project was started, the new code generator is finally working  [1], and is now switched on by default in `master`.  It will be in GHC 7.8.1.  From a user's perspective there should be very little difference, though some programs will be faster. 
     
    4958  * support for vector (SSE/AVX) instructions ['''Geoffrey Mainland'''] 
    5059 
     60 
     61== Data Parallel Haskell == 
     62 
     63  * major improvements in DPH (vectorisation avoidance, new vectoriser) ['''Ben Lippmeier'''] 
     64 
     65== The runtime system == 
     66 
    5167  * The new parallel I/O manager ['''Andreas Voellmy'''] 
     68 
     69== Building and linking 
    5270 
    5371  * '''Dynamic ghci.''' Ian Lynagh has changed GHCi to use dynamic libraries rather than static libraries. This means that we are now able to use the system linker to load packages, rather than having to implement our own linker. From the user's point of view, that means that a number of long-standing bugs in GHCi will be fixed, and it also reduces the amount of work needed to get a fully functional GHC port to a new platform. Currently, on Windows GHCi still uses static libraries, but we hope to have dynamic libraries working on Windows too by the time we release. 
     
    5573  * cross-compilation ['''Stephen Blackheath'''] 
    5674 
    57 There remains more to do than we will ever have time for, so please do come and join in the fun! 
    5875 
    5976[1] The new codegen is nearly ready to go live [http://hackage.haskell.org/trac/ghc/blog/newcg-update] [[BR]]