カテゴリ:ソフト開発日誌
GNU coreutils を置き換えようとしている rust uutils をテストしてみる。完全にダメだった。ちょっとコマンドラインで試しただけでいくつも問題が見つかる。あと 6 ~ 7 ヶ月で完成するという状況では無いと思える。
前の日記で rust uutils の source code から coreutils を build した。特に断りが無ければここでは ~/git/uu-coreutils/target/release/coreutils が rust 版の coreutils とする。試した環境は lubuntu 24.04 x86_64 あるいは Raspberry Pi OS 64bit GNU/Linux bookworm だ。 よく使う df command を見てみる。rust uutils の方は色々な mount も表示している。互換性無し。rust coreutils を実装している人たちは使ったことあるの? df Filesystem 1K-blocks Used Available Use% Mounted on tmpfs 400940 5872 395068 2% /run /dev/sda1 80056892 12096208 63848300 16% / tmpfs 2004692 0 2004692 0% /dev/shm tmpfs 5120 8 5112 1% /run/lock tmpfs 400936 120 400816 1% /run/user/1000 ~/git/uu-coreutils/target/release/coreutils df Filesystem 1K-blocks Used Available Use% Mounted on udev 1963348 0 1963348 0% /dev tmpfs 400940 5872 395068 2% /run /dev/sda1 80056892 12096208 63848300 16% / tmpfs 2004692 0 2004692 0% /dev/shm tmpfs 5120 8 5112 1% /run/lock /dev/loop0 128 128 0 100% /snap/bare/5 /dev/loop3 11008 11008 0 100% /snap/firmware-updater/127 /dev/loop2 76160 76160 0 100% /snap/core22/1564 /dev/loop1 276352 276352 0 100% /snap/firefox/4793 /dev/loop6 39808 39808 0 100% /snap/snapd/21759 /dev/loop5 93952 93952 0 100% /snap/gtk-common-themes/1535 /dev/loop4 517248 517248 0 100% /snap/gnome-42-2204/176 tmpfs 400936 120 400816 1% /run/user/1000 /dev/loop7 11520 11520 0 100% /snap/firmware-updater/167 /dev/loop8 528512 528512 0 100% /snap/gnome-42-2204/202 /dev/loop9 75776 75776 0 100% /snap/core22/1748 /dev/loop10 264576 264576 0 100% /snap/firefox/5917 printf で浮動小数点を表示してみよう。20 桁で double に入るかどうかのギリギリだ。rust uutils の方は、引数で与えた値の下 2 桁を保存できていない。rust の浮動小数点型って特殊なの? printf "%.24f\n" 0.1234567890123456789 0.123456789012345678901322 ~/git/uu-coreutils/target/release/coreutils \ printf "%.24f\n" 0.1234567890123456789 0.123456789012345677369886 printf と od を試してみる。rust uutils printf で \xff は正しくない UTF-8 の文字だと言うのは分かるけど、GNU printf と同じ様に動くのが筋だと思う。od のアドレス表示も大文字に変わっている。 printf "%30c" $'\xff' | od -t x1 -A x 000000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 000010 20 20 20 20 20 20 20 20 20 20 20 20 20 ff 00001e printf "%30c" $'\xff' |\ ~/git/uu-coreutils/target/release/coreutils \ od -t x1 -A x 000000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 000010 20 20 20 20 20 20 20 20 20 20 20 20 20 ff 00001E ~/git/uu-coreutils/target/release/coreutils \ printf "%30c" $'\xff' |\ ~/git/uu-coreutils/target/release/coreutils \ od -t x1 -A x error: invalid UTF-8 was detected in one or more arguments Usage: /home/furuta/git/uu-coreutils/target/release/coreutils printf FORMAT [ARGUMENT]... /home/furuta/git/uu-coreutils/target/release/coreutils printf OPTION For more information, try '--help'. 表示くらい許容? 他にも色々と問題あるんだよなぁ... 多分つづく お気に入りの記事を「いいね!」で応援しよう
最終更新日
2025.03.25 02:41:39
コメント(0) | コメントを書く
[ソフト開発日誌] カテゴリの最新記事
|
|