diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2023-07-27 19:03:48 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2023-07-27 19:03:48 -0700 |
commit | 9fd7b65bfbc670dbfb14d7b46061e48d603dd98c (patch) | |
tree | 5b24ca7d53b4444622ca3a4ede8d76971c8ba497 /stdlib | |
parent | 93661b30a25cce377935e61a6a330fa6c761fdd3 (diff) | |
download | txr-9fd7b65bfbc670dbfb14d7b46061e48d603dd98c.tar.gz txr-9fd7b65bfbc670dbfb14d7b46061e48d603dd98c.tar.bz2 txr-9fd7b65bfbc670dbfb14d7b46061e48d603dd98c.zip |
New functions and fixes in lexical introspection.
* evalc (macro_k): New keyword symbol variable.
(lexical_binding_kind, lexical_fun_binding_kind)
New functions.
(lexical_var_p): Bugfix: if the symbol is a special
variable, do not short-circuit to a nil answer.
Special variables can be shadowed by symbol macros.
The function is now defined in terms of lexical_binding_kind.
(lexical_symacro_p, lexical_macro_p): New
functions.
(lexical_fun_p): Now defined using lexical_fun_binding_kind.
(lexical_lisp1_binding): Bugfix: check for special
variables; do not report special variables as :var.
(eval_init): Initialize macro_k. Register new intrinsics:
lexical-binding-kind, lexical-fun-binding-kind,
lexical-symacro-p, lexical-macro-p.
* txr.1: Documented.
* stdlib/doc-syms.tl: Updated.
Diffstat (limited to 'stdlib')
-rw-r--r-- | stdlib/doc-syms.tl | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/stdlib/doc-syms.tl b/stdlib/doc-syms.tl index 497b27a1..79a52f39 100644 --- a/stdlib/doc-syms.tl +++ b/stdlib/doc-syms.tl @@ -1150,9 +1150,13 @@ ("less" "N-01D6CEA1") ("let" "N-013AF20B") ("let*" "N-013AF20B") - ("lexical-fun-p" "N-007B1A53") + ("lexical-binding-kind" "N-01E65971") + ("lexical-fun-binding-kind" "N-01B4FFA6") + ("lexical-fun-p" "N-021EC6D2") ("lexical-lisp1-binding" "N-02D124AB") - ("lexical-var-p" "N-007B1A53") + ("lexical-macro-p" "N-021EC6D2") + ("lexical-symacro-p" "N-021EC6D2") + ("lexical-var-p" "N-021EC6D2") ("lgamma" "D-0086") ("lib-version" "N-032F57D4") ("line" "N-02D5D09D") |