UUID(GUID)

GNU arch では、「誰とも重複しないような名前」や、「誰とも重 複しないような数」を必要とする場面がよくある。たとえば、君がこれか ら作るアーカイブ名は、地球上の別の誰とも異なっていなくてはならない。 このために君の E-mail アドレスをアーカイブの一部として利用するとい う決まりがあるのだった。いま、わざわざ君の E-mail アドレスを自分の アーカイブとするような意地悪な人間がとりあえず地球上にいないとすれ ば、これで君のアーカイブは地球上の誰とも衝突することはない。GNU arch は他にもこういう場面がある。インベントリid を決める時だ。イン ベントリid も、他のどんなアーカイブのどんなインベントリidとも異なっ ていなくてはならない。ある特定のバージョンや、アーカイブ中で一意で あれば済む問題ではない。地球上のすべてのアーカイブ中のすべてのイン ベントリidと衝突してはいけない。衝突したからと言って破滅的なことが 起こることはないが、やはり奇妙なエラーが出るはずだ。tla id-tagging-method で names の方式が好まれないのはこのためだ。この 方法だと、たとえば ?./README.txt のようなインベントリidが生成され てしまい、これは簡単に他のアーカイブバージョンのまったく無関係な ?./README.txt と衝突してしまうのだ[17]

どうしたらいいだろう。そうだ、世界中の GNU arch ユーザがみん なでどこかに集まって番号を取り決めればよいかも知れない。「文字列発 行専用メーリングリスト」を作って、たとえば、私が議長になって、新し い文字列が欲しいときには私にメールすること、とか言う決まりを作れば いい。で、私は 000000000000000000001 番から順番に、メールしてきた 人順に +1 した文字列を払い出せばいい。これで原理的に決して衝突しな い文字列を事実上無限に作り出すことができる。これは良いアイディアだ ろうか? とんでもない。最悪のしくみだ。なぜだろう?

まず第一に、私はこんな単純な作業をやりたくはない。



[17] 繰り返すが、この ようなことがおきても致命的な話しにはならない。ただ GNU arch のすば らしい世界の一部が堪能できなくなることだけは確かだ。