Remove batch splitting system (#475)

* First pass at removing batch splitting

* Refactor to separate module loading from request parsing

* Consolidate module functionality

* Tidy up comments

* Use array of modules instead of HashMap

* Formatting

* Use module hashes when importing modules
This commit is contained in:
Rob Knight 2026-02-09 10:31:47 +01:00 committed by GitHub
parent 5dab8195b4
commit acab26e5c1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 1425 additions and 1938 deletions

View file

@ -632,7 +632,7 @@ mod tests {
dict,
examples::MOCK_VD_SET,
frontend::{Operation as FrontendOp, SignedDictBuilder},
lang::parse,
lang::load_module,
};
#[test]
@ -756,18 +756,17 @@ mod tests {
// pred_a accepts a Contains statement
// pred_b accepts a pred_a statement (Custom statement from pred_a)
let parsed = parse(
let module = load_module(
r#"
pred_a(X) = AND(Contains(X, "k", 1))
pred_b(X) = AND(pred_a(X))
"#,
"test",
&params,
&[],
vec![],
)
.expect("parse predicates");
let batch = parsed
.first_batch()
.expect("parse predicates should have a batch");
.expect("load module");
let batch = &module.batch;
let mut builder = MultiPodBuilder::new(&params, vd_set);
@ -1484,20 +1483,19 @@ mod tests {
let vd_set = &*MOCK_VD_SET;
// Chain of predicates: each accepts the output of the previous
let parsed = parse(
let module = load_module(
r#"
pred_a(X) = AND(Contains(X, "k", 1))
pred_b(X) = AND(pred_a(X))
pred_c(X) = AND(pred_b(X))
pred_d(X) = AND(pred_c(X))
"#,
"test",
&params,
&[],
vec![],
)
.expect("parse predicates");
let batch = parsed
.first_batch()
.expect("parse predicates should have a batch");
.expect("load module");
let batch = &module.batch;
let mut builder = MultiPodBuilder::new(&params, vd_set);
@ -1612,7 +1610,7 @@ mod tests {
// pred_a takes TWO custom statement arguments (b_out and c_out)
// pred_b and pred_c each take a Contains
// Note: AND clauses are newline-separated, not comma-separated
let parsed = parse(
let module = load_module(
r#"
pred_b(X) = AND(Contains(X, "k", 1))
pred_c(X) = AND(Contains(X, "k", 1))
@ -1621,13 +1619,12 @@ mod tests {
pred_c(Y)
)
"#,
"test",
&params,
&[],
vec![],
)
.expect("parse predicates");
let batch = parsed
.first_batch()
.expect("parse predicates should have a batch");
.expect("load module");
let batch = &module.batch;
let mut builder = MultiPodBuilder::new(&params, vd_set);