Guix Workflow Language, aka Guix Workflow Language, is an actively used programming language created in 2017.

3Years Old ?Users ?Jobs

Example code from the web:

 ;; 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

Last updated January 18th, 2020

Edit Guix Workflow Language on GitHub