ダウンロード
Magazine
開発
アカウント
ダウンロード
Magazine
開発
ログイン
アカウント/パスワードを忘れた
アカウント作成
言語
ヘルプ
言語
ヘルプ
×
ログイン
ログイン名
パスワード
×
アカウント/パスワードを忘れた
日本語の翻訳状況
カテゴリ:
ソフトウェア
人物
PersonalForge
Magazine
Wiki
検索
OSDN
>
ソフトウェアを探す
>
lua-naka
>
Howto
lua-naka
Fork
概要
プロジェクト概要
開発ダッシュボード
Webページ
開発メンバー
画像ギャラリー
公開フィード一覧
活動
統計情報
活動履歴
ダウンロード
リリース一覧
統計
ソースコード
コードリポジトリリスト
Git
lua-naka
Subversion
リポジトリ閲覧
チケット
チケット一覧
マイルストーン一覧
チケットの種類一覧
コンポーネント一覧
よく使われるチケット一覧のリスト/RSS
新規チケット登録
文書
FrontPageの表示
ページ一覧
最近の更新
コミュニケーション
フォーラム
フォーラム一覧
開発者 (1)
ヘルプ (1)
公開討議 (1)
メーリングリスト
MLの一覧
ニュース
lua-naka の使い方
コンセプトの説明
・C++およびboostにおいて、ユニコードはUCS(wchar_t)
で扱われるのが好ましい。
Lua言語においてはUCSでは互換性の問題が発生するのでまずい。
・Linuxにおいてはコンソールおよび標準入力はUTF-8が望ましい。
WindowsにおいてはUCS2またはSHIFT_JIS(CP932)が望ましい。
これらの問題をストレートにクリアすると、
至る場所でコード変換が発生し、
Luaの持つ 軽い・速い というメリットが死ぬ。
したがって、以下の仕組みで動作するようにパッチを当てる。
・標準インターフェース上は、互換性を満たすように
文字列はUTF-8としてふるまう。
・文字列オブジェクトのプロパティにキャッシュ領域へのポインタを持ち、
遅延評価的に必要になった時だけ自動的にUCSへの変換が発生し、
キャッシュが作成され、プロパティにリンクされる。
・キャッシュ領域はLuaのアロケーターの管理下に入る。
・作成されたキャッシュはガベージコレクタの動作の対象になった時に
ガーベージコレクタによって回収される。
・Cインターフェースにはキャッシュの作成を指示し参照し
wchar_t *を取得できるAPIが追加される。
Luaの言語仕様上、Stringの内容は不変であり
(言い換えれば代入によってのみ変化が発生する)、
そしてショートストリングは値が一致したときに共有される
という性質を持つため、変換回数は抑えられる。
ダウンロードファイル一覧
Wiki