On Wed, Oct 18, 2023 at 06:14:03PM +0800, Qian Yun wrote:
> When running test suite with CMUCL, there's one error from finite.input:
>
> testTrue "testLookupIndex(CharacterClass)"
>
> Because it calls "size()$CharacterClass", which is "2^size()$Character",
> "2^1114112".
>
> First, for CMUCL it gives error because the exponent exceeds
> extensions:*intexp-maximum-exponent* (which is 10000).
Yes, this is way too small for our needs.
> That is unreasonably small, we should consider to loosen it.
>
> Second, since we limit number of possible Character in CharacterClass to
> be 256, then "size()$CharacterClass" should be "2^256" instead.
Well, it is not clear to me if Character and CharacterClass should be
Finite. At least operations tested by "finite.input" make almost
no sense in this case. Also, when using GCL we support Unicode
in differnent way than with other Lisps (Unicode characters are
_strings_ of bytes). So doing things differently than currently
used patterns is likely to led to failures. So we must accept
that Character and CharacterClass have no sound mathematical
structure. Or maybe invent a new mathematical structure for
them (but it is not clear if the gain justifies the effort).
BTW: For many years I was unable to run CMUCL, it crashed
on my machine doing things that we need. So any support is
from folks that can run it.
--
Waldek Hebisch