summaryrefslogtreecommitdiff
path: root/ccwl
AgeCommit message (Collapse)Author
2021-06-28ccwl: Support SVG images in HTML documentation.Arun Isaac
* ccwl/skribilo.scm: Add "svg" to the image-format custom of the HTML engine.
2021-06-21ccwl: Link source links to entire s-exp.Arun Isaac
* ccwl/skribilo.scm (sexp-position, position->line-number, sexp-file-lines): New functions. (source-ref): Refer to entire s-exp, not just a single line.
2021-06-19ccwl: Add source links.Arun Isaac
* ccwl/skribilo.scm: Import (rnrs io ports), (ice-9 match), (ice-9 regex) and (srfi srfi-171). (%source-uri-base): New variable. (source-ref): New public function.
2021-06-15doc: Move documentation from texinfo to skribilo.Arun Isaac
* doc/ccwl.texi: Delete file. * ccwl/skribilo.scm, doc/ccwl.skb, doc/capture-output-file-with-parameter-reference.out, doc/capture-output-file-with-parameter-reference.scm, doc/capture-output-file.out, doc/capture-output-file.scm, doc/capture-stdout.out, doc/capture-stdout.scm, doc/checksum.out, doc/checksum.scm, doc/decompress-compile-run.out, doc/decompress-compile-run.scm, doc/hello-world.out, doc/hello-world.scm, doc/hello.tar.out: New files. * configure.ac: Check for skribilo. * Makefile.am: Unregister doc/ccwl.texi. Add documentation build rules. * guix.scm (ccwl)[native-inputs]: Replace texinfo with skribilo. * .gitignore: Add doc/skribilo. Remove doc/version.texi, doc/*.html, doc/*.info.
2021-06-01Do not export obsolete functions.Arun Isaac
* ccwl/ccwl.scm: Do not export step and pipeline.
2021-06-01Introduce new command definition syntax.Arun Isaac
* ccwl/ccwl.scm: Do not export input and output. (<input>): Delete source field. Add position field. (input): Accept position and prefix fields in constructor. Do not initialize non-existent source field. (<command>): Delete additional-inputs field. Add inputs field. Delete set-command-outputs and set-command-stdin setters. (command): Rewrite as macro that accepts new command definition syntax. (<cli-element>): Delete type. (command->cwl): Generate CWL from new <command> type. (command-input-keys): Simplify to support new <command> type.
2021-06-01Remove unused setters, appenders, etc.Arun Isaac
* ccwl/ccwl.scm: Do not export input-with-prefix. (<input>): Delete set-input-prefix. (<step>): Delete set-step-run, set-step-id, set-step-out. (input-with-prefix, field-appender, modify-step-run, append-step-in, append-step-out, append-command-outputs): Delete functions.
2021-06-01In pipe, pass through input keys to all expressions.Arun Isaac
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.
2021-06-01Filter out global workflow inputs from workflow outputs.Arun Isaac
* ccwl/ccwl.scm (key->output): New function. (workflow-steps): Filter out global workflow inputs from workflow-outputs.
2021-06-01Add filter-mapi.Arun Isaac
* ccwl/utils.scm (filter-mapi): New public function.
2021-06-01Add syntax-lambda**.Arun Isaac
* ccwl/utils.scm (syntax-lambda**): New public macro.
2021-06-01Avoid datum->syntax.Arun Isaac
* ccwl/utils.scm (lambda**): Avoid using datum->syntax whenever possible.
2021-06-01Add unsyntax-keywords.Arun Isaac
* ccwl/utils.scm (unsyntax-keywords): New function.
2021-05-23Unify command variable reference.Arun Isaac
* ccwl/ccwl.scm (command-variable, command-syntax->object): Delete functions. (command-object): New function. (workflow-steps): Use command-object instead of command-variable and command-syntax->object.
2021-05-17Support simpler syntax for inputs with no properties.Arun Isaac
* ccwl/ccwl.scm (workflow): When input has no properties, support only specifying the symbol.
2021-05-17Support implicit key pairing.Arun Isaac
* ccwl/ccwl.scm (command-syntax->object): When command accepts only a single input and there is only a single key available, support implicit key pairing.
2021-05-17Support commands with implicit step identifier.Arun Isaac
* ccwl/ccwl.scm (workflow-steps): When command does not specify step identifier, assume the step identifier is the same as the command symbol.
2021-05-17Abstract out command variable reflection.Arun Isaac
* ccwl/ccwl.scm (command-variable, command-syntax->object): New functions. (workflow-steps): Use command-variable and command-syntax->object.
2021-05-17Remove deprecated %stdin and %stdout variables.Arun Isaac
* ccwl/ccwl.scm (%stdin, %stdout): Delete variables.
2021-05-17Support general DAG workflows.Arun Isaac
* ccwl/ccwl.scm: Import (srfi srfi-71). (command-input-keys, workflow-steps): New function. (workflow): Support general Directed Acyclic Graph (DAG) workflows.
2021-05-15Implement <key> type and utilities.Arun Isaac
* ccwl/ccwl.scm (<key>): New type. (key, cwl-key-address): New functions.
2021-05-15Pass inputs explicitly to make-workflow.Arun Isaac
* ccwl/ccwl.scm (make-workflow): Accept inputs explicitly.
2021-05-15Use symbols as input identifiers instead of strings.Arun Isaac
* ccwl/ccwl.scm (input=?): Compare using eq? instead of string=?. (command->cwl, write-cwl): Convert input-id to string before appending.
2021-05-15Make stdin a unary key of command.Arun Isaac
* ccwl/ccwl.scm (command): Make stdin a unary key.
2021-05-15Do not convert YAML symbols from kebab case to camel case.Arun Isaac
Doing this conversion effectively forbids kebab case symbols in YAML. * ccwl/yaml.scm (kebab->camel): Delete function. (display-atom): Do not convert symbols from kebab case to camel case. * ccwl/ccwl.scm (make-workflow, output->cwl, command->cwl): Write camel case explicitly.
2021-05-15Add list functions for multi-valued functions.Arun Isaac
* ccwl/utils.scm (mapn, append-mapn, foldn): New public functions.
2021-04-26Remove deprecated pipeline function.Arun Isaac
* ccwl/ccwl.scm (pipeline): Delete function.
2021-04-26Escape asterisk characters in scm->yaml.Arun Isaac
* ccwl/yaml.scm (display-atom): Escape asterisk characters. * tests/yaml.scm ("strings with asterisk characters should be escaped"): New test.
2021-04-26Redefine command using lambda**.Arun Isaac
* ccwl/ccwl.scm (command): Redefine using lambda**.
2021-04-26Implement the CCWL embedded domain specific language.Arun Isaac
* ccwl/ccwl.scm: Import (ccwl utils). (command): Return <command> object. (auto-connect): Delete function. (invoke-command, make-workflow, workflow-steps): New functions. (workflow): Replace function with macro.
2021-04-26Add setter for source field of <output> type.Arun Isaac
* ccwl/ccwl.scm (<output>): Add functional setter set-output-source for source field. * .dir-locals.el (scheme-mode): Specify indentation for set-output-source.
2021-04-26Add plist->alist.Arun Isaac
* ccwl/utils.scm (pairify, plist->alist): New public functions.
2021-04-25Upgrade to CWL version 1.2.Arun Isaac
Version 1.2 of the CWL specification is required to support conditional steps. * ccwl/ccwl.scm (%cwl-version): Set to "v1.2".
2021-04-17Expand name Arun I to Arun Isaac.Arun Isaac
* ccwl/ccwl.scm, ccwl/utils.scm, ccwl/yaml.scm: Expand name Arun I to Arun Isaac.
2021-04-16Add copyright and commentary sections to files.Arun Isaac
* ccwl/ccwl.scm, ccwl/utils.scm, ccwl/yaml.scm: Add copyright and commentary sections.
2021-04-16Implement lambda** n-ary keyword function.Arun Isaac
* ccwl/utils.scm: Export lambda** instead of group-arguments. (group-arguments): Delete function. (lambda**): New macro.
2021-04-16Make unary-keywords argument of group-keyword-arguments optional.Arun Isaac
* ccwl/utils.scm (group-keyword-arguments): Make unary-keywords optional.
2021-04-16Add plist-ref utility.Arun Isaac
* ccwl/utils.scm: Import (srfi srfi-26). (plist-ref): New function.
2021-04-12Support n-ary keyword arguments.Arun Isaac
* ccwl/utils.scm: New file.
2021-03-22List additional-inputs while generating CWL.Arun Isaac
* ccwl/ccwl.scm (command->cwl): List additional-inputs in inputs array.
2021-03-22Add additional-inputs field to <command> type.Arun Isaac
* ccwl/ccwl.scm (<command>): Add additional-inputs field. (command): Initialize additional-inputs field.
2021-03-22Remove input->tree abstraction.Arun Isaac
<input> objects need to be expanded into CWL in context sensitive ways. There is no simple generalization. * ccwl/ccwl.scm (input->tree): Delete function. (workflow): Expand input->tree.
2021-03-22Delete input field of <command> object.Arun Isaac
* ccwl/ccwl.scm (<command>): Delete input field. (command): Do not set inputs field.
2021-03-21Print steps enclosing <command> objects correctly.Arun Isaac
* ccwl/ccwl.scm (write-cwl): Invoke command->cwl if step encloses <command> object.
2021-03-21Use both CWL arguments and inputs arrays.Arun Isaac
* ccwl/ccwl.scm (<cli-element>): New type. (command->cwl): Put string and expression arguments into the arguments array. Put <input> arguments into the inputs array.
2021-03-21Add alist filtering utility function.Arun Isaac
* ccwl/ccwl.scm (filter-alist): New function. (input->tree): Use filter-alist.
2021-03-21Set the default output of a pipeline.Arun Isaac
* ccwl/ccwl.scm (pipeline): Set the stdout of the last command to be the default output of the pipeline.
2021-03-21Pull out cwl-version as a separate variable.Arun Isaac
* ccwl/ccwl.scm (%cwl-version): New variable. (workflow, command->cwl): Use %cwl-version.
2021-03-21Add prefix field to <input> object.Arun Isaac
* ccwl/ccwl.scm (<input>): Add prefix field. (input): Initialize prefix field. (input-with-prefix): New public function.
2021-03-21Remove appender for inputs field of <command>.Arun Isaac
* ccwl/ccwl.scm (append-command-inputs): Delete function.