>>>>> "Rupert" == Rupert Swarbrick <rswarbrick at gmail.com> writes:
Rupert> Bill Wood <william.wood3 at comcast.net> writes:
>> On Tue, 2013-02-19 at 16:07 +0000, Rupert Swarbrick wrote:
>> . . .
>>> Dan replied to me off-list pointing out that adding the following two
>>> lines fixed the problem:
>>>
>>> ;; GCL needs to know that compsplt and compsplt-eq return multiple values
>>> #+gcl
>>> (declaim (ftype (function (t) t t) compsplt compsplt-eq))
>>>
>>> I'll push a patch with this in a second as a stop-gap, but I've
>>> obviously misunderstood something about the lisp compile/load/eval cycle
>>> so I'll try and work out how to do this properly and push a less hacky
>>> fix soon.
>>
>> I guess my ignorance is showing because I thought the Hyperspec said
>> that it should be
>>
>> (declaim (ftype (function (t) (values t t)) compsplt compsplt-eq))
>>
>> Isn't the VALUES form required?
Rupert> Hmm, looking at the VALUES type specifier page, together with the
Rupert> FUNCTION class page on the CLHS, I agree with you.
Rupert> I'm still a little confused about why a declamation is needed at all,
Rupert> though. I've been trying (with no success) to make a mini example that
Rupert> fails with GCL to see what I'm doing wrong.
This declaim didn't make any sense to me either, but now I remember
that, unlike all others, gcl loads sys-proclaim.lisp that proclaims
lots of functions. Perhaps this is the problem, and sys-proclaim
needs to be regenerated. I don't have gcl available right now, but I
think you can do "make sys-proclaim" in the src directory to have gcl
update sys-proclaim.lisp.
Ray