PureScript 0.8.0 发布,静态类型语言

jopen 8年前

PureScript 是个小巧而强大的静态类型语言,可以编译成 JavaScript。purescript 主要是由 Haskell 和 PureScript 编写的。

PureScript 0.8.0 "TIMESLIDES"发布,更新如下:

重大更新

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.

改进

  • 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 修复

  • 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)

其它

下载页面:0.8.0

PureScript 是个小巧而强大的静态类型语言,可以编译成 JavaScript。purescript 主要是由 Haskell 和 PureScript 编写的。

来自: http://www.oschina.net//news/70406/purescript-0-8-0