.NET2.0対応版

現在、Nemerleプロジェクトは.NET2.0のGenerics対応がメインになっているようなので、そっちを追っかけてみることに。ところが、このGenerics版は.NET2.0β2にバグがあってSVNからチェックアウトしたMonoでないとビルド出来ません。そのMonoもcscだとWin32Exception.csのコンパイルに失敗したり、mini-codegen.cでインクルードしているsys/mman.hがひっかかったりでmakeを通すのにごにょごにょする羽目に。(^^;

で、本物のGenerics対応になったNemerleを試してみようとテストコードを走らせてみると、

using System.Console;

def print_list (l) {
  try {
    WriteLine (l);
  }
  catch {
    | e => WriteLine (e.Message);
  }
}

def lx = [0, "1", 2:object];
def ly = [0:object, "1", 2:object];

print_list (lx);
print_list (ly);

/*
Object reference not set to an instance of an object
[0, 1, 2]
 */

なんか、例外が飛んでしまいます。問題は、

def lx = [0, "1", 2:object];

ここなんですが、listは最後の要素の型から型推論するので、最後を型指定してobject型のlistにしているのですが、値型の要素を入れるとnullになってしまうようです。ただ、これはNemerle0.3.2では大丈夫だったので、単なる不具合ではないかと思います。というか、型指定必須だったらメンドイです・・・(^^;