summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--RELNOTES29
-rwxr-xr-xconfigure2
-rw-r--r--protsym.c168
-rw-r--r--share/txr/stdlib/ver.tl2
-rw-r--r--txr.16
5 files changed, 118 insertions, 89 deletions
diff --git a/RELNOTES b/RELNOTES
index 41134e77..16df5017 100644
--- a/RELNOTES
+++ b/RELNOTES
@@ -1,3 +1,32 @@
+ TXR 247
+ 2020-01-19
+
+
+ Features
+
+ - lib:
+ - structural pattern matching introduced.
+ - prog2 macro introduced.
+ - progn, prog1 and prog2 are now also functions.
+
+ - build:
+ - configure's test for how to define inline functions fixed.
+ - hopefully this will fix things for Brew.
+ - linker options and library flags are now separate;
+ there is a new platform-ldlibs configure option.
+ - LDLIBS variable is now honored, not just LDLIBS.
+
+ - gc:
+ - finalizers now registered during finalization processing
+ may be called in the same phase, if they are eligible.
+
+ Bugs
+
+ - show-stopper regression in mapcar/maprod.
+
+
+
+
TXR 246
2020-12-31
diff --git a/configure b/configure
index 4754ef22..da529dfd 100755
--- a/configure
+++ b/configure
@@ -566,7 +566,7 @@ chmod a+x reconfigure
#
-txr_ver=246
+txr_ver=247
#
# The all important banner.
diff --git a/protsym.c b/protsym.c
index 07def32b..87f3a156 100644
--- a/protsym.c
+++ b/protsym.c
@@ -107,48 +107,48 @@ extern val panic_s, parser_s, path_exists_s, path_not_found_s, path_permission_s
extern val path_s, pkg_s, plus_s, plusp_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 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, 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, round1_s, round_s;
-extern val rplaca_s, rplacd_s, sbit_s, sec_s, seek_s;
-extern val seq_iter_s, sequence_s, set_prop_s, set_s, setq_s;
-extern val setqf_s, short_s, shortest_k, sign_extend_s, signum_s;
-extern val sin_s, single_s, sinh_s, size_k, size_s;
-extern val skip_s, slot_s, some_s, space_k, special_s;
-extern val splice_s, sqrt_s, square_s, stat_s, stddebug_s;
-extern val stderr_s, stdin_s, stdio_stream_s, stdnull_s, stdout_s;
-extern val str_d_s, str_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_catch_s, sys_l1_setq_s, sys_l1_val_s, sys_lisp1_setq_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, tan_s, tanh_s, text_s, throw_s;
-extern val time_local_s, time_parse_s, time_s, time_string_s, time_utc_s;
-extern val timeout_error_s, times_k, tlist_k, tnode_s, tobase64_k;
-extern val tobase64url_k, tofloat_k, tohtml_k, tohtml_star_k, toint_k;
-extern val tonumber_k, topercent_k, tourl_k, trailer_s, tree_bind_s;
-extern val tree_case_s, tree_construct_s, tree_fun_whitelist_s, tree_iter_s, tree_lit_s;
-extern val tree_s, trunc1_s, trunc_s, truncate_s, try_s;
-extern val type_error_s, ubit_s, uchar_s, uid_k, uid_s;
-extern val uint16_s, uint32_s, uint64_s, uint8_s, uint_s;
-extern val ulong_s, unbound_s, unget_byte_s, unget_char_s, union_s;
-extern val unique_s, unquote_s, until_s, until_star_s, upcase_k;
-extern val uref_s, user_package_s, userdata_k, ushort_s, usr_var_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, vm_closure_s;
-extern val vm_desc_s, void_s, warning_s, wchar_s, weak_keys_k;
-extern val weak_vals_k, when_s, while_s, while_star_s, whole_k;
-extern val width_s, wild_s, word_char_k, wrap_k, wstr_d_s;
-extern val wstr_s, year_s, zap_s, zarray_s, zchar_s;
-extern val zerop_s, zeroplus_s, zone_s;
+extern val prog2_s, progn_s, promise_forced_s, promise_inprogress_s, promise_s;
+extern val ptr_in_d_s, ptr_in_s, ptr_out_d_s, ptr_out_s, ptr_out_s_s;
+extern val ptr_s, put_buf_s, put_byte_s, put_char_s, put_string_s;
+extern val qquote_s, qref_s, quasi_s, quasilist_s, query_error_s;
+extern val quote_s, r_atan2_s, r_ceil_s, r_expt_s, r_floor_s;
+extern val r_lognot_s, r_logtrunc_s, r_mod_s, r_round_s, r_trunc_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 rec_source_loc_s, recip_s, reflect_k, regex_s, rep_s;
+extern val repeat_s, repeat_spec_k, require_s, resolve_k, rest_s;
+extern val restart_s, return_from_s, return_s, rfilt_k, 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, stat_s;
+extern val stddebug_s, stderr_s, stdin_s, stdio_stream_s, stdnull_s;
+extern val stdout_s, str_d_s, str_s, stream_s, string_k;
+extern val string_s, struct_lit_s, struct_s, struct_type_s, switch_s;
+extern val sym_s, symacro_k, symacrolet_s, syntax_error_s, sys_abscond_from_s;
+extern val sys_apply_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 weak_keys_k, weak_vals_k, when_s, while_s, while_star_s;
+extern val whole_k, width_s, wild_s, word_char_k, wrap_k;
+extern val wstr_d_s, wstr_s, year_s, zap_s, zarray_s;
+extern val zchar_s, zerop_s, zeroplus_s, zone_s;
#if HAVE_DLOPEN
extern val dlhandle_s, dlsym_s;
@@ -257,48 +257,48 @@ val *protected_sym[] = {
&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,
- &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, &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, &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, &stat_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_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, &weak_keys_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, &year_s, &zap_s, &zarray_s, &zchar_s,
- &zerop_s, &zeroplus_s, &zone_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, &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, &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, &stat_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_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,
+ &weak_keys_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, &year_s, &zap_s, &zarray_s,
+ &zchar_s, &zerop_s, &zeroplus_s, &zone_s,
#if HAVE_DLOPEN
&dlhandle_s, &dlsym_s,
diff --git a/share/txr/stdlib/ver.tl b/share/txr/stdlib/ver.tl
index 3df0699a..116177e6 100644
--- a/share/txr/stdlib/ver.tl
+++ b/share/txr/stdlib/ver.tl
@@ -1,2 +1,2 @@
-(defvarl lib-version 245)
+(defvarl lib-version 247)
(defvarl *lib-version* lib-version)
diff --git a/txr.1 b/txr.1
index 48916a23..d6ee2087 100644
--- a/txr.1
+++ b/txr.1
@@ -368,9 +368,9 @@
.ds TX \f[B]TXR\f[]
.ds TL \f[B]TXR Lisp\f[]
.\" Start of man page:
-.TH TXR 1 2020-12-31 "Utility Commands" "TXR Programming Language" "Kaz Kylheku"
+.TH TXR 1 2020-01-19 "Utility Commands" "TXR Programming Language" "Kaz Kylheku"
.SH* NAME
-\*(TX \- Programming Language (Version 246)
+\*(TX \- Programming Language (Version 247)
.SH* SYNOPSIS
.mono
@@ -73858,7 +73858,7 @@ Versions 200 through 215 produce version 4 files and load version 2, 3 or 4.
Versions 216 through 243 produce version 5.0 files and load
version 2, 3, 4 or 5, regardless of minor version.
-Versions 244 through 246 produce version 5.1 files and load
+Versions 244 through 247 produce version 5.1 files and load
version 2, 3, 4 or 5, regardless of minor version.
.SS* Semantic Differences between Compilation and Interpretation