ClojureScript v1.9.198發布

jopen 8年前發布 | 12K 次閱讀 Clojure ClojureScript JavaScript

ClojureScript 是一個用來將 Clojure 語言轉成 JavaScript 腳本的工具。主要有以下優點:

  • 簡潔性: 從語法角度來說,ClojureScript 是一種基于 Lisp 的語言,這使得它的語法十分簡潔。除此之外,ClojureScript 還提供了幫助我們更方便的異步編程的工具。
  • 安全性: 這意味著更少的漏洞!ClojureScript 和其他的函數編程語言都有很多的特性來幫助我們減少和減輕一些常見的漏洞。
  • 高性能: ClojureScript 使用了Google的Closure編譯器,這使得ClojureScript能支持無用代碼清除以及其他的一些特點。
  • 實時編程: ClojureScript 生態圈提供了很多的工具來“實時編程”。這意味著當代碼一改變,在你的項目上就會馬上反應出來。
  • 代碼復用性: ClojureScript 能在全局中運行,很多人稱之“同態”。這代表你能在服務器端和客戶端運行相同的代碼,這在 Node.js 的生態系統中已經是個流行的模式了。除此之外,ClojureScript 還能使用 Node.js 和 Java 生態圈當中的庫。

更新日志

功能增強

  • CLJS-1508: Extend ns form to support :rename option
  • CLJS-1507: Implicit macro loading: macro var inference in :refer
  • CLJS-1692: Autoalias clojure.* to exisiting cljs.* namespaces if possible
  • CLJS-1350: Compiler support for browser REPL
  • CLJS-1729: Support use special function in REPLs
  • CLJS-1730: Support refer-clojure special function in REPLs

改變

  • CLJS-1515: Self-host: Allow :file key in cljs.js/load-fn
  • add toString implementation to Vars
  • Use a js array to create collections in cljs.reader
  • CLJS-1640: Use the unshaded version of the closure compiler
  • add :browser-repl to list of known opts
  • add browser REPL preload
  • parity with Clojure 1.9.0-alpha10 clojure.spec
  • bump to tools.reader 1.0.0-beta3

問題修復

  • CLJS-1733: Macro inference issue for macros & runtime vars with the same name
  • CLJS-1735: Self-host: cljs.spec speced-vars instance
  • CLJS-1736: cljs.spec.test: checkable-syms* called with 0-arity
  • CLJS-1708: Self-host: [iu]nstrument-1 needs to qualify [iu]nstrument-1*
  • CLJS-1707: Self-host: with-instrument-disabled needs to qualify instrument-enabled
  • CLJS-1732: Add docstrings for new use and use-macros REPL specials
  • CLJS-1720: Qualify symbols and namespaced keywords in spec macros
  • CLJS-1731: Self-host: do_template problem with script/test-self-parity
  • CLJS-1556: Invalid code emit for obj literal
  • CLJS-1607: bug with specify! in JS prototypes with static-fns true
  • CLJS-1591 avoid analyzing invoke arguments multiple times
  • CLJS-1638: :elide-asserts disables atom validators in :advanced
  • CLJS-1721: 3-arity get-in fails on types which do not implement ILookup
  • CLJS-1728: Update doc for ns for new :rename capability
  • CLJS-1727: Regression when evaluating non-sequential forms at the REPL
  • CLJS-1490: Watch macro files in cljs.build.api/watch
  • CLJS-1719: Port destructuring namespaced keys and symbols
  • CLJS-1653: cljs.spec: keys* causes exception
  • CLJS-1700: Support clojure.* aliasing when not in vector
  • CLJS-1717 remove map from equiv-map
  • CLJS-1716: No longer possible to use same alias for :require-macros and :require
  • Use keyword options in js->clj 1-arg impl
  • Add support for regex in transit for compiler analysis cache
  • Escape non-Latin1 characters before base64 encoding the source-map string
  • CLJS-1698: cljs.spec: every res call needs &env
  • CLJS-1695: Self-host: Port cljs / clojure namespace aliasing
  • CLJS-1697: doc on inferred macros fails
  • CLJS-1699: Update docstring for ns
  • CLJS-1694: Self-host: Port macro var inference in :refer

下載

 

本站原創,轉載時保留以下信息:
本文轉自:深度開源(open-open.com)
原文地址:http://www.baiduhome.net/news/view/5961f5ea

 

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