Changes between Version 1 and Version 2 of Ticket #66


Ignore:
Timestamp:
May 4, 2006 7:46:54 PM (8 years ago)
Author:
pesco
Comment:

Changed project goal to preparing a new Yampa release.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #66

    • Property Summary changed from Add support for "incremental evaluation" (lazy processing) to Yampa to Prepare a new Yampa release, including GADT optimizations
  • Ticket #66 – Description

    v1 v2  
    11The [http://haskell.org/yampa Yampa] library for functional reactive programming 
    2 always uses CPU time, continuously updating the signal output, 
    3 even while nothing is happening. 
    4 This makes it undesirable to use for most applications 
    5 which cannot assume to have the machine all to themselves. 
    6 While this problem can be lessened by iterating the reactimation loop at a reduced 
    7 frequency (the approach taken by e.g. 
    8 [http://zoo.cs.yale.edu/classes/cs490/03-04b/bartholomew.robinson/wxfruit.pdf wxFruit]), 
    9 it still leaves some waste overhead and requires special attention to 
    10 areas needing lower update latency. 
     2has not had a public release for some time. 
     3Henrik Nilsson has recently published 
     4[http://www.cs.nott.ac.uk/~nhn/Publications/icfp2005.pdf a paper] 
     5on further optimizing the framework using GADTs. 
     6However, some work remains to be done on the code before a new 
     7proper release can be made. 
    118 
    12 This project would enable Yampa to make some judgement as to when output needs to be recomputed, 
    13 allowing it to blocking-wait for now input during periods of inactivity. 
     9This project would entail: 
     10 
     11 * Clean and polish Nilsson's code. 
     12 * Revise the library's API. 
     13 * Isolate the GADT-based optimizations and 
     14   make them a compile-time option, 
     15   to avoid portability regress. 
     16 * Replace the current build system with a Cabal-based one. 
     17 * As far as time permits, investigate further optimizations 
     18   (such as those hinted in the paper). 
     19 
     20NB. This project idea was originally "Add support for incremental 
     21evaluation (lazy processing) to Yampa". Unfortunately, 
     22correspondence with Henrik Nilsson, as well as the poster's 
     23own experimentation, have left the feasability of that 
     24project uncertain. 
     25 
     26 
     27== References == 
     28 
     29 * Yampa. [http://www.haskell.org/yampa/] 
     30 
     31 * Henrik Nilsson: "Dynamic Optimization for Functional Reactive   
     32   Programming using Generalized Algebraic Data Types". 
     33   [http://www.cs.nott.ac.uk/~nhn/Publications/icfp2005.pdf] 
    1434 
    1535== Interested Mentors ==