diff options
author | Arun Isaac | 2021-06-01 14:11:55 +0530 |
---|---|---|
committer | Arun Isaac | 2021-06-01 14:11:55 +0530 |
commit | 35bcaaa67efbe9b60e69b0f7c17acc186c74e7c3 (patch) | |
tree | e5cdf85f38f2165e33285cffca828451e5009179 | |
parent | 0d3e584d03131aae13aeaedfb2451d673b6d91f7 (diff) | |
download | ccwl-35bcaaa67efbe9b60e69b0f7c17acc186c74e7c3.tar.gz ccwl-35bcaaa67efbe9b60e69b0f7c17acc186c74e7c3.tar.lz ccwl-35bcaaa67efbe9b60e69b0f7c17acc186c74e7c3.zip |
In pipe, pass through input keys to all expressions.
Earlier, the input keys would only be passed to the first
expression. The second expression would only receive the output keys
from the first expression. Passing input keys through to all
expressions is a common use case, since expressions often need to
access global inputs. If the original behavior is desired, we can
always introduce a new construct, say `pipe-strict'.
* ccwl/ccwl.scm (workflow-steps): In pipe, pass through input keys to
all expressions.
-rw-r--r-- | ccwl/ccwl.scm | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/ccwl/ccwl.scm b/ccwl/ccwl.scm index 0848c45..1f864e1 100644 --- a/ccwl/ccwl.scm +++ b/ccwl/ccwl.scm @@ -310,8 +310,9 @@ list of supplied input <key> objects." ;; pipe ((pipe expressions ...) (foldn (lambda (expression input-keys steps) - (let ((input-keys child-steps (workflow-steps expression input-keys))) - (values input-keys (append steps child-steps)))) + (let ((child-output-keys child-steps (workflow-steps expression input-keys))) + (values (append input-keys child-output-keys) + (append steps child-steps)))) #'(expressions ...) input-keys (list))) |