on 63243ca help sign in
elk/changelog.txt
265 lines 9.4 kB history raw
2## 0.11
4 * Lazy and Lazy.Stream (thanks to Max New)
5 * sortBy, sortWith (thanks to Max Goldstein)
6 * elm-repl
7 * Markdown interpolation
8 * Bitwise library
9 * Regex library
10 * Improve Transform2D library (thanks to Michael Søndergaard)
12## 0.10
14 * Native strings
15 * Tango colors
16 * custom precedence and associativity for infix operators
17 * elm-doc released with new documentation format
18 * Realiasing in type errors
19 * Rename Matrix2D => Transform2D
20 * Add Random.floatList (thank you Max GoldStein)
21 * Fix remove function in Dict (thank you Max New)
22 * Start using language-ecmascript for JS generation
23 * Make compatable with cabal-1.18 (thank you Justin Leitgeb)
24 * All functions with 10+ arguments (thanks to Max New)
26## 0.9.1
28 * Allow custom precedence and associativity for user-defined infix ops
29 * Realias types before printing
30 * Switch to Tango color scheme, adding a bunch of nice colors
31 * add the greyscale function for easily producing greys
32 * Check the type of main
33 * Fix miscellaneous bugs in type checker
34 * Switch name of Matrix2D to Transform2D
36## 0.9
38Build Improvements:
39 * Major speed improvements to type-checker
40 * Type-checker should catch _all_ type errors now
41 * Module-level compilation, only re-compile if necessary
42 * Import types and type aliases between modules
43 * Intermediate files are generated to avoid unneeded recompilation
44 and shorten compile time. These files go in ElmFiles/ by default
45 * Generated files are placed in ElmFiles/ by default, replicating
46 the directory structure of your source code.
48Error Messages:
49 * Cross-module type errors
50 * Errors for undefined values
51 * Pretty printing of expressions and types
53Syntax:
54 * Pattern matching on literals
55 * Pattern aliases with `as` (Andrew)
56 * Unary negation
57 * Triple-quoted multi-line strings
58 * Type annotations in let expressions (Andrew)
59 * Record Constructors
60 * Record type aliases can be closed on the zeroth column
61 * (,,) syntax in types
62 * Allow infix op definitions without args: (*) = add
63 * Unparenthesized if, let, case, lambda at end of binary expressions
65elm-server:
66 * Build multi-module projects
67 * Report all errors in browser
69Libraries:
70 * Detect hovering over any Element
71 * Set alpha of arbitrary forms in collages
72 * Switch Text.height to use px instead of em
74Bug Fixes:
75 * Many bug fixes for collage, especially when rendering Elements.
77Website:
78 * Hot-swapping
79 * Much faster page load with pre-compiled Elm files (Max New)
84forgot to fill this in again...
87## 0.7.2
89* Add a WebSockets library.
90* Add support for the mathematical looking operator for function composition (U+2218).
93forgot to fill this in for a while...
96## 0.5.0
98* Add Dict, Set, and Automaton libraries!
100* Add (,,) notation for creating tuples.
102* Redo HTTP library, allowing any kind of request and more flexibility.
104* Remove the library prefixes `Data.`, `Graphics.`, and `Signal.` because
105 they were more confusing than helpful.
107* Better type error reporting for ambiguous uses of variables and for
108 variables in aliased modules.
110* Add `readInt` and `readFloat` functions.
111* Add `complement` function to compute complementary colors.
112* Ensure that `String` is treated as an alias of `[Char]`.
114* Fix bug in pattern parsing. `A B _ _` was parsed as `A (B _ _)`.
115* Make pattern matching a bit more compact in generated code.
116* Make generated JS more readable.
118* The Haskell API exports the absolute path to the Elm runtime
119 system (with the corresponding version number). This makes it easier
120 to run Elm programs with less setup.
124## 0.4.0
126This version is all about graphics: nicer API with more features and major
127efficiency improvements. I am really excited about this release!
129* Add native Markdown support. You can now embed markdown directly in .elm files
130 and it is used as an `Element`. Syntax is `[markdown| ... |]` where `...` is
131 formatted as described [here](http://daringfireball.net/projects/markdown/).
132 Content can span multiple lines too.
134* Drastically improve the `collage` interface. You can now move, rotate, and scale
135 the following forms:
136 - Elements (any Element you want can be turned into a Form with `toForm`)
137 - Images
138 - Shapes (shapes can be textured now too)
139 - Lines
140 This will make it way easier to make games in Elm. Games can now include text,
141 gifs, videos, and any other Element you can think of.
143* Add `--minify` flag, to minify JS code.
145* Significantly improve performance of pattern matching.
147* Compiler performs beta-reduction in some simple cases.
149* The rendering section of the Elm runtume-system (RTS) has been totally rewritten,
150 making screen refreshes use fewer cycles, less memory, and cause less garbage-collection.
154## 0.3.6
156* Add JSON library.
158* Type-error messages improved. Gives better context for error, making them
159 easier to find. Better messages for runtime errors as well (errors that
160 the type checker cannot find yet).
162* Add Comparable super-type which allows the comparision of any values
163 of type {Int,Float,Char,String}. Now possible to make Set and Map libraries.
165* Parser now handles decimal numbers.
167* Added many new functions for manipulating numbers:
168 - truncate, round, floor, ceiling :: Float -> Int
169 - toFloat :: Int -> Float
170 - (^) :: Number -> Number -> Number
171 - e :: Float
173* Foreign import/export statements no longer have to preceed all other
174 variable and datatype definitions. They can be mixed in, making things
175 a bit more readable/natural.
177* Bug fixes:
178 - The `toText` function did not escape strings properly
179 - Correct `castJSTupleToTupleN` family of functions
180 - `foldr1` took the leftmost element as the base case instead of the rightmost
181 - Fix minor display issue in latest version of Chrome.
182 - Fix behavior of [ lo .. hi ] syntax (now [4..0] == [], not [0]).
186## 0.3.5
188* Add JavaScript event interface. Allows Elm to import and export JS values
189 and events. This makes it possible to import and export Elements, so users
190 can use JS techniques and libraries if necessary. Conversion between JS
191 and Elm values happens with functions from here:
192 http://localhost:8000/docs/Foreign/JavaScript.elm
193 http://localhost:8000/docs/Foreign/JavaScript/Experimental.elm
195* Add new flags to help with JavaScript event interface.
197* Add three built-in event listeners (elm_title, elm_log, elm_redirect) that
198 make it possible to make some common/simple imperative actions without
199 having to worry about writing the JS yourself. For example:
200 foreign export jsevent "elm_title"
201 title :: Signal JSString
202 will update the page's title to the current value of the title signal.
203 Empty strings are ignored. "elm_redirect" and "elm_log" events work much
204 the same way, except that "elm_log" does not skip empty strings.
206* Add new Signal functions:
207 count :: Signal a -> Signal Int
208 keepIf :: (a -> Bool) -> a -> Signal a -> Signal a
209 dropIf :: (a -> Bool) -> a -> Signal a -> Signal a
210 keepWhen :: Signal Bool -> a -> Signal a -> Signal a
211 dropWhen :: Signal Bool -> a -> Signal a -> Signal a
212 dropRepeats :: Signal a -> Signal a
213 sampleOn :: Signal a -> Signal b -> Signal b
214 clicks :: Signal ()
215 The keep and drop functions make it possible to filter events, which
216 was not possible in prior releases. More documentation:
217 http://elm-lang.org/docs/Signal/Signal.elm
219* Add examples of JS event interface and new signal functions:
220 https://github.com/evancz/Elm/tree/master/Examples/elm-js
222* Use more compressed format for strings. Should make strings 10-12 times
223 more space efficient than in previous releases. Anecdotal evidence:
224 Elm's home page is now 70% of its previous size.
226* Add new function to Data.List:
227 last :: [a] -> a
229* Fix parenthesization bug with binary operators.
233## 0.3.0
235Major Changes (Read this part!)
236-------------------------------
238* Add a basic module system.
239* Elm's JavaScript runtime is now distributed with the elm package.
240 Previously it was available for download as an unversioned JavaScript
241 file (elm-mini.js). It is now installed with the elm compiler as
242 elm-runtime-0.3.0.js. Be sure to serve the Elm runtime system that matches
243 the version of the compiler used to generate JavaScript. When working
244 locally, the compiler will automatically use your local copy of this file.
245* BREAKING CHANGE: rgb and rgba (in the color module) now take their red,
246 green, and blue components as integers between 0 and 255 inclusive.
247* Improve error messages for parse errors and runtime errors.
250New Functions and Other Additions
251---------------------------------
253* Add support for keyboard events: Keyboard.Raw
254* Add buttons in Signal.Input:
255 button :: String -> (Element, Signal Bool)
256* Add new basic element (an empty rectangle, good for adding spaces):
257 rectangle :: Int -> Int -> Element
258* Add (an awkwardly named) way to display right justified text: rightedText
259* Add two basic libraries: Data.Char and Data.Maybe
260* Add some new colors: magenta, yellow, cyan, gray, grey
261* Add functions to Data.List module: take, drop
262* Add functions to Prelude (the default imports):
263 fst, snd, curry, uncurry, and a bunch of list functions
264* Add --make, --separate-js, and --only-js flags to help compile
265 with the new module system.