/[gcl]/gcl/h/object.h
ViewVC logotype

Diff of /gcl/h/object.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.8 by camm, Fri Jul 12 22:00:48 2002 UTC revision 1.9 by camm, Sat Jul 20 07:10:55 2002 UTC
# Line 198  enum stype {                   /*  symbol type  */ Line 198  enum stype {                   /*  symbol type  */
198  #define sLnil Cnil  #define sLnil Cnil
199  #define sLt Ct  #define sLt Ct
200    
201  #define NOT_SPECIAL             ((int (*)())Cnil)  #define NOT_SPECIAL             ((void (*)())Cnil)
202  #define s_fillp         st_fillp  #define s_fillp         st_fillp
203  #define s_self          st_self  #define s_self          st_self
204    
205  struct symbol {  struct symbol {
206                  FIRSTWORD;                  FIRSTWORD;
207          object  s_dbind;        /*  dynamic binding  */          object  s_dbind;        /*  dynamic binding  */
208          int     (*s_sfdef)();   /*  special form definition  */          void    (*s_sfdef)();   /*  special form definition  */
209                                  /*  This field coincides with c_car  */                                  /*  This field coincides with c_car  */
210          char    *s_self;        /*  print name  */          char    *s_self;        /*  print name  */
211                                  /*  These fields coincide with  */                                  /*  These fields coincide with  */
# Line 594  struct pathname { Line 594  struct pathname {
594  struct cfun {                   /*  compiled function header  */  struct cfun {                   /*  compiled function header  */
595                  FIRSTWORD;                  FIRSTWORD;
596          object  cf_name;        /*  compiled function name  */          object  cf_name;        /*  compiled function name  */
597          int     (*cf_self)();   /*  entry address  */          void    (*cf_self)();   /*  entry address  */
598          object  cf_data;        /*  data the function uses  */          object  cf_data;        /*  data the function uses  */
599                                  /*  for GBC  */                                  /*  for GBC  */
600  };  };
# Line 602  struct cfun {                  /*  compiled function he Line 602  struct cfun {                  /*  compiled function he
602  struct cclosure {               /*  compiled closure header  */  struct cclosure {               /*  compiled closure header  */
603                  FIRSTWORD;                  FIRSTWORD;
604          object  cc_name;        /*  compiled closure name  */          object  cc_name;        /*  compiled closure name  */
605          int     (*cc_self)();   /*  entry address  */          void    (*cc_self)();   /*  entry address  */
606          object  cc_env;         /*  environment  */          object  cc_env;         /*  environment  */
607          object  cc_data;        /*  data the closure uses  */          object  cc_data;        /*  data the closure uses  */
608                                  /*  for GBC  */                                  /*  for GBC  */
# Line 613  struct cclosure {              /*  compiled closure Line 613  struct cclosure {              /*  compiled closure
613  struct closure {  struct closure {
614          FIRSTWORD;          FIRSTWORD;
615          object  cl_name;       /* name */          object  cl_name;       /* name */
616          int     (*cl_self)();  /* C start address of code */          object  (*cl_self)();  /* C start address of code */
617          object  cl_data;       /* To object holding VV vector */          object  cl_data;       /* To object holding VV vector */
618          int cl_argd;           /* description of args + number */          int cl_argd;           /* description of args + number */
619          int cl_envdim;         /* length of the environment vector */          int cl_envdim;         /* length of the environment vector */
# Line 623  struct closure { Line 623  struct closure {
623  struct sfun {  struct sfun {
624                  FIRSTWORD;                  FIRSTWORD;
625          object  sfn_name;       /* name */          object  sfn_name;       /* name */
626          int     (*sfn_self)();  /* C start address of code */          object  (*sfn_self)();  /* C start address of code */
627          object  sfn_data;       /* To object holding VV vector */          object  sfn_data;       /* To object holding VV vector */
628          int sfn_argd;           /* description of args + number */          int sfn_argd;           /* description of args + number */
629    
# Line 632  struct sfun { Line 632  struct sfun {
632  struct vfun {  struct vfun {
633                  FIRSTWORD;                  FIRSTWORD;
634          object  vfn_name;       /* name */          object  vfn_name;       /* name */
635          int     (*vfn_self)();  /* C start address of code */          object  (*vfn_self)();  /* C start address of code */
636          object  vfn_data;       /* To object holding VV data */          object  vfn_data;       /* To object holding VV data */
637          unsigned short vfn_minargs; /* Min args and where varargs start */          unsigned short vfn_minargs; /* Min args and where varargs start */
638          unsigned short vfn_maxargs;    /* Max number of args */          unsigned short vfn_maxargs;    /* Max number of args */
# Line 904  EXTER object MVloc[10]; Line 904  EXTER object MVloc[10];
904   object Xxvl[65]; \   object Xxvl[65]; \
905   {int i; \   {int i; \
906    new=Xxvl; \    new=Xxvl; \
907    if (n >= 65) FEerror("Too plong vl"); \    if (n >= 65) FEerror("Too plong vl",0); \
908    for (i=0 ; i < (n); i++) new[i]=va_arg(vl,object);}    for (i=0 ; i < (n); i++) new[i]=va_arg(vl,object);}
909  #endif  #endif
910  #define make_si_vfun(s,f,min,max) \  #define make_si_vfun(s,f,min,max) \
# Line 922  struct call_data { object fun; Line 922  struct call_data { object fun;
922  EXTER struct call_data fcall;  EXTER struct call_data fcall;
923    
924  #define  VFUN_NARGS fcall.argd  #define  VFUN_NARGS fcall.argd
925  #define RETURN2(x,y) do{object _x = (void *) x; \  #define RETURN2(x,y) do{/*  object _x = (void *) x;  */\
926                            fcall.values[2]=y;fcall.nvalues=2; \                            fcall.values[2]=y;fcall.nvalues=2; \
927                            return (x) ;} while(0)                            return (x) ;} while(0)
928  #define RETURN1(x) do{fcall.nvalues=1; return (x) ;} while(0)  #define RETURN1(x) do{fcall.nvalues=1; return (x) ;} while(0)

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26