通常、誰かが広範に使用され、十分にテストされ、多くのプラットフォームで検証されているものから逃れようとするとき、それは「コード臭」として知られる根本的な問題と「技術的負債」または「コード債務"。GNUアーカイブは長年にわたってかなりの量のコードの借金を積み上げており、コードベースが適切に維持されていない場合、ブレークポイント(レガシーコード、さらには病的なレガシーコード)に達する可能性があります。
通常、これを制御下に保つために、リエンジニアリングとリファクタリングのプロセスを定期的に実行します。したがって、ここで提起されている本当の問題は、coreutilsのリファクタリングバージョンが開発されているかどうかです。もちろん、これには(特別なケースとして)完全な交換の可能性が含まれます-WaylandがXのためにピッチされているように...その開発者の多くはXキャンプから直接出てきます。
私の提案は、実際にコアユーティリティをリファクタリングすることです。誰かがやらなきゃ。そして、coreutilsの置き換えの問題を提起する人-あなたのアイデアはあなたのプロジェクトです。
この目的のために、cscoutなどのリファクタリングエンジン、またはより高度な分析/合成方法(形式的な概念ラティスなど)を適用するあらゆる自動化を利用できます。しかし、詳細な分析は、まだ比較的新しくオープンなアクティブな研究分野であり、人工知能にまで及びます。(ロボットソフトウェアエンジニア。)
ほとんどのユーティリティにはすでにテストスイートが配置されているはずなので、段階的な段階的な変更と自動化された回帰テストのステップで検証を行うことができます。これは非常に高速です(たとえば、1日あたり10回以上のリビジョン更新)。ソフトウェアスイート内のどこかにハードウェアまたは低レベルのソフトウェアの依存関係がある場合、このプロセスが複雑になります。それは複数のプラットフォームでの検証を伴うためです。coreutilsにあることの多くは知りません。ハードウェアまたは低レベルのソフトウェアレイヤーから何らかの分離があるはずです(たとえば、coreutilsがどのタイプを知っているかの数それがオンになっているファイルシステムの最小値、またはより良いゼロでなければなりません。)エミュレーターと仮想マシンは、マルチプラットフォームのテストを行う目的で使用されるため、制限があります。たとえば、Mac OS Xは、エミュレートまたはVMする機能を妨げるように特別に設計されています。