From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1gkuqP-0003lh-S3 for mharc-gwl-devel@gnu.org; Sat, 19 Jan 2019 12:55:45 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55200) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gkuqN-0003kW-To for gwl-devel@gnu.org; Sat, 19 Jan 2019 12:55:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gkuqL-0006Pe-WF for gwl-devel@gnu.org; Sat, 19 Jan 2019 12:55:43 -0500 Received: from mail-qt1-x835.google.com ([2607:f8b0:4864:20::835]:43910) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gkuqL-0006OU-8l for gwl-devel@gnu.org; Sat, 19 Jan 2019 12:55:41 -0500 Received: by mail-qt1-x835.google.com with SMTP id i7so18755006qtj.10 for ; Sat, 19 Jan 2019 09:55:40 -0800 (PST) MIME-Version: 1.0 References: <87bm4df2ld.fsf@elephly.net> <878szgg9bi.fsf@elephly.net> In-Reply-To: <878szgg9bi.fsf@elephly.net> From: zimoun Date: Sat, 19 Jan 2019 18:55:26 +0100 Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Subject: =?UTF-8?B?UmU6IG1lcmdpbmcg4oCccHJvY2Vzc2Vz4oCdIGFuZCDigJxyZXN0?= =?UTF-8?B?cmljdGlvbnPigJ0=?= List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Ricardo Wurmus Cc: gwl-devel@gnu.org Hi Ricardo, On Sat, 19 Jan 2019 at 12:45, Ricardo Wurmus wrote: > > > I am not clear yet about how to manage the inputs/outputs > > (fixed in the definition of the process or fixed in the workflow) > [=E2=80=A6] > > I am still failing to write a macro that inplements my "view": > > - write the graph > > - collect the inputs/outputs > > This is interesting and it might be a solution to this conundrum. If > the processes can declare their inputs without refering to other > processes then we have a solution: the graph can be built from the > inputs and outputs of the provided processes without having to specify > any dependencies manually. > > We need a procedure that takes any number of processes as inputs and > matches inputs with outputs to generate an adjacency list of processes. I agree even I am not sure to be fully clear. :-) And your proposal with `let' is already better than the current duplication= . > This shouldn=E2=80=99t be difficult. I trust you. :-) I am not enough skilled in Scheme to success. > > > I pick the name `dataflow' for this not-yet-immplemented macro name. > > > > Well, instead of your graph name, I propose dataflow or stream or datas= tream. > > I=E2=80=99d like this to be a short name if possible. In fact, I=E2=80= =99d prefer if it > was completely invisible like this: > > (workflow > (name "simple") > (processes > ((eat "fruit") -> greet) > ((eat "veges") -> greet) > (sleep -> (eat "fruit") (eat "veges")) > (bye -> sleep))) Is it possible invisible? Or why not `->>' instead of your previous `graph'? > Or like this assuming that all of the processes declare inputs and > outputs *somehow*: > > (workflow > (name "simple") > (processes > (eat "fruit") (eat "veges") greet sleep bye)) With this, I do not see how the graph could be deduced; without specifying the inputs-outputs relationship and without specifying the processes relationship. I prefer the `->' version. :-) Thank you for your attempt to improve. :-) Cheers, simon