core: Remove cell_call_with_current_continuation special.

* include/mes/symbols.h (cell_call_with_current_continuation): Remove.
* src/eval-apply.c (eval_apply): Update to use
cell_symbol_call_with_current_continuation.
* src/symbol.c (init_symbols_): Remove inititialization.
This commit is contained in:
Jan (janneke) Nieuwenhuizen 2020-08-18 11:06:15 +02:00
parent c6fd15469c
commit 020cb3661d
No known key found for this signature in database
GPG key ID: F3C1A0D9C1D65273
3 changed files with 16 additions and 16 deletions

View file

@ -30,7 +30,7 @@ SCM cell_undefined;
SCM cell_unspecified; SCM cell_unspecified;
SCM cell_closure; SCM cell_closure;
SCM cell_circular; SCM cell_circular;
SCM cell_call_with_current_continuation;
SCM cell_vm_apply; SCM cell_vm_apply;
SCM cell_vm_apply2; SCM cell_vm_apply2;
SCM cell_vm_begin; SCM cell_vm_begin;
@ -42,7 +42,6 @@ SCM cell_vm_begin_expand_primitive_load;
SCM cell_vm_begin_primitive_load; SCM cell_vm_begin_primitive_load;
SCM cell_vm_begin_read_input_file; SCM cell_vm_begin_read_input_file;
SCM cell_vm_call_with_current_continuation2; SCM cell_vm_call_with_current_continuation2;
SCM cell_vm_call_with_values2; SCM cell_vm_call_with_values2;
SCM cell_vm_eval; SCM cell_vm_eval;
SCM cell_vm_eval2; SCM cell_vm_eval2;
@ -138,14 +137,14 @@ SCM cell_type_broken_heart;
SCM cell_symbol_program; SCM cell_symbol_program;
SCM cell_symbol_test; SCM cell_symbol_test;
// CONSTANT SYMBOL_MAX 115 // CONSTANT SYMBOL_MAX 114
#define SYMBOL_MAX 115 #define SYMBOL_MAX 114
// CONSTANT CELL_UNSPECIFIED 7 // CONSTANT CELL_UNSPECIFIED 7
#define CELL_UNSPECIFIED 7 #define CELL_UNSPECIFIED 7
// CONSTANT CELL_SYMBOL_RECORD_TYPE 83 // CONSTANT CELL_SYMBOL_RECORD_TYPE 82
#define CELL_SYMBOL_RECORD_TYPE 83 #define CELL_SYMBOL_RECORD_TYPE 82
#endif /* __MES_SYMBOLS_H */ #endif /* __MES_SYMBOLS_H */

View file

@ -520,27 +520,28 @@ apply:
push_cc (cons (CADR (R1), cell_nil), R1, CADDR (R1), cell_vm_return); push_cc (cons (CADR (R1), cell_nil), R1, CADDR (R1), cell_vm_return);
goto begin_expand; goto begin_expand;
} }
else if (c == cell_call_with_current_continuation)
{
R1 = CDR (R1);
goto call_with_current_continuation;
}
else else
check_apply (cell_f, CAR (R1)); check_apply (cell_f, CAR (R1));
} }
else if (t == TSYMBOL) else if (t == TSYMBOL)
{ {
if (CAR (R1) == cell_symbol_call_with_values) c = CAR (R1);
if (c == cell_symbol_call_with_current_continuation)
{
R1 = CDR (R1);
goto call_with_current_continuation;
}
if (c == cell_symbol_call_with_values)
{ {
R1 = CDR (R1); R1 = CDR (R1);
goto call_with_values; goto call_with_values;
} }
if (CAR (R1) == cell_symbol_current_module) if (c == cell_symbol_current_module)
{ {
R1 = R0; R1 = R0;
goto vm_return; goto vm_return;
} }
if (CAR (R1) == cell_symbol_boot_module) if (c == cell_symbol_boot_module)
{ {
R1 = M0; R1 = M0;
goto vm_return; goto vm_return;
@ -724,6 +725,8 @@ eval:
goto vm_return; goto vm_return;
if (R1 == cell_symbol_begin) if (R1 == cell_symbol_begin)
goto vm_return; goto vm_return;
if (R1 == cell_symbol_call_with_current_continuation)
goto vm_return;
R1 = assert_defined (R1, module_ref (R0, R1)); R1 = assert_defined (R1, module_ref (R0, R1));
goto vm_return; goto vm_return;
} }

View file

@ -70,7 +70,6 @@ init_symbols_ () /*:((internal)) */
cell_unspecified = init_symbol (g_symbol, TSPECIAL, "*unspecified*"); cell_unspecified = init_symbol (g_symbol, TSPECIAL, "*unspecified*");
cell_closure = init_symbol (g_symbol, TSPECIAL, "*closure*"); cell_closure = init_symbol (g_symbol, TSPECIAL, "*closure*");
cell_circular = init_symbol (g_symbol, TSPECIAL, "*circular*"); cell_circular = init_symbol (g_symbol, TSPECIAL, "*circular*");
cell_call_with_current_continuation = init_symbol (g_symbol, TSPECIAL, "*call/cc*");
cell_vm_apply = init_symbol (g_symbol, TSPECIAL, "core:apply"); cell_vm_apply = init_symbol (g_symbol, TSPECIAL, "core:apply");
cell_vm_apply2 = init_symbol (g_symbol, TSPECIAL, "*vm-apply2*"); cell_vm_apply2 = init_symbol (g_symbol, TSPECIAL, "*vm-apply2*");
@ -203,7 +202,6 @@ init_symbols () /*:((internal)) */
a = acons (cell_symbol_call_with_values, cell_symbol_call_with_values, a); a = acons (cell_symbol_call_with_values, cell_symbol_call_with_values, a);
a = acons (cell_symbol_boot_module, cell_symbol_boot_module, a); a = acons (cell_symbol_boot_module, cell_symbol_boot_module, a);
a = acons (cell_symbol_current_module, cell_symbol_current_module, a); a = acons (cell_symbol_current_module, cell_symbol_current_module, a);
a = acons (cell_symbol_call_with_current_continuation, cell_call_with_current_continuation, a);
a = acons (cell_symbol_mes_version, make_string0 (MES_VERSION), a); a = acons (cell_symbol_mes_version, make_string0 (MES_VERSION), a);
a = acons (cell_symbol_mes_datadir, make_string0 (g_datadir), a); a = acons (cell_symbol_mes_datadir, make_string0 (g_datadir), a);