v0.16 Release Note

Last updated:
Created: 2006-09-06








by Fumisky Wells

新機能

  1. コンストラクタ式 T(...) を導入しました
    例えば
    before after
    file: f = "/etc/passwd"
    for str: s in f do
       put(s)
    end
    
    
    for str: s in file("/etc/passwd") do
       put(s)
    end
    

    ファイルの書き込みの例:
    before after
    import
       Time
    end
    
    file: f = ("/var/log/app", file.WRITE)
    f.put(now, " error message")
    # close はスコープの終りに自動的に行われる
    
    import
       Time
    end
    
    file("/tmp/x", file.WRITE).put(now," error message\n")
    # close はスコープの終り(つまりこの行)に自動的に行われる
    

  2. 起動オプション -de で表示される _ehcs[] をより分かりやすく しました。絶対アドレスから相対アドレスに変えてます。

  3. 式中に型が現れるケースに warn を出すようにしました。 よくあるのが "int: i" と書こうとして "int i" と書いてしまう ケースへの warning です。

bug fix

  1. 破棄子を持つ作業変数の初期化にあったバグ(VM code INIT2 でなく INIT を生成していた)を直しました。
  2. 破棄子を持つ作業変数を破棄してない(メモリリーク)バグを 直しました。
  3. 変数の初期化時に一時変数が破棄子を持つ場合 SEGV する バグを直しました。 (INIT2, RSVE のロジック変更。POP EP の廃止)。
  4. substr.str() のバグを直しました。