Skip to content
This repository was archived by the owner on Oct 23, 2023. It is now read-only.

Commit 9206379

Browse files
committed
Add was_cached flag.
1 parent 0f95dc4 commit 9206379

6 files changed

Lines changed: 19 additions & 13 deletions

File tree

capnp/evaluation.capnp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,13 @@ struct ProcessResult {
6262
memoryLimit @5 :Void;
6363
missingFiles @6 :Void;
6464
internalError @7 :Text;
65-
missingExecutable @12 :Text;
65+
missingExecutable @8 :Text;
6666
}
67-
resourceUsage @8 :Resources;
68-
stdout @9 :SHA256; # Hash of standard output
69-
stderr @10 :SHA256; # Hash of standard error
70-
outputFiles @11 :List(FileInfo); # Name and hash of other outputs
67+
resourceUsage @9 :Resources;
68+
stdout @10 :SHA256; # Hash of standard output
69+
stderr @11 :SHA256; # Hash of standard error
70+
outputFiles @12 :List(FileInfo); # Name and hash of other outputs
71+
wasCached @13 :Bool; # True if the answer comes from the cache.
7172
}
7273

7374
struct Result {

cpp/frontend/frontend.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,7 @@ void Execution::getResult(std::function<void(Result)> callback,
313313
r.getResourceUsage().getMemlock();
314314
result.resources.stack =
315315
r.getResourceUsage().getStack();
316+
result.was_cached = r.getWasCached();
316317
callback(result);
317318
},
318319
[errored](auto exc) {

cpp/frontend/frontend.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ struct Result {
3232
uint32_t return_code;
3333
std::string error;
3434
Resources resources;
35+
bool was_cached;
3536
};
3637

3738
class Frontend;

cpp/frontend/python/frontend.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ PYBIND11_MODULE(task_maker_frontend, m) {
6464
.def_readonly("return_code", &frontend::Result::return_code)
6565
.def_readonly("error", &frontend::Result::error)
6666
.def_readonly("resources", &frontend::Result::resources)
67+
.def_readonly("was_cached", &frontend::Result::was_cached)
6768
.def("__repr__", [](const frontend::Result& res) {
6869
std::string message = "<Result ";
6970
if (res.status == capnproto::ProcessResult::Status::Which::SUCCESS)

cpp/server/server.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ kj::Promise<void> ExecutionGroup::Finalize(Execution* ex) {
9393
util::UnionPromiseBuilder dependencies_propagated_;
9494
for (size_t i = 0; i < executions_.size(); i++) {
9595
executions_[i]->processResult(res.getProcesses()[i],
96-
dependencies_propagated_);
96+
dependencies_propagated_, true);
9797
}
9898
return std::move(dependencies_propagated_)
9999
.Finalize()
@@ -335,8 +335,11 @@ void Execution::prepareRequest() {
335335

336336
void Execution::processResult(
337337
capnproto::ProcessResult::Reader result,
338-
util::UnionPromiseBuilder& dependencies_propagated_) {
339-
KJ_IF_MAYBE(ctx, context_) { ctx->getResults().setResult(result); }
338+
util::UnionPromiseBuilder& dependencies_propagated_, bool from_cache_) {
339+
KJ_IF_MAYBE(ctx, context_) {
340+
ctx->getResults().setResult(result);
341+
ctx->getResults().getResult().setWasCached(from_cache_);
342+
}
340343
KJ_LOG(INFO, "Execution " + description_, result);
341344
if (result.getStatus().isInternalError()) {
342345
frontend_context_.evaluation_early_stop_.fulfiller->reject(
@@ -403,10 +406,8 @@ void Execution::onDependenciesFailure(kj::Exception exc) {
403406
if (ff)
404407
ff->reject(KJ_EXCEPTION(FAILED, "Dependency failed: " + description_));
405408
};
406-
if (stdout_)
407-
mark_as_failed("stdout", stdout_);
408-
if (stderr_)
409-
mark_as_failed("stdout", stderr_);
409+
if (stdout_) mark_as_failed("stdout", stdout_);
410+
if (stderr_) mark_as_failed("stdout", stderr_);
410411
for (auto f : outputs_) {
411412
mark_as_failed(f.first, f.second);
412413
}

cpp/server/server.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ class Execution : public capnproto::Execution::Server {
5555
void addDependencies(util::UnionPromiseBuilder& dependencies);
5656
void prepareRequest();
5757
void processResult(capnproto::ProcessResult::Reader result,
58-
util::UnionPromiseBuilder& dependencies_propagated_);
58+
util::UnionPromiseBuilder& dependencies_propagated_,
59+
bool from_cache_ = false);
5960
void onDependenciesFailure(kj::Exception exc);
6061
void onDependenciesPropagated();
6162

0 commit comments

Comments
 (0)