Release 2012.4 contains several important changes in Ela including critical bug fixes.Ela changes
- Change:Implementation of 'Force' op code is optimized.
- New:Layout rules for 'open' directive has changed (they are backward compatible). Now it is possible to omit 'open' keyword for multiple directives (all subsequent directives should be indented after the first or put on a single line).
- Change:Layout rules for expressions in top level has changed - now multiline expressions at top level should be indented however it is possible to have multiple expressions without explicit sequencing ($).
- New:Syntax for lazy blocks is simplified - parens are not always required.
- Change:Now Ela allows recursive definitions in all the cases (not only for functions). This enables writing code like so: 'let a = 1::(&a)'. In some cases however a 'bottom reached' exception can be raised in run-time. This exception cannot be handled in user code.
- New:Not it is possible to attach a guard to each selector in list comprehension.
- New:It is now possible to specify several guards for a single entry, e.g. '|cond1 |cond2' is equivalent to '|cond1 or cond2'.
- Change:Guards now cannot be chained using comma, e.g. '| cond1, cond2' is no longer valid, one should write '|cond1 and cond2'.
- Fix:Using list comprehensions on a left-hand side could cause a VM stack corruption (defect #3).
- Fix:A bug fixed in execution of Brtrue and Brfalse instructions on thunks (defect #2).
- Fix:A critical bug fix - a 'show' function was broken with previous release (defect #1).
- New:Now it is possible to use '\' symbol in custom operators.
Ela standard library changes
- Change:Thunks highlighting is changed according to the literal changes.
- New:Now documentation viewer is using actual Ela lexer to do syntax highlighting of code samples.
- New:New functions foldl', foldr' and fold' with non-strict sematics added to Core module.
- New:New functions 'addFields' and 'removeFields' added to Record module.
- New:Article CoreModule update information about new non-strict fold*.
- Change:Comprehensions article updated with new information.
- New:Information about new functions added to RecordModule article.
- Change:Article OperatorsPriority updated with new information.