
文字列処理に一文字単位じゃなくてバイト単位のオプション。処理速度がぜんぜん違う。というか、それがデフォルトで、-wとかでUTF8の一文字単位対応？

正規表現ライブラリにpcre対応。

変数に追記

glob内部コマンド

コマンド名無しの{ } でsaphire -c

セグフォのときメッセージを書く
メッセージの日本語化

リファクタリング
コマンドを一つ一つ確認
マニュアルを同期させる
saphire_commands.cの上のコマンドからずっと試していく。
object確認終了。
ref確認終了。
var確認終了。
global確認終了。
export確認終了。
ary確認終了。
ary_add確認終了。
hash確認終了。
hash_add確認終了。
hash_erase確認終了。
def確認終了。
class確認終了。
inherit確認終了。
self確認終了。

大規模スクリプトは実用的な速度が出るか

変数の定義時、$で始まる名前はエラーにする。

変数名で同名の定義があるのはまずい。

変数の参照は、ローカル変数、属性、グローバルの順にするかどうか？
（リファレンス、オブジェクトはそうなので）

0xの名前でデリファレンスしないとリファレンスのリファレンスが使えない

インクリメンタルGCで循環参照した場合に対応

tr
snkf
brace
onigsed
onigrep

エラー分岐時のメモリリーク、２重FREEのチェック

promt { } でプロンプト設定 ブロックを保存

ディレクトリのパスの正規化コマンド。
ファイル選択コマンドの出力を正規化
ディレクトリ移動のディレクトリヒストリメニュー

cd -
cd +

-------------------------------------------------------------------------------
stackframe

カスタマイズ補完。ロングオプション。
カスタマイズ補完は補完関数ブロックのリストの出力が補完候補
コンテキストパイプが現在の入力中のテキスト
カスタマイズ補完の登録の引数はコマンド名とブロック

readline強化
exportの補完
(ローカル変数の補完)
(属性の補完)
./でPATHの通ったコマンドまで補完してしまう
gsubもつくる
$の補完

migemoで
ls -al ../saphire-3.5.4/[TAB]の補完でせぐ

coLinuxのコンソールでselectorが落ちる

ary a > [TAB]でファイル名の補完ができない
(カスタマイズ補完が有効なため)

readline.cで構文解析
TERMが設定されていないと起動されない
inheritを外部コマンドに対応。
umaskプロセス置換がある文のみ0077にする
apacheからの実行時umask 0077固定はどうか？
プロセス置換で作られるファイルのセキュリティがやばい(/tmpに作られるから)

.saphire/tmp ---> /tmp md5チェック
gTmpDirのチェック
all_sweepはsaphire_が頭に付く名前のみ消す
md5する
数字だけじゃなくrandomに名前を作る
apacheから実行されたときにほかのCGIプログラムから/tmpに攻撃される可能性あり?

HOME,SAPHIRE_TMPDIRが設定されていない場合はどうする？
ヘアドキュメントが~/.saphire/tmpで使われている
プロセス置換で~/.saphire/tmpで使われている

umask 内部コマンド追加

unset内部コマンド
tildatenkai bug
umask の引数に0777とかが渡せない
sudo gdb whichのユーザーカスタマイズ補完が無理
unsetとumaskのマニュアル
メソッド名の補完

selfにinputだけじゃなくてoutputもつける
つまり fun | less　の場合はoutputをつける
エラーメッセージを出力するコマンド

try下での実行ファイルのエラー出力はerrmsgに入れる?try下じゃなくても？
実行ファイルのエラー出力の一時ファイルが消えない
一時ファイルが消えない
cdのカスタマイズ補完 splitの空白の数を得ることができないといけない
a aはいけてもa     aが駄目(splitのグループ化)

object a | ->class { def yes { puts yes } }
でメッセージパッシング

実行中のオブジェクトのメモリを返す内部コマンド
self?

> object a { def yes  { puts yes } }
> object a { def no { puts no } }
ができないようにする。二回目のはsweep aを実行してからじゃないとエラーにする。

export A | [ = "" ]
で環境変数Aが作られてしまうのはまずい。
ary, hashとかも同じく
初期化が必要にする
ary, ref, var, global, export, 
hash, def,class

~/の中にグロブがあったらだめ
read_one_argumentにnoquote_expandをつけて、クォートをそのまま受け取るオプションをつけてglob, tildaなどは受け取る

read -nが全て読み込んでもrcode != 0を返さない
read -c
static linkバージョン
read -cのマニュアル
num2str
