「nul」という名称のRustパッケージ、Windowsユーザーに不具合を起こす 20
ストーリー by hylom
OSが変われば制約も変わる 部門より
OSが変われば制約も変わる 部門より
Rust言語のパッケージマネージャ「cargo」で、とある開発者が「nul」というパッケージを作成してリポジトリにアップロードしたところ、Windowsユーザーがパッケージの更新を行えなくなるという不具合が発生したそうだ(本の虫)。
Windowsでは、「nul」というファイル名は利用できないことになっている。これは、「nul」というファイル名はUNIX/Linuxで/dev/nullに相当するnullデバイス(「空のファイル」に相当)として使われているためだ。今回の問題は、「nul」というパッケージがリポジトリに追加されたため、Windows環境においてパッケージ情報の更新の際に「nul」というファイルを作成しようとするも、このファイル名を持つファイルの作成は禁止されているためエラーとなり、リポジトリ情報の更新が行えなくなるというもの。
これを受けて、Cargoリポジトリで「nul」や「con」、「prn」などのWindowsでは利用できないファイル名を持つパッケージ名の使用を禁止するという更新が行われている。
盲腸 (スコア:0)
Windows3.1の時代なら納得出来ただろうが、DOSも消えたというのにこんな盲腸みたいなものが残ってるのは不思議で不可解
#errとかcomとかも駄目かな?
Re: (スコア:0)
盲腸っつーか後方互換性でしょ
.comも.scrも実行ファイル扱いだしそんなもんよ
# 他OSで滅多に使われない単語なら兎も角、nulは流石に使う方がプログラマーとして駄目だろって思う
Re: (スコア:0)
># 他OSで滅多に使われない単語なら兎も角、nulは流石に使う方がプログラマーとして駄目だろって思う
null(L二個)ならともかく、nul(L一個)でそんなこと言われてもなあ。
Re: (スコア:0)
まあ、何時までそれ残すんだよ!ってのはあるね。
でも、それよりは"/"がファイル名に使えないのにイラっとされる事が多い。
1/6~6/6みたいに付けたいと。
表示可能文字&文字列全てokならこんな事にはならんだろうが、階層表現が。。。
Re: (スコア:0)
それよりは空白文字がファイル名に使えてしまうのにイラっとする。
お宝画像.jpg .exe
を踏んでしまうから、というのは冗談で、
コマンドライン引数にするのにいちいち二重引用符で囲わなければいけないから。
Re: (スコア:0)
保存用にprnフォルダを作ろうとして失敗するんですね。
Re: (スコア:0)
/はそもそも\(バックスラッシュ)と同じパス区切りの文字だからね。
と言うかUNIXに合わせて/もパス区切りにしてあるんじゃなかったっけ?
Re: (スコア:0)
># 他OSで滅多に使われない単語なら兎も角、nulは流石に使う方がプログラマーとして駄目だろって思う
null(L二個)ならともかく、nul(L一個)でそんなこと言われてもなあ。
俗に言うASCIIコードの定義とかだと0x00の名称はNULなんで、言語レベルの予約語になってることは少ないにせよ、紛らわしい名前は使うべきじゃないと思う
Re: (スコア:0)
半角カナの「デスクトップ」フォルダに作ったファイルが、
UNIX環境に持っていって不具合起こしたのはいい思い出。
#誰だよ、ディレクトリ名に「デスクトップ」なんて付けた奴は。「desktop」でいいじゃん
Re: (スコア:0)
Re: (スコア:0)
現行の Windows では Desktop ですね。
むしろ、今は freedesktop.org 準拠のデスクトップ環境がホームに日本語ディレクトリを作ろうとする。
Re: (スコア:0)
ええっ?
NULでも/dev/nullでもいいけど、ビットバケツって絶対必要だと思うんだけどなぁ。。。
盲腸扱いって斬新すぎて目からうろこが剥がれ落ちそうで落ちない
うろこがないから。
Re: (スコア:0)
\\.\Device\Null に書き込めるようにすればいいんだけどなそんなのは
Re: (スコア:0)
本当はNTFS廃止でそこらへんの後方互換性もばっさり来られる予定だったんですけどねぇ。
すごい (スコア:0)
10年以上windows使ってるけど初めて知ったわ
拡張子ついててもダメなんだな
Re: (スコア:0)
MS-DOS 2.0 で階層ディレクトリがサポートされたが、デバイスファイルは、互換性として階層なしのファイル名だけで操作できるままになった。
現代まで、その部分の互換を引き続いてる。
機能は追加されたが削除されてないので、当時のバッチファイルが今でも動くのは、すごいことだけど、本当に必要なのかは疑問もあるな。
Re: (スコア:0)
20年使ってても知らないで済むことかもしれない
Re:すごい (スコア:1)
ぬるぬる (スコア:0)
file:///c|/con/con/con
Unixはナルええの世界だから… (スコア:0)
言ってみただけ。