A massive thanks to everyone involved in this release!
Breaking Changes
None, but there are lots of new warnings related to upcoming breaking changes in 0.9:
- Operators as aliases will become mandatory, and regular operators (as functions) will now generate warnings.
- Non-exhaustive functions will get a
Partial
constraint in 0.9, so the exhaustivity checker will now attempt to generate warnings by looking forPartial
constraints in scope. - The
qualified
import syntax has been deprecated. - Class imports will use the new
class
syntax in 0.9 and the alternative syntax is deprecated.
Enhancements
- Add native
Partial
constraint (@garyb) - Reduce backtracking in parser to hopefully improve quality of parsing error messages (@paf31)
- Drop requirement to parenthesize single constraints in instance contexts (@garyb)
- Case expressions can now match multiple values (@natefaubion)
- Add operator aliases (@garyb)
- Show identifiers correctly in ctags (@nwolverson)
- Fix #1523, add
--json-errors
flag for editor integrations (@paf31) - Error and warning corrections are now available to editors via
--json-errors
(@nwolverson) - Check integer values are within range in codegen (@garyb)
- Support for unicode operators (@paf31)
- The parser now supports unicode symbols for
forall
and function arrows (@DavidLindbom) - Module Imports
- Error Messages
- Warnings
Bug Fixes
- Renamer updates, fixes naming bug in some unlikely situations (@garyb)
- Fix #1645, implement new indentation rules for types to avoid very wide errors (@paf31)
- Fix "resource exhausted" issue on MacOS (@mgmeier)
- Fix #1664, check kind before expanding wildcards. (@paf31)
- Fix up shadowed module names in JS codegen (@garyb)
- Fix #1185, fix #1369, add everythingWithScope traversal to correct some scoping issues. (@paf31)
- Fix two cases where errors were missing context (@garyb)
- Fix #1636, instantiate polytypes fully, even under constraints. (@paf31)
- Fix missing data constructors in re-exports (@garyb)
- Fix codegen error with instance for re-exported class (@garyb)
- Fix #1479, encode .js files as UTF8. (@paf31)
- Fix a bug related to redundancy checking in cases (#1853, @nicodelpiano)
- Fix a TCO/composition inlining bug (@garyb, @hdgarrood)
- Fix renaming for nested constructor binders (#1839, @sharkdp)
- Fix generic deriving bug with >1 type argument (@hdgarrood)
- Fix generate fresh binder names unless all names in case are equal (#1825, @paf31)
- Fix external require expressions when minifying (#1794, @paf31)
- Rename
foreign
argument to fix compiling issue (@anttih) - Allow use of bottom integer (@garyb)
Other
- Fix #1700, remove warnings for syntactic features removed in 0.7.0 (@paf31)
- Fix psc-publish test (@passy)
- Relax rules for docs comments (#1820, @hdgarrood)
- Qualified name lookup is now supported in PSCi (#974, @soupi)
- https://github.com and git@github.com URLs are now allowed by psc-publish (@passy, @codedmart)
- Docs are now generated for module re-exports (@hdgarrood)
- Use friendly module name in psc-docs error (@nwolverson)
- Distinguish between the different ProperNames (@garyb)
- Warn about unspecified constructors in type imports (@garyb)
- Fix warning about values missing from virtual modules (@garyb)