purescript v0.8.0 Release Notes
Release Date: 2016-01-31 // about 8 years ago-
๐ 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
- Use
class
keyword for class references in imports (@garyb) - Type imports no longer require
()
(@garyb) - Allow import hiding with qualified imports (@garyb)
- Naming conflicts are now resolved at the use site (@garyb)
- Use
- Error Messages
- Fix #1662, display extra type info in instance errors (@paf31)
- Add information about skolem constants to type errors (@paf31)
- Sort rows in unification errors (@paf31)
- โ Warnings
- Warn on unspecified imports (@garyb)
- Warn when import X hiding (..) imports nothing (@garyb)
- Warn on duplicate imports and exports (@garyb)
- Warn about unused class imports (@garyb)
๐ 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 [email protected] 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)