Download
Magazine
Develop
Account
Download
Magazine
Develop
Login
Forgot Account/Password
Create Account
Language
Help
Language
Help
×
Login
Login Name
Password
×
Forgot Account/Password
Category:
Software
People
PersonalForge
Magazine
Wiki
Search
OSDN
>
Find Software
>
lua-naka
>
Howto
lua-naka
Fork
Description
Project Summary
Developer Dashboard
Web Page
Developers
Image Gallery
List of RSS Feeds
Activity
Statistics
History
Downloads
List of Releases
Stats
Source Code
Code Repository list
Git
lua-naka
Subversion
View Repository
Ticket
Ticket List
Milestone List
Type List
Component List
List of frequently used tickets/RSS
Submit New Ticket
Documents
FrontPage
Title index
Recent changes
Communication
Forums
List of Forums
Developers (1)
Help (1)
Open Discussion (1)
Mailing Lists
list of ML
News
How to use 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の内容は不変であり
(言い換えれば代入によってのみ変化が発生する)、
そしてショートストリングは値が一致したときに共有される
という性質を持つため、変換回数は抑えられる。
Download File List
Wiki