Guix Workflow Language, aka Guix Workflow Language, is a programming language created in 2017.
#1830on PLDB | 7Years Old |
;; https://www.guixwl.org/extended-start
;; We are going to extend the workflow defined in the file
;; "example-workflow.w".
define dynamic-workflow
load-workflow "/tmp/examples/example-workflow.w"
process: (list-file-template filename)
name
string-append "list-file-"
basename filename
packages "gzip"
inputs filename
outputs
string-append filename ".list"
run-time
complexity
space 20 mebibytes
time 30 seconds
# { gzip --list {{inputs}} > {{outputs}} }
;; Get all processes of the other workflow.
define foreign-processes
workflow-processes dynamic-workflow
;; Get the processes that we want to extend on.
define compress-file-processes
processes-filter-by-name foreign-processes "compress-file"
;; Create the new processes.
define list-file-processes
map list-file-template
append-map process-outputs compress-file-processes
workflow: extended-dynamic-workflow
processes
append
;; These are the process connections of the imported workflow
workflow-restrictions dynamic-workflow
;; And these are the new process connections. The "zip" procedure
;; pairs up each of the processes in "list-file-processes" with
;; one of the processes in "compress-file-processes".
zip list-file-processes compress-file-processes
Feature | Supported | Example | Token |
---|---|---|---|
Comments | ✓ | ; A comment | |
Line Comments | ✓ | ; A comment | ; |
Semantic Indentation | X |