Giraffe+ 0.5.64.794

Downloadページへ

前リリースからの変化

  • テストスクリプトをScript/testsに移動
  • サンプルスクリプトをScript/samplesに追加
  • UTF-8のプライオリティファイルを複数回読み込むとエラーになってたのを修正
  • Boost.Filesystemのdeprecatedな関数を整理
  • Object.parallel_def, multi_defを定義
  • SwitchWindowが最前面化ウインドウを列挙してなかったのを修正
  • giraffe-mode.lを1行目のインデントをゼロにするよう修正

テストスクリプトをScript/testsに移動

Object$test.giraffeとかです。スクリプトで実装してるもののテストをtestsディレクトリの同名のスクリプトに実装する、ということにしました。
ちょっと片付けたくなっただけで、深い考えはありません。

サンプルスクリプトをScript/samplesに追加

viewの概念をどうしようかと考えながら適当にzip_iteratorを実装してみたりしたんですが、実用性はないもののスクリプトの例としては有意義かと思ったのでsamplesに加えました。
ついでに、似たような意味のないcontainer_multiply_example, zip_exampleと、ウインドウをアクティベイトする例としてToDoListActivateを追加しておきました。

UTF-8のプライオリティファイルを複数回読み込むとエラーになってたのを修正

localeにfacetをdeleteさせないのを忘れてました。効率が問題になる部分でもないはずなので、使うときに毎回newとdeleteをする普通の仕様にしておきました。

Boost.Filesystemのdeprecatedな関数を整理

新しいのと古いのを定義してたりしてなかったりだったのを、全部定義するようにしました。

Object.parallel_def, multi_defを定義

クラス的なオブジェクトを作る場合に、複数回defすることになります。

obj: Object.clone
obj.method0: `[0]
obj.method1: `[1]

同じオブジェクト名を毎回書くのは冗長なので、

obj: Object.clone
obj.parallel_def& :method0, `[0],
                  :method1, `[1]

と書けるようにしました。
もうひとつ、同じオブジェクト(or method)が複数の名前で保持されることが多いですが、そういう場合、

obj: Object.clone
obj.prop0: obj.prop1: 0

と、していたのを、

obj: Object.clone
obj.multi_def& :prop0, :prop1, 0

とできるようになりました。
parallel_defは、スロット名の引数が配列の場合にmulti_defを呼ぶようになってます。

obj: Object.clone
obj.parallel_def& :method0, `[0],
                  :method1, `[1],
                  {:prop0 :prop1}, 0

どちらもObject.giraffeの実装で、tests/Object.giraffeにテストがあります。

SwitchWindowが最前面化ウインドウを列挙してなかったのを修正

今まで気づきませんでした。

giraffe-mode.lを1行目のインデントをゼロにするよう修正

気づいていたのに今まで放置してました。