Subject: [Announce] BSD's New Locale Project ML ごう%BSD locale Project です。 UNIX の標準の機能であるところの locale について、特に PC-UNIX で その実装が不十分であるという現状があります。これに関して、そろそろ まともな(普通につかえる) の実装が欲しいということで、その実装作業を 推進すべく、Mailing List(以下ML)をたちあげます。 主たる開発ターゲットとして 現行の BSD 系の PC-UNIX を想定しています。 -------------------------- ML の主旨 -------------------------- 1. ISO-C に適合する locale システムの実装作業の支援 2. 既存の不十分な Locale システムに変わる新しいシステムの枠組みに関する議論 3. マルチスクリプト処理の実装に関する議論 基本的にはこの ML では、1.「実装作業」を進めることが主体になります。 2. および 3. の 現規格自体の不備の指摘や新しい仕組みの提案設計といった 議論も必要になってきますが、もしそういう話題の流量が多くなってくるなら 場合によっては分離するかもしれません。 なお、これ以外の内容、特に「locale 関連ライブラリの使い方」といった基本的な ことについての質問などはご遠慮下さい。 ML 中で流れる内容を理解するためには それなりのスキルが必要となると思われますが、勉強のためにはいいかもしれません:) -------------------------- ML への参加方法 -------------------------- bsd-locale-ja-ctl@hauN.org 宛てに、本文に subscribe Akari KAMIGISHI といった一行 (メールアドレスではなく名前) を書いて送って下さい。 折り返し確認の案内が帰りますので、その指示にしたがって auth キーを おくりかえしてください。 実際のメールを送るアドレスは bsd-locale-ja@hauN.org になります。メンバ以外はポスト不可能になっているのでご注意下さい。 --------------------------- Locale 実装に関するメモ --------------------------- 現在のところ実装として、次のようなものを想定しています。 かなりふろしきをひろげてる状態ですので、なかなか全体の実装は難しいと思います。 ○全般 ・BSD系 PC-UNIX (FreeBSD,NetBSD,OpenBSD,BSD/OS)に標準として 採用されるものをつくることを目指す。 ・ライセンスは完全に BSD 形態、 もしくは 「利用者は BSD, Xコンソーシアム形式、(L)GPL のいずれも選択可能」 にする ○ locale ・ISO/IEC-C 9899:1990/Amendment 1:1995 の全関連関数のフルサポート ・関連する標準関数を locale 対応化 ○ POSIX/SUSV2 関連 ・iconv(1/3) ・NLS catalog 関連の locale 対応の完全化 catopen(3), catgets(3), catclose(3) ・nl_langinfo(3) ・localedef(1) ただし仕様は大幅に拡張される見込み ○ gettext(libintl) 関連の Non-GPL な実装 gettext(3), dgettext(3), dcgettext(3), textdomain(3), bindtextdomain(3), msgfmt(1), xgettext(1) # gettext は標準ではない(標準のメッセージ処理は上記 catopen(3))ですが、 # 利用しているアプリケーションが増加しているため、 #「準標準」とみなし、サポートの対象とします # もっとも、すでに GNU のものが存在している関係から、 # 優先度は低めになるでしょう。 ○次のようなエンコーディング体系を標準でサポートさせる ・ISO2022系各種 ・8bit plain (処理効率化のため、ISO2022から分離) ・EUC (処理効率化のため、ISO2022から分離) ・各種独自エンコード SJIS,GB,KOI8 などなど ・UCS/UTF (Unicode) 実装上は次のような点に留意して作成をすすめることになります。 ・既存 libc に対して最低限の変更で導入可能にする (ライブラリはとりあえずは分離したま。 LD_PRELOAD では処理が無理と予想されるので、当分は別途コンパイル & リンク ということになる) ・Codeset Independent に留意する ・各 コードコンバータ および locale はモジュール化し、ダイナミックロード を行う。 新モジュールの拡張は、ライブラリ本体のコンパイルなしに任意に おこなえるようにする。 localedef も追加モジュールに対応して適宜拡張されるようにする。 ・UCS/UTF をサポート対象に含める ・「オブジェクト化した locale」(引数に locale を明示する) 構造を下位構造としてつくり、その上に ISO-C をかぶせる形で作る これは Thread safe / Multi encoding な新しい locale の枠組みとして 使えるようにするためのものにするためである ・Mule の *internal* など、独自のマルチスクリプト体系も視野にいれる ------------------------ その他 ------------------------ Linux などで採用されている、glibc も ISO-C locale を実装しており、 日本の locale 用のパッチ (wcsmbs パッチ)も配布されていますが ・ライセンスの問題 パッチは glibc を元に改造しるため、既に (L)GPL オンリー であり、「BSD と (L)GPL の両方を許す」ようにすることは、もはや不可能 ・実装の方針の差違 統一文字コードではなく、codeset independent が設計目標 なので、実装の方針が根本的に違う などの点から、それらとの同期、協調した作業は考えていません。 また、実装対象が BSD で、そのソースツリーへの取り込みを目指しており、 書かれるコード全般は BSD の libc に依存し、また BSD make を利用したものに なる予定です。 ただし、部分的な流用は十分可能なように作成していくつもりですし、 glibc や、他の OS 用の移植作業などの contribution は大歓迎です。 広い範囲からの参加を期待します。 仮の目標は「Solaris7並の仕様をサポート」です。 当面の ML の話題は、この文書の各部分に対する意見や、仕様に関する案出しで、 細かいところは各部分の実装待ちになるとおもわれます。 -- Go Watanabe go@cclub.tutcc.tut.ac.jp / go@isoternet.org