本の虫

著者:江添亮
ブログ: http://cpplover.blogspot.jp/
メール: boostcpp@gmail.com
Twitter: https://twitter.com/EzoeRyou
GitHub: https://github.com/EzoeRyou

アマゾンの江添のほしい物リストを著者に送るとブログ記事のネタになる

筆者にブログのネタになる品物を直接送りたい場合、住所をメールで質問してください。

Ubuntu 17.10にアップグレードした

Ubuntu 17.10がリリースされた。

ArtfulAardvark/ReleaseNotes - Ubuntu Wiki

今回のリリースでは、デスクトップ環境がUnityからGnomeに変わった。同時に、X.orgではなくWaylandに変わっている。

このため、Ubuntuのデスクトップ環境の使用感がだいぶ変わっている。まず、GnomeはUnity風の操作感を再現するために、やや手が入っている。具体的にはSuper+数字でランチャーに登録されているソフトウエアのウインドウを選択できたりする。

残念なことに、Global MenuやHUDは再現されていなかった。

Waylandに移行したので、日本語入力環境が大変不便になった。fcitxはWaylandに対応していないので使えない。使えないが、そのことは警告されないので、fcitxを使っているUbuntu 17.04からアップグレードすると、日本語が入力できなくなる。iBusに切り替える必要がある。iBusはキーボードレイアウトとかな漢字変換機能を持つIMEをごちゃまぜにしているので本当に使いづらい。しかも、変換候補のウインドウが、カーソル位置ではなく画面左上に出る。極めてつらい。

私は事前に調べているからいいものの、これは何も知らない人がアップグレードしたら日本語入力ができずに詰みそうだ。

特に興味深いパッケージのバージョンという点では、Linuxカーネルが4.13に、GCCが7.2.0に、Clangが4.0.1.6に、Neovimが0.2.0になった。

GCCとClangのバージョンが上がったので、これでfilesystemなどの一部のライブラリを除いて、どちらもC++17をある程度実装したコンパイラーになった。

ただし、現在libc++にはxlocale.hをincludeするという不具合がある。xlocale.hは標準のヘッダーではなくglibcの内部ヘッダーであり、しかもそのコメントには、"This file is not standardized, don't rely on it, it can go away without warning"と書いてある。

sourceware.org Git - glibc.git/commit

libc++がなぜxlocale.hをincludeしているのか全くわからない。実装を読んだが、単にincludeしているだけだ。なので、とりあえず空のxlocale.hファイルを作り、そのファイルへのディレクトリーを-Iで追加して対処した。

また、メインでは使っていないDellのLatitude E7470でUbuntuがうまく動かない問題は、Ubuntu 17.10でも解決しなかった。まずアップグレードが途中で失敗する。

DellのLatitude E7470でUbuntuがうまく動かない問題は、未だに原因がわからない。以下のような問題がある。

Live環境のブートが遅い。ログを見ると、pwconvが/etc/shadow-のパーミッションを0600に変更しようとしてエラーを出し、パッケージリストを読み込むのに時間を要し、regenerating SSL certificatesでまた時間を要する。放置しても絶対に進まず、キーボードを適当にワシャワシャ叩くと進む。まるで/dev/randomへのエントロピーが十分にたまるまで待っているかのような挙動をする。

初回ログイン時に数回画面が暗転する。

突然フリーズする。マウスカーソルは動くがそれ以外の操作を何も受け付けない。ttyの変更すらできない。文字入力をしているときにフリーズしやすい気がする。

cat /dev/urandomが何故か目視できるほど遅い。urandomなのに遅い。

grub-updateが遅い。

apt upgradeしたときの"procescing triggers for man-db"が遅い。

なので実用にならないのだが、一応維持している。Ubuntuの欠陥なのかDell Latitudeの欠陥なのか、個体の欠陥なのかわからないが、私は個体の欠陥だと思っている。しかし、memtest86+は何の問題もなく何パスも通るので、メモリではなさそうだ。また、ストレージへの読み書きも遅いわけではない。単純なベンチマークやストレステストで問題が見つからないのでよくわからない。