Plumeがビルドできなくなっていたので対応

Rust Nightlyとlexical-coreのアップグレード

ビルドの失敗

およそ一か月振りにPlumeの開発に戻って来たら、ローカルのUbuntuでは大丈夫なのにCircleCIでビルドに失敗するようになっていた:integration-1 (13476) - Plume-org/Plume

620 |         let local_ptr = (entry as *const Entry as usize - offset_of!(Local, entry)) as *const Local;
    |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^ could not find `addr_of` in `ptr`

エラーメッセージ(could not find addr_of in ptr)でググったらこれがヒットする:Bump codegen build to newer rustfmt commit · dtolnay/syn@17332d9

Rustのバージョンアップ

なるほどRust Nightlyのバージョンかーと思って、プルリクエストにあるnightly-2021-03-16に上げて、各種コンポーネント(cargoとかそういうの)をダウンロードしているその待ち時間に、そう言えばOPTiMのブログで最新Rustの記事出てたことを思い出したので読んでいた(Rust 1.51を早めに深掘り)。するとこんな記述が:

ptr::addr_of!

見覚えがある。ついさっき。と、ダウンロードの終わったNightlyのコンポーネントを使ってビルドしてみると案の定失敗する。そこで昨日の日付を使ってnightly-2021-03-27にしてみるとビルドがあっさり通った。ありがとうOPTiM。

失われたrustfmt

が、また問題が。cargo fmtができない。rustfmtがないと言われてしまう。最新のNightly用のrustfmtが世の中に存在しないようだ。あれこれ検索しているとこんなページを見付けた:Rustup packages availability on x86_64-unknown-linux-gnu。毎日のNightlyについて、各種コンポーネントが含まれているのかどうかを教えてくれる。これを見るとrustfmtが含まれる最新は2021-03-25なのでこれを指定した。

CircleCIのメンテナンス

とかやっているうちにCircleCIがメンテに入ってしまった。折角問題が解決しそうなのに、ここで待ちかー! という気分だ。なんか、色々折が悪いなあ。

Clippyのアップグレード

ようやく再開した、と思ったら今度はclippyでエラーになってしまった。Rustのアップデートの結果、clippyが賢くなったのだった。


何もしないで一か月経っただけなのに、ビルドができなくなっているとかなかなかしんどいな。楽しくもあるけど。