diff options
-rw-r--r-- | eval.c | 46 | ||||
-rw-r--r-- | lisplib.c | 3 | ||||
-rw-r--r-- | protsym.c | 286 | ||||
-rw-r--r-- | share/txr/stdlib/op.tl | 18 |
4 files changed, 165 insertions, 188 deletions
@@ -94,8 +94,7 @@ val uw_protect_s, return_s, return_from_s, sys_abscond_from_s, block_star_s; val list_s, list_star_s, append_s, apply_s, sys_apply_s, iapply_s; val gen_s, gun_s, generate_s, rest_s, plus_s; val promise_s, promise_forced_s, promise_inprogress_s, force_s; -val op_s, ap_s, identity_s, apf_s, ipf_s; -val ret_s, aret_s; +val op_s, identity_s; val hash_lit_s, hash_construct_s, struct_lit_s, qref_s, uref_s; val vector_lit_s, vec_list_s; val macro_time_s, macrolet_s; @@ -3783,34 +3782,6 @@ static val me_op(val form, val menv) } } -static val me_ap(val form, val menv) -{ - return list(apf_s, cons(op_s, rest(form)), nao); -} - -static val me_ip(val form, val menv) -{ - return list(ipf_s, cons(op_s, rest(form)), nao); -} - -static val me_ado(val form, val menv) -{ - return list(apf_s, cons(do_s, rest(form)), nao); -} - -static val me_ido(val form, val menv) -{ - return list(ipf_s, cons(do_s, rest(form)), nao); -} - -static val me_ret_aret(val form, val menv) -{ - val sym = if3(eq(car(form), ret_s), op_s, ap_s); - return list(sym, identity_s, cons(progn_s, - cons(list(var_s, rest_s, nao), - rest(form))), nao); -} - static val me_flet_labels(val form, val menv) { val body = form; @@ -6100,12 +6071,7 @@ void eval_init(void) promise_inprogress_s = intern(lit("promise-inprogress"), system_package); force_s = intern(lit("force"), user_package); op_s = intern(lit("op"), user_package); - ap_s = intern(lit("ap"), user_package); do_s = intern(lit("do"), user_package); - apf_s = intern(lit("apf"), user_package); - ipf_s = intern(lit("ipf"), user_package); - ret_s = intern(lit("ret"), user_package); - aret_s = intern(lit("aret"), user_package); identity_s = intern(lit("identity"), user_package); rest_s = intern(lit("rest"), user_package); hash_lit_s = intern(lit("hash-lit"), system_package); @@ -6212,12 +6178,6 @@ void eval_init(void) } reg_mac(sys_l1_val_s, func_n2(me_l1_val)); reg_mac(sys_l1_setq_s, func_n2(me_l1_setq)); - reg_mac(ap_s, func_n2(me_ap)); - reg_mac(intern(lit("ip"), user_package), func_n2(me_ip)); - reg_mac(intern(lit("ado"), user_package), func_n2(me_ado)); - reg_mac(intern(lit("ido"), user_package), func_n2(me_ido)); - reg_mac(ret_s, func_n2(me_ret_aret)); - reg_mac(aret_s, func_n2(me_ret_aret)); reg_mac(qquote_s, func_n2(me_qquote)); reg_mac(sys_qquote_s, func_n2(me_qquote)); reg_mac(intern(lit("equot"), user_package), func_n2(me_equot)); @@ -6538,8 +6498,8 @@ void eval_init(void) reg_fun(intern(lit("or"), user_package), func_n0v(or_fun)); reg_fun(intern(lit("and"), user_package), func_n0v(and_fun)); reg_fun(intern(lit("retf"), user_package), func_n1(retf)); - reg_fun(apf_s, func_n1(apf)); - reg_fun(ipf_s, func_n1(ipf)); + reg_fun(intern(lit("apf"), user_package), func_n1(apf)); + reg_fun(intern(lit("ipf"), user_package), func_n1(ipf)); reg_fun(intern(lit("callf"), user_package), func_n1v(callf)); reg_fun(intern(lit("mapf"), user_package), func_n1v(mapf)); reg_fun(intern(lit("tf"), user_package), func_n0v(tf)); @@ -718,7 +718,8 @@ static val compiler_set_entries(val dlt, val fun) static val op_set_entries(val dlt, val fun) { val name[] = { - lit("op"), lit("do"), lit("lop"), + lit("op"), lit("do"), lit("lop"), lit("ap"), lit("ip"), + lit("ado"), lit("ido"), lit("ret"), lit("aret"), nil }; set_dlt_entries(dlt, name, fun); @@ -32,78 +32,77 @@ #include "lib.h" extern val accept_s, addr_k, align_s, all_s, alloc_error_s; -extern val and_s, ap_s, apf_s, append_each_s, append_each_star_s; -extern val append_k, append_s, apply_s, aret_s, args_k; -extern val array_s, assert_s, atime_k, atime_s, atom_s; -extern val auto_k, bchar_s, be_double_s, be_float_s, be_int16_s; -extern val be_int32_s, be_int64_s, be_uint16_s, be_uint32_s, be_uint64_s; -extern val bignum_s, bind_s, bit_s, blksize_k, blksize_s; -extern val block_s, block_star_s, blocks_k, blocks_s, bool_s; -extern val bstr_d_s, bstr_s, buf_d_s, buf_s, byte_oriented_k; -extern val call_s, car_s, carray_s, caseq_s, caseq_star_s; -extern val caseql_s, caseql_star_s, casequal_s, casequal_star_s, cases_s; -extern val cat_s, catch_s, cdigit_k, cdr_s, chain_s; -extern val chand_s, char_s, chars_k, choose_s, chr_s; -extern val chset_s, circref_s, clear_error_s, close_s, closure_s; -extern val cobj_s, coll_s, collect_each_s, collect_each_star_s, collect_s; -extern val colon_k, compl_s, compound_s, cond_s, cons_s; -extern val continue_k, continue_s, counter_k, cptr_s, cset_s; -extern val cspace_k, ctime_k, ctime_s, cword_char_k, data_s; -extern val day_s, decline_k, defex_s, deffilter_s, define_s; -extern val defmacro_s, defparm_s, defparml_s, defr_warning_s, defsymacro_s; -extern val defun_s, defvar_s, defvarl_s, dev_k, dev_s; -extern val digit_k, do_s, dohash_s, double_s, downcase_k; -extern val dst_s, dvbind_s, dwim_s, each_op_s, each_s; -extern val each_star_s, elif_s, else_s, empty_s, enum_s; -extern val enumed_s, env_k, env_s, eof_s, eol_s; -extern val eq_s, eql_based_k, eql_s, equal_based_k, equal_s; -extern val error_s, eval_error_s, expr_s, fail_s, fbind_s; -extern val fd_k, ffi_call_desc_s, ffi_closure_s, ffi_type_s, file_error_s; -extern val fill_buf_s, filter_k, filter_s, filters_s, finally_s; -extern val finish_k, first_s, fixnum_s, flatten_s, flet_s; -extern val float_s, flush_s, for_op_s, for_s, for_star_s; -extern val force_s, forget_s, form_k, format_s, freeform_s; -extern val from_current_k, from_end_k, from_list_s, from_start_k, frombase64_k; -extern val fromhtml_k, frompercent_k, fromurl_k, fun_k, fun_s; -extern val fuzz_s, gap_k, gather_s, gen_s, generate_s; -extern val gensym_counter_s, get_byte_s, get_char_s, get_error_s, get_error_str_s; -extern val get_fd_s, get_line_s, get_prop_s, gid_k, gid_s; -extern val gmtoff_s, greedy_k, gun_s, handler_bind_s, hash_construct_s; -extern val hash_iter_s, hash_lit_s, hash_s, hash_seed_s, hextoint_k; -extern val hour_s, iapply_s, identity_s, if_s, iflet_s; -extern val in_package_s, inc_s, include_s, init_k, ino_k; -extern val ino_s, int16_s, int32_s, int64_s, int8_s; -extern val int_s, integer_s, internal_error_s, into_k, intr_s; -extern val ipf_s, keyword_package_s, labels_s, lambda_s, lambda_set_s; -extern val last_s, lbind_s, lcons_s, le_double_s, le_float_s; -extern val le_int16_s, le_int32_s, le_int64_s, le_uint16_s, le_uint32_s; -extern val le_uint64_s, length_s, let_s, let_star_s, lfilt_k; -extern val line_s, lines_k, list_k, list_s, list_star_s; -extern val listener_greedy_eval_s, listener_hist_len_s, listener_multi_line_p_s, listener_pprint_s, listener_sel_inclusive_p_s; -extern val lists_k, lit_s, load_path_s, load_recursive_s, load_s; -extern val load_time_lit_s, load_time_s, local_s, long_s, longest_k; -extern val lstr_s, mac_param_bind_s, macro_s, macro_time_s, macrolet_s; -extern val make_struct_lit_s, mandatory_k, maxgap_k, maxtimes_k, maybe_s; -extern val mdo_s, memq_s, memql_s, memqual_s, merge_s; -extern val meth_s, min_s, mingap_k, mintimes_k, mod_s; -extern val mode_k, mode_s, modlast_s, month_s, mtime_k; -extern val mtime_s, name_k, name_s, named_k, next_s; -extern val next_spec_k, nlink_k, nlink_s, none_s, nongreedy_s; -extern val not_s, nothrow_k, noval_s, null_s, nullify_s; -extern val number_s, numeric_error_s, oand_s, oneplus_s, op_s; -extern val opip_s, optional_s, or_s, output_s, package_alist_s; -extern val package_s, panic_s, parser_s, path_s, pkg_s; -extern val plus_s, postinit_k, pprint_flo_format_s, print_base_s, print_circle_s; -extern val print_flo_digits_s, print_flo_format_s, print_flo_precision_s, print_s, process_error_s; -extern val prof_s, prog1_s, progn_s, promise_forced_s, promise_inprogress_s; -extern val promise_s, ptr_in_d_s, ptr_in_s, ptr_out_d_s, ptr_out_s; -extern val ptr_out_s_s, ptr_s, put_buf_s, put_byte_s, put_char_s; -extern val put_string_s, qquote_s, qref_s, quasi_s, quasilist_s; -extern val query_error_s, quote_s, random_state_s, random_state_var_s, random_warmup_s; -extern val range_error_s, range_s, rcons_s, rdev_k, rdev_s; -extern val real_time_k, rebind_s, rec_source_loc_s, reflect_k, regex_s; -extern val rep_s, repeat_s, repeat_spec_k, require_s, resolve_k; -extern val rest_s, restart_s, ret_s, return_from_s, return_s; +extern val and_s, append_each_s, append_each_star_s, append_k, append_s; +extern val apply_s, args_k, array_s, assert_s, atime_k; +extern val atime_s, atom_s, auto_k, bchar_s, be_double_s; +extern val be_float_s, be_int16_s, be_int32_s, be_int64_s, be_uint16_s; +extern val be_uint32_s, be_uint64_s, bignum_s, bind_s, bit_s; +extern val blksize_k, blksize_s, block_s, block_star_s, blocks_k; +extern val blocks_s, bool_s, bstr_d_s, bstr_s, buf_d_s; +extern val buf_s, byte_oriented_k, call_s, car_s, carray_s; +extern val caseq_s, caseq_star_s, caseql_s, caseql_star_s, casequal_s; +extern val casequal_star_s, cases_s, cat_s, catch_s, cdigit_k; +extern val cdr_s, chain_s, chand_s, char_s, chars_k; +extern val choose_s, chr_s, chset_s, circref_s, clear_error_s; +extern val close_s, closure_s, cobj_s, coll_s, collect_each_s; +extern val collect_each_star_s, collect_s, colon_k, compl_s, compound_s; +extern val cond_s, cons_s, continue_k, continue_s, counter_k; +extern val cptr_s, cset_s, cspace_k, ctime_k, ctime_s; +extern val cword_char_k, data_s, day_s, decline_k, defex_s; +extern val deffilter_s, define_s, defmacro_s, defparm_s, defparml_s; +extern val defr_warning_s, defsymacro_s, defun_s, defvar_s, defvarl_s; +extern val dev_k, dev_s, digit_k, do_s, dohash_s; +extern val double_s, downcase_k, dst_s, dvbind_s, dwim_s; +extern val each_op_s, each_s, each_star_s, elif_s, else_s; +extern val empty_s, enum_s, enumed_s, env_k, env_s; +extern val eof_s, eol_s, eq_s, eql_based_k, eql_s; +extern val equal_based_k, equal_s, error_s, eval_error_s, expr_s; +extern val fail_s, fbind_s, fd_k, ffi_call_desc_s, ffi_closure_s; +extern val ffi_type_s, file_error_s, fill_buf_s, filter_k, filter_s; +extern val filters_s, finally_s, finish_k, first_s, fixnum_s; +extern val flatten_s, flet_s, float_s, flush_s, for_op_s; +extern val for_s, for_star_s, force_s, forget_s, form_k; +extern val format_s, freeform_s, from_current_k, from_end_k, from_list_s; +extern val from_start_k, frombase64_k, fromhtml_k, frompercent_k, fromurl_k; +extern val fun_k, fun_s, fuzz_s, gap_k, gather_s; +extern val gen_s, generate_s, gensym_counter_s, get_byte_s, get_char_s; +extern val get_error_s, get_error_str_s, get_fd_s, get_line_s, get_prop_s; +extern val gid_k, gid_s, gmtoff_s, greedy_k, gun_s; +extern val handler_bind_s, hash_construct_s, hash_iter_s, hash_lit_s, hash_s; +extern val hash_seed_s, hextoint_k, hour_s, iapply_s, identity_s; +extern val if_s, iflet_s, in_package_s, inc_s, include_s; +extern val init_k, ino_k, ino_s, int16_s, int32_s; +extern val int64_s, int8_s, int_s, integer_s, internal_error_s; +extern val into_k, intr_s, keyword_package_s, labels_s, lambda_s; +extern val lambda_set_s, last_s, lbind_s, lcons_s, le_double_s; +extern val le_float_s, le_int16_s, le_int32_s, le_int64_s, le_uint16_s; +extern val le_uint32_s, le_uint64_s, length_s, let_s, let_star_s; +extern val lfilt_k, line_s, lines_k, list_k, list_s; +extern val list_star_s, listener_greedy_eval_s, listener_hist_len_s, listener_multi_line_p_s, listener_pprint_s; +extern val listener_sel_inclusive_p_s, lists_k, lit_s, load_path_s, load_recursive_s; +extern val load_s, load_time_lit_s, load_time_s, local_s, long_s; +extern val longest_k, lstr_s, mac_param_bind_s, macro_s, macro_time_s; +extern val macrolet_s, make_struct_lit_s, mandatory_k, maxgap_k, maxtimes_k; +extern val maybe_s, mdo_s, memq_s, memql_s, memqual_s; +extern val merge_s, meth_s, min_s, mingap_k, mintimes_k; +extern val mod_s, mode_k, mode_s, modlast_s, month_s; +extern val mtime_k, mtime_s, name_k, name_s, named_k; +extern val next_s, next_spec_k, nlink_k, nlink_s, none_s; +extern val nongreedy_s, not_s, nothrow_k, noval_s, null_s; +extern val nullify_s, number_s, numeric_error_s, oand_s, oneplus_s; +extern val op_s, opip_s, optional_s, or_s, output_s; +extern val package_alist_s, package_s, panic_s, parser_s, path_s; +extern val pkg_s, plus_s, postinit_k, pprint_flo_format_s, print_base_s; +extern val print_circle_s, print_flo_digits_s, print_flo_format_s, print_flo_precision_s, print_s; +extern val process_error_s, prof_s, prog1_s, progn_s, promise_forced_s; +extern val promise_inprogress_s, promise_s, ptr_in_d_s, ptr_in_s, ptr_out_d_s; +extern val ptr_out_s, ptr_out_s_s, ptr_s, put_buf_s, put_byte_s; +extern val put_char_s, put_string_s, qquote_s, qref_s, quasi_s; +extern val quasilist_s, query_error_s, quote_s, random_state_s, random_state_var_s; +extern val random_warmup_s, range_error_s, range_s, rcons_s, rdev_k; +extern val rdev_s, real_time_k, rebind_s, rec_source_loc_s, reflect_k; +extern val regex_s, rep_s, repeat_s, repeat_spec_k, require_s; +extern val resolve_k, rest_s, restart_s, return_from_s, return_s; extern val rfilt_k, rplaca_s, rplacd_s, sbit_s, sec_s; extern val seek_s, sequence_s, set_prop_s, set_s, setq_s; extern val setqf_s, short_s, shortest_k, single_s, size_k; @@ -163,78 +162,77 @@ extern val utsname_s, version_s; val *protected_sym[] = { &accept_s, &addr_k, &align_s, &all_s, &alloc_error_s, - &and_s, &ap_s, &apf_s, &append_each_s, &append_each_star_s, - &append_k, &append_s, &apply_s, &aret_s, &args_k, - &array_s, &assert_s, &atime_k, &atime_s, &atom_s, - &auto_k, &bchar_s, &be_double_s, &be_float_s, &be_int16_s, - &be_int32_s, &be_int64_s, &be_uint16_s, &be_uint32_s, &be_uint64_s, - &bignum_s, &bind_s, &bit_s, &blksize_k, &blksize_s, - &block_s, &block_star_s, &blocks_k, &blocks_s, &bool_s, - &bstr_d_s, &bstr_s, &buf_d_s, &buf_s, &byte_oriented_k, - &call_s, &car_s, &carray_s, &caseq_s, &caseq_star_s, - &caseql_s, &caseql_star_s, &casequal_s, &casequal_star_s, &cases_s, - &cat_s, &catch_s, &cdigit_k, &cdr_s, &chain_s, - &chand_s, &char_s, &chars_k, &choose_s, &chr_s, - &chset_s, &circref_s, &clear_error_s, &close_s, &closure_s, - &cobj_s, &coll_s, &collect_each_s, &collect_each_star_s, &collect_s, - &colon_k, &compl_s, &compound_s, &cond_s, &cons_s, - &continue_k, &continue_s, &counter_k, &cptr_s, &cset_s, - &cspace_k, &ctime_k, &ctime_s, &cword_char_k, &data_s, - &day_s, &decline_k, &defex_s, &deffilter_s, &define_s, - &defmacro_s, &defparm_s, &defparml_s, &defr_warning_s, &defsymacro_s, - &defun_s, &defvar_s, &defvarl_s, &dev_k, &dev_s, - &digit_k, &do_s, &dohash_s, &double_s, &downcase_k, - &dst_s, &dvbind_s, &dwim_s, &each_op_s, &each_s, - &each_star_s, &elif_s, &else_s, &empty_s, &enum_s, - &enumed_s, &env_k, &env_s, &eof_s, &eol_s, - &eq_s, &eql_based_k, &eql_s, &equal_based_k, &equal_s, - &error_s, &eval_error_s, &expr_s, &fail_s, &fbind_s, - &fd_k, &ffi_call_desc_s, &ffi_closure_s, &ffi_type_s, &file_error_s, - &fill_buf_s, &filter_k, &filter_s, &filters_s, &finally_s, - &finish_k, &first_s, &fixnum_s, &flatten_s, &flet_s, - &float_s, &flush_s, &for_op_s, &for_s, &for_star_s, - &force_s, &forget_s, &form_k, &format_s, &freeform_s, - &from_current_k, &from_end_k, &from_list_s, &from_start_k, &frombase64_k, - &fromhtml_k, &frompercent_k, &fromurl_k, &fun_k, &fun_s, - &fuzz_s, &gap_k, &gather_s, &gen_s, &generate_s, - &gensym_counter_s, &get_byte_s, &get_char_s, &get_error_s, &get_error_str_s, - &get_fd_s, &get_line_s, &get_prop_s, &gid_k, &gid_s, - &gmtoff_s, &greedy_k, &gun_s, &handler_bind_s, &hash_construct_s, - &hash_iter_s, &hash_lit_s, &hash_s, &hash_seed_s, &hextoint_k, - &hour_s, &iapply_s, &identity_s, &if_s, &iflet_s, - &in_package_s, &inc_s, &include_s, &init_k, &ino_k, - &ino_s, &int16_s, &int32_s, &int64_s, &int8_s, - &int_s, &integer_s, &internal_error_s, &into_k, &intr_s, - &ipf_s, &keyword_package_s, &labels_s, &lambda_s, &lambda_set_s, - &last_s, &lbind_s, &lcons_s, &le_double_s, &le_float_s, - &le_int16_s, &le_int32_s, &le_int64_s, &le_uint16_s, &le_uint32_s, - &le_uint64_s, &length_s, &let_s, &let_star_s, &lfilt_k, - &line_s, &lines_k, &list_k, &list_s, &list_star_s, - &listener_greedy_eval_s, &listener_hist_len_s, &listener_multi_line_p_s, &listener_pprint_s, &listener_sel_inclusive_p_s, - &lists_k, &lit_s, &load_path_s, &load_recursive_s, &load_s, - &load_time_lit_s, &load_time_s, &local_s, &long_s, &longest_k, - &lstr_s, &mac_param_bind_s, ¯o_s, ¯o_time_s, ¯olet_s, - &make_struct_lit_s, &mandatory_k, &maxgap_k, &maxtimes_k, &maybe_s, - &mdo_s, &memq_s, &memql_s, &memqual_s, &merge_s, - &meth_s, &min_s, &mingap_k, &mintimes_k, &mod_s, - &mode_k, &mode_s, &modlast_s, &month_s, &mtime_k, - &mtime_s, &name_k, &name_s, &named_k, &next_s, - &next_spec_k, &nlink_k, &nlink_s, &none_s, &nongreedy_s, - ¬_s, ¬hrow_k, &noval_s, &null_s, &nullify_s, - &number_s, &numeric_error_s, &oand_s, &oneplus_s, &op_s, - &opip_s, &optional_s, &or_s, &output_s, &package_alist_s, - &package_s, &panic_s, &parser_s, &path_s, &pkg_s, - &plus_s, &postinit_k, &pprint_flo_format_s, &print_base_s, &print_circle_s, - &print_flo_digits_s, &print_flo_format_s, &print_flo_precision_s, &print_s, &process_error_s, - &prof_s, &prog1_s, &progn_s, &promise_forced_s, &promise_inprogress_s, - &promise_s, &ptr_in_d_s, &ptr_in_s, &ptr_out_d_s, &ptr_out_s, - &ptr_out_s_s, &ptr_s, &put_buf_s, &put_byte_s, &put_char_s, - &put_string_s, &qquote_s, &qref_s, &quasi_s, &quasilist_s, - &query_error_s, "e_s, &random_state_s, &random_state_var_s, &random_warmup_s, - &range_error_s, &range_s, &rcons_s, &rdev_k, &rdev_s, - &real_time_k, &rebind_s, &rec_source_loc_s, &reflect_k, ®ex_s, - &rep_s, &repeat_s, &repeat_spec_k, &require_s, &resolve_k, - &rest_s, &restart_s, &ret_s, &return_from_s, &return_s, + &and_s, &append_each_s, &append_each_star_s, &append_k, &append_s, + &apply_s, &args_k, &array_s, &assert_s, &atime_k, + &atime_s, &atom_s, &auto_k, &bchar_s, &be_double_s, + &be_float_s, &be_int16_s, &be_int32_s, &be_int64_s, &be_uint16_s, + &be_uint32_s, &be_uint64_s, &bignum_s, &bind_s, &bit_s, + &blksize_k, &blksize_s, &block_s, &block_star_s, &blocks_k, + &blocks_s, &bool_s, &bstr_d_s, &bstr_s, &buf_d_s, + &buf_s, &byte_oriented_k, &call_s, &car_s, &carray_s, + &caseq_s, &caseq_star_s, &caseql_s, &caseql_star_s, &casequal_s, + &casequal_star_s, &cases_s, &cat_s, &catch_s, &cdigit_k, + &cdr_s, &chain_s, &chand_s, &char_s, &chars_k, + &choose_s, &chr_s, &chset_s, &circref_s, &clear_error_s, + &close_s, &closure_s, &cobj_s, &coll_s, &collect_each_s, + &collect_each_star_s, &collect_s, &colon_k, &compl_s, &compound_s, + &cond_s, &cons_s, &continue_k, &continue_s, &counter_k, + &cptr_s, &cset_s, &cspace_k, &ctime_k, &ctime_s, + &cword_char_k, &data_s, &day_s, &decline_k, &defex_s, + &deffilter_s, &define_s, &defmacro_s, &defparm_s, &defparml_s, + &defr_warning_s, &defsymacro_s, &defun_s, &defvar_s, &defvarl_s, + &dev_k, &dev_s, &digit_k, &do_s, &dohash_s, + &double_s, &downcase_k, &dst_s, &dvbind_s, &dwim_s, + &each_op_s, &each_s, &each_star_s, &elif_s, &else_s, + &empty_s, &enum_s, &enumed_s, &env_k, &env_s, + &eof_s, &eol_s, &eq_s, &eql_based_k, &eql_s, + &equal_based_k, &equal_s, &error_s, &eval_error_s, &expr_s, + &fail_s, &fbind_s, &fd_k, &ffi_call_desc_s, &ffi_closure_s, + &ffi_type_s, &file_error_s, &fill_buf_s, &filter_k, &filter_s, + &filters_s, &finally_s, &finish_k, &first_s, &fixnum_s, + &flatten_s, &flet_s, &float_s, &flush_s, &for_op_s, + &for_s, &for_star_s, &force_s, &forget_s, &form_k, + &format_s, &freeform_s, &from_current_k, &from_end_k, &from_list_s, + &from_start_k, &frombase64_k, &fromhtml_k, &frompercent_k, &fromurl_k, + &fun_k, &fun_s, &fuzz_s, &gap_k, &gather_s, + &gen_s, &generate_s, &gensym_counter_s, &get_byte_s, &get_char_s, + &get_error_s, &get_error_str_s, &get_fd_s, &get_line_s, &get_prop_s, + &gid_k, &gid_s, &gmtoff_s, &greedy_k, &gun_s, + &handler_bind_s, &hash_construct_s, &hash_iter_s, &hash_lit_s, &hash_s, + &hash_seed_s, &hextoint_k, &hour_s, &iapply_s, &identity_s, + &if_s, &iflet_s, &in_package_s, &inc_s, &include_s, + &init_k, &ino_k, &ino_s, &int16_s, &int32_s, + &int64_s, &int8_s, &int_s, &integer_s, &internal_error_s, + &into_k, &intr_s, &keyword_package_s, &labels_s, &lambda_s, + &lambda_set_s, &last_s, &lbind_s, &lcons_s, &le_double_s, + &le_float_s, &le_int16_s, &le_int32_s, &le_int64_s, &le_uint16_s, + &le_uint32_s, &le_uint64_s, &length_s, &let_s, &let_star_s, + &lfilt_k, &line_s, &lines_k, &list_k, &list_s, + &list_star_s, &listener_greedy_eval_s, &listener_hist_len_s, &listener_multi_line_p_s, &listener_pprint_s, + &listener_sel_inclusive_p_s, &lists_k, &lit_s, &load_path_s, &load_recursive_s, + &load_s, &load_time_lit_s, &load_time_s, &local_s, &long_s, + &longest_k, &lstr_s, &mac_param_bind_s, ¯o_s, ¯o_time_s, + ¯olet_s, &make_struct_lit_s, &mandatory_k, &maxgap_k, &maxtimes_k, + &maybe_s, &mdo_s, &memq_s, &memql_s, &memqual_s, + &merge_s, &meth_s, &min_s, &mingap_k, &mintimes_k, + &mod_s, &mode_k, &mode_s, &modlast_s, &month_s, + &mtime_k, &mtime_s, &name_k, &name_s, &named_k, + &next_s, &next_spec_k, &nlink_k, &nlink_s, &none_s, + &nongreedy_s, ¬_s, ¬hrow_k, &noval_s, &null_s, + &nullify_s, &number_s, &numeric_error_s, &oand_s, &oneplus_s, + &op_s, &opip_s, &optional_s, &or_s, &output_s, + &package_alist_s, &package_s, &panic_s, &parser_s, &path_s, + &pkg_s, &plus_s, &postinit_k, &pprint_flo_format_s, &print_base_s, + &print_circle_s, &print_flo_digits_s, &print_flo_format_s, &print_flo_precision_s, &print_s, + &process_error_s, &prof_s, &prog1_s, &progn_s, &promise_forced_s, + &promise_inprogress_s, &promise_s, &ptr_in_d_s, &ptr_in_s, &ptr_out_d_s, + &ptr_out_s, &ptr_out_s_s, &ptr_s, &put_buf_s, &put_byte_s, + &put_char_s, &put_string_s, &qquote_s, &qref_s, &quasi_s, + &quasilist_s, &query_error_s, "e_s, &random_state_s, &random_state_var_s, + &random_warmup_s, &range_error_s, &range_s, &rcons_s, &rdev_k, + &rdev_s, &real_time_k, &rebind_s, &rec_source_loc_s, &reflect_k, + ®ex_s, &rep_s, &repeat_s, &repeat_spec_k, &require_s, + &resolve_k, &rest_s, &restart_s, &return_from_s, &return_s, &rfilt_k, &rplaca_s, &rplacd_s, &sbit_s, &sec_s, &seek_s, &sequence_s, &set_prop_s, &set_s, &setq_s, &setqf_s, &short_s, &shortest_k, &single_s, &size_k, diff --git a/share/txr/stdlib/op.tl b/share/txr/stdlib/op.tl index b93b4e17..2457a096 100644 --- a/share/txr/stdlib/op.tl +++ b/share/txr/stdlib/op.tl @@ -105,3 +105,21 @@ (defmacro lop (:form f :env e . args) (sys:op-expand f e args)) + +(defmacro ap (. args) + ^(apf (op ,*args))) + +(defmacro ip (. args) + ^(ipf (op ,*args))) + +(defmacro ado (. args) + ^(apf (do ,*args))) + +(defmacro ido (. args) + ^(ipf (do ,*args))) + +(defmacro ret (. args) + ^(op identity (progn @rest ,*args))) + +(defmacro aret (. args) + ^(ap identity (progn @rest ,*args))) |