謎's キッチン

謎のひとりごと。Amazon欲しい物リストはこちら: https://www.amazon.co.jp/hz/wishlist/ls/CCPOV7C6JTD2

dmd 2.000

まだ試してないけど感想だけ。
文字列と配列リテラルの動作の不整合が解決されてる。内部のコードが幾分ましになってるはず。
const、invariant、finalはしっかり考えられてる。本当にこれが一番なのかは疑わしかったが、読んでみるとこれが一番な気がしてきた。
stringという型名は長すぎ。strにしてほしかった。それと文字列がimmutableである必要はあるのか(スレッドを使う場合を除く)。まぁchar[ ]使えばいいんだけど(phobosも問題無い感じだし)。
.idupはconst(char)[ ]からinvariant(char)[ ]を作成することか。
後は速度がどう変化したかが気になる。

幾つか追記。
2.000のリリース早杉と思った。結局ASTもExpression Aliasもyieldも入らなかったけど、でもまあ幾つかの重要なリテラルのサポートの為だけでも2.000をリリースする意味はあったと思う。
まぁまだAlphaだけど。


使ってみたが、以下のがどうなってるのかちょっと混乱中。

class Class{
  char[] a;
  this(const char[] a=""){
    this.a=a;
  }
}



const(char)[ ] ~ const(char)[ ]がchar[ ]型になる。
string d = "a"~"b"~(1?"a":"")で何故かクラッシュ。