6797698 ランダム
 ホーム | 日記 | プロフィール 【フォローする】 【ログイン】

ふるた技工所(てっこうしょ)

ふるた技工所(てっこうしょ)

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

キーワードサーチ

▼キーワード検索

プロフィール

Aちゃん22

Aちゃん22

フリーページ

2025.03.23
XML
カテゴリ:ソフト開発日誌
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) | コメントを書く
[ソフト開発日誌] カテゴリの最新記事


カレンダー

カテゴリ

サイド自由欄

コメント新着

ニューストピックス


© Rakuten Group, Inc.
X