-
Notifications
You must be signed in to change notification settings - Fork 9
ChangeLog
C.Ponapalt edited this page Jan 11, 2022
·
51 revisions
- %[ ] での埋め込み文字列展開の不具合を修正
- エラー/警告メッセージの拡充
謝辞:本リリースは steve green 氏の提供によりお送りします。
- LINT系関数の細かい不具合を修正し仕様を書いた
- 指定した関数から出力されうる候補数を取る OUTPUTNUM 関数を追加 (Thanks to steve green)
- その他細かい不具合を修正
- せっかく内部64bit intにしたのに、64bitで受け入れられる数値指定文字列を蹴っていた問題を修正
- 時刻系関数を64bit int対応
- FATTRIB、FCOPYなど一部のファイル作業系関数が環境によっては動かない問題を修正
- ARRAYDEDUP (配列から重複要素を取り除く)
- STRDIGEST (FDIGESTの文字列版)
- LINT_ではじまる内部関数群 (作業中?)
- 入れ子内の択一指定の一部がうまく動かない問題を修正
謝辞:本リリースは steve green 氏の提供によりお送りします。
- 基礎設定ファイルにsetting.charset定義を追加
- 基礎設定ファイルを読む時に途中で文字コード定義が変更されても正しく読むようにした
- DICUNLOADできない場合がある問題の修正と、それに伴うリファクタリング
謝辞:本リリースの内容は steve green 氏が開発しました。
- CLEARERRORLOGシステム関数を実装(エラーログ消去)
- 基礎設定maxlognumでGETERRORLOGのためにメモリ上に記録する最大値を指定できるようになった
- load関数内でGETERRORLOGできない問題を修正
謝辞:本リリースの内容は steve green 氏が開発しました。
- all, last, melt_など各種択一指定を追加
- switch文が正しく動作しない問題を修正
謝辞:本リリースの内容は steve green 氏が開発しました。
- 整数演算を64bitに拡張した時の後始末、その他ものもろ
- スタックオーバーフロー時にもshiori.OnMemoryLimit が呼び出されるようになった
- うまくいかない場合も多いので運がよかったら程度に考えておいてください
- 最後に -- があった時の問題を修正
謝辞:本リリースの内容はおおむね steve green 氏が開発しました。
- 整数型を64bitに拡張
- メモリ不足の際に shiori.OnMemoryLimit が呼び出されるようになった (by steve green)
- FUNCDECL_ 系の失敗/成功時の返り値を設定
- shiori.OnCallLimit / shiori.OnLoopLimit の _argv[0] に関数名、_argv[1] に行数を設定するようにした(エラーメッセージと同等になった)
謝辞:本リリースの内容は steve green ( https://github.com/steve02081504 ) 氏が開発しました。
- 変数の読み書き・削除時に自動的に実行される関数を指定できるようになった
- 読み:FUNCDECL_READ(変数名,関数名)
- 書き:FUNCDECL_WRITE(変数名,関数名)
- 削除:FUNCDECL_ERASE(変数名,関数名)
- 関数名空文字列で機能停止
- 実装に伴いセーブデータフォーマットが少し変更されました。旧いバージョンに戻す際は注意してください。
- 呼び出し回数限界到達時に関数 shiori.OnCallLimit が呼ばれるようになった
- ループ回数限界到達時に関数 shiori.OnLoopLimit が呼ばれるようになった
- void指定が動かなくなっていたエンバグを steve green 氏が直してくれました。
謝辞:本リリースの内容は steve green ( https://github.com/steve02081504 ) 氏のかなりの部分の協力により開発されました。
- 入れ子(中括弧)指定にも選択オプションが効くようになった
- pool系指定と -- をセットで使った時の挙動の改善
- 基礎設定ファイルにlooplimitを追加、無限ループで完全に止まるのを防ぐようにした(標準10000回)
- looplimitとfncdepthで限界に達した時にエラーメッセージを吐くようにした
- デバッグ作業目的で SLEEP() を追加した
謝辞:本リリースの内容は steve green ( https://github.com/steve02081504 ) 氏の協力により開発されました。
- 新関数オプション pool, nonoverlap_pool, sequential_pool, array_pool
- UTF-8対応コードを書き直し、絵文字等で問題が起きにくくした
謝辞:本リリースの内容の 全て は steve green ( https://github.com/steve02081504 ) 氏によって開発されました。
- YAYA-CI-Checkへの対応処理追加
謝辞:本リリースの内容の大半は steve green ( https://github.com/steve02081504 ) 氏によって開発されました。
- ISEVALUABLE
- EVALできるかどうかあらかじめ試す
- SETTAMAHWND
- デバッグツール「玉」のウインドウハンドルを設定する
- ISGLOBALDEFINE
- #globaldefine されているか確認する
- SETGLOBALDEFINE
- 一時的なメモリ上の辞書 "_RUNTIME_DIC_" に #globaldefine を追加する
- APPEND_RUNTIME_DIC
- 一時的なメモリ上の辞書 "_RUNTIME_DIC_" に関数等を追加する
- _FUNC_NAME_ ローカル変数
- 現在実行中の関数名を _FUNC_NAME_ 変数を参照して取得できるようになった
- GETSETTING で取得できない設定がある問題を修正
- UNDEFFUNC 追加
- 指定した関数を削除します。すでにどこかで使われている関数であった場合はエラーになります。
- UNDEFGLOBALDEFINE 追加
- globaldefine で定義したものを削除します。
- DICUNLOAD 追加
- DICLOAD で読んだ辞書を開放します。すでにどこかで使われている関数が辞書内にあった場合はエラーになります。
- DICLOADがエラーになった時の挙動不審な点を根本的に修正した
- 設定ファイルに以下の項目を追加した
- iolog.filter.keyword (旧:ignoreiolog)
- iolog.filter.keyword.regex : 正規表現版ログフィルタ
- iolog.filter.mode : whitelistかallowlistと書くと、iolog.filter.keywordに該当するものだけが出力。省略した場合は該当「しない」ものだけが出力。
- SETSETTING限定で以下の項目を追加した
- iolog.filter.keyword.delete
- iolog.filter.keyword.regex.delete
- 上記のiolog.filterを削除できる。
- 辞書読み込み・FENUM関数・他ファイルアクセス系関数について、ファイルパスの国際化対応を改善
- システム関数 PROCESSGLOBALDEFINE 追加
- 基礎設定ファイルの命令に includeEX 追加
- 関数の再帰呼び出しなど、同じ関数を再度呼び直した時に、返り値がおかしくなったり最悪落ちる問題を修正
- GETFUNCINFOのエラー処理見直しと行出力の正確化
- 英語エラーメッセージの表現が正確でないのを訂正
- GETFUNCINFO 追加
- 言語ファイルのつづりミス修正
- この更新はご覧のコミッターの提供でお送りしております: @steve02081504
- 557-1の修正済安定版
- この更新はご覧のコミッターの提供でお送りしております: @steve02081504
- まだβ版です
- 多言語化のためエラーメッセージファイルを分離
- ゴースト更新の時にmessagetxtフォルダを含むのを忘れないでください
- 基礎設定ファイルに messagetxt・basepath を追加
- GETSYSTEMFUNCLIST 追加
- この更新はご覧のコミッターの提供でお送りしております: @steve02081504
- 英語エラーメッセージのミス修正
- GETSETTING('coreinfo.mode') // normal か emergency を返す
- GETERRORLOG() が返すログを直近20から100エラーに緩和
- DICLOAD関数追加:辞書の動的読み込み
- 基礎設定ファイルにdicdir追加(指定ディレクトリ以下をすべて読み込む)
- 基礎設定ファイルfncdepth = 0で呼び出し回数制限解除
- 警告W0011の英語版メッセージのタイプミスを修正
- BOMつきUTF-8テキストファイル読み込みへの対処を書き直し
- includeを使うと基礎設定ファイルの行数カウントがおかしくなる問題を修正
- Pull Request #13 from @nikolat https://github.com/ponapalt/yaya-shiori/pull/13
- GETERRORLOG追加 (エラーログ取得)
- 辞書読み込みエラーが起きた時の緊急フォールバック機能追加
- エラーが起きた際に、yaya_emerg.txtを設定ファイルとしてリトライし、最低限の動作を保つのを目的とします。
- http://emily.shillest.net/ayaya/?%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB/%E6%96%87%E6%B3%95/1.%E5%9F%BA%E7%A4%8E%E8%A8%AD%E5%AE%9A#nbdba21f
- FWRITEDECODEの第3引数を省略可能にした
- FWRITEDECODE追加(FREADENCODEの逆処理)
- URLエンコーディングとプラスパーセントエンコーディングを分離
- GETENV関数を実装、環境変数を取得できるようにした。
- SRAND関数を実装、RANDのシードを指定できるようにした
- セーブファイル名がおかしくなる場合がある問題を修正
- 欧州OS環境で実数変数のセーブファイルへの読み書きがおかしくなる問題を修正
- 特定の文字を扱うと文字化けする問題を修正 ( UTF-16のサロゲートペアを作る処理に誤りがあり、0x10000以降が化ける問題を修正 )
- コード書き直し時に一部ミスがあり ,= 演算子の挙動が変わっていた問題を修正
- ,= 演算子での配列追加や += 演算子での文字列結合を超高速化した
- 正規表現ライブラリをboost::regexから DEELX に変更した
- 実行中に適宜計算結果の一時保存領域を解放することで、大きなデータを扱う際の実行中のメモリ使用量を削減
- REPLACE・RE_REPLACE・RE_REPLACEEXに置換回数オプション追加
- 配列同士の加算の挙動を変更
- 関数出力のarray指定と出力確定演算子を同時使用した時の挙動を変更(内部では配列加算処理をしているので)
- TRANSLATEの第3引数を空にすると第2引数で指定したパターンを削除するようにした。tr///dと同じ。
- ちなみに今までは落ちていた。うわあ。
- HEXSTRTOIを、頭に0xがついた文字列でも動くようにした
- TRANSLATEで指定のしかたが悪いと落ちる場合がある問題を修正
- TRANSLATEで-記号を使うためにエスケープシーケンスを導入 とりあえず\・-・\t(タブ)・\r(CR)・\n(LF)・\f(LF)あたりは使えます
- 汎用文字変換関数TRANSLATEを実装
- HAN2ZEN/ZEN2HANで一部の文字をちゃんと変換できていなかった問題を修正
- 具体的には「パピプペポッヴ」
- ASORTに序数返却オプションを追加
- 空っぽのヒアドキュメントで意味不明のエラーを吐く代わりに、正常に読み込むが警告を出すようにした
- STRFORMの文字長制限を緩和
- STRFORMでフォーマット指定に応じて内部で文字列や数値等に自動変換するよう変更
- STRFORMで型指定子nとpが使える問題を修正(不具合の元になる)
- STRFORMで型指定子S(sではない)やMS拡張指定が使える問題を修正(不具合の元になる)
- 正規表現ライブラリが腐っていたのでビルドしなおしたら全角括弧や全角|などを正規表現演算子と認識して大惨事になったので調整して再度ビルドしなおした
- ASEARCH/同EXで空配列を渡した時に警告を表示していた問題を修正
- 正規表現ライブラリが腐っていたのでビルドしなおした
- #globaldefineしなくても使える組み込みプリプロセッサ定義を2つ追加
- AYA_SYSTEM_FILE 実行中のファイル名(相対パス)
- AYA_SYSTEM_LINE 実行中の行数
- 今後の追加予定なし
- INSERTの警告表示がERASEになっていた問題を修正
- TOINT関数を、「小数点以下を機械的に切り落とす」処理に変えた(今まではfloorと同等)
- 「玉」を起動してログを受信している時に不安定になる場合がある問題を暫定修正
- CVAUTO関数に文字列以外を投げ込むと返り値が出る問題を修正
- ASORT関数のバグを修正(要素数1の配列を渡すとオプション文字列が1つだけ入った汎用文字列が返る、エラー時に空配列が返らない場合がある)
- GETSECCOUNT機能追加で苦闘中その2(だいたい修正済)
- GETSECCOUNT機能追加で苦闘中(だいたい修正済)
- GETSECCOUNT関数に、日付文字列解析機能追加
- FREADBIN関数が腐っていた問題を修正
- FDIGEST関数が腐っていた問題を修正
- ASORT追加
- FreeBSDでビルドできるようになった修正済みソースで再ビルド (send-pr from Henry Hu. Thanks.)
- (manifest.cppの番号書き換え忘れたので差し替えた)
- ERASEの第二引数に負値を使えるように (BTS:MS:73 Patch Merged)
- ISFUNCで空文字列を指定すると2が返るひどい問題を修正
- SETSETTINGでiolog,logpathの変更を有効に
- 新関数 RE_ASEARCH RE_ASEARCHEX RE_ASEARCHMULTI ASEARCHMULTI
- MKDIRの返り値の論理が逆だった問題を修正
- 空文字列が代入された変数が保存されない問題を修正
- [BTS:64] LETTONAMEの挙動を修正
- 設定ファイルのdic設定に第2引数を新設、ファイルごとに文字コード設定可能に
- ARRAYSIZE関数で1要素の汎用配列を指定するとその中のテキストを簡易配列として解釈する問題を修正
- 互換性の問題が出たので新たにGETTYPEEXを新設しGETTYPEの挙動は戻した
- 設定ファイルに charset.save.old を追加(旧形式セーブデータの文字コード明示)
- GETTYPEのタイプ検出をずいぶんまともに。
- RE_SPLITに分割制限数パラメータ追加(SPLITといっしょに)
- ダブルクオート等の処理が微妙におかしい問題を修正
- FREADENCODE、FREADBINの読み出しが途中で切れる問題を修正
- FREADENCODE追加
- ヒアドキュメント機能追加
- LOADLIB / UNLOADLIBで2回目以降の読み込みの場合はload/unloadを呼ばないようにした
- RE_OPTION追加、Perl互換正規表現オプションが使えます
- 正規表現文字クラスがWin9x系でうまく動かない問題を修正
- FOPENでファイルを開くのに失敗すると落ちるひどい問題を修正
- 文字コードサポートを拡充
- foreach文内部で列挙対象配列に変更を加えてもループ処理に問題が生じないように
- FOPEN済みファイルへのFSIZEが通らない問題を修正
- 擬似乱数初期化改良 - ほぼ同時起動したゴーストが同じ乱数系列を使わないように
- EXECUTE_WAIT追加
- STRDECODE / STRENCODE追加 旧名はGETSTRURLENCODE / DECODE
- ERASEVARで複数指定可能に
- 設定ファイルにinclude指定追加
- 設定ファイルのiolog指定は、玉にD&Dする使い方で強制onされるように
- CHARSETLIB / CHARSETLIBEXをいじった
- コメント処理がまたおかしかった問題を修正
- CHARSETLIBEXをロード前でも動くようにした
- iolog,offしても完全にログを無効できなかった問題を修正
- FDIGESTに32bit CRC追加
- LICENSEシステム関数追加(ライセンス表示)
-
/* */
でのコメント処理の挙動が怪しかった問題を修正 (xenon/ponapalt) - FSEEKシステム関数追加(ファイルの現在位置移動)
- FTELLシステム関数追加(ファイルの現在位置取得)
- FOPENのアクセスモードに+相当を追加(ランダムアクセス)
- 上記3つの追加により、ファイルのランダムアクセスが可能となりました。
- LETTONAMEで配列が代入できない問題を修正
- FREADBIN / WRITEBINでデータが化ける問題を修正
- FREADBINでデータ読み出し途中で意図せずファイル読み込み終了扱いになる問題修正
- そのため、FOPENの引数にバイナリモードが追加された
- DUMPVARシステム関数追加、変数内容をログファイルにダンプします。デバッグ用
- 基礎設定ファイル(yaya.txt)に ignoreiolog オプション追加
- OnSecondChangeなどでログが大量になる/見にくい のを防止するためのオプション
- SUBSTRの第二引数を負値にすると「文字列の最後から何番目」を示すように
- || と && 演算子の処理最適化
- 符号1文字でも「正しい数値文字列」として認識していた問題を修正
- GETSTRURLDECODEがバグってたのを修正
- FATTRIBがディレクトリの日付情報を取れなかった問題を修正
- システム関数SETSETTING追加(なんだ!この「馬に乗馬する」的なネーミングは!)
- 二項演算子を単項演算子のように誤って書いていた場合にエラーを吐かずに即落ちるひどい不具合を修正
- Win9x/Me上で正規表現関係の細かい不具合があったのを修正
- EXECUTE追加、外部アプリの実行が可能に
- FDIGEST追加、MD5/SHA-1などのダイジェスト値計算が可能に
- save.auto追加、自動保存のON/OFFが可能に
- FATTRIBを呼び出すたびにリソースリークするひどいバグを修正
- FATTRIBがいつも-1を返すひどいバグを修正
- RMDIRが成功時に0を返していたひどい問題を修正(Windows上のみ)
- FATTRIBが返す配列に日付情報追加
- けっこう高速化
- FENUMが常に空変数(void)を返していたひどい問題を修正
- 整数かどうかを判定する処理を厳しくした
- システム関数の解析・実行まわりの高速化
- sequentialでもnonoverlapと同じ「初期化直前の選択肢は除く」機能が動いてしまう問題を修正
- RE_SPLITで落ちる問題を修正
- メモリリークだらけになっていたのを修正
- 安定しないのでふつうのMTに差し戻し
- READFMO追加
- 設定ファイルにsave.encode,onと書くとセーブファイルが暗号化
- 乱数エンジンをSFMTに積み替え
- 非Windows環境対応工事中
- "--"演算子で確定する候補がまったくなかった場合に落ちる問題を修正。
- 出力候補として空文字列が使えなかった問題を修正。特にarray指定とか悲惨なことに…
- GETTIMEの第一引数にEPOCHからの秒数指定可能に
- GETSECCOUNT追加。time関数とmktime関数の役割を果たします。
- 未定義型を配列へ追加・代入する操作は、IARRAYを代入する時と同じように、削除もしくは無視されるようにした。
- 辞書・requestの出力・ファイル入出力・セーブデータ・SAORI等外部DLLの文字コードを個別に設定できるようにした。
- SINH / COSH / TANHを追加。これでだいたいCライブラリ並みに。
- RAND(0)を実行するだけで一発墜落するひどいバグを修正
- 文字列を「大小比較」できるようになった。要はC言語でいうstrcmp。ソート用。
- GETSTRURLENCODE / GETSTRURLDECODE追加。
- リリース初版。517-901と同等品。
- 「未定義型」の導入
- 定義されていない変数が持つ型です。文字列としては""(空文字列)と同等、数値としては0と同等に扱われます。
- この導入で、未定義変数と数値演算をした時に文字列扱いされて変な結果になる問題が解消されました。
- 0で割り算すると落ちる問題を修正
- さすがに落ちるのはまずいのでチェックを入れました。
- ランダム選択を指定している関数で選択の結果がなかった場合に落ちる場合がある問題を修正
- FREADBIN(filename,size,alternateof0)
- FWRITEBIN(filename,data,alternateof0)
- 文字コード変換をせずバイナリデータとして読む。第三パラメータはバイト値"0"の代わりになる文字。デフォルトは半角空白。
- CHR(Int配列) も可能に
- CHRCODE(文字列,文字の位置) も可能に
- SAVEVARの第一パラメータにファイル名も渡せるように(省略可)
- RESTOREVAR新設。これもファイル名を渡せるように(省略可)
- 指定したセーブファイルから変数を復旧します。
- &color(Silver){SAORIの処理が全滅していた情けないバグを修正};
- シングルプロセスで複数のインスタンスを作れるようなコードにしてみた(実験的)
- &color(Silver){””や’’で囲まれた文字列の解析に失敗する場合がある問題を修正};
- LETTONAMEで変数展開までやっていた特大バグを修正
- aya5.txtの文字コードが反映されない問題修正
- 演算時に型を「昇格」させる機能追加
- 整数と実数の計算ではどちらも実数に変換して計算
- 整数・実数と文字列の計算ではどちらも文字列に変換して計算
- CHARSETLIBEX - すでに読み込まれたSAORIとの通信用文字コードを変更
- 重複回避ランダム選択機能で、常に前回の選択は候補から除外するようにした
- ビット演算機能
- BITWISE_OR(int1,int2)
- BITWISE_AND(int1,int2)
- BITWISE_XOR(int1,int2)
- BITWISE_NOT(int)
- BITWISE_SHIFT(int,シフト量)
- 中括弧閉じを忘れた場合にエラーを吐くように
- ZEN2HAN/HAN2ZEN - 文字列の半角全角変換