Lighthouse has a new layout. Prefer the old one? Return to the old layout, and switch back any time from the link at the top of each page.

Run should allow specification of basic workflow joins

#25

The run command syntax might be extended to include workflow joins like:

sequence

  # app.sequcence(a,b,c)

  % tap run -- a --= b --= c
  % tap run -- r1task --+ r2task --= r2sequenced -- r1task --= r1sequenced

fork

  # app.fork(src, *targets)

  % tap run -- src --[ target -- target -- target --]

merge

  # app.merge(target, *sources)

  % tap run -- --{ source -- source -- source --} target 

Reported by bahuvrihi · April 29th, 2008 @ 11:01 AM

State: resolved
Milestone: Tap-1.0.0
Assigned to: bahuvrihi bahuvrihi

Activity

  1. bahuvrihi
    bahuvrihi

    See Basic Control Flow Patterns

    These five patterns are what should be included.

    May 29th, 2008 @ 12:36 PM

  2. bahuvrihi
    bahuvrihi
    • Tag set to feature, tap
    • Milestone changed from Tap 0.10.0 to Tap-1.0.0

    July 30th, 2008 @ 08:33 AM

  3. bahuvrihi
    bahuvrihi

    Syntax brainstorm. The exclusive choice may be easy to implement in code but really cannot be done without a block in the command line.

    ===========
    
    ===========
    0. a --
    
    =========== 
    0. a --:1
    1. b --
    
    ===========
    0. a --[1,2]
    1. b --
    2. c --
    
    ===========
    0. a --[1,2]
    1. b --{3}
    2. c --{3}
    3. d
    
    ===========
    0. a --[1,2,3]
    1. b --{4}
    2. c --{4}
    3. d
    4. e
    
    ===========
    0. a --:1
    1. b --[2,3]
    2. c --{5}
    3. d --{5}
    4. e --{5}
    5. f --
    
    
    Numbers indicate which tasks to use.  For sequence, no number implies the next task.
    --: sequence 
    --[] parallell split/fork 
    --() synchronization/sync
    --x exclusive choice/... (omit)
    --{} simple merge/merge
    

    August 4th, 2008 @ 04:13 PM

  4. bahuvrihi
    bahuvrihi

    These can get put anywhere, say at the end, or in the middle if desired. First number is assumed to be the last task declared (ex, tasks.length-1). For sequence, the second number is assumbed to be the next task to be declared (ex, tasks.length). In the other cases, numbers must be specified explicitly.

    
    --1:2 sequence 1, 2
    --1[2,3] parallel split/fork 1 into 2, 3
    --1(2) synchronization/sync 1 into 2 (listed once for each merge)
    --x exclusive choice/... (omit)
    --1{2} simple merge/merge 1 into 2 (listed once for each merge)
    
    

    Variations:

    
      % tap run -- a --:1 b --[2,3] c --{5} d --{5} e --{5} f --
    
      % tap run -- a -- b -- c -- d -- e -- f --0:1 --1[2,3] --2{5} --3{5} --4{5}
    

    August 4th, 2008 @ 04:54 PM

  5. bahuvrihi
    bahuvrihi

    Keep in mind workflow tasks should not take inputs. Do something like:

    • parse for tasks, add to array
    • collect workflow breaks
    • construct workflow from breaks, pulling tasks out of the array as you go. raise error if any of the pulled tasks have inputs
    • enque remaining with inputs

    Any task can have configurations.

    August 4th, 2008 @ 05:22 PM

  6. bahuvrihi
    bahuvrihi
    • State changed from new to resolved
    • Assigned user set to bahuvrihi

    (from [41521cecf33c34a8b7f82fc04e90b7435ba8c1ee]) Added workflow syntax to run [#25 Run should allow specification of basic workflow joins state:resolved responsible:bahuvrihi] http://github.com/bahuvrihi/tap/...

    August 25th, 2008 @ 10:47 PM

  7. bahuvrihi
    bahuvrihi

    (from [15f36dc701297bc033b7b79857bd210619ab7a3d]) Updated documentation for App. Added sync_merge and switch workflow patterns. [#25 Run should allow specification of basic workflow joins state:resolved responsible:bahuvrihi] http://github.com/bahuvrihi/tap/...

    September 2nd, 2008 @ 11:54 PM

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.