Age | Commit message (Expand) | Author |
2024-09-12 | reader: Refactor type normalization into separate function.•••* ravanan/reader.scm (normalize-formals): Refactor type normalization
into ...
[normalize-type]: ... new function.
| Arun Isaac |
2024-09-12 | command-line-tool: Import guile-filesystem as an extension.•••This resolves the warning about importing (ice-9 filesystem) from the
host.
* ravanan/command-line-tool.scm: Import guile-filesystem from (gnu
packages guile-xyz).
(build-command-line-tool-script): Use with-extensions, not
with-imported-modules, to import guile-filesystem.
| Arun Isaac |
2024-09-12 | command-line-tool: Support File type staging entries.•••* ravanan/command-line-tool.scm (build-command-line-tool-script):
Support File type staging entries.
| Arun Isaac |
2024-09-12 | command-line-tool: Support interpolation with parameter references.•••* ravanan/command-line-tool.scm (javascript-expression?): Return #t
even for parameter references mixed with literals.
(interpolate-parameter-references): New function.
(strip-javascript-expression): Delete function.
(coerce-expression): Use interpolate-parameter-references instead of
strip-javascript-expression.
| Arun Isaac |
2024-09-11 | command-line-tool: Import (rnrs io ports) into G-exp for put-string.•••* ravanan/command-line-tool.scm (build-command-line-tool-script):
Import (rnrs io ports).
| Arun Isaac |
2024-09-11 | command-line-tool: Write, not read from, literal staged file.•••* ravanan/command-line-tool.scm (build-command-line-tool-script):
Replace call-with-output-file with call-with-input-file.
| Arun Isaac |
2024-09-11 | command-line-tool: Use coerce-expression with staging files.•••*
ravanan/command-line-tool.scm (build-command-line-tool-script)[files-to-stage]:
Use coerce-expression.
Adapt calling expression.
| Arun Isaac |
2024-09-11 | command-line-tool: Return maybe monad from maybe-bind.•••* ravanan/command-line-tool.scm (build-command-line-tool-script):
Wrap result of files-to-stage in a maybe monad.
| Arun Isaac |
2024-09-11 | command-line-tool: Use vector-map->list.•••*
ravanan/command-line-tool.scm (build-command-line-tool-script)[files-to-stage]:
Use vector-map->list.
| Arun Isaac |
2024-09-11 | ui: Add docstrings.•••* ravanan/ui.scm (warning, user-error): Add docstrings.
| Arun Isaac |
2024-09-11 | workflow: Ensure required inputs are specified.•••* ravanan/workflow.scm: Import (ravanan ui).
(run-workflow): Error out when required inputs are not specified.
| Arun Isaac |
2024-09-11 | workflow: Move optional input predicate to separate function.•••* ravanan/workflow.scm (optional-input?): New function.
(command-line-tool->propagator): Use optional-input?.
| Arun Isaac |
2024-09-11 | ui: Rename error to user-error.•••error collides with a core binding.
* ravanan/ui.scm (error): Rename to user-error.
* ravanan/command-line-tool.scm: Import error without renaming to
raise-error. Replace calls to error with user-error, and calls to
raise-error with error.
| Arun Isaac |
2024-09-11 | ui: Move warning and error reporting functions to separate module.•••* ravanan/command-line-tool.scm: Import (ravanan ui).
(warning, error): Move to (ravanan ui).
* ravanan/ui.scm: New file.
| Arun Isaac |
2024-09-10 | job-state: Move job-state records into separate module.•••* ravanan/job-state.scm: New file.
* ravanan/command-line-tool.scm: Import (ravanan job-state).
(<single-machine-job-state>, <slurm-job-state>): Move to (ravanan
job-state).
(command-line-tool-scheduler): Use job-state-status and
job-state-script.
| Arun Isaac |
2024-09-10 | slurm-api: Set name of job.•••* ravanan/slurm-api.scm (submit-job): Accept name argument and set it
as the job name.
* ravanan/command-line-tool.scm (run-command-line-tool): Pass name to
submit-job.
| Arun Isaac |
2024-09-10 | propnet: Trigger propagators with no inputs.•••* ravanan/propnet.scm (run-propnet): Pre-schedule all propagators.
* tests/propnet.scm: New file.
| Arun Isaac |
2024-09-10 | workflow: Support ScatterFeatureRequirement.•••* ravanan/workflow.scm (%supported-requirements): Add
ScatterFeatureRequirement.
| Arun Isaac |
2024-09-10 | dir-locals: Do not indent call-with-temporary-directory specially.•••* .dir-locals.el (scheme-mode): Do not set scheme-indent-function on
call-with-temporary-directory.
| Arun Isaac |
2024-09-10 | dir-locals: Set fill-column to 80 only in scheme-mode.•••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.
| Arun Isaac |
2024-09-10 | tests: Add tests.•••* tests/work/command-line-tool.scm: New file.
| Arun Isaac |
2024-09-10 | gitignore: Add log files.•••log files are generated by tests.
* .gitignore: Add *.log.
| Arun Isaac |
2024-09-10 | Makefile: Add check target.•••* Makefile (GUILE, tests): New variable.
(check): New target.
* guix.scm (ravanan)[arguments]: Enable tests.
| Arun Isaac |
2024-09-10 | bin: Import (guix profiles) to load manifest files.•••* bin/ravanan: Import (guix profiles).
| Arun Isaac |
2024-09-06 | command-line-tool: Implement scatter steps.•••*
ravanan/command-line-tool.scm (command-line-tool-scheduler)[schedule,
poll, capture-output]: Implement scatter steps.
| Arun Isaac |
2024-09-06 | workflow: Extract scatter and scatterMethod.•••* 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.
| Arun Isaac |
2024-09-06 | vectors: Re-export vector-every.•••* ravanan/vectors.scm: Import vector-every from (srfi srfi-43) and
re-export it.
| Arun Isaac |
2024-09-06 | command-line-tool: Refactor scheduler into separate named functions.•••* ravanan/command-line-tool.scm (command-line-tool-scheduler):
Refactor scheduler into separate named functions.
| Arun Isaac |
2024-09-06 | command-line-tool: Make job state records opaque.•••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.
| Arun Isaac |
2024-09-06 | command-line-tool: Introduce <scheduler-proc> record type.•••* 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.
| Arun Isaac |
2024-09-06 | propnet: Support optional inputs.•••* 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.
| Arun Isaac |
2024-09-05 | work: Handle matching null objects to array types.•••* ravanan/work/command-line-tool.scm (match-type): Handle matching
null objects to array types.
| Arun Isaac |
2024-09-05 | work: Match null type using pattern matching.•••* ravanan/work/command-line-tool.scm (vector-empty?): Delete function.
(match-type): Match null type using pattern matching.
| Arun Isaac |
2024-09-05 | workflow: Do not error out on optional outputs.•••* ravanan/workflow.scm (run-workflow)[capture-output]: Do not error
out on optional outputs (that is, of the null type).
| Arun Isaac |
2024-09-05 | vectors: Add vector-filter-map->list.•••* ravanan/vectors.scm: Import (srfi srfi-1).
(vector-filter-map->list): New public function.
| Arun Isaac |
2024-09-05 | workflow: Refactor workflow output capture into separate function.•••* ravanan/workflow.scm (run-workflow)[capture-output]: New function.
Use capture-output.
| Arun Isaac |
2024-09-05 | command-line-tool: Remove mutual recursion in collect-bindings.•••*
ravanan/command-line-tool.scm (build-command)[input+type-tree+binding->command-line-binding]:
Remove mutual recursion with collect-bindings.
| Arun Isaac |
2024-09-05 | command-line-tool: Require glob only for File and Directory types.•••*
ravanan/command-line-tool.scm (build-command-line-tool-script)[output-binding-glob]:
Require glob only for File and Directory types.
| Arun Isaac |
2024-09-05 | command-line-tool: Refactor glob extraction into separate function.•••*
ravanan/command-line-tool.scm (build-command-line-tool-script)[output-binding-glob]:
New function.
[capture-outputs-gexp]: Use output-binding-glob.
| Arun Isaac |
2024-09-05 | workflow: Check requirements and hints.•••* ravanan/workflow.scm (workflow->propagators): Check requirements and hints.
| Arun Isaac |
2024-09-05 | command-line-tool: Emit newline after warning.•••* ravanan/command-line-tool.scm (warning): Emit newline.
| Arun Isaac |
2024-09-05 | command-line-tool: Report ID of input whose type is not specified.•••* ravanan/command-line-tool.scm (collect-input-files): Report ID of input whose
type is not specified.
| Arun Isaac |
2024-09-05 | command-line-tool: Disambiguate error from raise-error.•••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.
| Arun Isaac |
2024-09-05 | workflow: Support merging vectors element-wise.•••* ravanan/workflow.scm (maybe-vector?): New function.
(merge-values): Support merging vectors element-wise.
| Arun Isaac |
2024-09-05 | command-line-tool: Match type to "stdout" using equal?.•••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?.
| Arun Isaac |
2024-09-03 | command-line-tool: Import guile-gcrypt as an extension.•••* ravanan/command-line-tool.scm (build-command-line-tool-script): Use
with-extensions, not with-imported-modules, to import guile-gcrypt.
| Arun Isaac |
2024-09-03 | command-line-tool: Pass workflow-output-directory to path->value.•••*
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.
| Arun Isaac |
2024-08-24 | propnet: Enqueue propagators to an inbox before scheduling them.•••* ravanan/propnet.scm (run-propnet): Enqueue propagators to an intermediate
inbox before scheduling them.
| Arun Isaac |
2024-08-24 | workflow: Retrieve outputs differently based on workflow class.•••* ravanan/workflow.scm (run-workflow): Retrieve outputs differently based on
whether the workflow is a CommandLineTool class or a Workflow class.
| Arun Isaac |
2024-08-24 | command-line-tool: Report progress verbosely.•••* ravanan/command-line-tool.scm (run-command-line-tool,
command-line-tool-scheduler): Report progress verbosely, and print out paths to
log files.
| Arun Isaac |