发布于 2015-06-30 10:24:36 | 87 次阅读 | 评论: 0 | 来源: 网友投递
PureScript 静态类型语言
PureScript 是个小巧而强大的静态类型语言,可以编译成 JavaScript。purescript 主要是由 Haskell 和 PureScript 编写的。
PureScript 是个小巧而强大的静态类型语言,可以编译成 JavaScript。purescript 主要是由 Haskell 和 PureScript 编写的。
PureScript 0.7.0 ("MELTDOWN") 发布,主要是按照计划进行改进,在 1.0 之前简化升级路径。此最新的核心库已经更新编译到这个版本。旧版本的核心库已经不适用于这个版本,而且最新的库也不能使用旧的编译版本构建。
详细升级和迁移指导请看 wiki。
psc
可执行已经使用 psc-make
替代,重命名为 psc
(为了遵循 CommonJS 模块输出标准)
Int
和 Number
常量
Prelude
模块不再自动导入,必须以跟其他模块一样的方式导入
编译器不再包括模块,模块已经拆分到以下这些库:
数组类型的 []
语法已经被移除,但是还是可以使用 []
数组常量
[]
should now be written as Array
, and [a]
as Array a
.
Cons patterns for arrays have been removed.
Declaring operators in classes will now produce a warning. Changes will be coming to operators in PureScript 0.8, and moving to named members in classes with operators as aliases (e.g. (<$>) = map
) should make the transition easier in the future.
JavaScript for the FFI can no longer be provided inline.
Values must instead be provided in a separate .js
file, and passed to the compiler with the -ffi
flag.
Values should be provided in the form exports.foo = ...
, similar to a CommonJS module
The file should have a comment // module X.Y.Z
where X.Y.Z
is the name of the module the JS values are for.
Module exports (@andyarvanitis). Currently, only full module exports are supported, but imported modules can be re-exported using the following syntax:purescript module M1 (module M2) where import M2
Documentation improvements (@hdgarrood):
psc-docs
can now generate multiple output files, allowing documentation to be collected into functional groups.
A new tool psc-publish
has been added, which generates module documentation in a JSON format required by Pursuit 2 (coming soon)
@puffnfresh has worked on dramatically increasing the performance of incremental builds, with improvements up to 10x compared to the previous release.
The new --require-path
option allows the syntax of module imports in generated CommonJS modules to be customized (@garyb).
@etrepum has added support for building with Stack.
PSCi now supports computations in the Eff
monad. (@paf31)
The compiler now emits warnings in the following cases:
Operator name used in type class definition (@garyb)
Type wildcard used (@nicodelpiano)
Shadowed variable name (@paf31)
@balajirrao has improved the appearance of unknown and rigid types appearing in error messages.
@puffnfresh has added position information to pattern match errors.
@puffnfresh has added some new optimizations (inlining <<<
and $
)
psc
, psc-docs
and psc-bundle
now support file globs as command-line arguments, fixing a bug related to the command length on Windows machines (@paf31)
@wuzzeb has fixed some issues in the pretty printer.
@mjgpy3 has improved error messages related to incorrect pattern matches on data constructors.
Pulp has been updated:
The new psc
and psc-bundle
binaries are supported
FFI modules are now identified and compiled based on a convention
pulp docs
now generates individual Markdown files for each source module
gulp-purescript
has been updated:
The new psc
and psc-bundle
binaries are supported
FFI modules are now supported
The following libraries have been moved into the core library set:
purescript-lists
- Strict and lazy linked list data structures
purescript-assert
- Low level assertion library for tests
purescript-parallel
- An applicative functor for parallel composition of asynchronous computations.
purescript-arrows
- Arrow type classes and standard instances.
purescript-tailrec
- A type class for stack-safe monadic tail recursion.
The requirements for libraries in the purescript-contrib
organization have been tightened, to try to ensure that libraries stay maintained.
更多改进请看发行说明,下载: