Fix #4296: Add assign property for expop/expon
commit83318383e76aa78b85c303af4f6a59201f0a07a9
authorRaymond Toy <toy.raymond@gmail.com>
Tue, 30 Apr 2024 01:47:18 +0000 (29 18:47 -0700)
committerRaymond Toy <toy.raymond@gmail.com>
Tue, 30 Apr 2024 01:47:18 +0000 (29 18:47 -0700)
tree703f03c5d8382741ef2a59175488c3430dea0b60
parentc81a8a0dc3150408660b4c984ea49256e3f76699
Fix #4296:  Add assign property for expop/expon

We add an `assign` property for `$expop` and `$expon` so that they can only
be set to a (non-negative) integer.

We also add a new `:type` option for `defmvar` that allows an
arbitrary Lisp type to be specified.  This `:type` option then
declaims the variable to have the given type.  This replaces the
`fixnum`, `boolean`, `string`, and `flonum` options for `defmvar`.

Since we now declare the type of `$expop` and `$expon`, we need to
update `enprog` that was initializing these to NIL and then setting
them to 0.  We need to initialize them to 0 to satisfy the
declaration.
src/globals.lisp
src/sinint.lisp