diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2019-09-06 06:58:48 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2019-09-06 06:58:48 -0700 |
commit | aebdc3d7c22820d7604f2c424cbc179d7ebb34d1 (patch) | |
tree | 6bea563acba130e47b19ec10b4b2d04fdf012cae /txr.1 | |
parent | 13732bc2f2f66d992dfaabddd7440b7018d9b562 (diff) | |
download | txr-aebdc3d7c22820d7604f2c424cbc179d7ebb34d1.tar.gz txr-aebdc3d7c22820d7604f2c424cbc179d7ebb34d1.tar.bz2 txr-aebdc3d7c22820d7604f2c424cbc179d7ebb34d1.zip |
lib: access special methods via special slot mechanism.
* ffi.c (ffi_flex_struct_in): Use get_special_slot to obtain
length method.
* lib.c (nullify_s, from_list_s, lambda_set_s): Definitions
removed from here.
(seq_info, car, cdr, rplaca, rplacd, make_like, nullify,
replace_obj, length, empty, sub, ref, refset, dwim_set): Use
get_special_slot to obtain special method from object,
rather than maybe_slot.
(obj_init): Remove initializations of nullify_s, from_list_s
and lambda_set_s from here.
* struct.c (enum special_slot): Definition removed from here.
(nullify_s, from_list_s, lambda_set_s): Definitions moved here
from lib.c.
(special_sym): New static array.
(struct_init): Initializations of nullify_s, from_list_s
and lambda_set_s moved here from lib.c.
(get_special_slot): New function.
* struct.h (lambda_set_s): Declared.
(enum special_slot): Definition moved here.
(get_special_slot): Declared.
* txr.1: Added compat note, since get_special_slot behaves
like maybe_slot under 224 compatibility.
Diffstat (limited to 'txr.1')
-rw-r--r-- | txr.1 | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -69566,6 +69566,16 @@ of these version values, the described behaviors are provided if is given an argument which is equal or lower. For instance .code "-C 103" selects the behaviors described below for version 105, but not those for 102. +.IP 224 +After \*(TX 224, the treatment of certain special structure functions +has changed. Selecting 224 compatibility or lower restores that behavior. +The specification given in the +.B "Special Structure Functions" +paragraph has always stated that special functions must be static slots, +and that the behavior is unspecified if they are instance slots. +The behavior of \*(TX 224 and earlier was that these functions worked anyway +if they were instance slots; after \*(TX 224, they some special functions +will no longer be recognized if bound to instance slots. .IP 222 After \*(TX 222, the behavior of .code :vars |