All Versions
Latest Version
Avg Release Cycle
56 days
Latest Release

Changelog History
Page 6

  • v0.8.1 Changes

    February 29, 2016

    You 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 for Partial 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)
    • 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)


    • ๐Ÿ›  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)
    • 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 of Data.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 for CPP (@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


    โœจ 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)


    • โš  @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 the PSCI.Support module
    • ๐Ÿ— free would not build due to its dependency on inject

    โš  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 latest transformers.
    • 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(..) when Type 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)


    โšก๏ธ @zudov, @phadej and @erdeszt made more updates and improvements to the CI build.