First Release

Ehc

This page is left here as a todo list, but not further maintained.

Last update of this page at 18 Apr 2010. The content of this page will partially move to the status section of the ehc manual.

This page contains a detailed todo list for the first release of EHC as UHC, that is, Haskell98. The todo list is separated in 'must do' and 'nice to do'. LanguageFeatures contains a more high level description of what is present and missing in EHC. The bug database (see FeedBack) also describes problems, some of which are to be solved after a first release, some before. Whenever relevant, the todo list refers to bug database issues.

'Must Do' todo + 'done' list

Issue Work amount/severity Status Done
Exceptions (makes Prelude easier) major   20070129
Parser for types still has ambiguities, should be done as for expressions minor   20070131
Extensible records require checking (has been ignored lately) minor/medium   20070306
Context reduction has become too complex because of explicit/implicit experimentation, needs simplification. It breaks on Prelude numeric hierarchy major (can be postponed, unless it severely breaks) leftover: higher order 20070327 (now CHR based)
Error reporting should include reference to program text (line nr info) medium/major   20070401
Case match on non data types, requires expansion into "==" comparisons medium   20070508
Coercions for tuples are too agressively inserted (e.g. in body of snd) minor   20070515
Performance: AG generated code is inefficient, work by Joost Verhoog solves it but must be made working major   20070701
Performance: avoidance of unnecessary laziness (toplevel compiler driver, AST's, etc) major   20070701
FFI types must be fully beta reduced when used to derive type dependent lowlevel interface minor   20070819
Check on duplicate introductions of name bindings medium   20070912
Enum(toEnum) deriving, requires additional tables because of tag assignment based lexicographic ordering of constructors medium   200710xx
IO primitives medium   20080109
Throwing an exception from the RTS initiates a new interpreterloop which never returns minor   20080131
Float/Double type + primitive support medium   20080220
Covariance/contravariance analysis required for datatypes, otherwise e.g. [forall a.a->a] <= [Int->Int] (inconsistently) fails in some higher-ranked situations major   20080411
Read(readsPrec) deriving medium   20081001
Prelude, likely to be derived from Hugs's major, most other todo's are part of this mostly done 20081001
Reusability: fine grained reuse of EHC framework by aspect (new) + by variant (already there) major   20081106
Prelude: Eq (etc) instances for tuples missing minor    
Name analysis occasionally too aggressively puts class + instances + datatypes in 1 binding group minor    
Kinds of quantified type variables are not stored in type major    
FFI spec (for Prelude) medium    
Skolem type variables may escape but get requantified, allowing too much polymorphism medium    
Manual for EHC + tools, system doc major   current
GBM: check on stack size availability at start of function medium    
default mechanism, most likely use Haskell Prime's proposal medium/major (can be postponed?)    
Run nofib test suite medium    
Case match with only a an identifier in 1 pattern is strict, should be lazy minor    
Check on 'class D a where op :: C a => a -> ...' where op's signature refers to a in a predicate minor    
EHC home made garbage collector major current  

'Cant live without but actually can for 1st release' todo list

Issue Work amount/severity Status Done
Irrefutable patterns are too lazy medium    
Types in error need prettier printing (use of original names, avoiding internal representation of tvars) medium    
Dot notation for record selection (requires scanner tweaking) medium    
Prune of unused code (resulting executables now can be large) major    

'Nice to Do' todo list

Issue Work amount/severity Status Done
Operator sections on type level minor/medium    
Lacking predicates in instances, as to allow nicer formulation of tuple instances medium    
Ix(..) deriving medium    

-- AtzeDijkstra - 17 Jan 2007