v0.7.10
Changes in v0.7.10
- Modified the functions
divandmodto ensure that the division result is the greatest integer less than or equal to the quotient when negative values are passed as arguments. - Reserved symbols such as
nil,t,*pi*,*most-positive-float*, and*most-negative-float*are now recognized and rejected when used improperly as identifiers inlet,let*,lambda,defconstant, anddefglobalforms. These cases now raise<program-error>as required. - Introduced a new
Reservedtype to represent such reserved symbols, which are now identified during parsing. (defglobal)now raises an error if the symbol has already been defined as a constant.- Fix:
(or)with no arguments now correctly returnsnilinstead of raising an error (defclass)now raises an error when a special form name is used as the class name- Symbols: previously case-sensitive, but now equality is case-insensitive; symbols display in uppercase and preserve original case for string conversion
- Fix
(convert nil <type>)not behaving according to the specification
Changes in v0.7.10
- マイナスの値を与えられても、割り算の結果が商以下の最大の整数になるよう、関数
divとmodを修正した nil、t、*pi*、*most-positive-float*、*most-negative-float*などの予約語を、let,let*,lambda、defconstant、defglobalフォームで識別子として使った場合に<program-error>を発生させるようにした。- 予約語を表現する新しい型
Reservedを導入し、構文解析の段階で認識するようにした。 - シンボルが定数として定義済みの時、
(defglobal)はエラーになるようにした。 - 引数のない
(or)で、エラーとせずに、正しくnilを返すよう修正した。 (defclass)で、特殊形式名がクラス名として使われた時にエラーを起こすようにした。- これまではシンボルは英大文字・小文字を区別していたが、比較において区別をしないようにした。表示は英大文字とするようにした。シンボルから文字列に戻す時は最初に作られた英大文字・小文字を復元するようにした
(convert nil 各種型)が仕様通りとなっていなかった点を修正した
TP Result : PASS = 11533, FAIL = 4878