SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
Source Code of Dart
Report
nothingcosmos
Follow
Aug. 2, 2013
•
0 likes
•
12,276 views
1
of
19
Source Code of Dart
Aug. 2, 2013
•
0 likes
•
12,276 views
Download Now
Download to read offline
Report
Technology
Dart VM and dart2js and dartium
nothingcosmos
Follow
Recommended
αποκτηστε νεεσ συνηθειεσ
panikkx
896 views
•
6 slides
Visita de estudo a Lisboa
eb23vvactividades
372 views
•
55 slides
New Orleans
Umberto Pacheco
254 views
•
83 slides
Ode à natureza !
Umberto Pacheco
422 views
•
54 slides
OFERTAS C.08 2011
maricarmenrodriguez
170 views
•
6 slides
Proficiency 2 astronomy science
brotjes15
428 views
•
15 slides
More Related Content
Viewers also liked
101 lecture 11
Gale Pooley
2.8K views
•
29 slides
101 lecture 1
Gale Pooley
4.1K views
•
121 slides
Chertsey’s history
salesianas2011
336 views
•
8 slides
Quiz
Arman Sharma
640 views
•
23 slides
Eco 202 ch 30 the monetary system
Gale Pooley
497 views
•
83 slides
E learning-basic guidelines to develop multimedia learning
Dimas Prasetyo
785 views
•
58 slides
Viewers also liked
(13)
101 lecture 11
Gale Pooley
•
2.8K views
101 lecture 1
Gale Pooley
•
4.1K views
Chertsey’s history
salesianas2011
•
336 views
Quiz
Arman Sharma
•
640 views
Eco 202 ch 30 the monetary system
Gale Pooley
•
497 views
E learning-basic guidelines to develop multimedia learning
Dimas Prasetyo
•
785 views
Black holes in galaxies and active galaxies
Bryan Nozaleda
•
337 views
Fpk present 2013
Amir Ibrahim
•
937 views
Creating Value with the Five Capitals
Gale Pooley
•
627 views
Creating Winning Advertising Via Link
Kantar
•
1.6K views
101 lecture 19 earnings and discrimination
Gale Pooley
•
1.8K views
Presentation1
Helinar Kryxera
•
195 views
Real Estate Market Report for The Woodlands, Tx
Tanya Lavoie Bugbee
•
453 views
Similar to Source Code of Dart
2014 dart flight school in Tokyo
nothingcosmos
1.9K views
•
32 slides
DartVM on Android
nothingcosmos
2K views
•
22 slides
Go 製リアルタイムサーバーの Kubernetes での運用について
KairiOkumura
102 views
•
19 slides
Server Side Dart
Takayuki Yamaguchi
4.3K views
•
47 slides
Android Studioの魅力
Keiji Ariyama
15.1K views
•
79 slides
Dartでサーバレスサービス
cch-robo
387 views
•
54 slides
Similar to Source Code of Dart
(20)
2014 dart flight school in Tokyo
nothingcosmos
•
1.9K views
DartVM on Android
nothingcosmos
•
2K views
Go 製リアルタイムサーバーの Kubernetes での運用について
KairiOkumura
•
102 views
Server Side Dart
Takayuki Yamaguchi
•
4.3K views
Android Studioの魅力
Keiji Ariyama
•
15.1K views
Dartでサーバレスサービス
cch-robo
•
387 views
Dart / Flutter コードファイルジェネレート入門
cch-robo
•
1.1K views
G * magazine 0
Tsuyoshi Yamamoto
•
1.7K views
Inside mobage platform
Toru Yamaguchi
•
3K views
WebIDLを見てみる
takenspc
•
4.3K views
4章 Linuxカーネル - 割り込み・例外 4
mao999
•
2.2K views
パフォーマンス計測Ciサービスを作って得た知見を共有したい
zaru sakuraba
•
1.3K views
Xilinx SDSoC(2016.2)解体新書ソフトウェア編
Mr. Vengineer
•
2K views
Goで作って配布するAzureコマンドラインユーティリティ
yaegashi
•
226 views
Dalvik仮想マシンのアーキテクチャ 改訂版
Takuya Matsunaga
•
5.3K views
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
日本マイクロソフト株式会社
•
449 views
IoT World Conference 2017 - Microsoft AI Platform
Daiyu Hatakeyama
•
752 views
Mvc conf session_2_shibamura
Hiroshi Okunushi
•
1.2K views
Windows Azure Community Open Day 2012
Microsoft Openness Japan
•
572 views
CommunityOpenDay2012名古屋セッション資料
Shinichiro Isago
•
1.6K views
More from nothingcosmos
Dart 1.1
nothingcosmos
3.7K views
•
28 slides
Dart VM Performance
nothingcosmos
4.2K views
•
38 slides
Adaptive optimization of JIT compiler
nothingcosmos
4.3K views
•
39 slides
OpenJDK HotSpot C1Compiler Overview
nothingcosmos
3K views
•
37 slides
X86opti01 nothingcosmos
nothingcosmos
2K views
•
22 slides
LLVM overview 20110122
nothingcosmos
2.8K views
•
32 slides
More from nothingcosmos
(6)
Dart 1.1
nothingcosmos
•
3.7K views
Dart VM Performance
nothingcosmos
•
4.2K views
Adaptive optimization of JIT compiler
nothingcosmos
•
4.3K views
OpenJDK HotSpot C1Compiler Overview
nothingcosmos
•
3K views
X86opti01 nothingcosmos
nothingcosmos
•
2K views
LLVM overview 20110122
nothingcosmos
•
2.8K views
Recently uploaded
松下研究室紹介_関西大学高槻キャンパスオープンキャンパス
Matsushita Laboratory
26 views
•
23 slides
2023情報処理学会関西支部大会-G12.pdf
KoseiShimoda1
6 views
•
11 slides
テスト自動化.pdf
ssuserf8ea02
23 views
•
26 slides
IGDA Japan SIG Audio #20-1 室内・野外でのマイク収録と整音.pdf
IGDA Japan SIG-Audio
103 views
•
31 slides
gtk4_gem_usage.pdf
ssuser0ef4681
14 views
•
6 slides
遠隔お酌IoTLT2309.pptx
Yoshiaki Ito
121 views
•
12 slides
Recently uploaded
(10)
松下研究室紹介_関西大学高槻キャンパスオープンキャンパス
Matsushita Laboratory
•
26 views
2023情報処理学会関西支部大会-G12.pdf
KoseiShimoda1
•
6 views
テスト自動化.pdf
ssuserf8ea02
•
23 views
IGDA Japan SIG Audio #20-1 室内・野外でのマイク収録と整音.pdf
IGDA Japan SIG-Audio
•
103 views
gtk4_gem_usage.pdf
ssuser0ef4681
•
14 views
遠隔お酌IoTLT2309.pptx
Yoshiaki Ito
•
121 views
CatBoost on GPU のひみつ
Takuji Tahara
•
421 views
GraphQLはどんな時に使うか
Yutaka Tachibana
•
6 views
20230921_IoTLT_vol103_kitazaki_v1.pdf
Ayachika Kitazaki
•
140 views
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
Tomoaki Tada
•
26 views
Source Code of Dart
1.
Source Code of Dart Outline ソースコードの構成 Server
の構成 Client の構成 最新の状況 2013/08/03 Shinjuku.dart 2nd nothingcosmos <nothingcosmos@gmail.com>
2.
関連 URL http://code.google.com/p/dart/ Dart
の google project http://code.google.com/p/dart/wiki/GettingTheSource ソースコードの取得方法 http://api.dartlang.org/docs/releases/latest/index.html Dart API Reference http://www.dartlang.org/ Dart の公式ページ
3.
ソースコードのディレクトリ dart + sdk/lib + sdk/lib/_internal + pkg + tests + samples + compiler + editor dart/runtime + bin + include + lib + platform + vm + tests/vm
4.
ソースコードの構成 dart + sdk/lib + pkg + tests + samples Dart は公式ページに情報が揃っている。 もしくはここのサンプルコードを見るのが良いかも 下手にぐぐると古い情報、動かないコードが多い TOP
のディレクトリ SDK のライブラリ各種 (dart:xxx) SDK の標準パッケージ SDK のテストコード SDK のサンプル集
5.
ソースコードの構成 ( 処理系
) dart + compiler @Java dartanalyzer + editor @Java eclipse plugin と indexer + sdk/lib/_internal/compiler @Dart dart2js + runtime @C++ Dart VM Client サイドは dart2js のコードを参照 Server サイドは Dart VM のコードを参照
6.
Server の構成 (Dart VM)
dart/runtime + bin + include + lib + platform + vm + vm/*_ia32 patch/natives BUILTIN と IO を定義 Dart VM の API を定義 sdk/lib と連携するレイヤ OS 抽象のレイヤ VM の本体 arch 依存の定義 dispatch 用のシンボル
7.
runtime/lib runtime/bin BOOTSTRAP_ NATIVES Server の構成 (Dart VM) runtime/platform OS(Linux,
Windows, MacOS, Android) ISA(arch) ia32/x64/arm/mips runtime/vm runtime/ include sdk/lib IO_NATIVES runtime/vm/os patch_class runtime/lib/*.dart runtime/bin/*.dart sdk/lib/io Runtime
8.
runtime/lib runtime/bin BOOTSTRAP_ NATIVES Server の構成 (Dart VM) runtime/platform OS(Linux,
Windows, MacOS, Android) ISA(arch) ia32/x64/arm/mips runtime/vm runtime/ include sdk/lib IO_NATIVES runtime/vm/os patch_class runtime/lib/*.dart runtime/bin/*.dart sdk/lib/io I/O や Network 並行処理 Dart の世界 Debugger で 追える境界 C++ の境界 Native Extensions シンボルを定義 VM が担当する 計算やリソース管理
9.
Client の構成 (dart2js/dartium)
Client 環境は sdk/lib/html を使用可能 chrome, html, indexed_db, js, svg, typed_data web_audio, web_gl, web_sql ブラウザ非依存の API のサブディレクトリ sdk/lib/web_gl/dartium/web_gl_dartium.dart sdk/lib/web_gl/dart2js/web_gl_dart2js.dart なぜ分かれているのか
10.
dartium Client の構成 (dartium) dart
runtime sdk/libsdk/lib/html Auto-generated library Web IDL runtime/ include native symbol dartium で定義された シンボルを Native Extensions を使用して直接呼出て連携する。 dartium からの制御は include で定義された API 経由で dart runtime に指示 標準化された API を IDL から自動生成 dartium 連携用
11.
Client の構成 (dartium) Bindings
(Dart API) Dart VM dartium/src/third_party/WebKit/Source/bindings/dart dartium/src/third_party/WebKit/Source/bindings/v8
12.
file:sdk/lib/web_gl/dartium/web_gl_dartium.dart // DO NOT
EDIT // Auto-generated dart:web_gl library. //dart.dom.web_gl import 'dart:collection'; import 'dart:_collection-dev' hide deprecated; import 'dart:html'; import 'dart:html_common'; import 'dart:typed_data'; import 'dart:async'; import 'dart:nativewrappers'; @DocsEditable() @DomName('WebGLLoseContext') // http://www.khronos.org/registry/webgl/extensions/WEBGL_lose_context/ @Experimental() class LoseContext extends NativeFieldWrapperClass1 { @DomName('WebGLLoseContext.loseContext') @DocsEditable() void loseContext() native "WebGLLoseContext_loseContext_Callback"; @DomName('WebGLLoseContext.restoreContext') @DocsEditable() void restoreContext() native "WebGLLoseContext_restoreContext_Callback"; } file:sdk/lib/_internal/libraries.dart "nativewrappers": const LibraryInfo( "html/dartium/nativewrappers.dart", category: "Client", implementation: true, documented: false, platforms: VM_PLATFORM), //dartium WebIDL file:dart/third_party/WebCore/core/html/ canvas/WebGLLoseContext.idl
13.
Client の構成 (dart2js)
Dart VM が入っていないブラウザにも対応 Dart から JavaScript + source map を生成 dartium と dart2js の挙動の違いに注意 Dart の仕様→ dart2js の仕様→ JavaScript の仕様 int の仕様の違いが大きいかも Dart VM throw_on_javascript_int_overflow=true int が 53/54bit に収まらないときに例外を投げる dart2js では、 dart の int と javascript の int の違い
14.
いろんなブラウザ (Dart VM
はいってないよ ) Client の構成 (dart2js) dart2js sdk/libsdk/lib/html Auto-generated library Web IDL 標準化された API 群 JavaScript Engine out.js out.js.map out.js.deps Dart から JavaScript に変換 deps と source map 標準化された API を IDL から自動生成 標準のシンボル dartium と共通
15.
いろんなブラウザ (Dart VM
はいってないよ ) Client の構成 (dart2js) dart2js sdk/libsdk/lib/html Auto-generated library Web IDL 標準化された API 群 JavaScript Engine out.js out.js.map out.js.deps 標準化された API は IDL で定義 IDL → Dart → JavaScript → JavaScript Engine から叩く ブラウザが制御するのは JavaScript Engine ブラウザ共通の境界
16.
file:sdk/lib/web_gl/dart2js/web_gl_dart2js.dart // DO NOT
EDIT - unless you are editing documentation as per: // https://code.google.com/p/dart/wiki/ContributingHTMLDocumentation // Auto-generated dart:web_gl library. //dart.dom.web_gl import 'dart:collection'; ... 省略 import 'dart:_js_helper' show Creates, JSName, Null, Returns, convertDartClosureToJS; import 'dart:_foreign_helper' show JS; import 'dart:_interceptors' show Interceptor, JSExtendableArray; @DocsEditable() @DomName('WebGLLoseContext') // http://www.khronos.org/registry/webgl/extensions/WEBGL_lose_context/ @Experimental() class LoseContext extends Interceptor native "WebGLLoseContext" { @DomName('WebGLLoseContext.loseContext') @DocsEditable() void loseContext() native; @DomName('WebGLLoseContext.restoreContext') @DocsEditable() void restoreContext() native; }
17.
最新の状況 (Dart) 7
月に beta 版 (M5) をリリース。 Dart の言語仕様と Server API は安定。 Breaking changes は減ってきたよね? Dart 始めるなら今でしょ。 最近は Dromaeo や Dromaeo.dart でチューニング 性能出すための注意点も公開されている。 http://www.dartlang.org/articles/numericcomputation/ 機能追加の issue は今がチャンスだと思う。
18.
最新の状況 (Dart VM) ARM
と MIPS 対応をがんばっている。 mirror 系の API を大幅修正。 Bugfix も多め。 UNIMPLEMENTED の個数を計算 (6/16 > 7/28) ia32 7 > 6 x64 18 > 17 arm 79 > 23 (8 月中に完了しそうな勢い ) mips 117 > 75
19.
最新の状況 (dart2js と
dartium) Dart の仕様→ dart2js の仕様→ JavaScript の仕様 正直ハマりどころだと思う dart2js の仕様、注意点、ガイドライン等一切不明。 今は plymer.dart と angler.dart をたべて 注意点の洗い出しや、仕様を調整中なのでは? http://build.chromium.org/p/client.dart/console dartium/firefox/chrome/safari/ie9/ie10 で確認