Changelog History
Page 6
-
v0.8.1 Changes
February 29, 2016You are recommended to use v0.8.2 instead.
-
v0.8.0 Changes
January 31, 2016๐ 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)
-
v0.7.6 Changes
November 18, 2015๐ Thanks once again to everyone involved in this release!
๐ This release includes some updates to generic deriving which require updating to the latest version of
purescript-generics
.๐ Features
- Field puns, fix #921 (@balajirrao)
It is now possble to construct objects by using values in scope with the same name as the field labels. For example, the expression
{ foo, bar }
is equivalent to{ foo: foo, bar: bar }
. Patterns desugar in the same way.โจ Enhancements
- ๐ Modules are now parsed in parallel (@paf31)
- ๐ Use
Types.Proxy.Proxy
instead ofData.Generic.Proxy
. This fixes #1573 (@tfausak) - โก๏ธ Update generic deriving for latest
purescript-generics
changes (@paf31) - ๐ New import warnings - unused data constructors, unused imports (@nwolverson)
psc-publish
: only warn on dirty working tree on dry runs (@hdgarrood)- โ Add more information to psci :browse command (@soupi)
- โ Add support for --require-path option to psc-bundle (@natefaubion)
- ๐ Improved error reporting in psc-publish (@hdgarrood)
- ๐ Reduce noise in instance declarations in documentation (@hdgarrood)
๐ Bug Fixes
- ๐ New approach to unification, fixing some loops in the type checker (@paf31)
- ๐ Fix #1632, instantiate type variables in anyProxy calls in generic instances (@paf31)
- ๐ Fix warnings for unqualified implicit imports (@nwolverson)
- ๐ Fix #1596, don't show type checker warnings in the event of an error (@paf31)
- ๐ Fix #1602, improvements around code generation of string literals (@michaelficarra)
- ๐ Fix #1090, allow accessors in operator sections (@paf31)
- ๐ Fix #1590, limit depth of pretty-printed expressions (@paf31)
- ๐ Fix #1591, use the 'negate' in scope (@paf31)
- ๐ Fix #1335, track scoped type variables when skolemizing (@paf31)
- ๐ Fix #1175, check types inside where clauses inside instances (@paf31)
- ๐จ Some refactoring (@phadej)
- ๐ Fixed some error messages (@zudov)
๐ Deployment
- ๐ Use
base-compat
to reduce the need forCPP
(@phadej) - Write license-generator in Haskell (@phadej)
- โ Add GHC 7.10.3 to CI build matrix (@phadej)
-
v0.7.6.1 Changes
November 18, 2015๐ Fixes a bug in generic deriving.
๐ See the release notes for 0.7.6.
-
v0.7.5 Changes
October 20, 2015๐ A big thank you to everyone who was involved in this release, from filing issues, through fixing bugs to testing patches.
๐ The main focus areas for this release, as part of the 0.8 milestone, were error messages and performance.
๐ฅ Breaking Changes
None!
โจ Enhancements
- ๐จ Pretty printing of types and expressions in errors was improved (@paf31)
- Externs files are now saved as JSON (@paf31)
- ๐ Support for parallel builds has been added (@paf31)
Builds will now use multiple cores by default, but the number of capabilities can be modified by passing the
-N
option to the GHC runtime:
psc <input files> +RTS -N8
- Binders can now be given type annotations (@5outh)
For example:
example = do n :: Int <- get put (n + 1)
This can be useful when disambiguating types.
- โ There is a new warning for missing type signatures on top-level declarations (@paf31)
- โ There are new warnings for shadowed and unused type variables (@garyb)
- โ Contextual information in warnings was improved (@garyb)
- The
qualified
keyword is now optional when importing modules qualified (@michaelficarra) - @zudov changed the behavior of PSCi on CTRL+C/D to match GHCi and other REPLs.
- ๐ A bug in row unification was fixed (#1310, @paf31)
- Constrained types can now be defined without a
forall
keyword. This is useful in some nullary type class and rank-N scenarios. (@paf31)
๐ Bug Fixes
- @garyb added some additional checks for transitive module exports.
- Type synonyms are now expanded more eagerly to avoid some error cases in the type checker (@paf31)
- ๐ Better support for multi-byte UTF-8 characters (@senju)
- A check has been added to the exhaustivity checker to avoid exponential blowup (@paf31)
- Empty case statements are no longer syntactically valid (@zudov)
Other
- โ @aspidites fixed all compiler warnings in the core libraries.
- ๐ @zudov and @phadej have made improvements to the Stack distribution of the compiler, and the Stackage builds.
- โ @garyb has added a warning for operators in type classes, since they will be disallowed before 0.8.
-
v0.7.5.3 Changes
October 29, 2015๐ Bug Fixes
- #1072, #1130, #1578, #1577, #1582
-
v0.7.5.2 Changes
October 27, 2015๐ Fixes a build issue with GHC versions < 7.10. Functionally equivalent to v0.7.5.1.
-
v0.7.5.1 Changes
October 27, 2015๐ Bug Fixes
- ๐ Fix #1169, #1315, #1534, #1543, #1548, #1551, #1557, #1570
- ๐ Fix memory leak caused by WriterT (#1297) by @paf31
- Display hints after main error (#1563) by @paf31
- Friendlier errors by @paf31
- ๐ Documentation fixes by @nwolverson
- ๐ Haddock fixes by @trofi
-
v0.7.4.1 Changes
August 26, 2015๐ This patch release fixes two bugs related to the new instance resolution algorithm and overlapping instances:
- ๐
psci
would not work due to overlaps in thePSCI.Support
module - ๐
free
would not build due to its dependency oninject
โ The solution for now is to make overlapping instances into a warning (instead of an error) at the site of their use.
Later we might revisit this decision and allow the user to express classes like
Inject
which are necessarily overlapping. - ๐
-
v0.7.4.0 Changes
August 25, 2015๐ฅ Breaking Changes
- ๐ The type class instance search algorithm has changed. The search will now eagerly match an instance for each subgoal based on the instance head, or fail. This makes certain instances in previous versions of
purescript-transformers
invalid, so users of this release should upgrade to the latesttransformers
. - A module must be imported to be re-exported.
โจ Enhancements
RedefinedModule
errors now include position info #1024 (@garyb)- Multiple imports of the same module are now resolved correctly, allowing for combinations of qualified and unqualified importing #817 #1112 (@garyb)
- Errors for unresolvable imports and exports have been clarified #1232 (@garyb)
- โ A warning is emitted when importing
Type(..)
whenType
is a synonym or has no constructors. #1391 (@garyb) - Superclass constraints can now be relied upon when resolving instances #421 (@paf31)
- ๐ A serious performance regression was partially addressed, memory usage should now be drastically reduced #1297 (@garyb)
- Module re-export handling has been much improved. If a module is partially imported, only the specifically imported members are re-exported. Qualified modules can also be re-exported. #291 #1244 (@garyb)
- ๐ Parser error messages are now formatted in a manner more consistent with other errors #1098 (@epost)
- Using
-ffi
to specify JavaScript FFI files is now optional, files with a.js
extension will be detected as FFI files automatically when encountered. #1268 (@mjgpy3)
๐ Bug fixes
- ๐ Fixed an error when attempting to derive for
Void
#1380 (@nicodelpiano) "The impossible happened in desugarDo"
should no longer occur #386 (@paf31)
Other
โก๏ธ @zudov, @phadej and @erdeszt made more updates and improvements to the CI build.
- ๐ The type class instance search algorithm has changed. The search will now eagerly match an instance for each subgoal based on the instance head, or fail. This makes certain instances in previous versions of