summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2022-09-03 08:18:45 -0700
committerKaz Kylheku <kaz@kylheku.com>2022-09-03 08:18:45 -0700
commit9083d40bfb936f58e09940e4a987ca7d341d7650 (patch)
tree3437a9a447592d3308754b2aa9920fb1694b3d9f
parent52935d0a99e4acf941b0069a9e1332ab5d2ff39f (diff)
downloadtxr-9083d40bfb936f58e09940e4a987ca7d341d7650.tar.gz
txr-9083d40bfb936f58e09940e4a987ca7d341d7650.tar.bz2
txr-9083d40bfb936f58e09940e4a987ca7d341d7650.zip
Version 281.txr-281
* RELNOTES: Updated. * configure (txr_ver): Bumped version. * stdlib/ver.tl (lib-version): Bumped. * txr.1: Bumped version and date. * txr.vim, tl.vim: Regenerated. * protsym.c: Regenerated.
-rw-r--r--RELNOTES29
-rwxr-xr-xconfigure2
-rw-r--r--protsym.c284
-rw-r--r--stdlib/ver.tl2
-rw-r--r--txr.16
5 files changed, 176 insertions, 147 deletions
diff --git a/RELNOTES b/RELNOTES
index d6a1bdb4..e49a006f 100644
--- a/RELNOTES
+++ b/RELNOTES
@@ -1,3 +1,32 @@
+ TXR 281
+ 2022-09-03
+
+
+ Features:
+
+ - Lib:
+ - New search-all library function: like search but finds all matches.
+ - New macro: close-lazy-streams: creates a dynamic contour of code which
+ closes all streams that were bound to lazy conses during its execution.
+
+ - TXR Pattern Language:
+ - The @(next) directive now supports a :noclose modifier.
+ - Because @(next) now closes the stream when it's done processing (see
+ Bugs below), this new feature is required to opt-out of that behavior.
+
+ - Vim:
+ - Improvements to syntax highlighting definitions.
+
+ Bugs
+
+ - ffi: now defends against out-of-range wchar_t values being converted
+ to Lisp character type.
+ - TXR Pattern Language:
+ - When a subquery opens a stream as a data source, that is now closed
+ when that subquery is finished processing.
+
+
+
TXR 280
2022-08-09
diff --git a/configure b/configure
index 94931f54..eed091aa 100755
--- a/configure
+++ b/configure
@@ -617,7 +617,7 @@ chmod a+x reconfigure
#
-txr_ver=280
+txr_ver=281
#
# The all important banner.
diff --git a/protsym.c b/protsym.c
index f64e40bb..b3d06f3a 100644
--- a/protsym.c
+++ b/protsym.c
@@ -84,77 +84,77 @@ 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 inv_div_s, inv_minus_s, isqrt_s, iter_begin_s, iter_item_s;
extern val iter_more_s, iter_reset_s, iter_step_s, json_s, keyword_package_s;
-extern val labels_s, lambda_s, lambda_set_s, last_s, lbind_s;
-extern val lcons_s, le_double_s, le_float_s, le_int16_s, le_int32_s;
-extern val le_int64_s, le_s, le_uint16_s, le_uint32_s, le_uint64_s;
-extern val length_s, less_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_hooks_s, load_path_s, load_recursive_s;
-extern val load_s, load_search_dirs_s, load_time_lit_s, load_time_s, local_s;
-extern val log10_s, log2_s, log_s, logand_s, logcount_s;
-extern val logior_s, lognot1_s, lognot_s, logtrunc_s, logxor_s;
-extern val long_s, longest_k, lstr_s, lt_s, mac_env_param_bind_s;
-extern val mac_param_bind_s, macro_s, macro_time_s, macrolet_s, make_struct_lit_s;
-extern val mandatory_k, max_s, 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, minus_s;
-extern val minusp_s, mod_s, mode_k, mode_s, modlast_s;
-extern val month_s, mtime_k, mtime_nsec_s, mtime_s, mul_s;
-extern val name_k, name_s, named_k, neg_s, 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, numeq_s, numeric_error_s, oddp_s, oneplus_s;
-extern val op_s, optional_s, or_s, output_s, pack_s;
-extern val package_alist_s, package_s, panic_s, parser_s, path_exists_s;
-extern val path_not_found_s, path_permission_s, path_s, pkg_s, plus_s;
-extern val plusp_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, prog2_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, r_atan2_s, r_ceil_s;
-extern val r_expt_s, r_floor_s, r_lognot_s, r_logtrunc_s, r_mod_s;
-extern val r_round_s, r_trunc_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 read_bad_json_s, read_unknown_structs_s, real_time_k, rebind_s, rec_source_loc_s;
-extern val recip_s, reflect_k, regex_s, rep_s, repeat_s;
-extern val repeat_spec_k, require_s, resolve_k, rest_s, restart_s;
-extern val return_from_s, return_s, rfilt_k, rlim_s, round1_s;
-extern val round_s, rplaca_s, rplacd_s, sbit_s, sec_s;
-extern val seek_s, seq_iter_s, sequence_s, set_prop_s, set_s;
-extern val setq_s, setqf_s, short_s, shortest_k, sign_extend_s;
-extern val signum_s, sin_s, single_s, sinh_s, size_k;
-extern val size_s, skip_s, slot_s, some_s, space_k;
-extern val special_s, splice_s, sqrt_s, square_s, stack_overflow_s;
-extern val stat_s, stddebug_s, stderr_s, stdin_s, stdio_stream_s;
-extern val stdnull_s, stdout_s, str_d_s, str_s, str_s_s;
-extern val stream_s, string_k, string_s, struct_lit_s, struct_s;
-extern val struct_type_s, switch_s, sym_s, symacro_k, symacrolet_s;
-extern val syntax_error_s, sys_abscond_from_s, sys_apply_s, sys_blk_s, sys_catch_s;
-extern val sys_l1_setq_s, sys_l1_val_s, sys_lisp1_setq_s, sys_lisp1_value_s, sys_mark_special_s;
-extern val sys_qquote_s, sys_splice_s, sys_unquote_s, system_error_s, system_package_s;
-extern val tan_s, tanh_s, text_s, throw_s, time_local_s;
-extern val time_parse_s, time_s, time_string_s, time_utc_s, timeout_error_s;
-extern val times_k, tlist_k, tnode_s, tobase64_k, tobase64url_k;
-extern val tofloat_k, tohtml_k, tohtml_star_k, toint_k, tonumber_k;
-extern val topercent_k, tourl_k, trailer_s, tree_bind_s, tree_case_s;
-extern val tree_construct_s, tree_fun_whitelist_s, tree_iter_s, tree_lit_s, tree_s;
-extern val trunc1_s, trunc_s, truncate_s, try_s, type_error_s;
-extern val ubit_s, uchar_s, uid_k, uid_s, uint16_s;
-extern val uint32_s, uint64_s, uint8_s, uint_s, ulong_s;
-extern val unbound_s, unget_byte_s, unget_char_s, union_s, unique_s;
-extern val unquote_s, until_s, until_star_s, upcase_k, uref_s;
-extern val user_package_s, userdata_k, ushort_s, usr_var_s, uw_protect_s;
-extern val val_s, var_k, var_s, vars_k, vec_list_s;
-extern val vec_s, vecref_s, vector_lit_s, vm_closure_s, vm_desc_s;
-extern val void_s, warning_s, wchar_s, wday_s, weak_and_k;
-extern val weak_keys_k, weak_or_k, weak_vals_k, when_s, while_s;
-extern val while_star_s, whole_k, width_s, wild_s, word_char_k;
-extern val wrap_k, wstr_d_s, wstr_s, wstr_s_s, yday_s;
-extern val year_s, zarray_s, zchar_s, zerop_s, zeroplus_s;
-extern val zone_s;
+extern val labels_s, lambda_s, lambda_set_s, last_s, lazy_streams_s;
+extern val lbind_s, lcons_s, le_double_s, le_float_s, le_int16_s;
+extern val le_int32_s, le_int64_s, le_s, le_uint16_s, le_uint32_s;
+extern val le_uint64_s, length_s, less_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_hooks_s, load_path_s;
+extern val load_recursive_s, load_s, load_search_dirs_s, load_time_lit_s, load_time_s;
+extern val local_s, log10_s, log2_s, log_s, logand_s;
+extern val logcount_s, logior_s, lognot1_s, lognot_s, logtrunc_s;
+extern val logxor_s, long_s, longest_k, lstr_s, lt_s;
+extern val mac_env_param_bind_s, mac_param_bind_s, macro_s, macro_time_s, macrolet_s;
+extern val make_struct_lit_s, mandatory_k, max_s, 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 minus_s, minusp_s, mod_s, mode_k, mode_s;
+extern val modlast_s, month_s, mtime_k, mtime_nsec_s, mtime_s;
+extern val mul_s, name_k, name_s, named_k, neg_s;
+extern val next_s, next_spec_k, nlink_k, nlink_s, noclose_k;
+extern val none_s, nongreedy_s, not_s, nothrow_k, noval_s;
+extern val null_s, nullify_s, number_s, numeq_s, numeric_error_s;
+extern val oddp_s, oneplus_s, op_s, optional_s, or_s;
+extern val output_s, pack_s, package_alist_s, package_s, panic_s;
+extern val parser_s, path_exists_s, path_not_found_s, path_permission_s, path_s;
+extern val pkg_s, plus_s, plusp_s, postinit_k, pprint_flo_format_s;
+extern val print_base_s, print_circle_s, print_flo_digits_s, print_flo_format_s, print_flo_precision_s;
+extern val print_s, process_error_s, prof_s, prog1_s, prog2_s;
+extern val progn_s, promise_forced_s, promise_inprogress_s, promise_s, ptr_in_d_s;
+extern val ptr_in_s, ptr_out_d_s, ptr_out_s, ptr_out_s_s, ptr_s;
+extern val put_buf_s, put_byte_s, put_char_s, put_string_s, qquote_s;
+extern val qref_s, quasi_s, quasilist_s, query_error_s, quote_s;
+extern val r_atan2_s, r_ceil_s, r_expt_s, r_floor_s, r_lognot_s;
+extern val r_logtrunc_s, r_mod_s, r_round_s, r_trunc_s, random_state_s;
+extern val random_state_var_s, random_warmup_s, range_error_s, range_s, rcons_s;
+extern val rdev_k, rdev_s, read_bad_json_s, read_unknown_structs_s, real_time_k;
+extern val rebind_s, rec_source_loc_s, recip_s, reflect_k, regex_s;
+extern val rep_s, repeat_s, repeat_spec_k, require_s, resolve_k;
+extern val rest_s, restart_s, return_from_s, return_s, rfilt_k;
+extern val rlim_s, round1_s, round_s, rplaca_s, rplacd_s;
+extern val sbit_s, sec_s, seek_s, seq_iter_s, sequence_s;
+extern val set_prop_s, set_s, setq_s, setqf_s, short_s;
+extern val shortest_k, sign_extend_s, signum_s, sin_s, single_s;
+extern val sinh_s, size_k, size_s, skip_s, slot_s;
+extern val some_s, space_k, special_s, splice_s, sqrt_s;
+extern val square_s, stack_overflow_s, stat_s, stddebug_s, stderr_s;
+extern val stdin_s, stdio_stream_s, stdnull_s, stdout_s, str_d_s;
+extern val str_s, str_s_s, stream_s, string_k, string_s;
+extern val struct_lit_s, struct_s, struct_type_s, switch_s, sym_s;
+extern val symacro_k, symacrolet_s, syntax_error_s, sys_abscond_from_s, sys_apply_s;
+extern val sys_blk_s, sys_catch_s, sys_l1_setq_s, sys_l1_val_s, sys_lisp1_setq_s;
+extern val sys_lisp1_value_s, sys_mark_special_s, sys_qquote_s, sys_splice_s, sys_unquote_s;
+extern val system_error_s, system_package_s, tan_s, tanh_s, text_s;
+extern val throw_s, time_local_s, time_parse_s, time_s, time_string_s;
+extern val time_utc_s, timeout_error_s, times_k, tlist_k, tnode_s;
+extern val tobase64_k, tobase64url_k, tofloat_k, tohtml_k, tohtml_star_k;
+extern val toint_k, tonumber_k, topercent_k, tourl_k, trailer_s;
+extern val tree_bind_s, tree_case_s, tree_construct_s, tree_fun_whitelist_s, tree_iter_s;
+extern val tree_lit_s, tree_s, trunc1_s, trunc_s, truncate_s;
+extern val try_s, type_error_s, ubit_s, uchar_s, uid_k;
+extern val uid_s, uint16_s, uint32_s, uint64_s, uint8_s;
+extern val uint_s, ulong_s, unbound_s, unget_byte_s, unget_char_s;
+extern val union_s, unique_s, unquote_s, until_s, until_star_s;
+extern val upcase_k, uref_s, user_package_s, userdata_k, ushort_s;
+extern val usr_var_s, uw_protect_s, val_s, var_k, var_s;
+extern val vars_k, vec_list_s, vec_s, vecref_s, vector_lit_s;
+extern val vm_closure_s, vm_desc_s, void_s, warning_s, wchar_s;
+extern val wday_s, weak_and_k, weak_keys_k, weak_or_k, weak_vals_k;
+extern val when_s, while_s, while_star_s, whole_k, width_s;
+extern val wild_s, word_char_k, wrap_k, wstr_d_s, wstr_s;
+extern val wstr_s_s, yday_s, year_s, zarray_s, zchar_s;
+extern val zerop_s, zeroplus_s, zone_s;
#if HAVE_DLOPEN
extern val dlhandle_s, dlsym_s;
@@ -245,77 +245,77 @@ val *protected_sym[] = {
&int_s, &integer_s, &internal_error_s, &into_k, &intr_s,
&inv_div_s, &inv_minus_s, &isqrt_s, &iter_begin_s, &iter_item_s,
&iter_more_s, &iter_reset_s, &iter_step_s, &json_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_s, &le_uint16_s, &le_uint32_s, &le_uint64_s,
- &length_s, &less_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_hooks_s, &load_path_s, &load_recursive_s,
- &load_s, &load_search_dirs_s, &load_time_lit_s, &load_time_s, &local_s,
- &log10_s, &log2_s, &log_s, &logand_s, &logcount_s,
- &logior_s, &lognot1_s, &lognot_s, &logtrunc_s, &logxor_s,
- &long_s, &longest_k, &lstr_s, &lt_s, &mac_env_param_bind_s,
- &mac_param_bind_s, &macro_s, &macro_time_s, &macrolet_s, &make_struct_lit_s,
- &mandatory_k, &max_s, &maxgap_k, &maxtimes_k, &maybe_s,
- &mdo_s, &memq_s, &memql_s, &memqual_s, &merge_s,
- &meth_s, &min_s, &mingap_k, &mintimes_k, &minus_s,
- &minusp_s, &mod_s, &mode_k, &mode_s, &modlast_s,
- &month_s, &mtime_k, &mtime_nsec_s, &mtime_s, &mul_s,
- &name_k, &name_s, &named_k, &neg_s, &next_s,
- &next_spec_k, &nlink_k, &nlink_s, &none_s, &nongreedy_s,
- &not_s, &nothrow_k, &noval_s, &null_s, &nullify_s,
- &number_s, &numeq_s, &numeric_error_s, &oddp_s, &oneplus_s,
- &op_s, &optional_s, &or_s, &output_s, &pack_s,
- &package_alist_s, &package_s, &panic_s, &parser_s, &path_exists_s,
- &path_not_found_s, &path_permission_s, &path_s, &pkg_s, &plus_s,
- &plusp_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, &prog2_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, &quote_s, &r_atan2_s, &r_ceil_s,
- &r_expt_s, &r_floor_s, &r_lognot_s, &r_logtrunc_s, &r_mod_s,
- &r_round_s, &r_trunc_s, &random_state_s, &random_state_var_s, &random_warmup_s,
- &range_error_s, &range_s, &rcons_s, &rdev_k, &rdev_s,
- &read_bad_json_s, &read_unknown_structs_s, &real_time_k, &rebind_s, &rec_source_loc_s,
- &recip_s, &reflect_k, &regex_s, &rep_s, &repeat_s,
- &repeat_spec_k, &require_s, &resolve_k, &rest_s, &restart_s,
- &return_from_s, &return_s, &rfilt_k, &rlim_s, &round1_s,
- &round_s, &rplaca_s, &rplacd_s, &sbit_s, &sec_s,
- &seek_s, &seq_iter_s, &sequence_s, &set_prop_s, &set_s,
- &setq_s, &setqf_s, &short_s, &shortest_k, &sign_extend_s,
- &signum_s, &sin_s, &single_s, &sinh_s, &size_k,
- &size_s, &skip_s, &slot_s, &some_s, &space_k,
- &special_s, &splice_s, &sqrt_s, &square_s, &stack_overflow_s,
- &stat_s, &stddebug_s, &stderr_s, &stdin_s, &stdio_stream_s,
- &stdnull_s, &stdout_s, &str_d_s, &str_s, &str_s_s,
- &stream_s, &string_k, &string_s, &struct_lit_s, &struct_s,
- &struct_type_s, &switch_s, &sym_s, &symacro_k, &symacrolet_s,
- &syntax_error_s, &sys_abscond_from_s, &sys_apply_s, &sys_blk_s, &sys_catch_s,
- &sys_l1_setq_s, &sys_l1_val_s, &sys_lisp1_setq_s, &sys_lisp1_value_s, &sys_mark_special_s,
- &sys_qquote_s, &sys_splice_s, &sys_unquote_s, &system_error_s, &system_package_s,
- &tan_s, &tanh_s, &text_s, &throw_s, &time_local_s,
- &time_parse_s, &time_s, &time_string_s, &time_utc_s, &timeout_error_s,
- &times_k, &tlist_k, &tnode_s, &tobase64_k, &tobase64url_k,
- &tofloat_k, &tohtml_k, &tohtml_star_k, &toint_k, &tonumber_k,
- &topercent_k, &tourl_k, &trailer_s, &tree_bind_s, &tree_case_s,
- &tree_construct_s, &tree_fun_whitelist_s, &tree_iter_s, &tree_lit_s, &tree_s,
- &trunc1_s, &trunc_s, &truncate_s, &try_s, &type_error_s,
- &ubit_s, &uchar_s, &uid_k, &uid_s, &uint16_s,
- &uint32_s, &uint64_s, &uint8_s, &uint_s, &ulong_s,
- &unbound_s, &unget_byte_s, &unget_char_s, &union_s, &unique_s,
- &unquote_s, &until_s, &until_star_s, &upcase_k, &uref_s,
- &user_package_s, &userdata_k, &ushort_s, &usr_var_s, &uw_protect_s,
- &val_s, &var_k, &var_s, &vars_k, &vec_list_s,
- &vec_s, &vecref_s, &vector_lit_s, &vm_closure_s, &vm_desc_s,
- &void_s, &warning_s, &wchar_s, &wday_s, &weak_and_k,
- &weak_keys_k, &weak_or_k, &weak_vals_k, &when_s, &while_s,
- &while_star_s, &whole_k, &width_s, &wild_s, &word_char_k,
- &wrap_k, &wstr_d_s, &wstr_s, &wstr_s_s, &yday_s,
- &year_s, &zarray_s, &zchar_s, &zerop_s, &zeroplus_s,
- &zone_s,
+ &labels_s, &lambda_s, &lambda_set_s, &last_s, &lazy_streams_s,
+ &lbind_s, &lcons_s, &le_double_s, &le_float_s, &le_int16_s,
+ &le_int32_s, &le_int64_s, &le_s, &le_uint16_s, &le_uint32_s,
+ &le_uint64_s, &length_s, &less_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_hooks_s, &load_path_s,
+ &load_recursive_s, &load_s, &load_search_dirs_s, &load_time_lit_s, &load_time_s,
+ &local_s, &log10_s, &log2_s, &log_s, &logand_s,
+ &logcount_s, &logior_s, &lognot1_s, &lognot_s, &logtrunc_s,
+ &logxor_s, &long_s, &longest_k, &lstr_s, &lt_s,
+ &mac_env_param_bind_s, &mac_param_bind_s, &macro_s, &macro_time_s, &macrolet_s,
+ &make_struct_lit_s, &mandatory_k, &max_s, &maxgap_k, &maxtimes_k,
+ &maybe_s, &mdo_s, &memq_s, &memql_s, &memqual_s,
+ &merge_s, &meth_s, &min_s, &mingap_k, &mintimes_k,
+ &minus_s, &minusp_s, &mod_s, &mode_k, &mode_s,
+ &modlast_s, &month_s, &mtime_k, &mtime_nsec_s, &mtime_s,
+ &mul_s, &name_k, &name_s, &named_k, &neg_s,
+ &next_s, &next_spec_k, &nlink_k, &nlink_s, &noclose_k,
+ &none_s, &nongreedy_s, &not_s, &nothrow_k, &noval_s,
+ &null_s, &nullify_s, &number_s, &numeq_s, &numeric_error_s,
+ &oddp_s, &oneplus_s, &op_s, &optional_s, &or_s,
+ &output_s, &pack_s, &package_alist_s, &package_s, &panic_s,
+ &parser_s, &path_exists_s, &path_not_found_s, &path_permission_s, &path_s,
+ &pkg_s, &plus_s, &plusp_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, &prog2_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, &quote_s,
+ &r_atan2_s, &r_ceil_s, &r_expt_s, &r_floor_s, &r_lognot_s,
+ &r_logtrunc_s, &r_mod_s, &r_round_s, &r_trunc_s, &random_state_s,
+ &random_state_var_s, &random_warmup_s, &range_error_s, &range_s, &rcons_s,
+ &rdev_k, &rdev_s, &read_bad_json_s, &read_unknown_structs_s, &real_time_k,
+ &rebind_s, &rec_source_loc_s, &recip_s, &reflect_k, &regex_s,
+ &rep_s, &repeat_s, &repeat_spec_k, &require_s, &resolve_k,
+ &rest_s, &restart_s, &return_from_s, &return_s, &rfilt_k,
+ &rlim_s, &round1_s, &round_s, &rplaca_s, &rplacd_s,
+ &sbit_s, &sec_s, &seek_s, &seq_iter_s, &sequence_s,
+ &set_prop_s, &set_s, &setq_s, &setqf_s, &short_s,
+ &shortest_k, &sign_extend_s, &signum_s, &sin_s, &single_s,
+ &sinh_s, &size_k, &size_s, &skip_s, &slot_s,
+ &some_s, &space_k, &special_s, &splice_s, &sqrt_s,
+ &square_s, &stack_overflow_s, &stat_s, &stddebug_s, &stderr_s,
+ &stdin_s, &stdio_stream_s, &stdnull_s, &stdout_s, &str_d_s,
+ &str_s, &str_s_s, &stream_s, &string_k, &string_s,
+ &struct_lit_s, &struct_s, &struct_type_s, &switch_s, &sym_s,
+ &symacro_k, &symacrolet_s, &syntax_error_s, &sys_abscond_from_s, &sys_apply_s,
+ &sys_blk_s, &sys_catch_s, &sys_l1_setq_s, &sys_l1_val_s, &sys_lisp1_setq_s,
+ &sys_lisp1_value_s, &sys_mark_special_s, &sys_qquote_s, &sys_splice_s, &sys_unquote_s,
+ &system_error_s, &system_package_s, &tan_s, &tanh_s, &text_s,
+ &throw_s, &time_local_s, &time_parse_s, &time_s, &time_string_s,
+ &time_utc_s, &timeout_error_s, &times_k, &tlist_k, &tnode_s,
+ &tobase64_k, &tobase64url_k, &tofloat_k, &tohtml_k, &tohtml_star_k,
+ &toint_k, &tonumber_k, &topercent_k, &tourl_k, &trailer_s,
+ &tree_bind_s, &tree_case_s, &tree_construct_s, &tree_fun_whitelist_s, &tree_iter_s,
+ &tree_lit_s, &tree_s, &trunc1_s, &trunc_s, &truncate_s,
+ &try_s, &type_error_s, &ubit_s, &uchar_s, &uid_k,
+ &uid_s, &uint16_s, &uint32_s, &uint64_s, &uint8_s,
+ &uint_s, &ulong_s, &unbound_s, &unget_byte_s, &unget_char_s,
+ &union_s, &unique_s, &unquote_s, &until_s, &until_star_s,
+ &upcase_k, &uref_s, &user_package_s, &userdata_k, &ushort_s,
+ &usr_var_s, &uw_protect_s, &val_s, &var_k, &var_s,
+ &vars_k, &vec_list_s, &vec_s, &vecref_s, &vector_lit_s,
+ &vm_closure_s, &vm_desc_s, &void_s, &warning_s, &wchar_s,
+ &wday_s, &weak_and_k, &weak_keys_k, &weak_or_k, &weak_vals_k,
+ &when_s, &while_s, &while_star_s, &whole_k, &width_s,
+ &wild_s, &word_char_k, &wrap_k, &wstr_d_s, &wstr_s,
+ &wstr_s_s, &yday_s, &year_s, &zarray_s, &zchar_s,
+ &zerop_s, &zeroplus_s, &zone_s,
#if HAVE_DLOPEN
&dlhandle_s, &dlsym_s,
diff --git a/stdlib/ver.tl b/stdlib/ver.tl
index 678b892d..62b01222 100644
--- a/stdlib/ver.tl
+++ b/stdlib/ver.tl
@@ -1,2 +1,2 @@
-(defvarl lib-version 280)
+(defvarl lib-version 281)
(defvarl *lib-version* lib-version)
diff --git a/txr.1 b/txr.1
index e0fb73a6..1037fbc9 100644
--- a/txr.1
+++ b/txr.1
@@ -430,9 +430,9 @@
.ds TX \f[B]TXR\f[]
.ds TL \f[B]TXR Lisp\f[]
.\" Start of man page:
-.TH TXR 1 2022-08-09 "Utility Commands" "TXR Programming Language" "Kaz Kylheku"
+.TH TXR 1 2022-09-03 "Utility Commands" "TXR Programming Language" "Kaz Kylheku"
.SH* NAME
-\*(TX \- Programming Language (Version 280)
+\*(TX \- Programming Language (Version 281)
.SH* SYNOPSIS
.mono
@@ -85757,7 +85757,7 @@ versions 2, 3, 4 and 5, regardless of minor version.
Versions 252 through 259 produce version 6.0 files and load
only version 6, regardless of minor version.
-Versions 260 through 280 produce version 7.0 files and load
+Versions 260 through 281 produce version 7.0 files and load
versions 6 and 7, regardless of minor version.
Version 261 introduces JSON
.code #J