- Notifications
You must be signed in to change notification settings - Fork 147
Release 0.5.4 #80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Release 0.5.4 #80
Changes from all commits
Commits
Show all changes
10 commits Select commit Hold shift + click to select a range
bf83d49 Fix #74: Document use of meta annotations to export case class fields
gzm0 6723a47 Fix #75: Document @JSExportAll
gzm0 23b7831 Fix #76: Document @JSExportNamed
gzm0 f9db1e2 Fix #79: Document conversions for JS and Scala collections
gzm0 b3cdd51 Fix #78: Document fullOptJS fallback
gzm0 3ca075d Fix #77: Document macro %%%
gzm0 c25448b Document passing arguments to the PhantomJS environment.
sjrd 0d45f86 Document disabling auto-termination of PhantomJS env.
sjrd 09f7ad5 Update the tutorial for v0.5.4.
sjrd 69c562f Announcing v0.5.4.
gzm0 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,104 @@ | ||
| --- | ||
| layout: post | ||
| title: Announcing Scala.js 0.5.4 | ||
| category: news | ||
| tags: [releases] | ||
| --- | ||
| {% include JB/setup %} | ||
| | ||
| We are excited to announce the release of Scala.js 0.5.4! | ||
| | ||
| This release contains various bug fixes and enhancements to both the compiler and the sbt plugin. | ||
| | ||
| Scala.js 0.5.4 is backward binary compatible with older versions of the 0.5.x branch. However, it is *not* forward binary compatible. This means: | ||
| | ||
| - You don't need to re-publish libraries | ||
| - You must upgrade to Scala.js 0.5.4 if any library you depend on uses Scala.js 0.5.4 | ||
| | ||
| If you choose to re-publish a library, make sure to bump its version. | ||
| | ||
| Please report any issues [on GitHub](https://github.com/scala-js/scala-js/issues). | ||
| | ||
| ## Upgrading from 0.5.3 an below | ||
| | ||
| Simply change the version number in `project/plugins.sbt`, as usual. | ||
| | ||
| If you use [uTest](https://github.com/lihaoyi/utest), you need to upgrade it to version 0.2.3 or later. | ||
| This is due to a binary incompatible change in the sbt plugin. | ||
| | ||
| ## Improvements in the 0.5.4 release | ||
| | ||
| For changes introduced in 0.5.0, how to upgrade, getting started etc. have a look at the [0.5.0 announcement]({{ BASE_PATH }}/news/2014/06/13/announcing-scalajs-0.5.0/) (see also the announcements for [0.5.1]({{ BASE_PATH }}/news/2014/06/30/announcing-scalajs-0.5.1/), [0.5.2]({{ BASE_PATH }}/news/2014/07/09/announcing-scalajs-0.5.2/) and [0.5.3]({{ BASE_PATH }}/news/2014/07/30/announcing-scalajs-0.5.3/)). | ||
| | ||
| ### JavaScript Export Facilities | ||
| | ||
| A few improvements have been made to `@JSExport`-related features, to export Scala.js APIs to JavaScript: | ||
| | ||
| * [Export methods with named arguments]({{ BASE_PATH }}/doc/export-to-javascript.html#JSExportNamed) | ||
| * [Automatically export all public members of a class/object]({{ BASE_PATH }}/doc/export-to-javascript.html#JSExportAll) | ||
| * [Export fields declared as constructor parameters]({{ BASE_PATH }}/doc/export-to-javascript.html#constructor-params) | ||
| | ||
| ### PhantomJS | ||
| | ||
| The interface to the PhantomJS interpreter has been enhanced with two features: | ||
| | ||
| * [Passing command-line arguments to PhantomJS]({{ BASE_PATH }}/doc/sbt/js-envs.html#phantomjs-arguments) | ||
| * [Configuring PhantomJS not to terminate automatically when the `main()` method returns]({{ BASE_PATH }}/doc/sbt/js-envs.html#phantomjs-no-auto-terminate) | ||
| * You can use `java.lang.System.exit(exitCode)` to explicitly terminate the PhantomJS environment | ||
| | ||
| ### Conversions | ||
| | ||
| The new object [JSConverters](http://www.scala-js.org/api/scalajs-library/0.5.4/#scala.scalajs.js.JSConverters$) provides extension methods to convert between JavaScript collections and Scala collections (maps, sequences and option). | ||
| | ||
| [More information in the documentation]({{ BASE_PATH }}/doc/js-interoperability.html) | ||
| | ||
| ### Source maps for fullOptJS | ||
| | ||
| Source maps are now generated for `fullOptJS` as well. | ||
| | ||
| To support this, we have changed the way we integrate the Google Closure Compiler. | ||
| Should you experience any regression, please file an issue, and use the following fallback to revert to the old mechanism (which will not generate source maps): | ||
| | ||
| {% highlight scala %} | ||
| ScalaJSKeys.directFullOptJS := false | ||
| {% endhighlight %} | ||
| | ||
| ### %%% Cross versioning | ||
| | ||
| The `%%%` operator used to build library dependencies for Scala.js has been enhanced. | ||
| It is now able to determine whether it is used inside a Scala.js project or a Scala/JVM project. | ||
| In the latter, it will be equivalent to `%%`. | ||
| This allows to use `%%%` consistently for cross-compiling projects. | ||
| | ||
| [More information in the documentation]({{ BASE_PATH }}/doc/sbt/depending.html) | ||
| | ||
| ### Auto-detect whether the DOM is required | ||
| | ||
| The setting `requiresDOM` will now default to `true` if the special `RuntimeDOM` dependency is listed in the (transitive) `jsDependencies` of your project. | ||
| To specify that your library or program depends on the DOM, use the following setting: | ||
| | ||
| {% highlight scala %} | ||
| ScalaJSKeys.jsDependencies += scala.scalajs.sbtplugin.RuntimeDOM | ||
| {% endhighlight %} | ||
| | ||
| It is still possible to override this behavior by explicitly setting `requiresDOM`, as before. | ||
| | ||
| ### Tools.js | ||
| | ||
| Our tools API now cross-compiles for Scala/JVM and Scala.js. | ||
| It can therefore be used in Scala.js, for example to link and optimize Scala.js IR on the client. | ||
| | ||
| #### Bugfixes | ||
| | ||
| The following bugs have been fixed since 0.5.3: | ||
| | ||
| - [#897](https://github.com/scala-js/scala-js/issues/897) fastOptJS crash: Invalid lhs for Assign: This() | ||
| - [#898](https://github.com/scala-js/scala-js/issues/898) PhantomJS polyfill doesn't work | ||
| - [#899](https://github.com/scala-js/scala-js/issues/899) Compiler should always unbox arguments to reflective calls | ||
| - [#904](https://github.com/scala-js/scala-js/issues/904) Stack overflow in fast optimizer | ||
| - [#906](https://github.com/scala-js/scala-js/issues/906) Assignment to exported var gives "Unhandled type class" warning | ||
| - [#907](https://github.com/scala-js/scala-js/issues/907) fastOptJS crash: statements before Dictionary.delete() in exported functions | ||
| - [#908](https://github.com/scala-js/scala-js/issues/908) Calling Dictionary.delete() with js.Object property throws RuntimeException | ||
| - [#919](https://github.com/scala-js/scala-js/issues/919) sbt: Inspecting does not work with scalaJSSettings | ||
| - [#920](https://github.com/scala-js/scala-js/issues/920) Return type lifting for JSExports fails on RefinedTypes | ||
| - [#940](https://github.com/scala-js/scala-js/issues/940) Compiler crash on strange pattern match | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This section and the in-depth documentation should mention that Phantom JS auto terminates unless configured differently via arguments. (
autoExitargument)