[gambit-list] What are the default compiler declarations?

Bradley Lucier lucier at math.purdue.edu
Tue Feb 1 15:07:43 EST 2005


Marc:

The documentation says:

      The default declarations used by the compiler are equivalent to:

           (declare
             (ieee-scheme)
             (separate)
             (inline)
             (inlining-limit 300)
             (constant-fold)
             (lambda-lift)
             (not standard-bindings)
             (not extended-bindings)
             (not run-time-bindings)
             (safe)
             (interrupts-enabled)
             (generic)
             (mostly-fixnum)
           )

but it appears that standard-bindings is also assumed, by the following 
test.  I think this is a bug.

Brad

[descartes:~] lucier% gsc -c -expansion test.scm
loading /usr/local/Gambit-C/gambcext.scm
Expansion:

(define a (lambda (b) (if (##pair? b) (##car b) (car b))))

[descartes:~] lucier% cat test.scm
(define (a b)
   (car b))
[descartes:~] lucier% cat test.c
<stuff deleted>
#undef ___PH_PROC
#define ___PH_PROC ___H_a
#undef ___PH_LBL0
#define ___PH_LBL0 3
#undef ___PD_ALL
#define ___PD_ALL ___D_FP ___D_R0 ___D_R1 ___D_R4
#undef ___PR_ALL
#define ___PR_ALL ___R_FP ___R_R0 ___R_R1 ___R_R4
#undef ___PW_ALL
#define ___PW_ALL ___W_R1 ___W_R4
___BEGIN_P_COD
___BEGIN_P_HLBL
___DEF_P_HLBL_INTRO
___DEF_P_HLBL(___L0_a)
___DEF_P_HLBL(___L1_a)
___END_P_HLBL
___BEGIN_P_SW
___DEF_SLBL(0,___L0_a)
    ___IF_NARGS_EQ(1,___NOTHING)
    ___WRONG_NARGS(0,1,0,0)
___DEF_GLBL(___L_a)
    ___IF(___PAIRP(___R1))
    ___GOTO(___L2_a)
    ___END_IF
    ___POLL(1)
___DEF_SLBL(1,___L1_a)
    ___JUMPGLOSAFE(___SET_NARGS(1),2,___G_car)
___DEF_GLBL(___L2_a)
    ___SET_R1(___CAR(___R1))
    ___JUMPPRM(___NOTHING,___R0)
___END_P_SW
___END_P_COD



More information about the Gambit-list mailing list