Changes between Version 16 and Version 17 of Status/Oct10


Ignore:
Timestamp:
Oct 28, 2010 8:14:33 AM (3 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Status/Oct10

    v16 v17  
    1919 There's a raft of other small changes to the optimisation pipeline too.  The net effect can be dramatic: Bryan O'Sullivan reports some five-fold (!) improvements in his text-equality functions, and concludes "The difference between 6.12 and 7 is so dramatic, there's a strong temptation for me to say 'wait for 7!' to people who report weaker than desired performance." [[http://www.serpentine.com/blog/2010/10/19/a-brief-tale-of-faster-equality/ Bryan]] 
    2020 
    21  * David Terei implemented a new back end for GHC using LLVM. In certain situations using the LLVM backend can give fairly substantial performance improvements to your code, particularly if you're using the Vector libraries, DPH or making heavy use of fusion. In the general case it should give as good performance or slightly better than GHC's native code generator and C backend. You can use it through the '-fllvm' compiler flag. More details of the backend can be found in David's and Manuel Chakravarty's Haskell Symposium paper [Llvm]. 
     21 * David Terei implemented a new back end for GHC using LLVM. In certain situations using the LLVM backend can give fairly substantial performance improvements to your code, particularly if you're using the Vector libraries, DPH or making heavy use of fusion. In the general case it should give as good performance or slightly better than GHC's native code generator and C backend. You can use it through the '-fllvm' compiler flag. More details of the backend can be found in David's and Manuel Chakravarty's Haskell Symposium paper [[http://www.cse.unsw.edu.au/~davidt/downloads/ghc-llvm-hs10.pdf Llvm]]. 
    2222 
    2323 * Bryan O’Sullivan and Johan Tibell and implemented a new, highly-concurrent I/O manager. GHC now supports over a hundred thousand open I/O connections. The new I/O manager defines a separate backend per operating system, using the most efficient system calls for that particular operating system (e.g. `epoll` on Linux.) This means that GHC can now be used to implement servers that make use of e.g. HTTP long polling, where the server needs to handle a large number of open idle connections. 
    2424 
    25  * In joint work with Phil Trinder and his colleagues at Herriot Watt, Simon M designed implemented a new parallel strategies library, described in their 2010 Haskell Symposium paper [Seq]. 
     25 * In joint work with Phil Trinder and his colleagues at Herriot Watt, Simon M designed implemented a new parallel strategies library, described in their 2010 Haskell Symposium paper [[http://www.haskell.org/~simonmar/papers/strategies.pdf Seq]]. 
    2626 
    2727 * Simon M did a lot of work on the runtime system.  In particular he substantially improved the way that thunks are handled in a concurrent programs.  '''Simon: a little more info?''' 
     
    5151 * Next after that is a mechanism for '''promoting types to become kinds''', and data constructors to become types, so that you can do ''typed'' functional programming at the type level.  Conor !McBride's SHE prototype is the inspiration here [SHE].  Currently it is, embarrassingly, essentially untyped.   
    5252 
    53  * '''Template Haskell''' seems to be increasingly widely used.  Simon PJ has written a proposal for a raft of improvements, which we plan to implement in the new year [!TemplateHaskell]. 
     53 * '''Template Haskell''' seems to be increasingly widely used.  Simon PJ has written a proposal for a raft of improvements, which we plan to implement in the new year [[http://hackage.haskell.org/trac/ghc/blog/Template%20Haskell%20Proposal TemplateHaskell]]. 
    5454 
    5555 * Iavor Diatchki plans to add '''numeric types''', so that you can have a type like `Bus 8`, and do simple arithmetic at the type level.  You can encode this stuff, but it's easier to use and more powerful to do it directly.