From 7ce2db21ffd18aba276b823387f883a0d86d53b4 Mon Sep 17 00:00:00 2001 From: Nathan Braswell Date: Sat, 19 Feb 2022 00:43:27 -0500 Subject: [PATCH] Actually, make sure to always include it if there are other progress_idxs --- partial_eval.csc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/partial_eval.csc b/partial_eval.csc index ae4de9d..db7eca9 100644 --- a/partial_eval.csc +++ b/partial_eval.csc @@ -274,7 +274,8 @@ (marked_symbol (lambda (progress_idxs x) (array 'marked_symbol (hash_symbol progress_idxs x) progress_idxs x))) (marked_array (lambda (is_val attempted resume_hashes x) (dlet ( - (array_union (lambda (a b) (foldl (lambda (a bi) (if (in_array bi a) a (cons bi a))) a b))) + (array_item_union (lambda (a bi) (if (in_array bi a) a (cons bi a)))) + (array_union (lambda (a b) (foldl array_item_union a b))) ; If not is_val, then if the first entry (combiner) is not done or is a combiner and not function ; shouldn't add the rest of them, since they'll have to be passed without eval ; We do this by ignoring trues for non-first @@ -290,7 +291,9 @@ (progress_idxs (cond ((and (= nil sub_progress_idxs) (not is_val) (= true attempted)) nil) ((and (= nil sub_progress_idxs) (not is_val) (= false attempted)) true) ((and (= nil sub_progress_idxs) (not is_val) (int? attempted)) (array attempted)) - (true sub_progress_idxs))) + (true (if (int? attempted) + (array_item_union sub_progress_idxs attempted) + sub_progress_idxs)))) ) (array 'marked_array (hash_array is_val attempted x) is_val attempted (array progress_idxs hashes) x)))) (marked_env (lambda (has_vals progress_idxs dbi arrs) (array 'env (hash_env progress_idxs dbi arrs) has_vals progress_idxs dbi arrs))) (marked_val (lambda (x) (array 'val (hash_val x) x)))