chicken-users
[Top][All Lists]
Advanced

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

[Chicken-users] Compilation issue with v4.7.0


From: Paul Colby
Subject: [Chicken-users] Compilation issue with v4.7.0
Date: Fri, 12 Aug 2011 07:56:39 -0700

Hi,
I tried the following file as a prelude to doing conditional compilation and 
ran into the following snag,

----------------------------- example.scm -----------------------
(define A #t)
(define B 'undefined)
(if A
 (set! B 'good)
 (set! B 'bad))
(print B)
------------------------------ end ----------------------------------

running csi prints out the expected message 'good'
compiling using 'csc example.scm' and running the
executable results in 'undefined' being printed. the
code generated by 'csc -t example.scm' is given below.

BTW I would dearly like to get objc egg to compile.

Regards
Paul Colby

----------------------------- example.c ---------------------------
/* Generated from example.scm by the CHICKEN compiler
   http://www.call-with-current-continuation.org
   2011-08-12 07:53
   Version 4.7.0 
   macosx-unix-gnu-x86-64 [ 64bit manyargs dload ptables ]
   compiled 2011-07-28 on Paul-Colbys-iMac.local (Darwin)
   command line: example.scm -output-file example.c
   used units: library eval
*/

#include "chicken.h"

static C_PTABLE_ENTRY *create_ptable(void);
C_noret_decl(C_library_toplevel)
C_externimport void C_ccall C_library_toplevel(C_word c,C_word d,C_word k) 
C_noret;
C_noret_decl(C_eval_toplevel)
C_externimport void C_ccall C_eval_toplevel(C_word c,C_word d,C_word k) C_noret;

static C_TLS C_word lf[6];
static double C_possibly_force_alignment;
static C_char C_TLS li0[] 
C_aligned={C_lihdr(0,0,10),40,116,111,112,108,101,118,101,108,41,0,0,0,0,0,0};


C_noret_decl(C_toplevel)
C_externexport void C_ccall C_toplevel(C_word c,C_word t0,C_word t1) C_noret;
C_noret_decl(f_14)
static void C_ccall f_14(C_word c,C_word t0,C_word t1) C_noret;
C_noret_decl(f_17)
static void C_ccall f_17(C_word c,C_word t0,C_word t1) C_noret;
C_noret_decl(f_22)
static void C_fcall f_22(C_word t0,C_word t1) C_noret;
C_noret_decl(f_25)
static void C_ccall f_25(C_word c,C_word t0,C_word t1) C_noret;
C_noret_decl(f_31)
static void C_ccall f_31(C_word c,C_word t0,C_word t1) C_noret;
C_noret_decl(f_28)
static void C_ccall f_28(C_word c,C_word t0,C_word t1) C_noret;

C_noret_decl(trf_22)
static void C_fcall trf_22(void *dummy) C_regparm C_noret;
C_regparm static void C_fcall trf_22(void *dummy){
C_word t1=C_pick(0);
C_word t0=C_pick(1);
C_adjust_stack(-2);
f_22(t0,t1);}

C_noret_decl(tr2)
static void C_fcall tr2(C_proc2 k) C_regparm C_noret;
C_regparm static void C_fcall tr2(C_proc2 k){
C_word t1=C_pick(0);
C_word t0=C_pick(1);
C_adjust_stack(-2);
(k)(2,t0,t1);}

/* toplevel */
static C_TLS int toplevel_initialized=0;
C_main_entry_point
C_noret_decl(toplevel_trampoline)
static void C_fcall toplevel_trampoline(void *dummy) C_regparm C_noret;
C_regparm static void C_fcall toplevel_trampoline(void *dummy){
C_toplevel(2,C_SCHEME_UNDEFINED,C_restore);}

void C_ccall C_toplevel(C_word c,C_word t0,C_word t1){
C_word tmp;
C_word t2;
C_word t3;
C_word *a;
if(toplevel_initialized) C_kontinue(t1,C_SCHEME_UNDEFINED);
else C_toplevel_entry(C_text("toplevel"));
C_resize_stack(262144);
C_check_nursery_minimum(3);
if(!C_demand(3)){
C_save(t1);
C_reclaim((void*)toplevel_trampoline,NULL);}
toplevel_initialized=1;
if(!C_demand_2(60)){
C_save(t1);
C_rereclaim2(60*sizeof(C_word), 1);
t1=C_restore;}
a=C_alloc(3);
C_initialize_lf(lf,6);
lf[0]=C_h_intern(&lf[0],1,"A");
lf[1]=C_h_intern(&lf[1],1,"B");
lf[2]=C_h_intern(&lf[2],9,"undefined");
lf[3]=C_h_intern(&lf[3],25,"\003sysimplicit-exit-handler");
lf[4]=C_h_intern(&lf[4],5,"print");
lf[5]=C_h_intern(&lf[5],3,"bad");
C_register_lf2(lf,6,create_ptable());
t2=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_14,a[2]=t1,tmp=(C_word)a,a+=3,tmp);
C_library_toplevel(2,C_SCHEME_UNDEFINED,t2);}

/* k12 */
static void C_ccall f_14(C_word c,C_word t0,C_word t1){
C_word tmp;
C_word t2;
C_word t3;
C_word ab[3],*a=ab;
C_check_for_interrupt;
if(!C_stack_probe(&a)){
C_save_and_reclaim((void*)tr2,(void*)f_14,2,t0,t1);}
t2=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_17,a[2]=((C_word*)t0)[2],tmp=(C_word)a,a+=3,tmp);
C_eval_toplevel(2,C_SCHEME_UNDEFINED,t2);}

/* k15 in k12 */
static void C_ccall f_17(C_word c,C_word t0,C_word t1){
C_word tmp;
C_word t2;
C_word t3;
C_word t4;
C_word t5;
C_word t6;
C_word ab[3],*a=ab;
C_check_for_interrupt;
if(!C_stack_probe(&a)){
C_save_and_reclaim((void*)tr2,(void*)f_17,2,t0,t1);}
t2=C_set_block_item(lf[0] /* A */,0,C_SCHEME_TRUE);
t3=C_mutate((C_word*)lf[1]+1 /* (set! B ...) */,lf[2]);
t4=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_22,a[2]=((C_word*)t0)[2],tmp=(C_word)a,a+=3,tmp);
if(C_truep(C_fast_retrieve(lf[0]))){
t5=t4;
f_22(t5,C_SCHEME_UNDEFINED);}
else{
t5=C_mutate((C_word*)lf[1]+1 /* (set! B ...) */,lf[5]);
t6=t4;
f_22(t6,t5);}}

/* k20 in k15 in k12 */
static void C_fcall f_22(C_word t0,C_word t1){
C_word tmp;
C_word t2;
C_word t3;
C_word ab[3],*a=ab;
C_check_for_interrupt;
if(!C_stack_probe(&a)){
C_save_and_reclaim((void*)trf_22,NULL,2,t0,t1);}
t2=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_25,a[2]=((C_word*)t0)[2],tmp=(C_word)a,a+=3,tmp);
C_trace("example.scm:6: print");
((C_proc3)C_fast_retrieve_proc(*((C_word*)lf[4]+1)))(3,*((C_word*)lf[4]+1),t2,C_fast_retrieve(lf[1]));}

/* k23 in k20 in k15 in k12 */
static void C_ccall f_25(C_word c,C_word t0,C_word t1){
C_word tmp;
C_word t2;
C_word t3;
C_word t4;
C_word ab[6],*a=ab;
C_check_for_interrupt;
if(!C_stack_probe(&a)){
C_save_and_reclaim((void*)tr2,(void*)f_25,2,t0,t1);}
t2=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_28,a[2]=((C_word*)t0)[2],tmp=(C_word)a,a+=3,tmp);
t3=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_31,a[2]=t2,tmp=(C_word)a,a+=3,tmp);
C_trace("##sys#implicit-exit-handler");
((C_proc2)C_fast_retrieve_symbol_proc(lf[3]))(2,*((C_word*)lf[3]+1),t3);}

/* k29 in k23 in k20 in k15 in k12 */
static void C_ccall f_31(C_word c,C_word t0,C_word t1){
C_word tmp;
C_word t2;
C_word *a;
t2=t1;
((C_proc2)C_fast_retrieve_proc(t2))(2,t2,((C_word*)t0)[2]);}

/* k26 in k23 in k20 in k15 in k12 */
static void C_ccall f_28(C_word c,C_word t0,C_word t1){
C_word tmp;
C_word t2;
C_word *a;
t2=((C_word*)t0)[2];
((C_proc2)(void*)(*((C_word*)t2+1)))(2,t2,C_SCHEME_UNDEFINED);}

#ifdef C_ENABLE_PTABLES
static C_PTABLE_ENTRY ptable[8] = {
{"toplevel:example_2escm",(void*)C_toplevel},
{"f_14:example_2escm",(void*)f_14},
{"f_17:example_2escm",(void*)f_17},
{"f_22:example_2escm",(void*)f_22},
{"f_25:example_2escm",(void*)f_25},
{"f_31:example_2escm",(void*)f_31},
{"f_28:example_2escm",(void*)f_28},
{NULL,NULL}};
#endif

static C_PTABLE_ENTRY *create_ptable(void){
#ifdef C_ENABLE_PTABLES
return ptable;
#else
return NULL;
#endif
}
/* end of file */




reply via email to

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