gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Gcl-devel] Re: CALL-ARGUMENTS-LIMIT and other things


From: Mike Thomas
Subject: RE: [Gcl-devel] Re: CALL-ARGUMENTS-LIMIT and other things
Date: Tue, 2 Nov 2004 11:10:53 +1000

Hi Camm/Paul.


| | Looking at that, the test seems wrong -- it passes CALL-ARGUMENTS-LIMIT
| | args to -, but that constant is an *exclusive* upper bound.
| |
| |     Paul
|
| On that basis I'll revert that change having incorrectly assumed the limit
| was inclusive.

I've set the exclusive limits "CALL-ARGUMENTS-LIMIT" and
"lambda-parameters-limit" each to (MAX_ARGS+1); that is, to 64.

The only remaining argument related unmacroized 64 constant is in the
"funcall_with_catcher" in eval.c which silently ignores more than 64
arguments and which is generated by the compiler in
"cmpnew/gcl_cmpcall.lsp".

I am inclined to change 64 to MAX_ARGS+1 in "funcall_with_catcher" too:

void
funcall_with_catcher(object fname, object fun)
{
        int n = vs_top - vs_base;
        if (n > 64) n = 64;
        frs_push(FRS_CATCH, make_cons(fname, make_fixnum(n)));
        if (nlj_active)
                nlj_active = FALSE;
        else
                funcall(fun);
        frs_pop();
}

Cheers

Mike Thomas.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]