Rust更新履歴
本セクションではRustツールチェーンのこれまでの変更点のうちSOLIDターゲットに影響するものを抜粋して示します。
一般的な変更点の概略に関してはRust公式リリースノートをご覧下さい。ただし、公式リリースノートはstableチャンネルのバージョンに基づいているため、nightlyチャンネルと比べると数週間の遅れがあります。
nightly-2022-10-30
Rust 1.66.0のベースバージョン
nightly-2022-10-25
PR #103005:
std::fs::ReadDir
がSOLID_FS_ReadDir()
からエラーが返された場合に、ディレクトリの末尾として扱うのではなくエラーとして報告するようになりました。
nightly-2022-09-18
Rust 1.65.0のベースバージョン [リリースノート]
nightly-2022-08-12
SOLID-Rust 1.1.0のデフォルトツールチェーン
nightly-2022-08-06
Rust 1.64.0のベースバージョン [リリースノート]
nightly-2022-07-26
PR #95916: 標準ライブラリでアボート処理をHLT命令などとハードコードするのではなく
abort()
関数を呼び出すことによって実現するようになりました。これにより、例えば、モニタデバッガ向けにSOLID-OSをビルドしている場合はそれに適した方法でブレークするようになります。
nightly-2022-06-27
PR #97140: スレッド付属同期機構であるthread parker (
std::thread::park()
) がカーネルミューテックスとstd::sync::Condvar
の組み合わせではなくカーネルイベントフラグで実装されるようになりました。スレッド毎のミューテックスが不要になりますが、代わりにイベントフラグが必要になります。タスクがブロックしない場合の実行時オーバヘッドが大幅に減少します。
nightly-2022-06-25
Rust 1.63.0のベースバージョン [リリースノート]
nightly-2022-06-20
PR #97791:
std::sync::Mutex::new()
などがconst fn
(定数コンテクストから呼び出し可能な関数) になりました。static
項目 (グローバル変数) にMutex
を含められるようになります。例:static COUNTER: std::sync::Mutex<u32> = std::sync::Mutex::new(0); *COUNTER.lock().unwrap() += 1;
nightly-2022-06-05
PR #97647:
std::sync::RwLock
と同様に、std::sync::Mutex
も初回使用時にカーネル資源を動的生成するようになりました (lazy initialization)。
nightly-2022-05-15
Rust 1.62.0のベースバージョン [リリースノート]
nightly-2022-03-15
PR #90621:
aarch64_target_feature
unstable featureが安定化されました。
nightly-2022-02-27
PR #93870: コードカベレッジインストルメーション有効時に標準ライブラリがビルドできない問題を修正しました。
nightly-2022-02-20
PR #93847: ファイルシステムAPIがスレッド安全性ラッパー (
\TS\...
) を使用するようになりました。
nightly-2022-02-16
SOLID-Rust 1.0.0のデフォルトツールチェーン
nightly-2022-02-14
PR #91673: ファイルシステムAPI関数
std::path::absolute()
(unstable) を実装しました。
nightly-2022-02-12
PR #93843: 同期プリミティブの一つである
std::sync::Condvar
の実装バグを修正しました。
nightly-2022-01-30
PR #93410: ソケットの
try_clone()
メソッドをSOLID_NET_Dup()
で実装しました。
nightly-2021-11-05
PR #90392: SOLIDターゲットが追加されました。