Hi Rutger,

(+Cc: Andy.)

Rutger van Beusekom <rutger.van.beuse...@verum.com> skribis:

> From d351c0a5ecde62e63368bec0e1f15108495a1a71 Mon Sep 17 00:00:00 2001
> From: Rutger van Beusekom <rutger.van.beuse...@verum.com>
> Date: Mon, 2 Mar 2020 10:38:57 +0100
> Subject: [PATCH] Add pipeline procedure.
>
> * libguile/posix.c (scm_open_process): Remove.
> (scm_piped_process): Add to replace open_process.
> * module/ice-9/popen.scm (pipe->fdes): Add to convert pipe pair to fdes pair.
> (open-process): Add open-process for backwards compatibility.
> (pipeline): Add to implement a pipeline using piped-process.

There are a couple super minor issues that I comment on below, but
otherwise LGTM!  If Andy agrees, we can apply it once the copyright
assignment is on file, so maybe it won’t be in 3.0.2, we’ll see!

> +@deffn (Scheme Procedure) pipeline commands
          ^                ^
Should be braces.

> +Execute a @code{pipeline} of @var{commands} -- where each command is a
> +list of a program and its arguments as strings -- returning an input

s/--/---/ so we get an em dash and not an en dash (I’m a typography
nitpicker :-)).

> +port to the end of the pipeline, an output port to the beginning of the
> +pipeline and a list of PIDs of the processes executing the @var{commands}.
> +
> +@example
> +(let ((commands '(("git" "ls-files")
> +                   ("tar" "-cf-" "-T-")
> +                   ("sha1sum" "-")))
                     ^
There’s an extra space on these lines

> +       (pipe-fail? (compose not
> +                            zero?
> +                            status:exit-val
> +                            cdr
> +                            waitpid)))

I don’t think we should encourage this style, which could also look
obscure to newcomers.  I’d just make it a regular lambda.

That’s all for me.

Thanks again, Rutger!

Ludo’.

Reply via email to