gcl-devel
[Top][All Lists]
Advanced

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

[Gcl-devel] CALL-ARGUMENTS-LIMIT and other things


From: Mike Thomas
Subject: [Gcl-devel] CALL-ARGUMENTS-LIMIT and other things
Date: Mon, 1 Nov 2004 15:49:59 +1000

Hi Camm.

1. While trawling through the ANSI tester output a few days ago I noticed
that call-arguments-limit (set to 64) conflicts with the test in "eval.c"
based on the C macro MAX_ARGS (63) defined in "h/funlink.h".

I played it safe and set call-arguments-limit to MAX_ARGS (in "eval.c")
which I left at 63.  This fixed the failure of SUBTRACT.3 in the ANSI tests:

(LET ((ARGS NIL))
        (LOOP
          FOR
          I
          FROM
          1
          TO
          (MIN 256 (1- CALL-ARGUMENTS-LIMIT))
          DO
          (PUSH 1 ARGS)
          ALWAYS
          (EQL (APPLY #'- 1000 ARGS) (- 1000 I))))

but is not necessarily a high quality design decision.  I also set
LAMBDA-PARAMETERS-LIMIT to MAX_ARGS.

Now in CVS.


2. Also now in CVS is stack size configuration for Windows.  I still need to
link it to the test for C stack origin by passing a switch to the linker for
that test.  It is possible that other platforms may be affected accidentally
by these changes - hopefully not.

3. I am proposing a patch to GCL along the general lines set out below to
remove compiler warnings about the unknown optimizer quality "debug" as
frequently seen in the ANSI test output.  These changes (*debug* and
appropriate checks in "cmpnew/gcl_cmpmain.lsp") are sufficient to remove
those warnings but I've hesitated about an appropriate compiler response to
the debug quality in light of the CLHS discussion:

  http://www.lispworks.com/reference/HyperSpec/Issues/iss251_w.htm

I imagine that the right thing would be for that quality to put debug
switches in the C compiler command line via *c-debug* , leaving manipulation
of C optimizer switches to the other optimizer qualities (it might be
beneficial, on occasion, to have maximum optimization with debug symbols).

The negative side to this patch is that I renamed "si::debug" to
"si::debugger" to avoid a namespace clash with the compiler debug quality
symbol.

Not yet in CVS

After these changes 1164 of the ANSI tests fail on Windows.

Cheers

Mike Thomas.






reply via email to

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