Dart试用手记 – 1、编译与安装

今天Google发布了Dart,定位用以替代JavaScript,从架势来看未来应该也会有所投入,加之Google在V8的丰富经验,Dart定能有出色的发挥,所以打算第一时间了解下。但Dart究竟如何,是否有足够的竞争力,还要待使用后才能有定论。

一、安装

1. 准备

Linux系统,chromium提供了一个安装依赖的脚本

$ wget http://src.chromium.org/svn/trunk/src/build/install-build-deps.sh
$ source install-build-deps.sh

不过我跳过了这步,不知效果如何,install-build-deps会自动检测系统环境并使用相应的包管理工具进行安装包

2. 安装Depot_tools

Dart使用的是用depot_tools管理代码,可从chromium上checkout depot_tools

svn co http://src.chromium.org/svn/trunk/tools/depot_tools

3. 配置gclient

Dart有两种不同的包all与standalone,all包含eclipse之类的软件,功能全体积大,而standalone仅仅是dart,体积小,30M左右

gclient config http://dart.googlecode.com/svn/trunk/deps/standalone.deps

4. 同步代码

depot_tools/gclient sync

5. 修改一个gcc的小问题

因dart在我使用的gcc 4.6.1会出
../runtime/vm/parser.cc:3666:12: 警告:variable ‘expr_pos’ set but not used [-Wunused-but-set-variable]
加上-Werror导至编译失败。
处理方法:修改tools/gyp/configurations_mak.gypi第13行注释掉#’-Werror’
再使用 depot_tools/gclient runhooks 重新生成Makefile等文件

6. 编译

我直接生成debug与release两个版本

cd dart
../tools/build.py --arch=ia32 --mode=all

如果是64位则用–arch=x64 ../tools/build.py –help查看更多帮助。
生成的文件在out/Release_ia32与out/Debug_ia32中
有不少文件,我比较关心的有以下5个
dart 需要动态链接库的可执行文件
dart_bin 无需动态链接库的可执行文件
lib.target/libdart.so 动态链接库
另外有2个无snapshot版的
dart_no_snapshot 与 dart_no_snapshot_bin
无snapshot同V8一样,体积小但初始运行速行慢

7. 测试

测试用的参数可以使用编译时参数一致进行全面测试

../tools/test.py --arch=ia32 --mode=all
# 也可以仅测试其中的部份,如
../tools/test.py --arch=ia32 --mode=release

二、介绍

在下载和编译时过一遍语法和特性,全部规范只有78页,不知是语言简单还是文档简单。
Dart规范下载页

1. Dart的基本特性

Dart是基于类,单继承,纯面向对象语言。
Dart程序可以做一些静态检查
Dart可以以2种方式运行,产品模式与检查模式
Dart只能单线程运行,若要并行可以通过isolates,每一个isolate有自已的内存与线程。

三、Hello World

main() {
  print('Hello World');
}

四、相关链接

Dart官网
Dart源码
Dart库参考
Dart规范PDF
gclient主页

共2条评论
  1. muxueqz @ 2011-10-13 10:45:30 回复

    s/脚本邻域/脚本领域/g

    ^_^

    • JiangMiao @ 2011-10-13 12:16:05

      谢谢,已修正 :)

发表评论

电子邮件地址不会被公开。 必填项已用*标注