diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2022-08-28 12:01:52 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2022-08-28 12:01:52 -0700 |
commit | 1a3fe1a084fd68ff4f10ef8cf031f347563b79ca (patch) | |
tree | 00f541955af1672e133064ef69abd976a15ec095 /eval.c | |
parent | a2e0d566ef4d45d4915d43d035f6f21270d70178 (diff) | |
download | txr-1a3fe1a084fd68ff4f10ef8cf031f347563b79ca.tar.gz txr-1a3fe1a084fd68ff4f10ef8cf031f347563b79ca.tar.bz2 txr-1a3fe1a084fd68ff4f10ef8cf031f347563b79ca.zip |
New macro: close-lazy-streams.
* lib.c (lazy_stream_s): New symbol variable.
(lazy_streams_binding): New static variable.
(lazy_stream_register): New static function
(lazy_stream_cons): If the stream is associated with
a lazy cons, register it with lazy_stream_register.
(obj_init): gc-protect lazy_streams_binding variable.
Intern the sys:*lazy-streams* symbol.
* lib.h (lazy_streams_s): Declared.
* eval.c (eval_init): Register sys:*lazy-streams*
special variable.
* stdlib/getput.tl (close-lazy-streams): New macro.
* autoload.c (getput_set_entries): Trigger autload on
close-lazy-streams symbol.
* txr.1: Documented.
* stdlib/doc-syms.tl: Updated.
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -7486,6 +7486,8 @@ void eval_init(void) reg_fun(intern(lit("rt-assert-fail"), system_package), func_n4ov(rt_assert_fail, 3)); + reg_var(lazy_streams_s, nil); + eval_error_s = intern(lit("eval-error"), user_package); case_error_s = intern(lit("case-error"), user_package); uw_register_subtype(eval_error_s, error_s); |