From: Vassil Nikolov
Subject: Re: Summing up: when type mismatch can be legal
Date: 
Message-ID: <74013.vnikolov@math.acad.bg>
What actually happened was that after the source file containing
the offending (ETYPECASE) form was compiled (producing a warning
from the compiler), an attempt to load the generated binary
file caused an error to be signalled.

Thanks again to Barry Margolin for getting things straight
(as he always does).

So, to finish this off, yes, I am completely convinced that
the culprit was a CMU CL bug.  (I'm talking here about version 17f,
not the newest, apparently.)

This bug manifests itself in relatively complex forms containing
several temporary variables.  (Simplified examples of the same
type cause no problems.)

Best regards,
Vassil.

On 09 Sep 1997 10:59:29 -0400, 
Raymond Toy  <···@rtp.ericsson.se> wrote:

>>>>>> "Barry" == Barry Margolin <······@bbnplanet.com> writes:
>
>    Barry> In article <··············@rtp.ericsson.se>,
>    Barry> Raymond Toy  <···@rtp.ericsson.se> wrote:
>    >> Why is this a problem?  As you state above, and the compiler warns,
>    >> PATH is a PATHNAME at this point, so the COMPONENT part of etypecase
>    >> would never be executed.  So the compiler could have put
>    >> (blow-up-my-computer) for the COMPONENT case and you couldn't tell at
>    >> run time.  (Assuming an error-free compiler, of course!)
>
>    Barry> I think you're misunderstanding which form got replaced with the stub.
>    Barry> Judging from the original post in the thread, I believe it's the entire
>    Barry> ETYPECASE or LET that's being replaced, not just the COMPONENT clause of
>    Barry> the ETYPECASE.  And that's the whole problem -- the compiler detected a
>    Barry> type mismatch, but doesn't recognize the guards surrounding it.
>
>If that is true, then that is definitely a bug in CMUCL.
>
>However, I've been running this defsystem for quite a while and, while 
>I have seen the warnings mentioned above, I have not noticed any thing 
>broken.  A short test with some print statements around the offending
>code shows that the etypecase or let is not replaced by error; it
>works as expected.
>
>Perhaps a newer version of CMUCL will help.  I did the test with an
>almost but not quite 18a release of CMUCL.
>
>Ray
>

Vassil Nikolov         <········@bgearn.acad.bg>     (+359-2) 713-3813
Department of Information Research
Institute of Mathematics and Informatics        fax: (+359-2) 9713649
Acad. G. Bonchev, block 8, Sofia 1113, Bulgaria