Skip to main content

Posts

Showing posts from November, 2012

Notes from November 26 Language Design Meeting

Dart engineer Bob Nystrom has posted the notes from the November 26th language design meeting. He writes:

Kasper and Lars were out, so this was a short one:

Mixins
Gilad says mixins will not be in M2. He's going to put out an updated proposal this week with spec language and everything in it. Hopefully it won't cause too much indigestion.
What's left for M2?
Gilad says mostly minor a bugs. A few doc comment ones.
Config-specific code
Gilad has some ideas but he's not quite ready to discuss them yet. He's been thinking about the issue for 20 years. :)
Parameter type validation
I brought up that the corelib is now starting to manually validate parameter types in the body of methods using is in. For example:

num max(num a, num b) {
  if (a is! num) throw new ArgumentError(a);
  if (b is! num) throw new ArgumentError(b);
  ...
}
How do we feel about that?
Gilad says its perfectly natural. Type annotations are only signals of intent. If you want more robustness, you should validate…

New Dart Editor Build 0.2.6.0_r15355

Dart Editor has a new build and it incorporates many of the changes that have been announced on these pages recently.  The change list includes modifications to the core library, as well as the html, SVG and io libraries. 


Eric Clayberg fills us in on the details on the new Dart Editor build:A new Dart Editor build is available at www.dartlang.org/editor. Changes include:
New Clean-Up to rename Element.elements to Element.children.New Clean-Up to remove return type and name in function literal.New "Convert Getter to Method" refactoring and Quick Assist action.New Clean-Up to rename File.readAsText to File.readAsString.New "Surround With..." Quick Assist.UX changes and improvements in the Manage Launches dialog.Breaking Change List:
dart:core changesException constructor is no longer const, and usage is discouraged.NullPointerException has been removed. Throwing null now throws NullThrownError. Accessing non-existing members on null throws NoSuchMethodError (Null just …

Introducing new Streams API

TL;DR: please play with our Stream-based IO and isolates and give us feedback. See instructions near the end of the this post.

As announced some weeks ago, we have continued our library refactoring in an experimental branch to avoid unnecessary breakages. We have now reached a small milestone in our development, and would like to invite the community to play with the current library and give us some feedback.
Milestone “streams”: users have been asking for a simpler asynchronous library, where everything works in a consistent way, for some time now (see for example http://goo.gl/cWaJh for Sean Seagan’s proposal). With this milestone we finally have running code that gets us one step closer to that goal. We have now converted both the IO library and isolates to use our new class for repeating events, Streams. Both are currently only wrapping the old primitives, but eventually we want to remove support for the old API. The html library is not yet adapted but should eventually also use str…

Breaking Change: Eliminate Legacy Type Dynamic

Matthias Hausner writes:

We changed type 'Dynamic' to 'dynamic' a few months back. Since then, the VM has implicitly converted Dynamic to dynamic. I am about to remove this legacy support. Code which still uses Dynamic will fail in checked mode.As always, we invite you to join our Dart mailing list, ask questions on Stack Overflow, or file feature requests on dartbug.com.