diff --git a/HISTORY b/HISTORY index d1eed527..6d1d1d96 100644 --- a/HISTORY +++ b/HISTORY @@ -45,4 +45,34 @@ Possible optimizations: * static stack analysis * peephole optimization of G-code * batching of allocation checks -* ... \ No newline at end of file +* ... + + +v0.0.2: 2018-01-13 + +New language features: +* user defined algbebraic data types +* nested pattern matching for algebraic data types +* simple input function for integers +* higher kinded polymorphism +* polymorphic recursion for top level functions + +Changes to compiler components: +* type inferencer outputs System F +* every stage after type inference is type checked in System F +* use of type safe de Bruijn indices almost everywhere + +New examples: +* tree sort +* range minimum query +* fixed point of functors +* several expextation tests + +New optimizations: +* E and R compilation schemes from SPJ's book +* peephole optimizer + +Next steps: +* bounded polymorphism +* row polymorphism +* an effect system diff --git a/TODO b/TODO index 12ebc77b..c1324d6e 100644 --- a/TODO +++ b/TODO @@ -1,10 +1,5 @@ -Everywhere: * Handle builtins and prelude in a better way - -Lambda Lifter: -* Generate a list of super combinators and one start symbol -* Try eta lifting on super combinators to potentially end up with an "alias" -* Replace "aliases" by their definition - -GCode Generator: -* Eliminate dead code +* Bounded polymorphism via type classes +* A record system based on row polymorphism +* An effect system +* Use GRIN as the intermediate language rather than GCode