raise
を
再び呼ぶと、明示的にハンドラを入れ替えていない限りは、同じ例外ハンドラが再び呼ばれます。
R7RSセマンティクスでは、例外ハンドラ設定だけが差し替えられるので、例外ハンドラ中でraise
が呼ばれるとそれは外側の例外ハンドラを起動します。raise
で自分自身に再入することを前提にしていたコードは動かなくなりますが、
実用的にそれが必要なケースはほとんど無いと考えています。
define-cproc
の型表記に、Cのdouble
を受け取る意図で
<real>
を書いているコードがあれば、できるだけ早くそれを<double>
に変更してください。
スタブに使う型表記とGaucheの型システムの統合を進めていて、
<real>
はGaucheの型として別のもの(Schemeの実数なので整数や有理数も含まれる)を指すのに
使っているためです。将来のバージョンでは、スタブでの<real>
は単にScheme側の
型チェックだけで、Cから見てScmObj
が渡ってくることになります。
gauche/bignum.h
はプライベートになりました。
ScmBignum
はユーザコードから直接使われることは意図されていません。
gauche/number.h
にある汎用数値APIを使ってください。
tls-connect
インタフェースが提供されているのでそちらに移行してください。
ganstub
) の大きな変更が進んでいます。
これまでもドキュメントはされていませんでしたが、
スタブファイル内でdefine-type
を使っている場合、それを
declare-stub-type
に変更してください。以前のフォームもしばらくはサポートしますが。
pthread_cancel
のような強制的な
スレッドの終了は、特別に指定しない限り行わないようになりました。
「値をインスタンスとするクラス」以外に、値の特定の性質を記述できる型が導入されました。 直和型(「整数またはシンボル」)、オプション型、引数と戻り値の型情報を持つ手続き型等です。
今のところ、この型情報を活用できるところは、 assume-typeやof-type?以外には あまりありません。将来的には活用を広げてゆく予定です。
詳しくは型とクラスを見てください。
#?=
のかわりに#?@=
を使うと、スレッドごとに別のログファイルにデバッグログが
出力されます。ログが混ざってしまうのを避けられます。
,edit off
とするか、Gaucheを-fno-read-edit
で起動するか、
環境変数GAUCHE_NO_READ_EDIT
を設定しておけばオフにできます。
:range
qualifierで範囲オブジェクトをサポート。
(eqv? -0.0 0.0)
は #f
になります。
これはR7RSの仕様に沿います。詳しくはblogエントリを。
~V
(week number) の仕様をISO8601に合わせる
https://github.com/shirok/Gauche/issues/763