/[guile]/guile/guile-core/libguile/eval.c
ViewVC logotype

Diff of /guile/guile-core/libguile/eval.c

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

revision 1.314 by dirk, Mon Jun 2 20:54:21 2003 UTC revision 1.315 by dirk, Wed Jun 4 05:28:34 2003 UTC
# Line 85  char *alloca (); Line 85  char *alloca ();
85    
86    
87    
88    /* {Ilocs}
89     *
90     * Ilocs are memoized references to variables in local environment frames.
91     * They are represented as three values:  The relative offset of the
92     * environment frame, the number of the binding within that frame, and a
93     * boolean value indicating whether the binding is the last binding in the
94     * frame.
95     */
96    #define SCM_ILOC00              SCM_MAKE_ITAG8(0L, scm_tc8_iloc)
97    #define SCM_IDINC               (0x00100000L)
98    #define SCM_IDSTMSK             (-SCM_IDINC)
99    #define SCM_MAKE_ILOC(frame_nr, binding_nr, last_p) \
100      SCM_PACK ( \
101        ((frame_nr) << 8) \
102        + ((binding_nr) << 20) \
103        + ((last_p) ? SCM_ICDR : 0) \
104        + scm_tc8_iloc )
105    
106    #if (SCM_DEBUG_DEBUGGING_SUPPORT == 1)
107    
108    SCM scm_dbg_make_iloc (SCM frame, SCM binding, SCM cdrp);
109    SCM_DEFINE (scm_dbg_make_iloc, "dbg-make-iloc", 3, 0, 0,
110                (SCM frame, SCM binding, SCM cdrp),
111                "Return a new iloc with frame offset @var{frame}, binding\n"
112                "offset @var{binding} and the cdr flag @var{cdrp}.")
113    #define FUNC_NAME s_scm_dbg_make_iloc
114    {
115      SCM_VALIDATE_INUM (1, frame);
116      SCM_VALIDATE_INUM (2, binding);
117      return SCM_MAKE_ILOC (SCM_INUM (frame),
118                            SCM_INUM (binding),
119                            !SCM_FALSEP (cdrp));
120    }
121    #undef FUNC_NAME
122    
123    SCM scm_dbg_iloc_p (SCM obj);
124    SCM_DEFINE (scm_dbg_iloc_p, "dbg-iloc?", 1, 0, 0,
125              (SCM obj),
126                "Return @code{#t} if @var{obj} is an iloc.")
127    #define FUNC_NAME s_scm_dbg_iloc_p
128    {
129      return SCM_BOOL (SCM_ILOCP (obj));
130    }
131    #undef FUNC_NAME
132    
133    #endif
134    
135    
136    
137  #define SCM_VALIDATE_NON_EMPTY_COMBINATION(x) \  #define SCM_VALIDATE_NON_EMPTY_COMBINATION(x) \
138    do { \    do { \
139      if (SCM_EQ_P ((x), SCM_EOL)) \      if (SCM_EQ_P ((x), SCM_EOL)) \

Legend:
Removed from v.1.314  
changed lines
  Added in v.1.315

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