Skip to content

Releases: ukatech/kawari

Phase 9.1.0

Choose a tag to compare

@ponapalt ponapalt released this 19 Oct 05:46

Phase 9.1.0 (Core 4.1.0)

無名関数 lambda の追加と、正規表現エンジン uka_regexp の更新。

  • KIS に lambda を追加。無名の関数を定義して、その名前 (System.Lambda.<n>) を返す。返った名前は $(${f} 引数) のようにコマンド名として呼び出せるほか、別の関数に渡して使える。クロージャではなく、定義した場所の @ で始まるローカルエントリは引き継がない。不要になったら rmfunc で消す
  • uka_regexp の更新: パターンの先頭に (*UCP) を書くと \d \w \s \b と POSIX クラスが Unicode で判定される (既定は従来どおり ASCII のみ)。Windows ではパターン中のサロゲートペアを 1 文字として扱う。破滅的なバックトラックの対策など
  • 実装されないまま残っていた expr / test の記述をマニュアルから削除

バイナリは 32bit の msvcrt 版 (MinGW g++ 8.1.0) でビルドしています。詳細は同梱の readme.1st (README.md) と document/kis_reference.html を参照。

🌹 Polished by Claudia

Phase 9.0.0 β4

Phase 9.0.0 β4 Pre-release
Pre-release

Choose a tag to compare

@ponapalt ponapalt released this 18 Oct 07:41

Phase 9.0.0 β4 (Core 4.0.0)

正規表現コマンドの追加。伺か共用の正規表現エンジン uka_regexp (Unlicense) を載せました。

  • KIS に regex_match / regex_find / regex_findall / regex_count / regex_replace / regex_replace_first / regex_erase / regex_erase_first / regex_split / regex_escape を追加。結果は引数のエントリに入る
  • パターン内のサブルーチン呼び出し (?&名前) \g<名前> で、パターンに定義の無い名前を、辞書のエントリ ${名前} の展開結果として取り込める
  • 辞書やスクリプトに書くパターンは、括弧を含むなら "..." で囲むこと (素の括弧は華和梨の構文として消える)
  • ソースから作る場合、uka_regexp は git サブモジュールなので git clone --recursive か git submodule update --init が必要

詳細は同梱の readme.1st (README.md) と document/kis_reference.html を参照。

🌹 Polished by Claudia

Phase 9.0.0 β3

Phase 9.0.0 β3 Pre-release
Pre-release

Choose a tag to compare

@ponapalt ponapalt released this 18 Oct 00:30

Phase 9.0.0 β3 (Core 4.0.0)

ロケール依存と STL 誤用の修正。機能の追加はありません。

  • SAORI over DirectSSTP のモジュール名の小文字化が本体の LC_CTYPE に依存していた (tr_TR では INTERNAL_... を内蔵モジュールと判定できなかった) のを修正。ASCII の英字だけを小文字にする
  • SAORI の唯一性保証ファクトリのデストラクタが、erase() 後のイテレータを使っていたのを修正
  • find() の結果を unsigned int に入れて npos と比較していた箇所を修正。64bit の POSIX では gsub が例外を投げ、tr が範囲外を読み、isexist が区切り文字を補わなかった (32bit の Windows では変化なし)
  • substr の長さのオーバーフロー、= が多い壊れた Base64 の復号で例外が出る不具合を修正
  • TEntry::Pop / Replace の境界を修正 (今のところ KIS から届かない内部の問題)

詳細は同梱の readme.1st (README.md) を参照。

🌹 Polished by Claudia

Phase 9.0.0 β2

Phase 9.0.0 β2 Pre-release
Pre-release

Choose a tag to compare

@ponapalt ponapalt released this 17 Oct 22:30

Phase 9.0.0 β2 (Core 4.0.0)

  • 本体 (SSP / ninix) のプロパティシステムと SSTP の EXECUTE を使う KIS コマンドを追加: getproperty / setproperty / executesstp / executesstpx (応答コードは System.SSTP.ResponseCode、追加データは System.SSTP.Data)
  • SAORI over DirectSSTP に対応: 本体に内蔵されたモジュール (internal_* など) を、DLL なしの SAORI として callsaori で呼べる (未登録の internal_* は自動登録)
  • 上記は SecurityLevel が local 以外のリクエストからは使えない
  • System.Sender.Path が一度もセットされず、callsaori が常に SecurityLevel: Local を送っていた不具合を修正

🌹 Polished by Claudia

Phase 9.0.0 β1

Phase 9.0.0 β1 Pre-release
Pre-release

Choose a tag to compare

@ponapalt ponapalt released this 17 Oct 19:07

華和梨 Phase 9.0.0 β1 (Core 4.0.0)

内部の文字列をすべて wchar_t (Unicode) にした大改修のβ版です。従来の Shift_JIS の辞書はそのまま動きます。

主な変更

  • 内部文字列を wchar_t 化。文字数・部分文字列などは 1 文字単位 (Windows では絵文字などサロゲートペアは 2 文字)
  • 辞書は UTF-8 (BOM の有無を問わない) / Shift_JIS を自動判定して読み込み
  • save / savecrypt は UTF-8 (BOM あり)、textsave / textappend / ログファイルは UTF-8 (BOM なし) で書き出し
    • savecrypt で保存した辞書は 8.2.9 以前では読めません
  • SHIORI: リクエストの Charset (Shift_JIS / UTF-8) で解釈し、同じ文字コードで応答。loadu に対応 (ACP 外の文字を含むフォルダでも動作)
  • SAORI: UTF-8 で通信を始め、GET Version に Charset を返さない古い SAORI には Shift_JIS で送る。loadu を持つ SAORI には UTF-8 のパスを渡す
  • 「表」「ソ」など 2 バイト目が 0x5C の文字や、IBM/NEC 拡張文字を含むファイル名・フォルダ名の不具合を修正
  • compare などの文字列の大小比較は Unicode のコードポイント順に変更 (ASCII のみなら従来どおり)
  • Win32 API を Unicode (W 版) に切り替え

🌹 Polished by Claudia

Phase 8.2.9

Choose a tag to compare

@ponapalt ponapalt released this 17 Oct 11:59

Phase 8.2.9 (Core 3.2.9)

  • Windows 版 (mingw) のバイナリにバージョン情報リソースを追加 (ファイルのプロパティで 8.2.9.0 と表示されます)
  • 小オブジェクト用アロケータの導入と単語比較の軽量化で処理速度を向上 (mingw 版)。1000 曲プレイリストの実ゴーストで 1.4〜1.9 倍
  • バイナリは 32bit MinGW-w64 (msvcrt 版、g++ 8.1.0) でビルド、UPX 圧縮なし (従来より大きくなっています)。UCRT 版でビルドすると旧い OS で動かなくなるため、依存 DLL は KERNEL32.dll / msvcrt.dll のみ (kosui は USER32.dll も) にしています

🌹 Polished by Claudia