OpenSolaris 勉強会 2013.09
日本OpenSolarisユーザーグループ主催の Tokyo OpenSolaris 勉強会 2013.09に参加してきた。
参加記録のブログエントリを書くのは、すごく久しぶりなのだけれど、一応5〜8月にかけても毎月参加 (っつーか開催) はしていたりする。ls本の執筆作業が佳境だったこともあって、単にブログエントリを書く気力がアレだっただけなのだけれど。
- 作者: 藤原克則
- 出版社/メーカー: 秀和システム
- 発売日: 2013/09/20
- メディア: 単行本
- この商品を含むブログ (14件) を見る
"Solaris Internals" 枠は、例によって要約した発表資料を元に、勝手な掘り下げやら何やらなのだけれど、前回で漸く第9章の『Virtual Memory』が終了したので、今回からは第10章の『Physical Memory』に取り掛かることに。
とは言うものの、今回は (今回も?) 勉強会時間枠一杯が持ち時間なので、延々 Solaris Internals ネタは厳しいところ。事前の読み込み/資料準備的な意味でもね。
ということで、勉強会時間枠の後半は、ls本の執筆過程で仕入れた、Solaris (= SysV) の ls 実装と GNU coreutils の ls 実装の違いとか、環境互換性/性能要件の話などをダラダラと1時間ほど喋って時間を潰すことに。
思いっきり『買ってね!』発言してたので、ステルスじゃないけどね(笑)。
その際に、国際化周りの件で:
という話題が。
この挙動の原因は、strftime(3) に指定可能なフォーマットの中に、day of the month に関するものが:
- "%d": 01 〜 31 の数値(decimal number)
- "%e": 1 〜 31 の数値。1桁日付の場合は空白文字が先行
というものしか無いため。
もしも %d や %e の出力に対して『日』を補うと、『"decimal number" に変換』するという仕様への違反になってしまうので、%d や %e を使う限りは、『日』を表示しようがない。
GNU coreutils の ls が、直接 %e を使う "%b %e %Y" 形式ではなく、"%x" を使用すれば、最終更新日が半年以上前のファイルに関しては、『2013年09月28日』みたいな表示になるけれど、これまでの表示形式との互換性を考えると、変更は難しいだろうなぁ……
例えば、個々の day of the month に固有の名前が付く (+それが重要な意味を持つ) ような文化圏への対応が必要になれば、strftime の POSIX 仕様に %d や %e 以外の day of the month 向けフォーマットが追加される……かもしれない。『29日は肉の日』ぐらいじゃぁ、駄目だろうなぁ(笑)。