Steel Bank Common Lisp 1.1.9の変更点

[News - Steel Bank Common Lisp](http://www.sbcl.org/news.html)の内容を日本語訳したものです。内容の正しさは保証しません。

-----

# 新機能

* contribのsb-gmpモジュールは[BIGNUM](http://www.lispworks.com/documentation/HyperSpec/Body/t_bignum.htm#bignum)と[RATIO](http://www.lispworks.com/documentation/HyperSpec/Body/t_ratio.htm#ratio)の計算を高速化するために実行時に[libgmp](http://gmplib.org/)とリンクします。（Stephan Frankによって寄贈されました）

# 機能強化

* [DISASSEMBLE](http://www.lispworks.com/documentation/HyperSpec/Body/f_disass.htm#disassemble)が、[LENGTH](http://www.lispworks.com/documentation/HyperSpec/Body/f_length.htm#length)のような、以前は見付けられなくなってしまっていたいくつかの静的な関数に注釈を付けるようになりました。
* `clean.sh`が`doc/internals`も掃除するようになりました。
* パッケージプリフィックス付きでシンボルを表示するために、SB-EXT:PRINT-SYMBOL-WITH-PREFIXが~//（訳注：[22.3.5.4 Tilde Slash: Call Function](http://www.lispworks.com/documentation/HyperSpec/Body/22_ced.htm)）の中で使えるようになりました。
* デバッガとバックトレースがバギーな[PRINT-OBJECT](http://www.lispworks.com/documentation/HyperSpec/Body/f_pr_obj.htm#print-object)メソッドに対してより堅牢になりました。

# 最適化

* x86-64で、より少ない命令で静的な関数を呼び出せるようになりました。
* 可能であれば、[ENCODE-UNIVERSAL-TIME](http://www.lispworks.com/documentation/HyperSpec/Body/f_encode.htm#encode-universal-time)をコンパイル時に計算するようになりました。
* 内部関数を`#'x`として参照するとき、間接的なfdefn構造体を経由しなくなりました。
* [SLEEP](http://www.lispworks.com/documentation/HyperSpec/Body/f_sleep.htm#sleep)が即値でない[FLOAT](http://www.lispworks.com/documentation/HyperSpec/Body/t_float.htm)や[RATIO](http://www.lispworks.com/documentation/HyperSpec/Body/t_ratio.htm#ratio)でコンシングしなくなりました。
* `(mod fixnum)`型検査で符号なしの比較を二回していたのが一回になりました。
* 条件節があるとき、より積極的な合同算術への変換が有効になりました。（訳注：[LOGAND](http://www.lispworks.com/documentation/HyperSpec/Body/f_logand.htm#logand)やMASK-SIGNED-FIELDの戻り値の型が整数型の和集合だったときに最適化されるようになりました）
* 結果が負だと分かっている場合、ビットの論理和のフォームでも合同算術をさせることができるようになりました。
* 定数に対する無駄なLOGAND／[LOGIOR](http://www.lispworks.com/documentation/HyperSpec/Body/f_logand.htm#logior)をより多く認識するようになりました。
* 有理数と定数の浮動小数点数、あるいは整数と定数の有理数の比較は、コンパイル時に（訳注：定数が）有理数あるいは整数に変換されるようになりました。
* x86-64での、より小さくて高速なDOUBLE-FLOAT-LOW-BITS。

# バグ修正

* [NCONC](http://www.lispworks.com/documentation/HyperSpec/Body/f_nconc.htm#nconc)の型導出の問題。（Jerry Jamesによって報告されました）
* [EXPT](http://www.lispworks.com/documentation/HyperSpec/Body/f_exp_e.htm#expt)の型導出で壊れた浮動小数点数型が生成されなくなりました。（Vsevolod Dyomkinによって報告されました）
* sb-bsd-socketsモジュールで、addrinfoのcanonnameフィールドの宣言が正しくなりました。（[#1187041](https://bugs.launchpad.net/sbcl/+bug/1187041)、Jerry Jamesによるパッチです）
* 初期化されていない[TYPE-ERROR](http://www.lispworks.com/documentation/HyperSpec/Body/e_tp_err.htm#type-error)コンディションを表示できるようになりました。（[#1184586](https://bugs.launchpad.net/sbcl/+bug/1184586)）
* sb-bsd-socketsモジュールのテストが、あらかじめ決められたポートを待ち受けに使わなくなり、いくつかのテストを平行して実行することができるようになりました。
* \*COMPILER-TRACE-OUTPUT\*に出力される逆アセンブルで、x86とx86-64で使われる、命令のプリフィックスが時々正しく表示されなかったのが直りました。([#1085729](https://bugs.launchpad.net/sbcl/+bug/1085729))
* 特殊化されたSIMD-PACK型を無効にできるようになりました。
* 合同算術がより堅牢になりました。（ついでにEric Marsdenによって報告された別のバグも直しました）
* [x87](http://ja.wikipedia.org/wiki/Intel_8087)で、外部呼び出しからの浮動小数点数の戻り値が、単精度あるいは倍精度に丸められるようになりました。
* 添え字が`(+ x constant-positive-integer)`という形の、安全だと分かっているx86系でのベクタアクセスが、間違って失敗しないようになりました。
* GPLでライセンスされているファイルを配布物から削除しました。（[#1185668](https://bugs.launchpad.net/sbcl/+bug/1185668)）
* arg-countレジスタが他のコードによって上書きされてしまうとき、バックトレースのプリンタがとても大きなリストを作ろうとするのが直りました。([#1192929](https://bugs.launchpad.net/sbcl/+bug/1192929))
* x86で、浮動小数点数の値のボクシングで浮動小数点例外が発生（LDB（訳注：Low-level DeBugger）に入る状況です）することがなくなりました。