Sunday, July 24, 2011

GBench 0.2.0 がリリース

GBench 0.2.0 をリリースしました。GBench は Groovy 向けのベンチマークフレームワークです。このフレームワークは2つの強力な機能、 AST 変換と builder によって簡単にベンチマークを取れるようにしてくれます。

What's New
  • CPU時間のサポートを追加
  • builder API の改良
    • ベンチマーク対象のコードブロックを追加する為のより良い (Groovierな) 構文の追加。
                ----
                run {
              with 'label', {
              }
          }
          ----
                ->
                ----
                run {
              label {
              }
          }
          ----
    • run() へのオプションを追加。
      • "average", "idle", "trim"。使い方は javadoc を参照。Yasuharu Nakano さん(GroovyServ の作者) へソースコードの提供を感謝します。
      • "repeat"。このオプションは "time" オプションの代わりとなるものですが、 "time" オプションも後方互換性の為に残ります。
    • 新しい API の追加。
      • sum(), average(), prettyPrint()。使い方はそれぞれの javadoc を参照。
  • バージョンスキームの変更。
        YY.MM.DD
        ->
        Major.Minor.Micro

Resolved Issues
  • @Benchmark のデフォルトハンドリングを指定するシステムプロパティの名前に古いドメインが含まれている。
        "groovybenchmark.sf.net.defaulthandle"
        ->
        "gbench.defaulthandle"

Examples
  • AST transformation Example:

  • Builder Example:

ぜひ試し、フィードバックを下さい (このブログのコメント、プロジェクトの issue tracking system、またはTwitter:@nagai_masato 経由で)。 あなたのフィードバックが GBench を改善を継続する力になります。

Sunday, July 3, 2011

Groovy Quiz: Elvisは何人いる?

Elvisは何人いる?:

[]?.size?:[].@size?:[]*.size?:[].&size?':[].size?':[]

Saturday, July 2, 2011

Poison for Groovy Part 2

残念ながら今日Groovy用の新たな毒を生成することに成功しました (既に別の毒も見つけています。以前のポストを読んでください)。

生成には3つの工程があります:

1. GroovyがインストールされているWindowsマシンを手に入れます。これは大変難しいミッションです。
2. ダブルクォートされ、スペースを含んだ文字列をJAVA_OPTS環境変数へセットします:
----
> set JAVA_OPTS=-Daprop="a value"
----
3. groovyを実行します:
----
> groovy -h
----

すると次のエラーが起こります:
----
value"" was unexpected at this time.
----

既にこのバグに関連する2つの問題を報告しパッチも提供しています (GROOVY-4910GANT-126を参照)。これらの問題がすぐに解決することを望みます、Windows固有の問題はパッチがあってもいつも未解決のままですけどね。 

Groovyは仮想マシン上で動くクロスプラットフォーム言語、でしょ?