[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-devel:07571] [Announce] BSD's New Locale Project ML



むつみ%代理投稿です。

----- 8< ----- 8< ----- 8< ----- 8< ----- 8< -----

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@xxxxxxxx 宛てに、本文に

  subscribe Akari KAMIGISHI

 といった一行 (メールアドレスではなく名前) を書いて送って下さい。 
 折り返し確認の案内が帰りますので、その指示にしたがって auth キーを
 おくりかえしてください。

 実際のメールを送るアドレスは

  bsd-locale-ja@xxxxxxxx

 になります。メンバ以外はポスト不可能になっているのでご注意下さい。

---------------------------
  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@xxxxxxxxxxxxxxxxxxxxx / go@xxxxxxxxxxxxx

----- 8< ----- 8< ----- 8< ----- 8< ----- 8< ----- 8< -----
-- 
 From Nagoya
  ishikawa@xxxxxxxxxxx, ishikawa@debian.or.jp,
   ishikawa@xxxxxxxxxxxxx,  ( mutsumi@xxxxxxxxxxx for PostPet only )
 ** 石川 睦%無意味な全文引用をする人は嫌い@Japan Linux Users Group **
             LC98 発表資料 http://www.debian.or.jp/~ishikawa/