[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: roman-step
From: |
Alfred M. Szmidt |
Subject: |
Re: roman-step |
Date: |
Thu, 07 Nov 2024 02:09:42 -0500 |
> On Nov 5, 2024, at 9:56â¯PM, Alfred M. Szmidt <ams@gnu.org> wrote:
>
>
> When trying to compile SYS: IO; FORMAT LISP (on trunk sys), I get the
error:
>
> << While compiling (:PROPERTY R FORMAT-CTL-ONE-ARG) >>
> Function ROMAN-STEP called with too many arguments.
>
> Same thing with SYS: IO1; OUTPUT LISP.
>
> OUTPUT LISP simply has a single reference in PLURAL:
>
> (format::roman-step number 0 nil))
>
> And FORMAT LISP defines ROMAN-STEP as:
>
> (DEFUN ROMAN-STEP (X N ROMAN-OLD)
> (declare (unspecial roman-old)) ;>>for
recompilation
> â¦
>
> And all of the references to ROMAN-STEP in FORMAT provide 3 args â
> so they are all ok.
>
> My guess is that in system 300, ROMAN-STEP was defined as taking
> two parameters, and the compiler knows this when compiling FORMAT â
> hence the error, since the references to ROMAN-STEP are BEFORE the
> definition of that function.
>
> But what I donât understand is that when FORMAT gets compiled, and
> we try to compile OUTPUT, why we AGAIN get the error. The compiler
> should now know that ROMAN-STEP demands 3 parameters.
>
> Thoughts?
>
> Did you _LOAD_ FORMAT (and get the new ROMAN-STEP)?
Well, actually, I did mean compile, but I assume youâre saying that
just because the compiler notices functions and the number of
parameters they take, that it doesnât remember this information
anywhere so a subsequent compile will not know what was gleamed
during the previous compilation. Ok. Thanks.
The compiler looks at the definition of the loaded function; just
compiling does not change that.
You need to load the function too.