blob: dca715c1ace1753c96d2d0adbbc01ec33a41b05d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
# v0.5
- compiler
- support local pattern matching functions
- support recursive local definitions
- more polymorph type for equality constraints
(~) :: forall a . a -> a -> Type
- tuples are representated as heterogeneous lists
- support one-element tuple syntax: (( element ))
- reduction: don't overnormalize (String -/-> [Char])
- compiler optimization: names have Int identifiers
- libraries/OpenGL API
- use the advantage of heterogeneous lists
(simplified and more complete type family instances)
- needed to explicitly denote one-element attribute tuples
- set programmable point size with ProgramPointSize
- use lists instead of streams
- rename
- fetch_ --> fetch; fetchArrays_ --> fetchArrays
- zeroComp --> zero; oneComp --> one
- codegen
- generate functions in shaders (previously functions were inlined)
- normalized variable names in the generated pipeline
- optimization: remove duplicate shader programs
- pretty printed shader programs
- include compiler version in the generated pipeline as a string info field
- testenv
- performance benchmarks (time and memory consumption)
- other
- parsec dependency changed to megaparsec
- registered on stackage too (next to HackageDB)
# v0.4 - tagged on Feb 5, 2016
- compiler
- support type synonyms
- support simple import lists (hiding + explicit)
- support multiple guards
- handle constructor operator fixities, also in patterns
- definitions are allowed in any order (not just bottom-up)
- desugar node definitions (more robust, previously node definition handling was ad-hoc)
- support qualified module imports
- better tooltip ranges & types
- bugfix: fix looping in type checking of recursive definitions
- compiler optimization
- separate types and values (vs. church style lambda)
- separate use of neutral terms
- erease lambda variable type
- erease univ. pol. arguments of constructors
- erease univ. pol. arguments of case functions
- speed up 'eval' function
- tried to speedup with cache max. de bruin indices
- use less 'try' in parser
- libraries
- always put base library modules to include path
- OpenGL API: simplify CullMode: remove FrontFace it is always ccw
- OpenGL API: simplify Depth images handling
- testenv
- language feature tests framework
- other
- released on HackageDB
# v0.3 - tagged on Jan 18, 2016
- compiler
- complete rewrite from scratch
- use De Bruijn indices instead of String names
- pattern match compilation
- compositional type inference is replaced by a zipper-based approach
which plays better together with dependent types
- libraries/OpenGL API
- interpolation handling is decoupled from vertex shader descriptions
- introduce Stream data type; use just two types of streams instead of 4
- testenv
- use Travis CI (continuous integration) with a docker image
- timeout for tests
# first DSL compiler - tagged on Jun 14, 2015
- supports a fair amount of Haskell98 language features
- partially supports GADTs and type families
- supports explicit type application
- supports row polymorphism and swizzling
- uses compositional typing for better error messages
- OpenGL API provided in attached Builtins and Prelude modules
- generates LambdaCube3D IR (intermediate representation)
|