-
Notifications
You must be signed in to change notification settings - Fork 0
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
Add the functionality required to run at least one clustal job #48
Conversation
…) seeing another output file event when this file has already when accessed as an output
…nst failed cached executions as well, because we don't want to skip failed ones, we just let them fail.
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.
I'm currently seeing a compilation error because of:
[[example]]
name = "hashes_are_equal"
path = "src/hashes_are_equal.rs"
but "src/hashes_are_equal.rs" doesn't exist anymore.
Your Rust code is great and fun to read! Very understandable! I think I know how to simplify the Execution enum so that we don't need Pending root and we can avoid a bunch of the extra logic with matching on the enum variant. I can tell you about it next time we have time. I'd also be interested in implementing the code change if you like it.
The name of the branch is a misnomer... I have been working on this branch for too long (obviously), and it is very much time to rebase. I don't want to squash the commits as I think the history will prove valuable in the future. Basically what these commits do is add the functionality required to get Process$ to the point where it can cache and then skip basic programs.
Relevant issues:
#47 , #42
List of functionality added:
execve
and, provided it is successful and we have it cached, the next system call is changed to an exit call, effectively skipping the execution.access
,read
,stat
,fstat
,newfstat
, and theopen
varieties. Add hashing of output files foropenat
,open
,creat
,write
.Metadata: success or failure, executable name, env vars, cwd
Input and output files hashes matching
execve
multiple times (not handling this right now, but we could just handle this as all one big execution, either all execve calls the single process does are skippable or none are), and when we expect anexecve
to fail (cached version does) but it succeeds.