2011 1月19日 1.2.4
    デバッグ用のpコマンド追加

    selectorのオプションの処理がおかしいところがあったので修正

    calc, $(())に符号の+を取ることを許可 print $((+1))が動きます

    空のキーを持つハッシュの参照がハッシュ全体だと解釈されていたバグを修正。空のキーは空のキーとして有効です

    ハッシュの代入がb{aaa}=aだったのをb[aaa]=aとしました。

    selectorの対応エンコーディングはUTF8のみとしました。

    安定板？ 1.2.4 リリース

2011 1.2.3
    exitの引数をリターンコードとしていないバグを修正。
    max, min, parentname, extname, noextnameの出力はデフォルトで改行を最後につけるようになりました。-nlでつけないようにできます.

2011 1月16日 1.2.2
    chomp 引数 が可能になりました
    pomchに-Lw, -Lm, -Luオプションをつけました
    fgの引数が二桁だと正しく処理されないバグを修正
    substrの引数が範囲外だとリターンコードを1として実行しないように修正

    1.2.2 リリース 安定板とします

    Debian, OSXでテスト

2011 1月14日 1.2.1

    lines, rowsで指定の行番号、文字インデックスが一つのときは-b ブロックはとるが -B ブロックは取りませんでしたが、取るようにしました。
    rows 2..-1 -b { |pomch }など文字インデックスの範囲指定の最後側が小さいとエラーになっていたバグを修正
    del -bの消すバイト数が一つ少なかったバグを修正
    del -lでメモリリークがありました。成功しても戻り値が1になってました。
    index, rindex -i オプションをつけました。ignore case
    rehashのリターンコードが1だったのを修正
    add -nオプションの数値範囲が不正な場合修正を加えて実行していましたが、リターンコードを1として実行しないようにしました
    add -lオプションの数値範囲が不正な場合修正を加えて実行していましたが、リターンコードを1として実行しないようにしました
    del -lオプションの数値範囲が不正な場合修正を加えて実行していましたが、リターンコードを1として実行しないようにしました。
    del -nオプションの数値範囲が不正な場合、エラーを出して実行していませんでしたが、リターンコードを1として実行しないようにしました。
    linesのリターンコードが1だったバグを修正
    ary_add -nの数値範囲が不正な場合リターンコードを1としました
    selectorで選択されなかった場合リターンコードを1としました
    sortでリターンコードが1だったバグを修正
    parentname, extnameで出力が無い場合はリターンコードを1としました
    max, minでリターンコードが1だったバグを修正
    hash_newでリターンコードが1だったバグを修正
    printfでリターンコードが1だったバグを修正

    linuxでmigemoつきのコンパイルでインタラクティブシェルの補完でセグフォしてました。

    1.2.1 リリース

2011 1月9日 1.2.0

    ファイル名の補完でTABを二回押したときのファイル名の候補リストのディレクトリが間違っているバグができていました。修正。

    1.2.0 リリース

2011 1月8日 1.1.9

    正規表現のキャッシュが30個溜まったら、クリアするようになりました。メモリの使用量が抑制されたはずです。

    1.1.9 リリース

2011 1月7日 1.1.8
    リファクタリング。str_cut,str_cut2,str_cut3関数をsaphire_kanji.hから取り除きました。
    リファクタリング。配列の境界の問題は無かったはずですが、一応strcpy, strcat, sprintfをstrncpy, strncat, snprintf or asprintfに書き換え。

    splitにバグがありました。正規表現のキャッシュのアルゴリズムに不備があり、メモリが漏れていたかもしれません。

    1.1.8 リリース

2011 1月5日 1.1.7
    OSXでのreadlineのバグを修正。メモリリークしていました。

    1.1.7リリース

2011 1月5日 1.1.6
    OSXでのreadlineのバグを修正。プログラムなどの濁点を含むファイル名が補完できなかった。(bashでもバグっています)
    ./configure に--with-migemoを渡さないときのsashは絶対パスのファイル名の補完がおかしかったようなので修正。

    1.1.6リリース

2011 1月2日 1.1.5
    abs, fabsコマンドを追加。

    printfをC準拠に変更。整数や浮動点少数や文字列なども対応しています。

    /usr/... などの絶対パスのコマンド名の補完がおかしかったバグを修正。

    1.1.5 リリース

2011 1月1日 1.1.4
    sub -g -c が落ちてました

    1.1.4 リリース

2011 1月1日 1.1.3
    configureに-with-migemoがないとコンパイルできない問題を修正
    OSXで変数名の補完をすると落ちたバグを修正

    1.1.3 リリース

2011 1月1日 1.1.2
    Mac OS XでCTRL-Zがブロックする場合があったので修正

    OS X 正式対応？。まだバグあるかも。

    1.1.2 リリース

2010 12月30日 1.1.1
    Mac OS Xでコンパイル、実行確認
    プロンプトをカレントディレクトリのみにしました

    1.1.1 リリース

2010 12月27日 1.1.0
    変数名の補完がいい加減だったので修正。$,$$,@,@@で補完できます。
    変数名の補完候補をライブラリの外にも公開。(mfiler3で変数の補完をするために）
    プログラム名の補完候補の名前をgProgramsからgSaphireProgCompletionsに変更
    外部から追加された内部コマンドとユーザーコマンドのパイプの処理をメモリを使うように修正。パイプを使っていたので、ブロックしていたかもしれません。

    28日 1.1.0 リリース

2010 12月22日 1.0.9
    sashのコマンドラインでC-x でファイル選択メニューができるように追加

    saphire -c, スクリプトファイルをバックグラウンドで動かすとおかしかったので修正

    correct_pathがあまりにもひどいコード書いていたので修正。

    1.0.9 リリース

2010 12月22日 1.0.8
    -cやスクリプトファイル中ではバックグランド処理は無効にしました

    saphire -cやスクリプト内で起動したコマンドがSIGTSTP(CTRL-Z)を受けるとバグるのを修正。ちゃんとfgしたら元に戻るようにした

    上は1.0.7では直ってませんでした

    |>数値で |> lines 数値 | chompと同じ

    1.0.8 リリース

2010 12月20日 1.0.7
    add がブロックを引数に取れるようになりました

    > puts abc | add -n -2 { print d }
    abcd

    グローバルパイプに追記ができるようになりました

    > echo a |>
    > echo b |>>
    > |> print
    a
    b

    matchのPOSTMATCHローカル変数がおかしかったバグを修正

    match -rでPREMATCHを使いやすいように修正。

    saphire -cやスクリプト内でlessなど外部コマンドが動かないバグを修正

    saphire -cやスクリプト内で起動したコマンドがSIGTSTP(CTRL-Z)を受けるとバグるのを修正。ちゃんとfgしたら元に戻るようにした

    ||がパイプと認識されていたバグを修正

    ブロックがあるとエラーメッセージの行番号がおかしかったバグを修正

    configureに--with-migemoがないとコンパイルが通らないバグを修正

    1.0.7リリース

2010 12月16日 1.0.6
    each, foreachが内部コマンドになりました。データの受け渡しはグローバルパイプからSTDINパイプになってます。

    >ls | each { | print; | scan . | each { | print }; | print }
    main.c
    m
    a
    i
    n
    .
    c
    main.c
    sub.c
    s
    u
    b
    .
    c
    sub.c

    1.0.6リリース

2010 12月15日 1.0.5
    parserのグローバルパイプの部分に期待通りじゃない処理があったので修正

    > ls |> less
    が通ってました。

    > ls |> less
    はちゃんとエラーになるように修正。

    12月15日1.0.5リリース

2010 12月15日 1.0.4
    グローバルパイプ、STDINパイプの記号変更

    |> normal global pipe |- stackable global pipe |~ queue global pipe
    | STDIN パイプ

    > ls |>
    > |> print
    main.c
    sub.c

    > ls | while(<>|>) { |> print }
    main.c
    sub.c

    > ls | ( | less; | less )
    main.c
    sub.c
    main.c
    sub.c

    read -p -aにバグがあり読み込めないことがあったのを修正。

    1.0.4 リリース

2010 12月15日 1.0.3

    ~展開を実装。~ユーザー名も使えます。補完もします。
    readlineのmigemo補完の見直し ディレクトリ後のファイル名の補完時候補にディレクトリ名まで示されていたのがファイル名だけの候補が出るようになりました
    kanjicodeの設定でコマンドラインでの日本語の変換をやめました
    プロセス置換にバグがありました。実行できませんでした。修正。
    linesとrowsのブロックのとり方が
    > lines 0..1 { less } 
    > lines 0...1 { less }
    から
    > lines 0..1 -b { less } lessは0行と１行を一回とる
    > lines 0..1 -B { less } １回目のlessは0行, ２回目のlessは1行をとる
    に変わっています

    read -a -pの代わりに|=
    read -aの代わりに|-が使えるようになりました。

    > puts aaa\nbbb\nccc | (|= print ; |=print)
    aaa
    bbb
    ccc
    aaa
    bbb
    ccc

    ブロックの仕様が変わっています。コマンドに文字列としては渡せません。

    > eval { ls }

    はevalにコンパイル済みの{ ls }を渡しています。

    ユーザー関数内で引数のブロックを実行するにはyieldを使います。

    > def fun { yeild 0; yeild 1; yeild 1 }
    > fun { puts a } { puts b }
    a
    b
    b

    1.0.3 リリース

2010 12月7日 1.0.2
    lc, ucでsjis,eucjpの入力がおかしい点を修正。-s,-e,-wオプション追加。
    printfのインデックスの漢字対応

    1.0.2 リリース

2010 12月6日 1.0.1
    del -lオプション追加

    rows -r のutf8,sjis,eucjp対応

    kanjicodeの設定でコマンドラインでの日本語の変換
    (kanjicode -sするとutf8端末でもコマンドラインでの日本語入力がSJISに変換されてプログラムに渡される。）
    つまり
    > kanjicode -s
    > cat data_sjis | index あああ
    がちゃんと動く
    (あああがutfからsjisに変換される)
    
    saphire スクリプトでsaphire -c コマンドと同じようにフォアグランドの処理を変更。つまり

    > saphire a.sa &

    が変な処理をしていたの(シェルごと落ちる)を修正。期待通り動きます。
    
    read -n -pも動くように変更。(readは-nと-p同時指定すると-pが無効となっていた。)


2010 12月1日 1.0.0
    グローバルパイプを４種類用意しました
    
    グローバルパイプ |

    スタックブルグローバルパイプ |>
    キューグローバルパイプ |~
    ナンバーグローバルパイプ |1 |2 |3 ... |8 |9

    グローバルパイプのバグを修正
    
    ls | while(<>|) {|print } |
    |print

    が空でした。
    リターンコードにかかわり無くグローバルパイプは書き込みます

    英語マニュアルをとりあえずかきました。書いただけともいいます。

2010 11月28日 1.0.0
    read に -pオプション作成
    length に-Lオプションを作成

2010 11月27日 0.9.9
    configureのワーニングを出ないように修正。
    configureが環境によってはこけていた問題を修正。
    
    0.9.9 リリース

2010 11月26 0.9.8
    ~/.saphire/hisotryにヒストリを保存していたのをhistoryに直しました。
    README.en.txtを書き上げました。USAGE.en.txtは書きかけです。

    0.9.8 リリース

2010 11月24 0.9.7
    ユーザー関数内でエラーが出た場合はその関数の呼び出し元のファイル名と行番号を表示するようになりました

    0.9.7 リリース

2010 11月19日 0.9.6
    eachの行番号の変数をnrからNRに変更
    プロセス置換が動いていなかったバグを修正

2010 11月16日 0.9.5
    シングルクォートとダブルクォート内の改行がエラー出力時に出る行番号に反映されていないバグを修正
    read ファイル名によるファイルの読み込みの追加。
    
    0.9.5リリース

2010 11月16日 0.9.4
    readline補完を修正。変数の補完。
    スクリプトファイルの処理時、コマンドライン引数をARGVで取れるようになりました。(というか今までできなかったんかいorz)
    cygwinで動作確認。というか作者は今cygwin上で開発してます。またcoLinuxに浮気するかも知れんけど。
    cygwinのバイナリ公開。
    
    0.9.4リリース

2010 11月9日 0.9.3
    エラー時行番号の表示がおかしいことがあったので修正(エラー番号の行とファイル名をグローバル変数を使わずローカル変数を使うように修正）
    変数の宣言をクリアするsweepを追加
    変数の宣言状況を見るshowを追加

    0.9.3リリース

2010 10月22日 0.9.3
    @@(), @(), @変数を含むスクリプトのコンパイルがうまくいっていないバグを修正。
    return 文を実装。関数から復帰できます。
    グローバルパイプをスタッカブルに変更
    printとputsに-fオプションを作成

2010 10月12日 0.9.2
    内部コマンドの引数の順番を整理。
    match 正規表現 対象文字列
     |
     v
    match 対象文字列 正規表現
    など。第一引数を対象文字列に統一。
    フィルタとしてしか使えないコマンドに引数の文字列を操作対象に
    取れるように統一

    @()内で変数の展開ができないバグを修正
    @@(),@@変数を追加

    @で環境変数を参照できないバグを修正

    scanを追加

    eraseを追加

    split -mなし
    match -gかつ-mなし
    scan -mなし
    erase -gかつ-mなし
    sub -gかつ-mなし
    のパフォーマンスの向上３００から４００倍近く速くなってます。というか前が使い物にならないくらい遅すぎました。変更で4MバイトサイズのHTML文章のタグ取りも一瞬です。(でも、-mや対象文字列を引数でとるとやはり遅すぎる)

2010 10月x日 0.9.2
    テスト時のcpの誤動作により変更点消失

2010 9月29日 0.9.1
    プロセス置換の一時ファイルが消されていないバグを修正

2010 9月28日
    0.9.0 β版リリース
