イーサリアム(Ethereum)のスマートコントラクト言語ソリディティ(Solidity)の開発チームが、コンパイラの最新バージョン「ソリディティv0.8.31(Solidity v0.8.31)」を12月3日にギットハブ(GitHub)に公開した。
今回のアップデートでは、同日にメインネットで有効化されたイーサリアムのネットワークアップグレード「フサカ(Fusaka)」において、実行レイヤー側で導入された最新EVM仕様「オーサカ(Osaka)」への対応が進み、コンパイラのデフォルト設定としても osaka が適用された。
またストレージレイアウト(データ配置)を指定する機能が拡張され、コントラクト内の定数(constant 変数)をストレージスロット計算に利用できるようになったという。これにより複雑なコントラクト間の継承構造やアップグレード型コントラクト(proxy)の設計自由度が高まるとのこと。
加えて、イーサリアム仮想マシン向けの低レベル中間言語Yulでは、256bitデータの先頭ゼロ数を数える「clz」命令が追加されるなど、最適化ツールの改善も含まれている。
デバッグ関連では、EOF(EVM Object Format)環境における命令位置やソースコード位置の取得に対応した「ethdebug」の実験的サポートが追加された。これにより開発者は、EOF対応のコードをより詳細に検証できるようになる。
さらに将来のメジャーアップデート「ソリディティv0.9.0」で削除予定の機能について、非推奨(deprecation)警告が追加された。警告対象には、address 型で利用される関数(send / transfer)、ABI coder v1、virtual 指定子、コントラクト型の変数同士の比較などが含まれる。
その他、リナックスARM64(Linux ARM64)向けの公式ビルドが提供開始されたほか、「Boost」「GCC」「Clang」など開発環境の最低要件が引き上げられた。
ちなみにイーサリアムのアップグレード名称には一定の慣例がある。実行レイヤーのアップグレード名には、過去に開発者会議「デブコン(Devcon)」を開催した都市名が採用され、一方で合意レイヤーには恒星の名称が付けられる。今回ソリディティが対応した「フサカ(Fusaka)」は、この命名規則に沿った アップグレード全体の総称とされている。具体的には、実行レイヤーにデブコン5の開催地「オーサカ」、合意レイヤーにはカシオペヤ座の恒星のひとつ「フールー(Fulu)」が採用されている。
参考:ギットハブ・ブログ
画像:PIXTA


