Releases: hsk/camlup
Releases · hsk/camlup
version 0.0.6 release
- オブジェクト指向の機能追加
mutableなメンバ変数を#で、privateなメソッドを~で、publicなメソッドを+で指定出来るようになりました。また、自分自身はthisでアクセスします。:>を使ってキャストします。
enemy class (x:float y:float) {
// mutable variable
# x = x
# y = y
// private method
~ incx = x <- x +. 1.0
~ incy = y <- y +. 1.0
// public method
+ move = {
this->incx
this->incy
}
+ draw = {
printf("enemy %f %f\n" x y)
}
}
enemy2 class (x:float y:float) {
# x = x
# y = y
+ move = y <- y +. 100.0
+ draw = {
printf("enemy %f %f\n" x y)
}
}
_ = {
es = [
new enemy(10.0 20.0)
new enemy2(10.0 20.0) :> enemy
]
List.iter{|e=> e->move; e->draw }(es)
}
- js_of_ocaml対応
js_of_ocamlを使用する事で、javascriptを生成する事が出来ます。
js_of_ocamlの演算子##が追加してあります。
-
js_of_ocaml対応に伴って、
add(a,b) = a + b
形式の関数が動くようになりました。
Camlup 0.0.5 release
- windows バイナリビルド漏れ対応
今後気を付けます。
- 名前をnewcamlからcamlupに変更
-pオプションで構文木出力- x,y = 1,2の対応時のバグ解消
- matchの複数|対応
以下の式が通るようになりました。
value match {
| 0
| 1
| 2 -> 0
| n -> n
}
- ネストしたtupleの対応
以下の式が通るようになりました。
x,y = (1,2),(3,4)
- examples/lablgl/points.nml のサンプルが動作するようになりました。
NewML 0.0.3 Release
NewML 0.0.3 2014.11.02
- moduleのMapファンクタの生成に対応
詳しくはチュートリアルを参照してください。 - コメント後にパースエラーになってしまう不具合対策
- モジュールドキュメントの追加
- 文字列内のエスケープ文字対応
- 前置
-.演算子の追加 - []演算子の優先順位の変更
- レコード定義の;(改行)対応
- 2進数、8進数、16進数のリテラル追加
match の as 対応と-vオプションの追加
match式のasに対応
以下のようにmatch式のasに対応しました。
match_as = {
x = ("add", 1, 2) match {
| ("add" as id, a, b) =>
printf("%s" id)
a + b
| (id,a,b) => a + b
}
printf("add 1 + 2 = %d\n" x)
}
詳しくはチュートリアルを参照してください
nmlcコマンドに-vオプションを追加
nmlcコマンドに-vオプションを追加しました。
-vオプションを使うとバージョンを確認出来ます。
以下のように、-vを付けてnmlcを実行すると
$ nmlc -v
NewMLComiler 0.0.2
と表示されます。
first release
最初のリリース