Rersort/Ruby v2.94 Released
このところ Refsort/Ruby(リリース実績は新しいほうから *1 *2 *3 *4 *5 *6 *7 *8 *9 *10)のソースファイルを眺めているうちに,ムラムラと湧き上がるものがあって実装をいじっているうちに,辞書ファイルの重複したレコードやラベル,さらには入力の重複レコードを処理する部分を全面的に書き換えました.ただし仕様の変更は実質的に何もありません.
どういう内容かと言うと,まず辞書ファイルに重複したレコードがあると,同一のものが異なる複数の順位を持つことになるので,そもそもソーティングが原理的に成り立ちません.このため,辞書ファイルの読み込み時に重複したレコードを見つけると,従来は最初の重複ペアが見つかった時点でエラーメッセージを出して即座に処理を中止していました.しかし,これはあまり親切なやり方ではないので,辞書ファイルをすべて読み込んだうえで何々というレコードが何行目と何行目と何行目に重複して存在していると網羅的に報告し,それから処理を中止するようにしました.こうすれば辞書ファイルの作者は辞書の修正が容易です.
同様に,辞書ファイル中のラベル(つい最近までマイルストーンと呼んでいたもの)に重複が見つかった場合は,従来は五月雨式に重複ペアを報告しながら処理を続行していたのですが,こちらも辞書ファイルをすべて読み込んだ後で,重複しているラベルを網羅的に報告することにしました.なおラベルが重複しているとは,そのラベルの文字列(コメントを除く)とレベルがともに同一である場合です.またラベルが重複していてもソーティングに不都合はないため,処理はそのまま続行しますが,ソーティング結果には同一のラベルが異なる複数の箇所に現れることになりますので,本来は望ましくありません.辞書ファイルの修正が望ましいところです.
最後に入力の重複です.入力の重複自体には特に問題はなく,入力データとしては十分あり得る話ですし,ソーティング自体にも影響はありません.ユーザーが重複を検知するには -d オプションを使うことにしていますが,従来は重複したペアが見つかるたびに五月雨式に報告していました.しかしこれでは見にくいうえに全体像が分かりにくいので,これも入力をすべて読み終わった後で重複した入力を網羅的に報告し,処理を続行するように改めました.
これらの改訂を入れ込んだ新しい版 v2.94 を近日中にリリースします.またユーザーズガイドも書き直したものをアップロードすることにしました.ユーザーから見た場合には仕様上の変更は何もありませんが,警告文の出かたが見やすいものに変わるので,気づくことがあると思います.なおこの改訂によって処理速度はほとんど影響を受けないことを確認済みです.
| 固定リンク | 0
「パソコン・インターネット」カテゴリの記事
- WSL2 をインストールして使っています(2024.06.19)
- Windows 再インストール時に VMD でハマる(2024.04.13)
- Microsoft Teamsの複雑な仕様がやっとわかった(2023.08.20)
- Xeonマシンを組みたくなった(2023.05.21)
- 音楽ライブラリを再構築(2023.04.28)
「自然」カテゴリの記事
- 暑い夕方の月(2024.09.06)
- IOC List v14.2 Released(2024.08.27)
- 田んぼの近況(2024.06.07)
- ジューンベリーも実った(2024.05.24)
- クワの実がなった(2024.05.23)
「IT関連情報」カテゴリの記事
- IOC List v14.2 Released(2024.08.27)
- Ruby を自力ビルドしてみた(2024.07.25)
- Excel上でPythonが使える(2024.07.15)
- WSL2 をインストールして使っています(2024.06.19)
- Windows 再インストール時に VMD でハマる(2024.04.13)
コメント