aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-09-10propnet: Trigger propagators with no inputs.Arun Isaac
* ravanan/propnet.scm (run-propnet): Pre-schedule all propagators. * tests/propnet.scm: New file.
2024-09-10workflow: Support ScatterFeatureRequirement.Arun Isaac
* ravanan/workflow.scm (%supported-requirements): Add ScatterFeatureRequirement.
2024-09-10dir-locals: Do not indent call-with-temporary-directory specially.Arun Isaac
* .dir-locals.el (scheme-mode): Do not set scheme-indent-function on call-with-temporary-directory.
2024-09-10dir-locals: Set fill-column to 80 only in scheme-mode.Arun Isaac
For other major modes, especially in magit commit message buffers, we want the default fill-column of 70. * .dir-locals.el (nil)[fill-column]: Move to scheme-mode.
2024-09-10tests: Add tests.Arun Isaac
* tests/work/command-line-tool.scm: New file.
2024-09-10gitignore: Add log files.Arun Isaac
log files are generated by tests. * .gitignore: Add *.log.
2024-09-10Makefile: Add check target.Arun Isaac
* Makefile (GUILE, tests): New variable. (check): New target. * guix.scm (ravanan)[arguments]: Enable tests.
2024-09-10bin: Import (guix profiles) to load manifest files.Arun Isaac
* bin/ravanan: Import (guix profiles).
2024-09-06command-line-tool: Implement scatter steps.Arun Isaac
* ravanan/command-line-tool.scm (command-line-tool-scheduler)[schedule, poll, capture-output]: Implement scatter steps.
2024-09-06workflow: Extract scatter and scatterMethod.Arun Isaac
* ravanan/command-line-tool.scm (<scheduler-proc>)[scatter, scatter-method]: New fields. * ravanan/workflow.scm (command-line-tool->propagator, workflow-class->propagators): Initialize scatter and scatter-method in scheduler-proc object.
2024-09-06vectors: Re-export vector-every.Arun Isaac
* ravanan/vectors.scm: Import vector-every from (srfi srfi-43) and re-export it.
2024-09-06command-line-tool: Refactor scheduler into separate named functions.Arun Isaac
* ravanan/command-line-tool.scm (command-line-tool-scheduler): Refactor scheduler into separate named functions.
2024-09-06command-line-tool: Make job state records opaque.Arun Isaac
The job state records must not be inspected from other modules. They may only be passed around as opaque blobs. * ravanan/command-line-tool.scm: Do not export single-machine-job-state, single-machine-job-state?, single-machine-job-state-script, slurm-job-state, slurm-job-state?, slurm-job-state-script and slurm-job-state-job-id.
2024-09-06command-line-tool: Introduce <scheduler-proc> record type.Arun Isaac
* ravanan/command-line-tool.scm (<scheduler-proc>): New record type. (command-line-tool-scheduler): Use <scheduler-proc> records. * ravanan/workflow.scm (command-line-tool->propagator): Use <scheduler-proc> records.
2024-09-06propnet: Support optional inputs.Arun Isaac
* ravanan/propnet.scm (<propagator>)[optional-inputs]: New field. * ravanan/propnet.scm (activate-propagator): Activate propagator even when optional inputs are absent. * ravanan/workflow.scm: Import (ravanan work utils). (command-line-tool->propagator, workflow-class->propagators): Specify optional inputs of propagators. (workflow->command-line-tool-steps): Inherit defaults down to the steps from the containing workflow. [inherit-defaults]: New function.
2024-09-05work: Handle matching null objects to array types.Arun Isaac
* ravanan/work/command-line-tool.scm (match-type): Handle matching null objects to array types.
2024-09-05work: Match null type using pattern matching.Arun Isaac
* ravanan/work/command-line-tool.scm (vector-empty?): Delete function. (match-type): Match null type using pattern matching.
2024-09-05workflow: Do not error out on optional outputs.Arun Isaac
* ravanan/workflow.scm (run-workflow)[capture-output]: Do not error out on optional outputs (that is, of the null type).
2024-09-05vectors: Add vector-filter-map->list.Arun Isaac
* ravanan/vectors.scm: Import (srfi srfi-1). (vector-filter-map->list): New public function.
2024-09-05workflow: Refactor workflow output capture into separate function.Arun Isaac
* ravanan/workflow.scm (run-workflow)[capture-output]: New function. Use capture-output.
2024-09-05command-line-tool: Remove mutual recursion in collect-bindings.Arun Isaac
* ravanan/command-line-tool.scm (build-command)[input+type-tree+binding->command-line-binding]: Remove mutual recursion with collect-bindings.
2024-09-05command-line-tool: Require glob only for File and Directory types.Arun Isaac
* ravanan/command-line-tool.scm (build-command-line-tool-script)[output-binding-glob]: Require glob only for File and Directory types.
2024-09-05command-line-tool: Refactor glob extraction into separate function.Arun Isaac
* ravanan/command-line-tool.scm (build-command-line-tool-script)[output-binding-glob]: New function. [capture-outputs-gexp]: Use output-binding-glob.
2024-09-05workflow: Check requirements and hints.Arun Isaac
* ravanan/workflow.scm (workflow->propagators): Check requirements and hints.
2024-09-05command-line-tool: Emit newline after warning.Arun Isaac
* ravanan/command-line-tool.scm (warning): Emit newline.
2024-09-05command-line-tool: Report ID of input whose type is not specified.Arun Isaac
* ravanan/command-line-tool.scm (collect-input-files): Report ID of input whose type is not specified.
2024-09-05command-line-tool: Disambiguate error from raise-error.Arun Isaac
error reports an error to the user. raise-error raises an exception and is meant for programmers. * ravanan/command-line-tool.scm: Import error from (rnrs base) as raise-error. (build-command, collect-input-files, resolve-inputs, build-command-line-tool-script): Use raise-error instead of error.
2024-09-05workflow: Support merging vectors element-wise.Arun Isaac
* ravanan/workflow.scm (maybe-vector?): New function. (merge-values): Support merging vectors element-wise.
2024-09-05command-line-tool: Match type to "stdout" using equal?.Arun Isaac
Matching using string=? errors out when the type is not a string (for example, an array type). * ravanan/command-line-tool.scm (build-command-line-tool-script)[stdout-filename, capture-outputs-gexp]: Match type to "stdout" using equal?.
2024-09-03command-line-tool: Import guile-gcrypt as an extension.Arun Isaac
* ravanan/command-line-tool.scm (build-command-line-tool-script): Use with-extensions, not with-imported-modules, to import guile-gcrypt.
2024-09-03command-line-tool: Pass workflow-output-directory to path->value.Arun Isaac
* ravanan/command-line-tool.scm (build-command-line-tool-script)[other-output->value]: Accept workflow-output-directory argument; pass it to path->value. [capture-outputs-gexp]: Pass workflow-output-directory to other-output->value.
2024-08-24propnet: Enqueue propagators to an inbox before scheduling them.Arun Isaac
* ravanan/propnet.scm (run-propnet): Enqueue propagators to an intermediate inbox before scheduling them.
2024-08-24workflow: Retrieve outputs differently based on workflow class.Arun Isaac
* ravanan/workflow.scm (run-workflow): Retrieve outputs differently based on whether the workflow is a CommandLineTool class or a Workflow class.
2024-08-24command-line-tool: Report progress verbosely.Arun Isaac
* ravanan/command-line-tool.scm (run-command-line-tool, command-line-tool-scheduler): Report progress verbosely, and print out paths to log files.
2024-08-22bin: Add --help flag.Arun Isaac
* bin/ravanan (print-usage): New function. (main): Use print-usage.
2024-08-22bin: Remove unused invoke function.Arun Isaac
* bin/ravanan (invoke): Delete function.
2024-08-22reader: Read files in other directories correctly.Arun Isaac
* ravanan/reader.scm (read-workflow, read-inputs): Read the basename of the full file path.
2024-08-22Make repository a Guix channel.Arun Isaac
* .guix-authorizations, .guix-channel: New files.
2024-08-22Add gitignore.Arun Isaac
* .gitignore: New file.
2024-08-22Uncommit binary files.Arun Isaac
These binary guile object files were committed accidentally in the initial commit. * ravanan/command-line-tool.go, ravanan/config.go, ravanan/glob.go, ravanan/monads.go, ravanan/propnet.go, ravanan/reader.go, ravanan/slurm-api.go, ravanan/utils.go, ravanan/vectors.go, ravanan/work/command-line-tool.go, ravanan/work/types.go, ravanan/work/utils.go, ravanan/workflow.go: Delete files.
2024-08-20Initial commitArun Isaac