-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
First PR for new annotations and new model for DFG nodes #583
Conversation
…ely remove use of old aggregator com_aggregator
…handle special case of intermediate file as last operand and fixed parsing issue for newline
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left a bunch of comments, let me know which of those make sense or not.
…otations # Conflicts: # compiler/ir.py # compiler/pash_runtime.py
OS:ubuntu-18.04 |
We remodeled DFG nodes which became a CommandInvocation (i.e., a well structured parsed command, separated options etc). We use symbolic variables for filenames, paths, and file descriptors. These represent edges in the graph. This separation simplifies graph transformations. The new structure also allows to trivially convert DFG nodes back to string representations for command invocations.
Parsing into a graph structure and back should work for any command with specified annotations in the new annotations repository. Regarding parallelization, this first version supports "consecutive chunks" parallelization (even though the information is taken from a round robin parallelizer which is why the
--r_split
option is given in the command below).Working example:
pash/evaluation/benchmarks/oneliners/test_new_annotation/wf.sh
pa.sh -d 1 --r_split --no_eager --log_file log.txt --assert_compiler_success wf.sh
Note that, for now, one needs to clone the repository for new annotations and specify the path as described in the ReadMe.