うひゃあ、getExt()をextension()に変えたりfnmatch()をglobMatch()に変えたりしてたら
途端に何もかも動かなくなった
びっくりするほどユートピア!
俺のソース上のstd.algorithm.removeがコンパイル通らなくなったから
どこが悪いのかとunittestと比較しようとしたら
unittestからコピペしてきたのもコンパイル通らなくてワロタ
まさにD!
std.path の変更はただのリネームじゃなかった気がするが
・・・と思ったらレファレンスが更新されてNEEEE!
unittestが仕様です は罠
void main(){}
2.053 => 146,972 バイト
2.054 => 149,532 バイト
2.055 => 150,556 バイト
順調にむくんでいってる
そのうち150,550 byteくらいはGCなんだろうな
>>139は間違いだった反省している
むしろ今までコンパイル通ってたのがおかしかった
globMatch()はなにかおかしい…。たまにglobMatch内でAssersionFailure起こす。
なんか053から055にバージョン上げたら文脈によってnewで落ちるようになった
またGC周りの何かの予感が
自分のバグならいいけど・・いやいくないけど
>>147 '['が含まれてるパスがおかしいのは確認した
というか'['とか普通にパスに使える文字じゃないの?なんなのこの仕様
第2引数何指定してる?
>>149 UNIX系のシェルだと、[ABC]でAかBかCのどれか、みたいなワイルドカードが使えるものがあるんだよ。
……本当に'['を指定したい時のための記法は用意されてるんだろうか。
fnmatch()には「エスケープはできません(キリッ」と書かれてのけぞったが
replace("[", "[[]")でなんとかなった
glabMatchはそれやるとassertで落ちる
globMatchの第2引数では[]{}は特別な意味持ってるから開きと閉じの個数が合ってないと落ちるよ、てか落とすよ
D言語のライブラリ、Tangoの次はMank(ry
大人しく普通のワイルドカードで比較するか
そのうち例外出すように変わるだろうね
男らしく副作用が多すぎて使い物にならない関数の代表を目指してほしい
strtokさんを超えてくれ
ドキュメントは d-p-l のサイトだけ更新されたな
やっぱりこっちが本家なのか
日本語との照会がしづらくなるのう
public auto hoge() @property { return 0; }
これがコンパイル通らないのって仕様?@2.055
public int hoge() @property { return 0; }
や
public auto hoge() { return 0; }
はもちろん通る
std.path.getExt() -> extension() の危険な罠を回避した
手をつけるのを遅らせておいてよかった・・・
@property {
public auto hoge() { return 0; }
}
でとりあえずコンパイルはできるみたい。
元の getExt() にドットが含まれない方が違和感あったから
俺はこっちがいい
static if (__VERSION__ < 2055) {
std.algorithm.sort!"std.path.fcmp(a.name,b.name)<0"( list );
} else {
std.algorithm.sort!"std.path.filenameCmp(a.name,b.name)<0"( list );
}
こういうのをもっと簡単に書けないものか・・・
alias pred UZEEEEEEE
何度もやるならalias使うしか
std.path.rel2abs(".") -> absolutePath(".") も罠だった
カレントディレクトリ取る方法が他にあれば・・・
std.file.getcwdでええんちゃう?
なんでstd.fileなのさ