[Top][All Lists]
[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.