101 |
|
|
102 |
|
|
103 |
|
|
104 |
|
/* {Promises} |
105 |
|
*/ |
106 |
|
|
107 |
|
#define SCM_F_PROMISE_COMPUTED (1L << 16) |
108 |
|
#define SCM_PROMISE_COMPUTED_P(promise) \ |
109 |
|
(SCM_F_PROMISE_COMPUTED & SCM_CELL_WORD_0 (promise)) |
110 |
|
#define SCM_SET_PROMISE_COMPUTED(promise) \ |
111 |
|
SCM_SET_CELL_WORD_0 (promise, scm_tc16_promise | SCM_F_PROMISE_COMPUTED) |
112 |
|
#define SCM_PROMISE_MUTEX(promise) \ |
113 |
|
((scm_t_rec_mutex *) SCM_CELL_WORD_2 (promise)) |
114 |
|
#define SCM_PROMISE_DATA SCM_CELL_OBJECT_1 |
115 |
|
#define SCM_SET_PROMISE_DATA SCM_SET_CELL_OBJECT_1 |
116 |
|
SCM_API scm_t_bits scm_tc16_promise; |
117 |
|
|
118 |
|
|
119 |
|
|
120 |
/* {Evaluator} |
/* {Evaluator} |
121 |
* |
* |
219 |
SCM_API SCM scm_m_do (SCM xorig, SCM env); |
SCM_API SCM scm_m_do (SCM xorig, SCM env); |
220 |
SCM_API SCM scm_m_quasiquote (SCM xorig, SCM env); |
SCM_API SCM scm_m_quasiquote (SCM xorig, SCM env); |
221 |
SCM_API SCM scm_m_delay (SCM xorig, SCM env); |
SCM_API SCM scm_m_delay (SCM xorig, SCM env); |
222 |
|
SCM_API SCM scm_m_future (SCM xorig, SCM env); |
223 |
SCM_API SCM scm_m_define (SCM x, SCM env); |
SCM_API SCM scm_m_define (SCM x, SCM env); |
224 |
SCM_API SCM scm_m_letrec (SCM xorig, SCM env); |
SCM_API SCM scm_m_letrec (SCM xorig, SCM env); |
225 |
SCM_API SCM scm_m_let (SCM xorig, SCM env); |
SCM_API SCM scm_m_let (SCM xorig, SCM env); |