summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2017-08-23 06:48:50 -0700
committerKaz Kylheku <kaz@kylheku.com>2017-08-23 06:48:50 -0700
commita150a76a6b2944f1415fb42281bf3d6eecfece48 (patch)
tree6f344dfdfa4bc59221e00255d3549ad82b66d38f
parentf7374146c894e2706ba65447ca7bf3f608037b1c (diff)
downloadtxr-a150a76a6b2944f1415fb42281bf3d6eecfece48.tar.gz
txr-a150a76a6b2944f1415fb42281bf3d6eecfece48.tar.bz2
txr-a150a76a6b2944f1415fb42281bf3d6eecfece48.zip
Version 184.txr-184
* RELNOTES: Updated. * configure, txr.1: Bumped version and date. * share/txr/stdlib/ver.tl: Likewise. * txr.vim, tl.vim, protsym.c: Regenerated.
-rw-r--r--RELNOTES72
-rwxr-xr-xconfigure2
-rw-r--r--protsym.c384
-rw-r--r--share/txr/stdlib/ver.tl2
-rw-r--r--tl.vim34
-rw-r--r--txr.14
-rw-r--r--txr.vim36
7 files changed, 317 insertions, 217 deletions
diff --git a/RELNOTES b/RELNOTES
index d8afa0a6..3b2f03e2 100644
--- a/RELNOTES
+++ b/RELNOTES
@@ -1,3 +1,75 @@
+ TXR 184
+ 2017-08-23
+
+
+ Features
+
+ - TXR ported to 64 bit ARM8 ("aarch64").
+ - out-of-memory handling revised:
+ - throws exception rather than aborting.
+ - code for this was very old and long neglected.
+ - lib:
+ - set-diff is called diff now; old name deprecated
+ - isec and uni functions provide intersection and union.
+ - names harmonize with hash-diff, hash-isec and hash-uni
+ - len synonym for length
+ - spl and tok functions: variants on tok-str and split-str,
+ with argument order more suitable for currying.
+ - math:
+ - new functions digpow and digits
+ - (digpow 1234) -> (1000 200 30 4)
+ - (digits 1234) -> (1 2 3 4)
+ - other bases than ten via optional second arg.
+ - new functions sum and prod for adding or multiplying
+ sequence of numbers without having to apply or reduce
+ through + or *.
+ - new divides function for divisibility testing.
+ - bit functions logand, logior and loxor allow character operands.
+ - function bit can test bit of character
+ - control flow:
+ - new macros doloop and doloop*
+ - trivial case of tagbody optimized away.
+ - extraction language:
+ - bi-directional string tree match semantics for non-variables
+ in @(bind) and other contexts.
+ - FFI:
+ - new buf-carray-function
+ - new functions for reading and writing FFI types from and to streams.
+ - I/O streams:
+ - New stream type for doing I/O from and to a buffer.
+ - Functions for Base64 encoding and decoding from one stream to another.
+ - length argument in truncate-stream function now optional
+ - defaults to current read/write position
+ - parser:
+ - more efficient treatment of string literals.
+ - improvements in Vim syntax coloring.
+
+ Bugs:
+
+ - listener:
+ - recognizes incomplete buf literals properly as open syntax.
+ - tagbody:
+ - tagbody was setting up anonymous block, which it must not.
+ - pad function
+ - spurious instances of nil were occurring in its output.
+ - n-ary math-functions:
+ - were not checking the one-arg case, e.g. (+ "foo") -> "foo"
+ which should be an error.
+ - tok-str:
+ - wrongly permitted a call with just one argument.
+ - streams:
+ - seek-stream was not working when :from-end specified.
+ - buffers:
+ - buf-put-uchar was broken.
+ - parser:
+ - fixed "yacc stack overflow" when compiled with Byacc.
+ - fixed broken #; syntax handling when compiled with Byacc.
+ - fixed broken handling of empty buffer literals.
+ - buffers:
+ - fixed infinite loop in buf_grow function.
+
+
+
TXR 183
2017-07-19
diff --git a/configure b/configure
index ca624c5d..da7383b7 100755
--- a/configure
+++ b/configure
@@ -453,7 +453,7 @@ fi
#
-txr_ver=183
+txr_ver=184
#
# The all important banner.
diff --git a/protsym.c b/protsym.c
index 38057df3..1c3ac14e 100644
--- a/protsym.c
+++ b/protsym.c
@@ -31,99 +31,99 @@
#include "config.h"
#include "lib.h"
-extern val accept_s, addr_k, align_s, all_s, and_s;
-extern val ap_s, apf_s, append_each_s, append_each_star_s, append_k;
-extern val append_s, apply_s, aret_s, args_k, array_s;
-extern val assert_s, atime_k, atime_s, atom_s, auto_k;
-extern val bchar_s, be_double_s, be_float_s, be_int16_s, be_int32_s;
-extern val be_int64_s, be_uint16_s, be_uint32_s, be_uint64_s, bignum_s;
-extern val bind_s, bit_s, blksize_k, blksize_s, block_s;
-extern val block_star_s, blocks_k, blocks_s, bool_s, bstr_d_s;
-extern val bstr_s, buf_d_s, buf_s, byte_oriented_k, call_s;
-extern val car_s, carray_s, caseq_s, caseq_star_s, caseql_s;
-extern val caseql_star_s, casequal_s, casequal_star_s, cases_s, cat_s;
-extern val catch_s, cdigit_k, cdr_s, chain_s, chand_s;
-extern val char_s, chars_k, choose_s, chr_s, chset_s;
-extern val circref_s, close_s, closure_s, cobj_s, coll_s;
-extern val collect_each_s, collect_each_star_s, collect_s, colon_k, compl_s;
-extern val compound_s, cond_s, cons_s, continue_k, continue_s;
-extern val counter_k, cptr_s, cset_s, cspace_k, ctime_k;
-extern val ctime_s, cword_char_k, data_s, day_s, decline_k;
-extern val defex_s, deffilter_s, define_s, defmacro_s, defparm_s;
-extern val defparml_s, defr_warning_s, defsymacro_s, defun_s, defvar_s;
-extern val defvarl_s, dev_k, dev_s, digit_k, do_s;
-extern val dohash_s, double_s, downcase_k, dst_s, dvbind_s;
-extern val dwim_s, each_op_s, each_s, each_star_s, empty_s;
-extern val enum_s, enumed_s, env_k, env_s, eof_s;
-extern val eol_s, eq_s, 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 filter_k, filter_s, filters_s, finally_s, finish_k;
-extern val first_s, fixnum_s, flatten_s, flet_s, float_s;
-extern val for_op_s, for_s, for_star_s, force_s, forget_s;
-extern val form_k, format_s, freeform_s, from_current_k, from_end_k;
-extern val from_list_s, from_start_k, frombase64_k, fromhtml_k, frompercent_k;
-extern val fromurl_k, fun_k, fun_s, fuzz_s, gap_k;
-extern val gather_s, gen_s, generate_s, gensym_counter_s, gid_k;
-extern val gid_s, gmtoff_s, greedy_k, gun_s, handler_bind_s;
-extern val hash_construct_s, hash_iter_s, hash_lit_s, hash_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, lisp1_setq_s, list_k, list_s;
-extern val list_star_s, listener_hist_len_s, listener_multi_line_p_s, listener_sel_inclusive_p_s, lists_k;
-extern val lit_s, load_path_s, load_recursive_s, load_s, local_s;
-extern val long_s, longest_k, lstr_s, mac_param_bind_s, macro_s;
-extern val macro_time_s, macrolet_s, make_struct_lit_s, mandatory_k, maxgap_k;
-extern val maxtimes_k, maybe_s, mdo_s, memq_s, memql_s;
-extern val memqual_s, merge_s, meth_s, min_s, mingap_k;
-extern val mintimes_k, mod_s, mode_k, mode_s, modlast_s;
-extern val month_s, mtime_k, mtime_s, name_k, name_s;
-extern val named_k, next_s, next_spec_k, nlink_k, nlink_s;
-extern val none_s, nongreedy_s, not_s, nothrow_k, noval_s;
-extern val null_s, nullify_s, number_s, numeric_error_s, oand_s;
-extern val oneplus_s, op_s, opip_s, optional_s, or_s;
-extern val output_s, package_alist_s, package_s, panic_s, parser_s;
-extern val path_s, pkg_s, plus_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, progn_s;
-extern val promise_forced_s, promise_inprogress_s, promise_s, ptr_in_d_s, ptr_in_s;
-extern val ptr_out_d_s, ptr_out_s, ptr_out_s_s, ptr_s, qquote_s;
-extern val qref_s, quasi_s, quasilist_s, query_error_s, quote_s;
-extern val random_state_s, random_state_var_s, random_warmup_s, range_error_s, range_s;
-extern val rcons_s, rdev_k, rdev_s, real_time_k, rebind_s;
-extern val reflect_k, regex_s, rep_s, repeat_s, repeat_spec_k;
-extern val require_s, resolve_k, rest_s, restart_s, ret_s;
-extern val return_from_s, return_s, rfilt_k, sbit_s, sec_s;
-extern val sequence_s, set_s, setq_s, setqf_s, short_s;
-extern val shortest_k, single_s, size_k, size_s, skip_s;
-extern val slot_s, some_s, space_k, special_s, splice_s;
-extern val stat_s, static_slot_s, stddebug_s, stderr_s, stdin_s;
-extern val stdio_stream_s, stdnull_s, stdout_s, str_d_s, str_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_catch_s, sys_lisp1_value_s;
-extern val sys_mark_special_s, sys_qquote_s, sys_splice_s, sys_unquote_s, system_error_s;
-extern val system_package_s, text_s, throw_s, time_local_s, time_parse_s;
-extern val time_s, time_string_s, time_utc_s, timeout_error_s, times_k;
-extern val tlist_k, tobase64_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, try_s, type_error_s, ubit_s;
-extern val uchar_s, uid_k, uid_s, uint16_s, uint32_s;
-extern val uint64_s, uint8_s, uint_s, ulong_s, unbound_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 uw_protect_s, val_s, var_k, var_s, vars_k;
-extern val vec_list_s, vec_s, vecref_s, vector_lit_s, void_s;
-extern val warning_s, wchar_s, weak_keys_k, weak_vals_k, when_s;
-extern val while_s, while_star_s, whole_k, wild_s, with_dyn_rebinds_s;
-extern val word_char_k, wrap_k, wstr_d_s, wstr_s, year_s;
-extern val zap_s, zarray_s, zeroplus_s, zone_s;
+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, close_s, closure_s, cobj_s;
+extern val coll_s, collect_each_s, collect_each_star_s, collect_s, colon_k;
+extern val compl_s, compound_s, cond_s, cons_s, continue_k;
+extern val continue_s, counter_k, cptr_s, cset_s, cspace_k;
+extern val ctime_k, ctime_s, cword_char_k, data_s, day_s;
+extern val decline_k, defex_s, deffilter_s, define_s, defmacro_s;
+extern val defparm_s, defparml_s, defr_warning_s, defsymacro_s, defun_s;
+extern val defvar_s, defvarl_s, dev_k, dev_s, digit_k;
+extern val do_s, dohash_s, double_s, downcase_k, dst_s;
+extern val dvbind_s, dwim_s, each_op_s, each_s, each_star_s;
+extern val empty_s, enum_s, enumed_s, env_k, env_s;
+extern val eof_s, eol_s, eq_s, eql_s, equal_based_k;
+extern val equal_s, error_s, eval_error_s, expr_s, fail_s;
+extern val fbind_s, fd_k, ffi_call_desc_s, ffi_closure_s, ffi_type_s;
+extern val file_error_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, for_op_s, for_s, for_star_s, force_s;
+extern val forget_s, form_k, format_s, freeform_s, from_current_k;
+extern val from_end_k, from_list_s, from_start_k, frombase64_k, fromhtml_k;
+extern val frompercent_k, fromurl_k, fun_k, fun_s, fuzz_s;
+extern val gap_k, gather_s, gen_s, generate_s, gensym_counter_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 hextoint_k, hour_s, iapply_s, identity_s, if_s;
+extern val iflet_s, in_package_s, inc_s, include_s, init_k;
+extern val ino_k, ino_s, int16_s, int32_s, int64_s;
+extern val int8_s, int_s, integer_s, internal_error_s, into_k;
+extern val intr_s, ipf_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, lisp1_setq_s, list_k;
+extern val list_s, list_star_s, listener_hist_len_s, listener_multi_line_p_s, listener_sel_inclusive_p_s;
+extern val lists_k, lit_s, load_path_s, load_recursive_s, load_s;
+extern val local_s, long_s, longest_k, lstr_s, mac_param_bind_s;
+extern val macro_s, macro_time_s, macrolet_s, make_struct_lit_s, mandatory_k;
+extern val maxgap_k, maxtimes_k, maybe_s, mdo_s, memq_s;
+extern val memql_s, memqual_s, merge_s, meth_s, min_s;
+extern val mingap_k, mintimes_k, mod_s, mode_k, mode_s;
+extern val modlast_s, month_s, mtime_k, mtime_s, name_k;
+extern val name_s, named_k, next_s, next_spec_k, nlink_k;
+extern val nlink_s, none_s, nongreedy_s, not_s, nothrow_k;
+extern val noval_s, null_s, nullify_s, number_s, numeric_error_s;
+extern val oand_s, oneplus_s, op_s, opip_s, optional_s;
+extern val or_s, output_s, package_alist_s, package_s, panic_s;
+extern val parser_s, path_s, pkg_s, plus_s, postinit_k;
+extern val pprint_flo_format_s, print_base_s, print_circle_s, print_flo_digits_s, print_flo_format_s;
+extern val print_flo_precision_s, print_s, process_error_s, prof_s, prog1_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 qquote_s, qref_s, quasi_s, quasilist_s, query_error_s;
+extern val quote_s, random_state_s, random_state_var_s, random_warmup_s, range_error_s;
+extern val range_s, rcons_s, rdev_k, rdev_s, real_time_k;
+extern val rebind_s, reflect_k, regex_s, rep_s, repeat_s;
+extern val repeat_spec_k, require_s, resolve_k, rest_s, restart_s;
+extern val ret_s, return_from_s, return_s, rfilt_k, sbit_s;
+extern val sec_s, sequence_s, set_s, setq_s, setqf_s;
+extern val short_s, shortest_k, single_s, size_k, size_s;
+extern val skip_s, slot_s, some_s, space_k, special_s;
+extern val splice_s, stat_s, static_slot_s, stddebug_s, stderr_s;
+extern val stdin_s, stdio_stream_s, stdnull_s, stdout_s, str_d_s;
+extern val str_s, stream_s, string_k, string_s, struct_lit_s;
+extern val struct_s, struct_type_s, switch_s, sym_s, symacro_k;
+extern val symacrolet_s, syntax_error_s, sys_abscond_from_s, sys_apply_s, sys_catch_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, 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, tobase64_k, tofloat_k, tohtml_k;
+extern val tohtml_star_k, toint_k, tonumber_k, topercent_k, tourl_k;
+extern val trailer_s, tree_bind_s, tree_case_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, union_s, unique_s, unquote_s, until_s;
+extern val until_star_s, upcase_k, uref_s, user_package_s, userdata_k;
+extern val ushort_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 void_s, warning_s, wchar_s, weak_keys_k, weak_vals_k;
+extern val when_s, while_s, while_star_s, whole_k, wild_s;
+extern val with_dyn_rebinds_s, word_char_k, wrap_k, wstr_d_s, wstr_s;
+extern val year_s, zap_s, zarray_s, zeroplus_s, zone_s;
#if CONFIG_DEBUG_SUPPORT
extern val debug_quit_s;
@@ -138,13 +138,13 @@ extern val group_s, mem_s;
extern val dir_s, gecos_s, passwd_s, shell_s;
#endif
#if HAVE_SOCKETS
-extern val socket_error_s;
-#endif
-#if HAVE_SOCKETS
extern val addr_s, addrinfo_s, canonname_s, family_s, flags_s;
extern val flow_info_s, port_s, protocol_s, scope_id_s, sockaddr_in6_s;
extern val sockaddr_in_s, sockaddr_un_s, socktype_s;
#endif
+#if HAVE_SOCKETS
+extern val socket_error_s;
+#endif
#if HAVE_SYSLOG
extern val prio_k;
#endif
@@ -158,99 +158,99 @@ extern val utsname_s, version_s;
#endif
val *protected_sym[] = {
- &accept_s, &addr_k, &align_s, &all_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, &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, &empty_s,
- &enum_s, &enumed_s, &env_k, &env_s, &eof_s,
- &eol_s, &eq_s, &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,
- &filter_k, &filter_s, &filters_s, &finally_s, &finish_k,
- &first_s, &fixnum_s, &flatten_s, &flet_s, &float_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, &gid_k,
- &gid_s, &gmtoff_s, &greedy_k, &gun_s, &handler_bind_s,
- &hash_construct_s, &hash_iter_s, &hash_lit_s, &hash_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, &lisp1_setq_s, &list_k, &list_s,
- &list_star_s, &listener_hist_len_s, &listener_multi_line_p_s, &listener_sel_inclusive_p_s, &lists_k,
- &lit_s, &load_path_s, &load_recursive_s, &load_s, &local_s,
- &long_s, &longest_k, &lstr_s, &mac_param_bind_s, &macro_s,
- &macro_time_s, &macrolet_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, &not_s, &nothrow_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, &qquote_s,
- &qref_s, &quasi_s, &quasilist_s, &query_error_s, &quote_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,
- &reflect_k, &regex_s, &rep_s, &repeat_s, &repeat_spec_k,
- &require_s, &resolve_k, &rest_s, &restart_s, &ret_s,
- &return_from_s, &return_s, &rfilt_k, &sbit_s, &sec_s,
- &sequence_s, &set_s, &setq_s, &setqf_s, &short_s,
- &shortest_k, &single_s, &size_k, &size_s, &skip_s,
- &slot_s, &some_s, &space_k, &special_s, &splice_s,
- &stat_s, &static_slot_s, &stddebug_s, &stderr_s, &stdin_s,
- &stdio_stream_s, &stdnull_s, &stdout_s, &str_d_s, &str_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_catch_s, &sys_lisp1_value_s,
- &sys_mark_special_s, &sys_qquote_s, &sys_splice_s, &sys_unquote_s, &system_error_s,
- &system_package_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, &tobase64_k, &tofloat_k, &tohtml_k, &tohtml_star_k,
- &toint_k, &tonumber_k, &topercent_k, &tourl_k, &trailer_s,
- &tree_bind_s, &tree_case_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,
- &union_s, &unique_s, &unquote_s, &until_s, &until_star_s,
- &upcase_k, &uref_s, &user_package_s, &userdata_k, &ushort_s,
- &uw_protect_s, &val_s, &var_k, &var_s, &vars_k,
- &vec_list_s, &vec_s, &vecref_s, &vector_lit_s, &void_s,
- &warning_s, &wchar_s, &weak_keys_k, &weak_vals_k, &when_s,
- &while_s, &while_star_s, &whole_k, &wild_s, &with_dyn_rebinds_s,
- &word_char_k, &wrap_k, &wstr_d_s, &wstr_s, &year_s,
- &zap_s, &zarray_s, &zeroplus_s, &zone_s,
+ &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, &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,
+ &empty_s, &enum_s, &enumed_s, &env_k, &env_s,
+ &eof_s, &eol_s, &eq_s, &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, &filter_k, &filter_s, &filters_s, &finally_s,
+ &finish_k, &first_s, &fixnum_s, &flatten_s, &flet_s,
+ &float_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,
+ &gid_k, &gid_s, &gmtoff_s, &greedy_k, &gun_s,
+ &handler_bind_s, &hash_construct_s, &hash_iter_s, &hash_lit_s, &hash_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, &lisp1_setq_s, &list_k,
+ &list_s, &list_star_s, &listener_hist_len_s, &listener_multi_line_p_s, &listener_sel_inclusive_p_s,
+ &lists_k, &lit_s, &load_path_s, &load_recursive_s, &load_s,
+ &local_s, &long_s, &longest_k, &lstr_s, &mac_param_bind_s,
+ &macro_s, &macro_time_s, &macrolet_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, &not_s, &nothrow_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,
+ &qquote_s, &qref_s, &quasi_s, &quasilist_s, &query_error_s,
+ &quote_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, &reflect_k, &regex_s, &rep_s, &repeat_s,
+ &repeat_spec_k, &require_s, &resolve_k, &rest_s, &restart_s,
+ &ret_s, &return_from_s, &return_s, &rfilt_k, &sbit_s,
+ &sec_s, &sequence_s, &set_s, &setq_s, &setqf_s,
+ &short_s, &shortest_k, &single_s, &size_k, &size_s,
+ &skip_s, &slot_s, &some_s, &space_k, &special_s,
+ &splice_s, &stat_s, &static_slot_s, &stddebug_s, &stderr_s,
+ &stdin_s, &stdio_stream_s, &stdnull_s, &stdout_s, &str_d_s,
+ &str_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_catch_s,
+ &sys_lisp1_value_s, &sys_mark_special_s, &sys_qquote_s, &sys_splice_s, &sys_unquote_s,
+ &system_error_s, &system_package_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, &tobase64_k, &tofloat_k, &tohtml_k,
+ &tohtml_star_k, &toint_k, &tonumber_k, &topercent_k, &tourl_k,
+ &trailer_s, &tree_bind_s, &tree_case_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, &union_s, &unique_s, &unquote_s, &until_s,
+ &until_star_s, &upcase_k, &uref_s, &user_package_s, &userdata_k,
+ &ushort_s, &uw_protect_s, &val_s, &var_k, &var_s,
+ &vars_k, &vec_list_s, &vec_s, &vecref_s, &vector_lit_s,
+ &void_s, &warning_s, &wchar_s, &weak_keys_k, &weak_vals_k,
+ &when_s, &while_s, &while_star_s, &whole_k, &wild_s,
+ &with_dyn_rebinds_s, &word_char_k, &wrap_k, &wstr_d_s, &wstr_s,
+ &year_s, &zap_s, &zarray_s, &zeroplus_s, &zone_s,
#if CONFIG_DEBUG_SUPPORT
&debug_quit_s,
@@ -265,13 +265,13 @@ val *protected_sym[] = {
&dir_s, &gecos_s, &passwd_s, &shell_s,
#endif
#if HAVE_SOCKETS
- &socket_error_s,
-#endif
-#if HAVE_SOCKETS
&addr_s, &addrinfo_s, &canonname_s, &family_s, &flags_s,
&flow_info_s, &port_s, &protocol_s, &scope_id_s, &sockaddr_in6_s,
&sockaddr_in_s, &sockaddr_un_s, &socktype_s,
#endif
+#if HAVE_SOCKETS
+ &socket_error_s,
+#endif
#if HAVE_SYSLOG
&prio_k,
#endif
diff --git a/share/txr/stdlib/ver.tl b/share/txr/stdlib/ver.tl
index 26773849..5974f008 100644
--- a/share/txr/stdlib/ver.tl
+++ b/share/txr/stdlib/ver.tl
@@ -1,2 +1,2 @@
-(defvarl lib-version 183)
+(defvarl lib-version 184)
(defvarl *lib-version* lib-version)
diff --git a/tl.vim b/tl.vim
index a87df36b..7430a3fd 100644
--- a/tl.vim
+++ b/tl.vim
@@ -18,7 +18,7 @@
syn case match
syn spell toplevel
-setlocal iskeyword=a-z,A-Z,48-57,!,$,&,*,+,-,:,<,=,>,?,\\,_,~,/
+setlocal iskeyword=a-z,A-Z,48-57,!,$,&,*,+,-,:,<,=,>,?,\\,_,~,/,^
syn keyword tl_keyword contained %e% %pi% * *args*
syn keyword tl_keyword contained *args-eff* *args-full* *e* *filters*
@@ -499,6 +499,8 @@ syn match txr_numesc "\\x[0-9A-Fa-f]\+;\?" contained
syn match txr_numesc "\\[0-7]\+;\?" contained
syn match txr_regesc "\\[abtnvfre\\ \n/sSdDwW()\|.*?+~&%\[\]\-]" contained
+syn match txr_error "#[^HSR]"
+
syn match txr_chr "#\\x[0-9A-Fa-f]\+"
syn match txr_chr "#\\o[0-7]\+"
syn match txr_chr "#\\[^ \t\nA-Za-z_0-9]"
@@ -506,13 +508,14 @@ syn match txr_chr "#\\[A-Za-z_0-9]\+"
syn match txr_ncomment ";.*"
syn match txr_dot "\." contained
-syn match txr_num "#x[+\-]\?[0-9A-Fa-f]\+"
-syn match txr_num "#o[+\-]\?[0-7]\+"
-syn match txr_num "#b[+\-]\?[01]\+"
syn match txr_ident "[A-Za-z_0-9!$%&*+\-<=>?\\_~]*[A-Za-z_!$%&*+\-<=>?\\_~^][A-Za-z_0-9!$%&*+\-<=>?\\_~^]*" contained
syn match tl_ident "[:@][A-Za-z_0-9!$%&*+\-<=>?\\_~^/]\+"
syn match txr_braced_ident "[:][A-Za-z_0-9!$%&*+\-<=>?\\_~^/]\+" contained
-syn match tl_ident "[A-Za-z_0-9!$%&*+\-<=>?\\_~/]*[A-Za-z_!$%&*+\-<=>?\\_~^/#][A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]*"
+syn match tl_ident "[A-Za-z_0-9!$%&*+\-<=>?\\_~/]\+[A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]*"
+syn match txr_pnum "#[xob][+\-]\?[A-Za-z_0-9]\+" contains=txr_xnum,txr_bnum,txr_onum
+syn match txr_xnum "#x[+\-]\?[0-9A-Fa-f]\+" containedin=txr_pnum contained
+syn match txr_onum "#o[+\-]\?[0-7]\+" containedin=txr_pnum contained
+syn match txr_bnum "#b[+\-]\?[01]\+" containedin=txr_pnum contained
syn match txr_num "[+\-]\?[0-9]\+\([^A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]\|\n\)"me=e-1
syn match txr_badnum "[+\-]\?[0-9]*[.][0-9]\+\([eE][+\-]\?[0-9]\+\)\?[A-Za-z_!$%&*+\-<=>?\\_~^/#]\+"
syn match txr_num "[+\-]\?[0-9]*[.][0-9]\+\([eE][+\-]\?[0-9]\+\)\?\([^A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]\|\n\)"me=e-1
@@ -528,15 +531,19 @@ syn match txr_dotdot "\.\." contained
syn match txr_metaat "@" contained
syn match txr_circ "#[0-9]\+[#=]"
-syn region txr_bracevar matchgroup=Delimiter start="@[ \t]*[*]\?{" matchgroup=Delimiter end="}" contains=txr_num,tl_ident,tl_splice,tl_metanum,txr_metaat,txr_circ,txr_braced_ident,txr_dot,txr_dotdot,txr_string,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_regex,txr_quasilit,txr_chr,txr_nested_error
-syn region txr_list matchgroup=Delimiter start="\(#[HSR]\?\)\?(" matchgroup=Delimiter end=")" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error
-syn region txr_bracket matchgroup=Delimiter start="\[" matchgroup=Delimiter end="\]" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error
-syn region txr_mlist matchgroup=Delimiter start="@[ \t^',]*(" matchgroup=Delimiter end=")" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error
-syn region txr_mbracket matchgroup=Delimiter start="@[ \t^',]*\[" matchgroup=Delimiter end="\]" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error
+syn match txr_buf_error "[^']" contained
+syn match txr_buf_interior "\([0-9A-Fa-f][\n\t ]*[0-9A-Fa-f]\|[\n\t ]\+\)" contained
+
+syn region txr_bracevar matchgroup=Delimiter start="@[ \t]*[*]\?{" matchgroup=Delimiter end="}" contains=txr_num,txr_pnum,tl_ident,tl_splice,tl_metanum,txr_metaat,txr_circ,txr_braced_ident,txr_dot,txr_dotdot,txr_string,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_regex,txr_quasilit,txr_chr,txr_nested_error
+syn region txr_list matchgroup=Delimiter start="\(#[HSR]\?\)\?(" matchgroup=Delimiter end=")" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_pnum,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_buf,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error
+syn region txr_bracket matchgroup=Delimiter start="\[" matchgroup=Delimiter end="\]" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_pnum,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_buf,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error
+syn region txr_mlist matchgroup=Delimiter start="@[ \t^',]*(" matchgroup=Delimiter end=")" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_pnum,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_buf,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error
+syn region txr_mbracket matchgroup=Delimiter start="@[ \t^',]*\[" matchgroup=Delimiter end="\]" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_pnum,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_buf,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error
syn region txr_string start=+#\?\*\?"+ end=+["\n]+ contains=txr_stresc,txr_numesc,txr_badesc
syn region txr_quasilit start=+#\?\*\?`+ end=+[`\n]+ contains=txr_splicevar,txr_metanum,txr_bracevar,txr_mlist,txr_mbracket,txr_escat,txr_stresc,txr_numesc,txr_badesc
syn region txr_regex start="/" end="[/\n]" contains=txr_regesc,txr_numesc,txr_badesc
syn region tl_regex start="#/" end="[/\n]" contains=txr_regesc,txr_numesc,txr_badesc
+syn region txr_buf matchgroup=txr_buf start="#b'" end="'" contains=txr_buf_interior,txr_buf_error
syn region txr_ign_par matchgroup=Comment start="#;[ \t',]*\(#[HSR]\?\)\?(" matchgroup=Comment end=")" contains=txr_ign_par_interior,txr_ign_bkt_interior
syn region txr_ign_bkt matchgroup=Comment start="#;[ \t',]*\(#[HSR]\?\)\?\[" matchgroup=Comment end="\]" contains=txr_ign_par_interior,txr_ign_bkt_interior
syn region txr_ign_par_interior contained matchgroup=Comment start="(" matchgroup=Comment end=")" contains=txr_ign_par_interior,txr_ign_bkt_interior
@@ -569,7 +576,11 @@ hi def link txr_badesc Error
hi def link txr_ident Identifier
hi def link tl_ident Identifier
hi def link txr_num Number
+hi def link txr_xnum Number
+hi def link txr_bnum Number
+hi def link txr_onum Number
hi def link txr_badnum Error
+hi def link txr_pnum Error
hi def link txr_quote Special
hi def link txr_unquote Special
hi def link txr_splice Special
@@ -581,6 +592,9 @@ hi def link txr_munqspl Special
hi def link tl_splice Special
hi def link txr_error Error
hi def link txr_nested_error Error
+hi def link txr_buf String
+hi def link txr_buf_interior String
+hi def link txr_buf_error Error
hi def link txr_ign_par Comment
hi def link txr_ign_bkt_interior Comment
hi def link txr_ign_par_interior Comment
diff --git a/txr.1 b/txr.1
index b0d3ecb8..8314bdab 100644
--- a/txr.1
+++ b/txr.1
@@ -340,9 +340,9 @@
.ds TX \f[B]TXR\f[]
.ds TL \f[B]TXR Lisp\f[]
.\" Start of man page:
-.TH TXR 1 2017-07-19 "Utility Commands" "TXR Data Processing Language" "Kaz Kylheku"
+.TH TXR 1 2017-08-23 "Utility Commands" "TXR Data Processing Language" "Kaz Kylheku"
.SH* NAME
-\*(TX \- text processing language (version 183)
+\*(TX \- text processing language (version 184)
.SH* SYNOPSIS
.cblk
diff --git a/txr.vim b/txr.vim
index 788f4db5..f922f46f 100644
--- a/txr.vim
+++ b/txr.vim
@@ -18,7 +18,7 @@
syn case match
syn spell toplevel
-setlocal iskeyword=a-z,A-Z,48-57,!,$,&,*,+,-,:,<,=,>,?,\\,_,~,/
+setlocal iskeyword=a-z,A-Z,48-57,!,$,&,*,+,-,:,<,=,>,?,\\,_,~,/,^
syn keyword tl_keyword contained %e% %pi% * *args*
syn keyword tl_keyword contained *args-eff* *args-full* *e* *filters*
@@ -526,6 +526,8 @@ syn match txr_numesc "\\x[0-9A-Fa-f]\+;\?" contained
syn match txr_numesc "\\[0-7]\+;\?" contained
syn match txr_regesc "\\[abtnvfre\\ \n/sSdDwW()\|.*?+~&%\[\]\-]" contained
+syn match txr_error "#[^HSR]" contained
+
syn match txr_chr "#\\x[0-9A-Fa-f]\+" contained
syn match txr_chr "#\\o[0-7]\+" contained
syn match txr_chr "#\\[^ \t\nA-Za-z_0-9]" contained
@@ -533,13 +535,14 @@ syn match txr_chr "#\\[A-Za-z_0-9]\+" contained
syn match txr_ncomment ";.*" contained
syn match txr_dot "\." contained
-syn match txr_num "#x[+\-]\?[0-9A-Fa-f]\+" contained
-syn match txr_num "#o[+\-]\?[0-7]\+" contained
-syn match txr_num "#b[+\-]\?[01]\+" contained
syn match txr_ident "[A-Za-z_0-9!$%&*+\-<=>?\\_~]*[A-Za-z_!$%&*+\-<=>?\\_~^][A-Za-z_0-9!$%&*+\-<=>?\\_~^]*" contained
syn match tl_ident "[:@][A-Za-z_0-9!$%&*+\-<=>?\\_~^/]\+" contained
syn match txr_braced_ident "[:][A-Za-z_0-9!$%&*+\-<=>?\\_~^/]\+" contained
-syn match tl_ident "[A-Za-z_0-9!$%&*+\-<=>?\\_~/]*[A-Za-z_!$%&*+\-<=>?\\_~^/#][A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]*" contained
+syn match tl_ident "[A-Za-z_0-9!$%&*+\-<=>?\\_~/]\+[A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]*" contained
+syn match txr_pnum "#[xob][+\-]\?[A-Za-z_0-9]\+" contains=txr_xnum,txr_bnum,txr_onum contained
+syn match txr_xnum "#x[+\-]\?[0-9A-Fa-f]\+" containedin=txr_pnum contained
+syn match txr_onum "#o[+\-]\?[0-7]\+" containedin=txr_pnum contained
+syn match txr_bnum "#b[+\-]\?[01]\+" containedin=txr_pnum contained
syn match txr_num "[+\-]\?[0-9]\+\([^A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]\|\n\)"me=e-1 contained
syn match txr_badnum "[+\-]\?[0-9]*[.][0-9]\+\([eE][+\-]\?[0-9]\+\)\?[A-Za-z_!$%&*+\-<=>?\\_~^/#]\+" contained
syn match txr_num "[+\-]\?[0-9]*[.][0-9]\+\([eE][+\-]\?[0-9]\+\)\?\([^A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]\|\n\)"me=e-1 contained
@@ -555,16 +558,20 @@ syn match txr_dotdot "\.\." contained
syn match txr_metaat "@" contained
syn match txr_circ "#[0-9]\+[#=]"
-syn region txr_bracevar matchgroup=Delimiter start="@[ \t]*[*]\?{" matchgroup=Delimiter end="}" contains=txr_num,tl_ident,tl_splice,tl_metanum,txr_metaat,txr_circ,txr_braced_ident,txr_dot,txr_dotdot,txr_string,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_regex,txr_quasilit,txr_chr,txr_nested_error
-syn region txr_directive matchgroup=Delimiter start="@[ \t]*(" matchgroup=Delimiter end=")" contains=txr_keyword,txr_string,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_num,txr_badnum,tl_ident,tl_regex,txr_string,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error
-syn region txr_list contained matchgroup=Delimiter start="\(#[HSR]\?\)\?(" matchgroup=Delimiter end=")" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error
-syn region txr_bracket contained matchgroup=Delimiter start="\[" matchgroup=Delimiter end="\]" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error
-syn region txr_mlist contained matchgroup=Delimiter start="@[ \t^',]*(" matchgroup=Delimiter end=")" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error
-syn region txr_mbracket matchgroup=Delimiter start="@[ \t^',]*\[" matchgroup=Delimiter end="\]" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error
+syn match txr_buf_error "[^']" contained
+syn match txr_buf_interior "\([0-9A-Fa-f][\n\t ]*[0-9A-Fa-f]\|[\n\t ]\+\)" contained
+
+syn region txr_bracevar matchgroup=Delimiter start="@[ \t]*[*]\?{" matchgroup=Delimiter end="}" contains=txr_num,txr_pnum,tl_ident,tl_splice,tl_metanum,txr_metaat,txr_circ,txr_braced_ident,txr_dot,txr_dotdot,txr_string,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_regex,txr_quasilit,txr_chr,txr_nested_error
+syn region txr_directive matchgroup=Delimiter start="@[ \t]*(" matchgroup=Delimiter end=")" contains=txr_keyword,txr_string,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_num,txr_pnum,txr_badnum,tl_ident,tl_regex,txr_string,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error
+syn region txr_list contained matchgroup=Delimiter start="\(#[HSR]\?\)\?(" matchgroup=Delimiter end=")" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_pnum,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_buf,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error
+syn region txr_bracket contained matchgroup=Delimiter start="\[" matchgroup=Delimiter end="\]" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_pnum,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_buf,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error
+syn region txr_mlist contained matchgroup=Delimiter start="@[ \t^',]*(" matchgroup=Delimiter end=")" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_pnum,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_buf,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error
+syn region txr_mbracket matchgroup=Delimiter start="@[ \t^',]*\[" matchgroup=Delimiter end="\]" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_pnum,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_buf,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error
syn region txr_string contained start=+#\?\*\?"+ end=+["\n]+ contains=txr_stresc,txr_numesc,txr_badesc
syn region txr_quasilit contained start=+#\?\*\?`+ end=+[`\n]+ contains=txr_splicevar,txr_metanum,txr_bracevar,txr_mlist,txr_mbracket,txr_escat,txr_stresc,txr_numesc,txr_badesc
syn region txr_regex contained start="/" end="[/\n]" contains=txr_regesc,txr_numesc,txr_badesc
syn region tl_regex contained start="#/" end="[/\n]" contains=txr_regesc,txr_numesc,txr_badesc
+syn region txr_buf contained matchgroup=txr_buf start="#b'" end="'" contains=txr_buf_interior,txr_buf_error
syn region txr_ign_par contained matchgroup=Comment start="#;[ \t',]*\(#[HSR]\?\)\?(" matchgroup=Comment end=")" contains=txr_ign_par_interior,txr_ign_bkt_interior
syn region txr_ign_bkt contained matchgroup=Comment start="#;[ \t',]*\(#[HSR]\?\)\?\[" matchgroup=Comment end="\]" contains=txr_ign_par_interior,txr_ign_bkt_interior
syn region txr_ign_par_interior contained matchgroup=Comment start="(" matchgroup=Comment end=")" contains=txr_ign_par_interior,txr_ign_bkt_interior
@@ -597,7 +604,11 @@ hi def link txr_badesc Error
hi def link txr_ident Identifier
hi def link tl_ident Identifier
hi def link txr_num Number
+hi def link txr_xnum Number
+hi def link txr_bnum Number
+hi def link txr_onum Number
hi def link txr_badnum Error
+hi def link txr_pnum Error
hi def link txr_quote Special
hi def link txr_unquote Special
hi def link txr_splice Special
@@ -609,6 +620,9 @@ hi def link txr_munqspl Special
hi def link tl_splice Special
hi def link txr_error Error
hi def link txr_nested_error Error
+hi def link txr_buf String
+hi def link txr_buf_interior String
+hi def link txr_buf_error Error
hi def link txr_ign_par Comment
hi def link txr_ign_bkt_interior Comment
hi def link txr_ign_par_interior Comment