OLD | NEW |
---|---|
1 ## 1.24.0 | 1 ## 1.24.0 |
2 | 2 |
3 ### Language | 3 ### Language |
4 * During a dynamic type check, `void` is not required to be `null` anymore. | 4 * During a dynamic type check, `void` is not required to be `null` anymore. |
5 In practice, this makes overriding `void` functions with non-`void` functions | 5 In practice, this makes overriding `void` functions with non-`void` functions |
6 safer. | 6 safer. |
7 * During static analysis, a function or setter declared using `=>` with return | 7 * During static analysis, a function or setter declared using `=>` with return |
8 type `void` now allows the returned expression to have any type. For example, | 8 type `void` now allows the returned expression to have any type. For example, |
9 assuming the declaration `int x;`, it is now type correct to have | 9 assuming the declaration `int x;`, it is now type correct to have |
10 `void f() => ++x;`. | 10 `void f() => ++x;`. |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
69 * `dart:async`, `dart:io`, `dart:core` | 69 * `dart:async`, `dart:io`, `dart:core` |
70 * Adding to a closed sink, including `IOSink`, is not allowed anymore. In | 70 * Adding to a closed sink, including `IOSink`, is not allowed anymore. In |
71 1.24, violations are only reported (on stdout or stderr), but a future | 71 1.24, violations are only reported (on stdout or stderr), but a future |
72 version of the Dart SDK will change this to throwing a `StateError`. | 72 version of the Dart SDK will change this to throwing a `StateError`. |
73 | 73 |
74 ### Dart VM | 74 ### Dart VM |
75 | 75 |
76 ### Tool Changes | 76 ### Tool Changes |
77 | 77 |
78 * Pub | 78 * Pub |
79 * Added support for the Dart Development Compiler in `build` and `serve`. | |
80 | |
81 Unlike dart2js, this new compiler is modular, which allows pub to do | |
82 incremental re-builds for `pub serve`, and potentially `pub build` in the | |
83 future. | |
84 | |
85 In practice what that means is you can edit your Dart files, refresh in | |
86 chrome (or other supported browsers), and see your edits almost | |
nweiz
2017/05/26 22:30:09
Nit: "Chrome" (also below)
jakemac
2017/05/27 00:00:09
Done.
| |
87 immediately. This is because pub is only recompiling your package, not all | |
88 packages that you depend on. | |
89 | |
90 There is one caveat with the new compiler, which is that your package and | |
91 your dependencies must all be strong mode clean. If you are getting an | |
92 error compiling one of your dependencies, you will need to file bugs or | |
93 send pull requests to get them strong mode clean. | |
94 | |
95 There are two ways of opting into the new compiler: | |
96 | |
97 * Use the new `--web-compiler` flag, which supports `dartdevc`, | |
98 `dart2js` or `none` as options. This is the easiest way to try things | |
nweiz
2017/05/26 22:30:10
What does "none" do?
jakemac
2017/05/27 00:00:09
It is equivalent to --no-dart2js (no js compilatio
| |
99 out without changing the default. | |
100 | |
101 * Add config to your pubspec. There is a new `web` key which supports a | |
102 single key called `compiler`. This is a map of string to string, where | |
nweiz
2017/05/26 22:30:09
"of string to string..." -> "from mode names to th
jakemac
2017/05/27 00:00:10
Done.
| |
103 the keys are modes and the values are the compiler to use in that | |
104 mode. For example, to default to dartdevc in debug mode you can add | |
105 the following to your pubspec: | |
106 | |
107 ```yaml | |
108 web: | |
109 compiler: | |
110 debug: dartdevc | |
111 ``` | |
112 | |
113 You can also use the new compiler to run your tests in chrome much more | |
114 quickly than you can with dart2js. In order to do that, run pub serve on | |
115 your test directory `pub serve test --web-compiler=dartdevc`, and then run | |
nweiz
2017/05/26 22:30:09
-"pub serve on your test directory"
jakemac
2017/05/27 00:00:09
Done.
| |
116 `pub run test -p chrome --pub-serve=8080`. | |
117 | |
118 * Added support for the UNLICENSE file when validating licenses on | |
119 `pub lish`. | |
120 * Better handling for network errors when fetching packages. These are no | |
121 longer unhandled errors and won't print a stack trace unless you are | |
122 running in verbose mode. | |
79 * `pub build` will use a failing exit code if there are errors in any | 123 * `pub build` will use a failing exit code if there are errors in any |
80 transformer. | 124 transformer. |
81 * Allow publishing packages that depend on the Flutter SDK. | 125 * Allow publishing packages that depend on the Flutter SDK. |
82 | 126 |
83 * dartfmt | 127 * dartfmt |
84 * Preserve type parameters in new generic function typedef syntax. | 128 * Preserve type parameters in new generic function typedef syntax. |
85 * Add self-test validation to ensure formatter bugs do not cause user code | 129 * Add self-test validation to ensure formatter bugs do not cause user code |
86 to be lost. | 130 to be lost. |
87 | 131 |
88 ### Infrastructure changes | 132 ### Infrastructure changes |
(...skipping 1853 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1942 they will keep the Dart process alive until they time out. This fixes the | 1986 they will keep the Dart process alive until they time out. This fixes the |
1943 handling of persistent connections. Previously, the client would shut down | 1987 handling of persistent connections. Previously, the client would shut down |
1944 immediately after a request. | 1988 immediately after a request. |
1945 | 1989 |
1946 * **Breaking change:** `HttpServer` no longer compresses all traffic by | 1990 * **Breaking change:** `HttpServer` no longer compresses all traffic by |
1947 default. The new `autoCompress` property can be set to `true` to re-enable | 1991 default. The new `autoCompress` property can be set to `true` to re-enable |
1948 compression. | 1992 compression. |
1949 | 1993 |
1950 * `dart:isolate`: `Isolate.spawnUri` added the optional `packageRoot` argument, | 1994 * `dart:isolate`: `Isolate.spawnUri` added the optional `packageRoot` argument, |
1951 which controls how it resolves `package:` URIs. | 1995 which controls how it resolves `package:` URIs. |
OLD | NEW |