123 |
#define FUNC_NAME s_scm_with_traps |
#define FUNC_NAME s_scm_with_traps |
124 |
{ |
{ |
125 |
int trap_flag; |
int trap_flag; |
126 |
SCM_VALIDATE_THUNK (1,thunk); |
SCM_VALIDATE_THUNK (1, thunk); |
127 |
return scm_internal_dynamic_wind (with_traps_before, |
return scm_internal_dynamic_wind (with_traps_before, |
128 |
with_traps_inner, |
with_traps_inner, |
129 |
with_traps_after, |
with_traps_after, |
243 |
"offset @var{binding} and the cdr flag @var{cdrp}.") |
"offset @var{binding} and the cdr flag @var{cdrp}.") |
244 |
#define FUNC_NAME s_scm_make_iloc |
#define FUNC_NAME s_scm_make_iloc |
245 |
{ |
{ |
246 |
SCM_VALIDATE_INUM (1,frame); |
SCM_VALIDATE_INUM (1, frame); |
247 |
SCM_VALIDATE_INUM (2,binding); |
SCM_VALIDATE_INUM (2, binding); |
248 |
return SCM_PACK (SCM_UNPACK (SCM_ILOC00) |
return SCM_PACK (SCM_UNPACK (SCM_ILOC00) |
249 |
+ SCM_IFRINC * SCM_INUM (frame) |
+ SCM_IFRINC * SCM_INUM (frame) |
250 |
+ (!SCM_FALSEP (cdrp) ? SCM_ICDR : 0) |
+ (!SCM_FALSEP (cdrp) ? SCM_ICDR : 0) |
289 |
if (SCM_UNBNDP (env)) |
if (SCM_UNBNDP (env)) |
290 |
env = scm_top_level_env (SCM_TOP_LEVEL_LOOKUP_CLOSURE); |
env = scm_top_level_env (SCM_TOP_LEVEL_LOOKUP_CLOSURE); |
291 |
else |
else |
292 |
SCM_VALIDATE_NULLORCONS (3,env); |
SCM_VALIDATE_NULLORCONS (3, env); |
293 |
return scm_make_memoized (scm_cons (car, cdr), env); |
return scm_make_memoized (scm_cons (car, cdr), env); |
294 |
} |
} |
295 |
#undef FUNC_NAME |
#undef FUNC_NAME |
301 |
#define FUNC_NAME s_scm_mem_to_proc |
#define FUNC_NAME s_scm_mem_to_proc |
302 |
{ |
{ |
303 |
SCM env; |
SCM env; |
304 |
SCM_VALIDATE_MEMOIZED (1,obj); |
SCM_VALIDATE_MEMOIZED (1, obj); |
305 |
env = SCM_MEMOIZED_ENV (obj); |
env = SCM_MEMOIZED_ENV (obj); |
306 |
obj = SCM_MEMOIZED_EXP (obj); |
obj = SCM_MEMOIZED_EXP (obj); |
307 |
if (!SCM_CONSP (obj) || !SCM_EQ_P (SCM_CAR (obj), SCM_IM_LAMBDA)) |
if (!SCM_CONSP (obj) || !SCM_EQ_P (SCM_CAR (obj), SCM_IM_LAMBDA)) |
328 |
"Unmemoize the memoized expression @var{m},") |
"Unmemoize the memoized expression @var{m},") |
329 |
#define FUNC_NAME s_scm_unmemoize |
#define FUNC_NAME s_scm_unmemoize |
330 |
{ |
{ |
331 |
SCM_VALIDATE_MEMOIZED (1,m); |
SCM_VALIDATE_MEMOIZED (1, m); |
332 |
return scm_unmemocopy (SCM_MEMOIZED_EXP (m), SCM_MEMOIZED_ENV (m)); |
return scm_unmemocopy (SCM_MEMOIZED_EXP (m), SCM_MEMOIZED_ENV (m)); |
333 |
} |
} |
334 |
#undef FUNC_NAME |
#undef FUNC_NAME |
338 |
"Return the environment of the memoized expression @var{m}.") |
"Return the environment of the memoized expression @var{m}.") |
339 |
#define FUNC_NAME s_scm_memoized_environment |
#define FUNC_NAME s_scm_memoized_environment |
340 |
{ |
{ |
341 |
SCM_VALIDATE_MEMOIZED (1,m); |
SCM_VALIDATE_MEMOIZED (1, m); |
342 |
return SCM_MEMOIZED_ENV (m); |
return SCM_MEMOIZED_ENV (m); |
343 |
} |
} |
344 |
#undef FUNC_NAME |
#undef FUNC_NAME |
348 |
"Return the name of the procedure @var{proc}") |
"Return the name of the procedure @var{proc}") |
349 |
#define FUNC_NAME s_scm_procedure_name |
#define FUNC_NAME s_scm_procedure_name |
350 |
{ |
{ |
351 |
SCM_VALIDATE_PROC (1,proc); |
SCM_VALIDATE_PROC (1, proc); |
352 |
switch (SCM_TYP7 (proc)) { |
switch (SCM_TYP7 (proc)) { |
353 |
case scm_tcs_subrs: |
case scm_tcs_subrs: |
354 |
return SCM_SNAME (proc); |
return SCM_SNAME (proc); |
374 |
"Return the source of the procedure @var{proc}.") |
"Return the source of the procedure @var{proc}.") |
375 |
#define FUNC_NAME s_scm_procedure_source |
#define FUNC_NAME s_scm_procedure_source |
376 |
{ |
{ |
377 |
SCM_VALIDATE_NIM (1,proc); |
SCM_VALIDATE_NIM (1, proc); |
378 |
switch (SCM_TYP7 (proc)) { |
switch (SCM_TYP7 (proc)) { |
379 |
case scm_tcs_closures: |
case scm_tcs_closures: |
380 |
{ |
{ |
407 |
"Return the environment of the procedure @var{proc}.") |
"Return the environment of the procedure @var{proc}.") |
408 |
#define FUNC_NAME s_scm_procedure_environment |
#define FUNC_NAME s_scm_procedure_environment |
409 |
{ |
{ |
410 |
SCM_VALIDATE_NIM (1,proc); |
SCM_VALIDATE_NIM (1, proc); |
411 |
switch (SCM_TYP7 (proc)) { |
switch (SCM_TYP7 (proc)) { |
412 |
case scm_tcs_closures: |
case scm_tcs_closures: |
413 |
return SCM_ENV (proc); |
return SCM_ENV (proc); |