Skip to content

Arbitrary sequencing of processes #27

@np

Description

@np

Notice that this is implemented now. This remains a place holder for discussions around this topic.

Typically right-nested sequencing is preferable since we can clearly scope the newly introduced channels and variables.

However in several we break this rule, for instance fwd and @ can be sequenced and they might expand into a process which cannot be right-nested. Another cause is slice which has a sub-process and should have a sequential continuation. As in this example:

rotate_seq =
  \(A : Type)
   (n : Int)->
   proc(i : [: ?A ^(1 + n) :], o : [: !A ^(n + 1) :])
   i[:iL, iH^n:]
   o[:oL^n, oH:]
   recv iL (xL : A).
   (slice (iH, oL) n as _
      fwd(?A)(iH, oL)).
   send oH xL

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions