… | |
… | |
2820 | { |
2820 | { |
2821 | pointer new_frame; |
2821 | pointer new_frame; |
2822 | |
2822 | |
2823 | /* The interaction-environment has about 300 variables in it. */ |
2823 | /* The interaction-environment has about 300 variables in it. */ |
2824 | if (old_env == NIL) |
2824 | if (old_env == NIL) |
2825 | new_frame = mk_vector (SCHEME_A_ 461); |
2825 | new_frame = mk_vector (SCHEME_A_ 29); // was 461 |
2826 | else |
2826 | else |
2827 | new_frame = NIL; |
2827 | new_frame = NIL; |
2828 | |
2828 | |
2829 | SCHEME_V->envir = immutable_cons (new_frame, old_env); |
2829 | SCHEME_V->envir = immutable_cons (new_frame, old_env); |
2830 | setenvironment (SCHEME_V->envir); |
2830 | setenvironment (SCHEME_V->envir); |
… | |
… | |
3610 | case OP_QUOTE: /* quote */ |
3610 | case OP_QUOTE: /* quote */ |
3611 | stream_put_tv (s, BOP_DATUM, cell_id (SCHEME_A_ x)); |
3611 | stream_put_tv (s, BOP_DATUM, cell_id (SCHEME_A_ x)); |
3612 | break; |
3612 | break; |
3613 | |
3613 | |
3614 | case OP_DELAY: /* delay */ |
3614 | case OP_DELAY: /* delay */ |
|
|
3615 | stream_put (s, BOP_DELAY); |
|
|
3616 | compile_expr (SCHEME_A_ s, x); |
|
|
3617 | break; |
|
|
3618 | |
3615 | case OP_LAMBDA: /* lambda */ |
3619 | case OP_LAMBDA: /* lambda */ |
3616 | { |
3620 | { |
3617 | pointer formals = car (x); |
3621 | pointer formals = car (x); |
3618 | pointer body = cadr (x); |
3622 | pointer body = cadr (x); |
3619 | |
3623 | |
3620 | stream_put (s, syn == OP_LAMBDA ? BOP_LAMBDA : BOP_DELAY); |
3624 | stream_put (s, BOP_LAMBDA); |
3621 | |
3625 | |
3622 | for (; is_pair (formals); formals = cdr (formals)) |
3626 | for (; is_pair (formals); formals = cdr (formals)) |
3623 | stream_put_v (s, symbol_id (SCHEME_A_ car (formals))); |
3627 | stream_put_v (s, symbol_id (SCHEME_A_ car (formals))); |
3624 | |
3628 | |
3625 | stream_put_v (s, 0); |
3629 | stream_put_v (s, 0); |