Skip to content

Instantly share code, notes, and snippets.

@vicety
Last active July 20, 2022 05:26
Show Gist options
  • Save vicety/7656db1513ee92dc984ee61ed2a45dae to your computer and use it in GitHub Desktop.
Save vicety/7656db1513ee92dc984ee61ed2a45dae to your computer and use it in GitHub Desktop.
  1. I think we can get rid of filling the path field when declaring application and workflow, since we have a hierarchy of Application -> Workflow -> Tasks, Application -> Generators, the path can just be concatenated from names, e.g. {app.name}/{wf.name}/{task.name}, we can fill this field automatically when calling system.launch(app). With same reason, I think we don't need to fill the name field when creating AtomicStream, since it can be infered by path.split('/')[-1]
  2. What is the Application.streams used for? To me, this field stores duplicated information stored at Application.workflows[i].consumes and Application.workflows[i].stream
  3. Tell me if my understanding is correct, in ApplicationTest we have only one source (with no AtomicStream passed to it) and one generator, I can implicitly bind them when system.launch. If we have multiple sources, workflow.consumes will be like AtomicStreamRef[(T1, T2)], and a splitter will exist to tranform it to AtomicStreamRef[T1] and AtomicStreamRef[T2], also sources must be initialized with Ref[T1] or Ref[T2] since at system.launch I cannot infer which source consume which AtomicStreamRef.
  4. We don't have pointer to tree's sons in AST, then how is it a tree?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment