17270をテストしているときに、マスター(bdda137878904e9401a84e308ac74c93c2ef87c1)がNetBSDで実行されていないことに気づきました。 これは、#17085がフォールバックロケールをC
からC.UTF-8
変更した後に開始されたと思います。 NetBSDにはC.UTF-8
ロケールがないようです。
src/bitcoind
terminate called after throwing an instance of 'std::runtime_error'
what(): locale::facet::_S_create_c_locale name not valid
Abort trap (core dumped)
LC_ALL=C src/bitcoind
機能しますが、 LC_ALL=en_US.UTF-8 src/bitcoind
は機能しません。
locale
LANG=""
LC_CTYPE="en_US.UTF-8"
LC_COLLATE="C"
LC_TIME="C"
LC_NUMERIC="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=""
これは永遠の問題の原因です。 ある時点ですべてのロケール依存関係を取り除き、ロケールを無視できるかどうか疑問に思います。 おそらくboost::filesystem
を使用している限りではないでしょう…:cry:
@laanwj
boost::filesystem
別にして、ロケールに依存する操作を使用している場所のリストは非常に短いです。
おそらく、上記のリストに取り組むために「良い最初の問題」を作成することができますか? それらのいくつかは、新しい貢献者に適した本当に低いぶら下がっている果物です。
私はそれらを置き換えるためにすべてですが、間違ったロケールを構成してもこれらの関数がクラッシュすることはありません。これは非常に後押しです。
最も参考になるコメント
私はそれらを置き換えるためにすべてですが、間違ったロケールを構成してもこれらの関数がクラッシュすることはありません。これは非常に後押しです。