PureScript 0.7.0 "MELTDOWN" 發布

jopen 9年前發布 | 6K 次閱讀 PureScript

PureScript 是個小巧而強大的靜態類型語言,可以編譯成 JavaScript。purescript 主要是由 Haskell 和 PureScript 編寫的。

PureScript 0.7.0 ("MELTDOWN") 發布,主要是按照計劃進行改進,在 1.0 之前簡化升級路徑。此最新的核心庫已經更新編譯到這個版本。舊版本的核心庫已經不適用于這個版本,而且最新的庫也不能使用舊的編譯版本構建。

詳細升級和遷移指導請看 wiki

重要改進

  • psc 可執行已經使用 psc-make 替代,重命名為 psc (為了遵循 CommonJS 模塊輸出標準)

  • IntNumber 常量

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

    • See here for an example

功能增強

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

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

Bug 修復

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

更多改進請看發行說明,下載:

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!