週次オープンソース:fstool がファイルシステム行列を組む、univdreams がマルチアーキへ
また横に広い週。月曜に現れたディスクイメージツールキットが 日曜にはファイルシステム行列を動かしており、汎用デコンパイラは 新しいアーキ三つとプリエンプティブスケジューラを生やし、PHP の VM は委譲していた構文の大半を呑み込み、メディアフレームワークは 光ディスクを手に入れた。
fstool:一週間でファイルシステムツールキット
fstool は今週の新顔
——月曜に作られ、日曜には v0.0.2 → v0.4.1。「ディスクイメージ
/ファイルシステムイメージをビルド・検査・改変・repack する」
Pure-Rust のライブラリ+ CLI で、genext2fs の精神を継ぎつつ、
ディスク全体・複数 FS・フォーマット間の往復を、TOML スペック
からでもコマンドラインからでも扱う。
七日で到達したファイルシステム行列:
- 読み+書き+インプレース編集 — ext2 / ext3 / ext4、FAT32、 exFAT、XFS、HFS+/HFSX、NTFS、F2FS、GRF、qcow2。
- 読み+書き(repack 専用) — tar、SquashFS、ISO 9660、zip、 cpio、ar。
- 読み — dmg(UDIF v4、
encrcdsav2 暗号化を PBKDF2 アンロックで含む)。APFS のインプレース編集はまだ全ファイル 単位のみ。
書き込み可能な FS はすべて単一の Filesystem トレイトを実装する
ので、CLI(build / repack / add / rm)も TOML スペックも
一本のコードパスを通る——--fs-type か type = "hfsplus" で
ターゲットを選ぶだけ。ジャーナリング FS は「バイトを書く」以上の
ことをやる:ext3/4 は本物の JBD2 トランザクション、XFS は XLOG、
HFS+ と NTFS はそれぞれのジャーナル経由でコミットする——だから
編集の途中でクラッシュしても、ホスト自身の fsck がリプレイ
できるイメージが残る。
正しさの基準は自前チェックではなく実ツールだ:ext2 の出力は
同じ入力に対して genext2fs とバイト一致、書き込み側は
xfs_repair -n / fsck.hfsplus / fsck.f2fs / unsquashfs
の往復を通る。週の終わりには FUSE アダプタ(任意のバックエンドを
ユーザ空間 FS としてマウント)、OCI 風 .wh.* ホワイトアウト付き
のレイヤ repack、クラッシュ注入ブロックデバイス付きの
lib レベル fuzz ハーネスも生えた。Ragnarok Online の GRF
アーカイブ(permutation 暗号、CP949 ファイル名)も入っている
——唯一の純粋に個人的な痒み。
univdreams:BPF、Solana、WASM、そしてスケジューラ
univdreams ——先週 oxideav-vfw から切り出された汎用デコンパイラ/コンパイラ ——は W21 を、アーキで広げ、エミュレータで深掘りして過ごした。
新しいデコンパイル対象:
- BPF / eBPF + Solana SBF — Linux eBPF + Solana SBF の
デコーダ(バイト同一の往復)、続いて完全なリフトスタック:
.rel.dyn経由の syscall 名解決、関数発見、スタックスロット 命名、分岐ラベル、構造的 if-then-else / while 復元、引数と 戻り値型の推論、.rodata文字列解決。ud solana <program-id>はデプロイ済み Solana プログラムをチェーンから取得して デコンパイルし、ハンドラごとに region バナーを付ける。 - WASM — コンテナ往復、Code セクションの関数ごとの 逆アセンブル、CLI 自動検出。
- アーキ非依存の SSA コアと
arch-codecトレイト背骨—— x86 と BPF がアーキごとのフォークではなく同じレジストリを 通ってリフトする。
さらに ブラウザプレイグラウンド(wasm-bindgen)も生えた:
Upload / URL / Solana チェーンのタブと Helius RPC オーバライド
付き。エミュレータは六フェーズかけて本物のプリエンプティブ
スケジューラを獲得した:ThreadState + TLS スロット、本物の
コンテキストスイッチ付き非同期 CreateThread、Event / Mutex /
Semaphore + WaitForSingleObject、クリティカルセクション、
スレッド優先度付きの quantum ベースプリエンプション、本物の
CreateProcessA 付きプロセステーブル、子 PE のロード+実行。
コーデック側は v0.1.4 → 0.1.5 で 12/12 コーデック往復、
MagicYUV と HuffYUV がピクセル一致(SSE2 XMM、AVX/YMM、
Indeo 3 デコード)。
goro:PHP を VM へ降ろす
W20 の作業は PHP のエッジケースに対する VM の正しさだった。W21 はその カバレッジ ——構文を次々と AST 委譲から専用のネイティブ op へ移し、VM がツリーウォーカーへフォールバックしなくなるように した。
今週ネイティブに降ろしたもの:match()、switch()、enum 宣言、
非 by-ref ターゲットへの foreach、try/finally(ハンドラ
ごとの pending 制御+エスケープ時チェーン、PHP bug65784 修正)、
nullsafe のプロパティ/メソッド/dyn-var 読み($obj?->…)、
可変変数($$name / ${expr})、静的プロパティ書き込み
(Foo::$bar = v)、拡張 clone()、参照生成(&$expr)、
リスト分割代入、単純コンテナへの isset() / empty() と
unset()、静的メソッド呼び出し。加えて mb_convert_variables
の循環配列に対する再帰検出修正。
OxideAV:光ディスクとコンテナの深掘り
W19 でコーデック行列が埋まり、W20 は細かい改善、W21 は コンテナとディスクの層が育った。
光ディスク — oxideav-dvd
が新顔:読み取り専用の DVD-Video リーダ、ECMA-267/268 +
OSTA UDF 1.02 のクリーンルーム——ISO 9660 + UDF マウント、
VIDEO_TS ウォーク、IFO パーサ(VMGI/VTSI、プログラムチェーン
テーブル、パレット LUT)、nav-pack サブストリームルータ付きの
MPEG-PS 上の VOB デマクサ、そして convert_dvd_to_mkv mux
パイプライン。Blu-ray
の読み取り側 sibling も並走中(BDMV ウォーク、CPI EP_map
シーク)だが、実際にテストできるディスクに向けてまだ作業中。
コンテナは box / atom の深いカバレッジを得た: mov(QuickTime/ISO-BMFF box をラウンド 125 まで)、 mp4(サンプルグループ、 編集リスト、字幕/タイムドテキストトラック)、 mkv(RFC 9559 ContentEncodings、ヘッダストリッピング、CRC-32 検証、fuzz ターゲット)、 avi(OpenDML super-index、 ストリームごとの LANGID、SMPTE タイムコード)。
フレームワーク配管 —
scribe(フォント
ラスタライザ/シェイパ)が GSUB 置換ルックアップ+ ccmp /
calt を shape_text に配線;
generator が
synth モード追加(DTMF、ADSR エンベロープ、リングモジュレーション、
chirp/FM、ビデオ zoneplate);
source に concat://、
data:(RFC 2397)、mem:// ドライバとファイルスコープ
allow-list;
pipeline に
メモリ上限付きパケットキュー(トラックごとのチャネル予算)。
ClawdWallet:実機経路
先週の「来週」は ClawdWallet のペアリングフローを実機に乗せる ことだった。作業はそこへ向かった。
TibaneApp はビルド
51 から 55 へ(libwallet 0.4.38 → 0.4.44):トランザクション
履歴をウォレットごとにスコープ、作成時のウォレット命名、
ダッシュボードのトークンロゴ、トークン/アクティビティの
タブ分割、ドリフトするオンチェーン状態を読む画面の
pull-to-refresh、ウォレットシートのコピー可能アドレス、
アンロック時にデバイスシェアが欠けている場合の 2FA リカバリ経路。
clawdwallet は
しきい値署名コアを作り直した:eddsatss を FROST(Ed25519)
+ DKLs23(secp256k1) に置き換え、share スキーマの往復テスト、
カバレッジ CI。
libwallet
v0.4.33 → v0.4.44 が支えを運んだ:iOS/Dart フレームワーク
修正の連続(static_framework 下で Go ランタイムを二重に
初期化しない、dlsym 向けにブリッジシンボルを公開)、swap
アグリゲータを OKX DEX API V6 へ切り替え、Solana tx 履歴の
バックフィル、クロスデバイスインポートのリカバリ文書化。
今週その他
- chiefstaker —
Solana のステーキング/報酬プログラムが監査パスを通った:
PDA 事前資金供給グリーフィングに対するプール初期化の堅牢化、
unstake クールダウン中のコイン凍結、フル unstake 時に常に
アカウントを閉じて未払い SOL を全額支払う、必須メタデータ PDA
による正確な
member_count。 - origami — RNA の
弧が続いた:CHARMM27 核酸の原子タイピング+力場パラメータ、
NeRF の base-ring +水素ビルダ、monomer-aware な RNA トポロジ
グラフ、そして
build → minimize → dynamicsが RNA 鎖で 端から端まで動くように。タンパク質は出力側、核酸は組み立てる 側だ。 - vpnetd-sgx — VP.NET SGX エンクレーブにビルド+リリース CI(バージョンタグで エンクレーブバイナリを公開)。
来週
fstool は v0.5 と安定パブリック API へ向かう。univdreams は
マルチアーキのリフトと Win32 スケジューラを押し進める。DVD
リーダはデマクサから再生へ移る。goro の VM はデフォルトを
切り替えられるまでネイティブ降ろしを点けていく。