diff --git a/include/cyclone/runtime.h b/include/cyclone/runtime.h index ab5083fc..b79735dd 100644 --- a/include/cyclone/runtime.h +++ b/include/cyclone/runtime.h @@ -263,11 +263,7 @@ object Cyc_num_op_va_list(void *data, int argc, int default_no_args, int default_one_arg, object n, va_list ns, common_type * buf); int equal(object, object); -list assq(void *, object, list); -list assoc(void *, object x, list l); object equalp(object, object); -object memberp(void *, object, list); -object memqp(void *, object, list); object Cyc_spawn_thread(object thunk); void Cyc_start_trampoline(gc_thread_data * thd); @@ -332,12 +328,6 @@ extern const object primitive_cell; extern const object primitive_eq_127; extern const object primitive_eqv_127; extern const object primitive_equal_127; -extern const object primitive_assoc; -extern const object primitive_assq; -extern const object primitive_assv; -extern const object primitive_member; -extern const object primitive_memq; -extern const object primitive_memv; extern const object primitive_length; extern const object primitive_vector_91length; extern const object primitive_bytevector_91length; diff --git a/runtime.c b/runtime.c index 5f1ea759..f999726f 100644 --- a/runtime.c +++ b/runtime.c @@ -951,27 +951,6 @@ object Cyc_heap_alloc_port(void *data, port_type *stack_p) return p; } -// TODO: should not be a predicate, may end up moving these to Scheme code -object memberp(void *data, object x, list l) -{ - Cyc_check_pair_or_null(data, l); - for (; l != NULL; l = cdr(l)) { - if (boolean_f != equalp(x, car(l))) - return boolean_t; - } - return boolean_f; -} - -object memqp(void *data, object x, list l) -{ - Cyc_check_pair_or_null(data, l); - for (; l != NULL; l = cdr(l)) { - if ((x == car(l))) - return boolean_t; - } - return boolean_f; -} - /** * Check two objects for deep equality */ @@ -1033,32 +1012,6 @@ object equalp(object x, object y) } } -list assq(void *data, object x, list l) -{ - if ((l == NULL) || is_value_type(l) || type_of(l) != pair_tag) - return boolean_f; - for (; (l != NULL); l = cdr(l)) { - list la = car(l); - Cyc_check_pair(data, la); - if ((x == car(la))) - return la; - } - return boolean_f; -} - -list assoc(void *data, object x, list l) -{ - if ((l == NULL) || is_value_type(l) || type_of(l) != pair_tag) - return boolean_f; - for (; (l != NULL); l = cdr(l)) { - list la = car(l); - Cyc_check_pair(data, la); - if (boolean_f != equalp(x, car(la))) - return la; - } - return boolean_f; -} - object Cyc_num_cmp_va_list(void *data, int argc, int (fn_op(void *, object, object)), object n, va_list ns) @@ -3178,42 +3131,6 @@ void _apply(void *data, object cont, object args) dispatch(data, obj_obj2int(argc), (function_type)dispatch_apply_va, cont, cont, args); } -void _assoc(void *data, object cont, object args) -{ - Cyc_check_num_args(data, "assoc ", 2, args); - return_closcall1(data, cont, assoc(data, car(args), cadr(args))); -} - -void _assq(void *data, object cont, object args) -{ - Cyc_check_num_args(data, "assq ", 2, args); - return_closcall1(data, cont, assq(data, car(args), cadr(args))); -} - -void _assv(void *data, object cont, object args) -{ - Cyc_check_num_args(data, "assv ", 2, args); - return_closcall1(data, cont, assq(data, car(args), cadr(args))); -} - -void _member(void *data, object cont, object args) -{ - Cyc_check_num_args(data, "member", 2, args); - return_closcall1(data, cont, memberp(data, car(args), cadr(args))); -} - -void _memq(void *data, object cont, object args) -{ - Cyc_check_num_args(data, "memq", 2, args); - return_closcall1(data, cont, memqp(data, car(args), cadr(args))); -} - -void _memv(void *data, object cont, object args) -{ - Cyc_check_num_args(data, "memv", 2, args); - return_closcall1(data, cont, memqp(data, car(args), cadr(args))); -} - void _char_91_125integer(void *data, object cont, object args) { Cyc_check_num_args(data, "char->integer", 1, args); @@ -4120,14 +4037,6 @@ static primitive_type eqv_127_primitive = { {0}, primitive_tag, "eqv?", &_eqv_127 }; static primitive_type equal_127_primitive = { {0}, primitive_tag, "equal?", &_equal_127 }; -static primitive_type assoc_primitive = - { {0}, primitive_tag, "assoc", &_assoc }; -static primitive_type assq_primitive = { {0}, primitive_tag, "assq", &_assq }; -static primitive_type assv_primitive = { {0}, primitive_tag, "assv", &_assv }; -static primitive_type member_primitive = - { {0}, primitive_tag, "member", &_member }; -static primitive_type memq_primitive = { {0}, primitive_tag, "memq", &_memq }; -static primitive_type memv_primitive = { {0}, primitive_tag, "memv", &_memv }; static primitive_type length_primitive = { {0}, primitive_tag, "length", &_length }; static primitive_type bytevector_91length_primitive = @@ -4351,12 +4260,6 @@ const object primitive_cell = &cell_primitive; const object primitive_eq_127 = &eq_127_primitive; const object primitive_eqv_127 = &eqv_127_primitive; const object primitive_equal_127 = &equal_127_primitive; -const object primitive_assoc = &assoc_primitive; -const object primitive_assq = &assq_primitive; -const object primitive_assv = &assv_primitive; -const object primitive_member = &member_primitive; -const object primitive_memq = &memq_primitive; -const object primitive_memv = &memv_primitive; const object primitive_length = &length_primitive; const object primitive_bytevector_91length = &bytevector_91length_primitive; const object primitive_vector_91length = &vector_91length_primitive; diff --git a/scheme/cyclone/primitives.sld b/scheme/cyclone/primitives.sld index 71dfacaa..a6f89224 100644 --- a/scheme/cyclone/primitives.sld +++ b/scheme/cyclone/primitives.sld @@ -491,12 +491,6 @@ ((eq? p 'Cyc-compilation-environment) "Cyc_compilation_environment") ((eq? p 'command-line-arguments) "Cyc_command_line_arguments") ((eq? p 'system) "Cyc_system") - ;((eq? p 'assq) "assq") - ;((eq? p 'assv) "assq") - ;((eq? p 'assoc) "assoc") - ;((eq? p 'memq) "memqp") - ;((eq? p 'memv) "memqp") - ;((eq? p 'member) "memberp") ((eq? p 'length) "Cyc_length") ((eq? p 'set-car!) "Cyc_set_car") ((eq? p 'set-cdr!) "Cyc_set_cdr")