|
Dart 今天发布了第四个里程碑 M4。
core、collection和async已经稳定;dart2js和dart vm性能都有提高;Dart Editor启动了新的分析引擎,反馈会更加及时……
不过当前 dart:html 库还不太稳定。
Today, we are releasing Dart SDK Milestone 4 (v0.4.7 r21548), available for immediate download. The highlights are:
- Core, collection, and async libraries are now stable. There will be no more breaking changes to these libraries.1
- Performance improved in both the dart2js compiler and the Dart VM.
- Dart Editor comes with an all-new analysis engine for faster real-time feedback.
- Classes can be used as mixins.
dart2js now generates more efficient code. Compared to the previous M3 release, DeltaBlue runs twice as fast and Richards runs 40% faster. The native Dart VM now runs Richards twice as fast as V8. On DeltaBlue, the VM improved by 22%. Details are available at dartlang.org/performance.
Dart Editor comes with an all-new analysis engine for faster real-time feedback, code completion, refactoring, and more. For example, analyzing the content of a folder is now more than 50% faster. We also improved the Dart plugin for Sublime with syntax highlighting, common Dart snippets, and dart2js and Pub integration.
On the language front, Dart now has a first implementation of mixins for sharing code between unrelated classes. For example, the core libraries use mixins for List and Iterable.
We’re thrilled to see new and exciting uses of Dart, such as Glyph3D and the API for interacting with Glass. We thank you for your patience as we worked through the breaking library changes, and we can't wait to see what you build with our improved, more stable platform. We invite you to download Dart, and we look forward to yourfeedback.
1 Except for the class Invoke, which will change slightly to accommodate efficient minification.
Posted by Lars Bak, Chief Dart Officer
同时还带来一些 breaking changes:
- The separator argument in Iterable.join defaults to “” (instead of `null`).
- All DateTime constants are non-abbreviated. Also changed DAYS_IN_WEEK to DAYS_PER_WEEK.
- Removed deprecated classes and methods
- CollectionSink
- Stream.pipeInto
- Iterable/Stream . max/min
- Collection (List, Set and Queue now extend Iterable directly)
- Datetime.</<=/>/>=
- IOSink.writeStream (renamed to IOSink.addStream)
- IOSink.writeBytes (renamed to IOSink.add)
- StreamSink (renamed to EventSink)
- Iterable.reduce/Stream.reduce introduced that does not require an initial value.
- List range functions were refactored:
- List.getRange takes an endIndex argument and returns an Iterable.
- List.setRange takes an endIndex and an iterable (plus an optional skipCount).
- List.removeRange takes an endIndex.
- List.insertRange got removed.
- List.replaceRange was added.
- List.fillRange was added.
- List.setAll was added. (not strictly speaking a range function).
- Stream.hasSubscribers -> Stream.hasListener
- Removed async:EventSinkView.
- Removed the AsyncError class.
- Removed StreamController.broadcast.
- dart:html has had most Web Worker related APIs removed while the correct API is worked out. The Worker class remains for spawning Javascript workers
- Renamed InvocationMirror to Invocation
- Function.apply uses Symbol for named argument
- dart:mirror now uses Symbol instead of String to represent names
|
|