[Ecls-list] Bug in argument checking based on function proclamation

Gabriel Dos Reis gdr at integrable-solutions.net
Thu Jul 1 22:08:11 UTC 2010


On Thu, Jul 1, 2010 at 4:39 PM, Juan Jose Garcia-Ripoll
<juanjose.garciaripoll at googlemail.com> wrote:
> On Tue, Jun 29, 2010 at 2:12 AM, Gabriel Dos Reis
> <gdr at integrable-solutions.net> wrote:
>>
>> On Mon, Jun 28, 2010 at 2:46 PM, Juan Jose Garcia-Ripoll
>> <juanjose.garciaripoll at googlemail.com> wrote:
>> > * Proclamations are also used to deduce the type of a function's
>> > arguments
>> > and create argument type checks.
>> >
>> The function arguments checking seems to have a bug.
>
> Thanks a lot for the test case. I identified a problem with how FTYPE
> declarations are parsed. I did not detect the problem because I was focusing
> on PROCLAIM, not DECLAIM. It should be fixed now, but just started an
> OpenAxiom build to make sure -- Maxima works, though.

I just updated my local copy of ECL CVS.  That problem is indeed solved. Thanks!

However, I cannot build OpenAxiom.  The build fails during  ECL'c C
code generation for the lisp translation of src/interp/c-util.boot, in the
function |expandableDefinition?|:

;;; Emitting code for |expandableDefinition?|.

-1 is not of type FUNCTION.
Available restarts:

1. (ABORT) ABORT



Backtrace did not give me much to work on. to isolate the bug.
I do not know how ECL got to '-1'.

>>
>> 1. The argument-type in the function proclamation is simple enough
>>    that ECL should not be confused.
>>
>> 2. ECL pretends that there are too few arguments for proclaimed
>>    BEGIN-DOLLAR-P.  Yet, the function was proclaimed to be
>>    of arity 1, and there is exactly one argument supplied in the call.
>
> These two were caused by the error I just fixed.

OK.

>>
>> What are the notes about propagating FUNCALL and C-INLINE about?
>
> The type propagator is complaining about forms for which there is no type
> propagation code. I just disabled some of them, but seems I forgot FUNCALL.

OK, thanks!

-- Gaby




More information about the ecl-devel mailing list