Skip to content
SATO Mitsuhide edited this page Dec 31, 2015 · 9 revisions

Home


リリースノート20151223(KASHIYUKA 27th Birthday!!)

tag: PRFM_20151223_K27 / 0.8.0

機能追加

  • デバッガのサポート。
  • pipe コマンドの追加。また、いくつかの添付ユーティリティを pipe に対応。
  • Stream クラスの追加。詳細はマニュアル参照。
  • exec コマンドの追加(子プロセスとのI/Oを実現)。
  • fork-exec コマンドの追加。
  • load-func ユーティリティ、load-class ユーティリティの追加。
  • uplevel コマンドの追加。
  • true? コマンド、false? コマンドの追加。
  • 引数の表記に (*) が可能に。キーワード引数や可変長引数を含めてすべての引数を指定どおりに受け取る形式。
  • 新しいマクロ、":=" と "::=" を追加。
  • make-proxy ユーティリティを追加。
  • glob ユーティリティを追加。
  • List::set-car! と List::set-cdr! を追加。
  • where コマンドと w ユーティリティを追加。
  • Block::>> と Block::<< の実装を pipe によるものに変更。
  • File::clear メソッドの追加。TTY入力などでeof後も継続して入力が可能。
  • File::ready? メソッドに timeout: オプションを追加。
  • File::set-nobuffer メソッドを追加。
  • File::set-noblock メソッドを追加。
  • unset コマンドに :silent オプションを追加。
  • ファイルの自動GC処理を追加。
  • ファイルの改行コードの入出力処理のため、ファイルのプロパティに "newline" を追加。詳細はマニュアルの File の章参照。
  • デバッガのために、デバッグ情報の正確性を向上(行番号は常にステートメントの先頭を指すなど)。
  • エラー ErrIOAgain を追加。noblock モード時の File::gets 時に発生する。
  • グローバル変数に INFILE と OUTFILE を追加。

コルーチン関連

  • コルーチンリリース時の動作を修正。
  • コルーチンリリース時にスタックをクリアする処理を追加。
  • コルーチンスタックの自動GC処理を追加。
  • Coro::stat によりコルーチンの状態を問い合わせ可能。
  • Coro::eval によりコルーチンインタプリタに対する状態の変更が可能。
  • pause から再度Coro::nextでコルーチンに復帰した際、直前の関数の値を返すようにした。
  • STACK_SLOT_SIZE を 64bit環境に合わせて修正。
  • コルーチンスタック初期化時に、先頭の1ページ(4096バイト)のみゼロクリアするようにした。
  • コルーチンを使用中のみ GC root へ登録するように変更。これにより、コルーチン非使用時のメモリ使用量とGC時間を削減。

バグ修正

  • GETマクロのパフォーマンスバグを修正。
  • set 多値代入のバグ修正。
  • unknown コマンド呼び出し時のスクリプトを最後まで実行しないバグを修正。
  • リストがNULLの際の get のバグを修正。
  • File クラスの eof 時の動作の互換性を向上。
  • List::item で item (car) が NULL のときのバグを修正。
  • List::inject のバグを修正。
  • List::string で (null address) が表示されるバグを修正。
  • String::split で、最後の文字がセパレータだった場合の動作をより好ましいものに変更。
  • GETマクロの左側がシンボルだったときにループするバグを修正。

削除

  • HAS_GCACHE コンパイルオプションを削除。

その他

  • グローバル変数のスコープを処理系全体からコルーチン内グローバルへ変更。コルーチンのグローバル変数は親コルーチンからコピーされるように。
  • unknown hook の仮引数を "(*)" に変更。
Clone this wiki locally