@cavelang/solver-z3 0.34.0 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BENCHMARK.md +56 -3
- package/README.md +267 -9
- package/dist/scripts/benchmark.js +35 -13
- package/dist/scripts/benchmark.js.map +1 -1
- package/dist/scripts/memory-stress.d.ts +2 -0
- package/dist/scripts/memory-stress.d.ts.map +1 -0
- package/dist/scripts/memory-stress.js +74 -0
- package/dist/scripts/memory-stress.js.map +1 -0
- package/dist/src/cleanup.d.ts +8 -0
- package/dist/src/cleanup.d.ts.map +1 -0
- package/dist/src/cleanup.js +65 -0
- package/dist/src/cleanup.js.map +1 -0
- package/dist/src/close-workers.d.ts +12 -0
- package/dist/src/close-workers.d.ts.map +1 -0
- package/dist/src/close-workers.js +27 -0
- package/dist/src/close-workers.js.map +1 -0
- package/dist/src/deadline.d.ts +7 -0
- package/dist/src/deadline.d.ts.map +1 -0
- package/dist/src/deadline.js +46 -0
- package/dist/src/deadline.js.map +1 -0
- package/dist/src/error-message.d.ts +3 -0
- package/dist/src/error-message.d.ts.map +1 -0
- package/dist/src/error-message.js +10 -0
- package/dist/src/error-message.js.map +1 -0
- package/dist/src/runtime.d.ts.map +1 -1
- package/dist/src/runtime.js +137 -72
- package/dist/src/runtime.js.map +1 -1
- package/dist/src/with-release.d.ts +3 -0
- package/dist/src/with-release.d.ts.map +1 -0
- package/dist/src/with-release.js +25 -0
- package/dist/src/with-release.js.map +1 -0
- package/dist/src/workflow-fixture.d.ts.map +1 -1
- package/dist/src/workflow-fixture.js +27 -10
- package/dist/src/workflow-fixture.js.map +1 -1
- package/package.json +4 -3
- package/scripts/benchmark.ts +35 -12
- package/scripts/memory-stress.ts +72 -0
- package/src/cleanup.ts +55 -0
- package/src/close-workers.ts +28 -0
- package/src/deadline.ts +40 -0
- package/src/error-message.ts +5 -0
- package/src/runtime.ts +132 -70
- package/src/with-release.ts +21 -0
- package/src/workflow-fixture.ts +30 -11
package/dist/src/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-release.d.ts","sourceRoot":"","sources":["../../src/with-release.ts"],"names":[],"mappings":"AAEA,sEAAsE;AACtE,eAAO,MAAM,WAAW,GAAU,CAAC,EAAE,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,MAAM,IAAI,KAAG,OAAO,CAAC,CAAC,CAiBhG,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { errorMessage } from "./error-message.js";
|
|
2
|
+
/** Await the operation before releasing its owned native resource. */
|
|
3
|
+
export const withRelease = async (operation, release) => {
|
|
4
|
+
let failed = false;
|
|
5
|
+
let operationError;
|
|
6
|
+
try {
|
|
7
|
+
return await operation();
|
|
8
|
+
}
|
|
9
|
+
catch (error) {
|
|
10
|
+
failed = true;
|
|
11
|
+
operationError = error;
|
|
12
|
+
throw error;
|
|
13
|
+
}
|
|
14
|
+
finally {
|
|
15
|
+
try {
|
|
16
|
+
release();
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
if (!failed)
|
|
20
|
+
throw error;
|
|
21
|
+
throw new AggregateError([operationError, error], `Z3 operation failed: ${errorMessage(operationError)}; native release also failed: ${errorMessage(error)}`, { cause: operationError });
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=with-release.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-release.js","sourceRoot":"","sources":["../../src/with-release.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,sEAAsE;AACtE,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAK,SAA2B,EAAE,OAAmB,EAAc,EAAE;IACnG,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,IAAI,cAAuB,CAAA;IAC3B,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,EAAE,CAAA;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,IAAI,CAAA;QACb,cAAc,GAAG,KAAK,CAAA;QACtB,MAAM,KAAK,CAAA;IACb,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YAAC,OAAO,EAAE,CAAA;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM;gBAAE,MAAM,KAAK,CAAA;YACxB,MAAM,IAAI,cAAc,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC,EAC9C,wBAAwB,YAAY,CAAC,cAAc,CAAC,iCAAiC,YAAY,CAAC,KAAK,CAAC,EAAE,EAC1G,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-fixture.d.ts","sourceRoot":"","sources":["../../src/workflow-fixture.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workflow-fixture.d.ts","sourceRoot":"","sources":["../../src/workflow-fixture.ts"],"names":[],"mappings":"AACA,qFAAqF;AAErF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAY,MAAM,kBAAkB,CAAA;AAG3D,MAAM,MAAM,MAAM,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAqC1F,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;CACtC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAQ,kBAAuB,KAAG,KAAK,CAAC,CAgEzE,CAAA;AA6DD,gFAAgF;AAChF,eAAO,MAAM,kBAAkB,GAC7B,MAAM,SAAS,MAAM,EAAE,EACvB,WAAW,OAAO,CAAC,CAAC,KACnB,OAAO,CAAC,MAAM,CA+DhB,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { errorMessage } from "./error-message.js";
|
|
1
2
|
/** Named CLI fixture for the solver workflow API. No raw model input is accepted. */
|
|
2
3
|
import { Adapter, Model, Workflow } from '@cavelang/solver';
|
|
3
4
|
import { create } from "./runtime.js";
|
|
@@ -14,7 +15,9 @@ Options:
|
|
|
14
15
|
--deployment-frequency <1..12> Default: 6
|
|
15
16
|
--from <1..12> Sensitivity start; default: 1
|
|
16
17
|
--to <1..12> Sensitivity end; default: 12
|
|
17
|
-
--timeout-ms <
|
|
18
|
+
--timeout-ms <1..2147483647> Per solver run; default: 10000
|
|
19
|
+
--max-explanation-bits <integer> Local evaluation; default: ${Adapter.defaultLimits.maxExplanationBits}
|
|
20
|
+
--max-explanation-work <integer> Cumulative local evaluation; default: ${Adapter.defaultLimits.maxExplanationWork}
|
|
18
21
|
|
|
19
22
|
The fixture is the only selectable model. Inputs are bounded and typed before
|
|
20
23
|
the optional Z3 adapter runs; arbitrary expressions and SMT-LIB are rejected.
|
|
@@ -118,7 +121,7 @@ const parse = (argv) => {
|
|
|
118
121
|
for (let index = 2; index < argv.length; index += 2) {
|
|
119
122
|
const flag = argv[index];
|
|
120
123
|
const value = argv[index + 1];
|
|
121
|
-
if (flag === undefined || !['--team-size', '--deployment-frequency', '--from', '--to', '--timeout-ms'].includes(flag)) {
|
|
124
|
+
if (flag === undefined || !['--team-size', '--deployment-frequency', '--from', '--to', '--timeout-ms', '--max-explanation-bits', '--max-explanation-work'].includes(flag)) {
|
|
122
125
|
return fail(`unknown workflow option ${JSON.stringify(flag ?? '')}`);
|
|
123
126
|
}
|
|
124
127
|
if (value === undefined || value.startsWith('--'))
|
|
@@ -138,11 +141,13 @@ const parse = (argv) => {
|
|
|
138
141
|
deploymentFrequency: parseInteger('--deployment-frequency', values.get('--deployment-frequency') ?? '6', 1, 12),
|
|
139
142
|
from,
|
|
140
143
|
to,
|
|
141
|
-
timeoutMs: parseInteger('--timeout-ms', values.get('--timeout-ms') ?? '10000', 1)
|
|
144
|
+
timeoutMs: parseInteger('--timeout-ms', values.get('--timeout-ms') ?? '10000', 1, 2147483647),
|
|
145
|
+
maxExplanationBits: parseInteger('--max-explanation-bits', values.get('--max-explanation-bits') ?? String(Adapter.defaultLimits.maxExplanationBits), 1),
|
|
146
|
+
maxExplanationWork: parseInteger('--max-explanation-work', values.get('--max-explanation-work') ?? String(Adapter.defaultLimits.maxExplanationWork), 1)
|
|
142
147
|
};
|
|
143
148
|
}
|
|
144
149
|
catch (error) {
|
|
145
|
-
return fail(
|
|
150
|
+
return fail(errorMessage(error));
|
|
146
151
|
}
|
|
147
152
|
};
|
|
148
153
|
/** Runs the allowlisted fixture. Supplying an adapter is intended for tests. */
|
|
@@ -150,11 +155,9 @@ export const runWorkflowFixture = async (argv, supplied) => {
|
|
|
150
155
|
const parsed = parse(argv);
|
|
151
156
|
if ('code' in parsed)
|
|
152
157
|
return parsed;
|
|
153
|
-
const
|
|
154
|
-
const adapter = supplied ?? runtime;
|
|
155
|
-
const options = { limits: { timeoutMs: parsed.timeoutMs } };
|
|
158
|
+
const options = { limits: { timeoutMs: parsed.timeoutMs, maxExplanationBits: parsed.maxExplanationBits, maxExplanationWork: parsed.maxExplanationWork } };
|
|
156
159
|
const context = { snapshot: { transactionTime: null } };
|
|
157
|
-
|
|
160
|
+
const execute = async (adapter) => {
|
|
158
161
|
switch (parsed.operation) {
|
|
159
162
|
case 'feasibility':
|
|
160
163
|
return ok(await Workflow.feasibility(adapter, architectureModel({ teamSize: parsed.teamSize, deploymentFrequency: parsed.deploymentFrequency }), options, context));
|
|
@@ -174,12 +177,26 @@ export const runWorkflowFixture = async (argv, supplied) => {
|
|
|
174
177
|
}, options, context));
|
|
175
178
|
}
|
|
176
179
|
}
|
|
180
|
+
};
|
|
181
|
+
let runtime;
|
|
182
|
+
let result;
|
|
183
|
+
try {
|
|
184
|
+
runtime = supplied === undefined ? await create() : undefined;
|
|
185
|
+
result = await execute(supplied ?? runtime);
|
|
177
186
|
}
|
|
178
187
|
catch (error) {
|
|
179
|
-
|
|
188
|
+
result = { code: 1, out: '', err: `${errorMessage(error)}\n` };
|
|
180
189
|
}
|
|
181
|
-
|
|
190
|
+
try {
|
|
182
191
|
await runtime?.close();
|
|
183
192
|
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
result = {
|
|
195
|
+
code: 1,
|
|
196
|
+
out: '',
|
|
197
|
+
err: `${result.err}Z3 shutdown failed: ${errorMessage(error)}\n`
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
return result;
|
|
184
201
|
};
|
|
185
202
|
//# sourceMappingURL=workflow-fixture.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-fixture.js","sourceRoot":"","sources":["../../src/workflow-fixture.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"workflow-fixture.js","sourceRoot":"","sources":["../../src/workflow-fixture.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cavelang/solver-z3",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.36.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Optional Node.js Z3 WebAssembly adapter and allowlisted workflow fixture for CAVE formal reasoning.",
|
|
6
6
|
"keywords": [
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"directory": "packages/solver-z3"
|
|
22
22
|
},
|
|
23
23
|
"engines": {
|
|
24
|
-
"node": "^
|
|
24
|
+
"node": "^24.16.0 || ^26.1.0"
|
|
25
25
|
},
|
|
26
26
|
"exports": {
|
|
27
27
|
".": {
|
|
@@ -49,10 +49,11 @@
|
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"z3-solver": "5.2.0",
|
|
52
|
-
"@cavelang/solver": "0.
|
|
52
|
+
"@cavelang/solver": "0.36.0"
|
|
53
53
|
},
|
|
54
54
|
"scripts": {
|
|
55
55
|
"benchmark": "node --disable-warning=ExperimentalWarning scripts/benchmark.ts",
|
|
56
|
+
"test:memory-stress": "node --expose-gc --disable-warning=ExperimentalWarning scripts/memory-stress.ts",
|
|
56
57
|
"build": "tsc -b",
|
|
57
58
|
"test": "node --disable-warning=ExperimentalWarning --test \"test/*.test.ts\"",
|
|
58
59
|
"typecheck": "tsc -b"
|
package/scripts/benchmark.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
|
+
import assert from 'node:assert/strict'
|
|
1
2
|
import { readFile, readdir, stat } from 'node:fs/promises'
|
|
2
3
|
import { dirname, join } from 'node:path'
|
|
3
4
|
import { createRequire } from 'node:module'
|
|
4
5
|
import { gzipSync } from 'node:zlib'
|
|
5
6
|
import { performance } from 'node:perf_hooks'
|
|
6
|
-
import { Model, Solve } from '@cavelang/solver'
|
|
7
|
+
import { Canonical, Model, Solve } from '@cavelang/solver'
|
|
7
8
|
import { create } from '@cavelang/solver-z3'
|
|
8
9
|
|
|
9
10
|
const require = createRequire(import.meta.url)
|
|
10
11
|
const packageRoot = dirname(require.resolve('z3-solver/package.json'))
|
|
12
|
+
const dependencyVersion = (JSON.parse(await readFile(join(packageRoot, 'package.json'), 'utf8')) as { version: string }).version
|
|
11
13
|
|
|
12
14
|
const files = async (directory: string): Promise<string[]> => {
|
|
13
15
|
const entries = await readdir(directory, { withFileTypes: true })
|
|
@@ -54,23 +56,42 @@ const architecture: Model.t = {
|
|
|
54
56
|
objectives: [{ id: 'min-monthly-cost', direction: 'minimize', expression: ref('monthly-cost') }]
|
|
55
57
|
}
|
|
56
58
|
|
|
59
|
+
const verify = (result: Awaited<ReturnType<typeof Solve.run>>, phase: string): void => {
|
|
60
|
+
if (result.status !== 'optimal') throw new Error(`${phase} fixture returned ${result.status}`)
|
|
61
|
+
assert.equal(result.optimalityProved, true, `${phase}: optimality must be proved`)
|
|
62
|
+
const cost = { sort: 'real', numerator: '321', denominator: '4' }
|
|
63
|
+
assert.deepEqual(result.assignment, {
|
|
64
|
+
choice: { sort: 'enum', domain: 'architecture', value: 'monolith' },
|
|
65
|
+
'team-size': { sort: 'int', value: '12' },
|
|
66
|
+
'monthly-cost': cost
|
|
67
|
+
}, `${phase}: incorrect benchmark assignment`)
|
|
68
|
+
assert.equal(result.objectives.length, 1, `${phase}: expected one objective`)
|
|
69
|
+
assert.equal(result.objectives[0]?.objectiveId, 'min-monthly-cost')
|
|
70
|
+
assert.deepEqual(result.objectives[0]?.value, cost, `${phase}: incorrect exact optimum`)
|
|
71
|
+
}
|
|
72
|
+
|
|
57
73
|
const beforeRssBytes = process.memoryUsage().rss
|
|
58
74
|
const runtime = await create()
|
|
59
|
-
|
|
60
|
-
const first = await Solve.run(runtime, architecture)
|
|
61
|
-
const firstCheckMs = performance.now() - firstStarted
|
|
62
|
-
if (first.status !== 'optimal') throw new Error(`benchmark fixture returned ${first.status}`)
|
|
63
|
-
|
|
75
|
+
let firstCheckMs: number
|
|
64
76
|
const warmRuns = 25
|
|
65
77
|
const warm: number[] = []
|
|
66
|
-
|
|
67
|
-
const
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
78
|
+
try {
|
|
79
|
+
const firstStarted = performance.now()
|
|
80
|
+
const first = await Solve.run(runtime, architecture)
|
|
81
|
+
firstCheckMs = performance.now() - firstStarted
|
|
82
|
+
verify(first, 'benchmark')
|
|
83
|
+
|
|
84
|
+
for (let index = 0; index < warmRuns; index += 1) {
|
|
85
|
+
const started = performance.now()
|
|
86
|
+
const result = await Solve.run(runtime, architecture)
|
|
87
|
+
const elapsed = performance.now() - started
|
|
88
|
+
verify(result, 'warm')
|
|
89
|
+
warm.push(elapsed)
|
|
90
|
+
}
|
|
91
|
+
} finally {
|
|
92
|
+
await runtime.close()
|
|
71
93
|
}
|
|
72
94
|
|
|
73
|
-
await runtime.close()
|
|
74
95
|
warm.sort((left, right) => left - right)
|
|
75
96
|
const mean = warm.reduce((sum, value) => sum + value, 0) / warm.length
|
|
76
97
|
|
|
@@ -79,6 +100,8 @@ console.log(JSON.stringify({
|
|
|
79
100
|
platform: `${process.platform}-${process.arch}`,
|
|
80
101
|
node: process.version,
|
|
81
102
|
backend: runtime.backend,
|
|
103
|
+
dependency: { name: 'z3-solver', version: dependencyVersion },
|
|
104
|
+
fixture: { modelDigest: Canonical.digest(architecture), verifiedChecks: warm.length + 1 },
|
|
82
105
|
artifacts: {
|
|
83
106
|
files: paths.length,
|
|
84
107
|
installedBytes,
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import * as assert from 'node:assert/strict'
|
|
2
|
+
import { Model, Solve } from '@cavelang/solver'
|
|
3
|
+
import { create } from '@cavelang/solver-z3'
|
|
4
|
+
|
|
5
|
+
const gc = (globalThis as { gc?: () => void }).gc
|
|
6
|
+
assert.ok(gc, 'run this diagnostic with node --expose-gc')
|
|
7
|
+
assert.ok(process.argv.slice(2).every(argument => argument === '--large') && process.argv.length <= 3,
|
|
8
|
+
'usage: memory-stress.ts [--large]')
|
|
9
|
+
const large = process.argv.includes('--large')
|
|
10
|
+
const iterations = large ? 3 : 10
|
|
11
|
+
const runtime = await create()
|
|
12
|
+
const count = 3_000
|
|
13
|
+
const model: Model.t = {
|
|
14
|
+
schema: Model.schema,
|
|
15
|
+
variables: Array.from({ length: count }, (_, index) => ({ id: `x${index}`, sort: 'int', min: 0, max: 1 })),
|
|
16
|
+
constraints: [],
|
|
17
|
+
objectives: [{
|
|
18
|
+
id: 'total', direction: 'maximize',
|
|
19
|
+
expression: { kind: 'add', operands: Array.from({ length: count }, (_, index) => ({ kind: 'variable', id: `x${index}` })) }
|
|
20
|
+
}]
|
|
21
|
+
}
|
|
22
|
+
const small: Model.t = { schema: Model.schema, variables: [{ id: 'ok', sort: 'bool' }], constraints: [] }
|
|
23
|
+
const timer = setInterval(gc, 1)
|
|
24
|
+
try {
|
|
25
|
+
console.log(JSON.stringify({ node: process.version, platform: process.platform, arch: process.arch, backend: runtime.backend, iterations, variables: count, largeVariables: large ? 75_000 : 0 }))
|
|
26
|
+
for (let iteration = 0; iteration < iterations; iteration++) {
|
|
27
|
+
const limited = await Solve.run(runtime, small, { limits: { maxMemoryBytes: 1024 * 1024 } })
|
|
28
|
+
console.log(JSON.stringify({ iteration, phase: 'limited', result: limited }))
|
|
29
|
+
assert.equal(limited.status, 'unknown')
|
|
30
|
+
if (limited.status === 'unknown') {
|
|
31
|
+
assert.equal(limited.reason.kind, 'resource-limit')
|
|
32
|
+
assert.equal(limited.reason.limit, 'maxMemoryBytes')
|
|
33
|
+
}
|
|
34
|
+
const largeResults = []
|
|
35
|
+
if (large) {
|
|
36
|
+
const largeCount = 75_000
|
|
37
|
+
const variables: Model.Variable[] = Array.from({ length: largeCount }, (_, index) => ({ id: `v${index}`, sort: 'int', min: 0, max: 1 }))
|
|
38
|
+
for (const optimize of [false, true]) {
|
|
39
|
+
console.log(JSON.stringify({ iteration, phase: optimize ? 'large-optimization-start' : 'large-feasibility-start' }))
|
|
40
|
+
const started = performance.now()
|
|
41
|
+
const result = await Solve.run(runtime, {
|
|
42
|
+
schema: Model.schema,
|
|
43
|
+
variables,
|
|
44
|
+
constraints: [{ id: 'outside-last-domain', expression: { kind: 'lt', left: { kind: 'variable', id: `v${largeCount - 1}` }, right: { kind: 'literal', sort: 'int', value: '0' } } }],
|
|
45
|
+
...(optimize ? { objectives: [{ id: 'constant', direction: 'minimize' as const, expression: { kind: 'literal' as const, sort: 'int' as const, value: '0' } }] } : {})
|
|
46
|
+
}, { limits: {
|
|
47
|
+
maxVariables: largeCount,
|
|
48
|
+
// Two one-digit bounds per variable, plus the constraint and optional objective literals.
|
|
49
|
+
maxNumericDigits: 2 * largeCount + 2,
|
|
50
|
+
// This diagnostic checks cleanup correctness, not shared-runner latency.
|
|
51
|
+
timeoutMs: 120_000
|
|
52
|
+
} })
|
|
53
|
+
console.log(JSON.stringify({ iteration, phase: optimize ? 'large-optimization' : 'large-feasibility', result, wallMs: performance.now() - started, memory: process.memoryUsage() }))
|
|
54
|
+
// Probe subsequent requests before asserting so a poisoned runtime is visible.
|
|
55
|
+
largeResults.push(result)
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
console.log(JSON.stringify({ iteration, phase: 'recovery-start' }))
|
|
59
|
+
const result = await Solve.run(runtime, model, { limits: { maxVariables: count, timeoutMs: 30_000 } })
|
|
60
|
+
console.log(JSON.stringify({ iteration, phase: 'recovered', status: result.status, elapsedMs: result.elapsedMs, ...(result.status === 'unknown' ? { reason: result.reason } : {}), ...(result.status === 'optimal' ? { objectives: result.objectives } : {}) }))
|
|
61
|
+
assert.equal(result.status, 'optimal', JSON.stringify(result))
|
|
62
|
+
if (result.status === 'optimal') {
|
|
63
|
+
assert.deepEqual(result.objectives, [{ objectiveId: 'total', value: { sort: 'int', value: String(count) } }])
|
|
64
|
+
assert.equal(Object.keys(result.assignment).length, count)
|
|
65
|
+
for (const value of Object.values(result.assignment)) assert.deepEqual(value, { sort: 'int', value: '1' })
|
|
66
|
+
}
|
|
67
|
+
for (const result of largeResults) assert.equal(result.status, 'unsatisfied', JSON.stringify(result))
|
|
68
|
+
}
|
|
69
|
+
} finally {
|
|
70
|
+
clearInterval(timer)
|
|
71
|
+
await runtime.close()
|
|
72
|
+
}
|
package/src/cleanup.ts
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { errorMessage } from './error-message.ts'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The binding's finalizers call this instance's low-level API directly, outside
|
|
5
|
+
* its async mutex. Native AST deletion must not race a pthread solver check.
|
|
6
|
+
* Guard the two async native operations CAVE uses; normal synchronous releases
|
|
7
|
+
* remain immediate, and queued releases drain before a check returns to CAVE.
|
|
8
|
+
*/
|
|
9
|
+
export const guardCleanup = (api: object): void => {
|
|
10
|
+
const functions = api as Record<string, unknown>
|
|
11
|
+
const pending: (() => void)[] = []
|
|
12
|
+
let checking = 0
|
|
13
|
+
for (const [name, value] of Object.entries(functions)) {
|
|
14
|
+
if (typeof value !== 'function') continue
|
|
15
|
+
if (name === 'dec_ref' || name.endsWith('_dec_ref') || name === 'del_context') {
|
|
16
|
+
functions[name] = (...args: unknown[]) => {
|
|
17
|
+
const release = () => { value.apply(api, args) }
|
|
18
|
+
if (checking > 0) pending.push(release)
|
|
19
|
+
else release()
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
for (const name of ['solver_check_assumptions', 'optimize_check']) {
|
|
24
|
+
const check = functions[name]
|
|
25
|
+
if (typeof check !== 'function') throw new TypeError(`Z3 is missing ${name}`)
|
|
26
|
+
functions[name] = async (...args: unknown[]) => {
|
|
27
|
+
checking++
|
|
28
|
+
let checkFailed = false
|
|
29
|
+
let checkError: unknown
|
|
30
|
+
try {
|
|
31
|
+
return await check.apply(api, args)
|
|
32
|
+
} catch (error) {
|
|
33
|
+
checkFailed = true
|
|
34
|
+
checkError = error
|
|
35
|
+
throw error
|
|
36
|
+
} finally {
|
|
37
|
+
checking--
|
|
38
|
+
if (checking === 0) {
|
|
39
|
+
const releases = pending.splice(0)
|
|
40
|
+
const failures: unknown[] = []
|
|
41
|
+
for (const release of releases) {
|
|
42
|
+
try { release() } catch (error) { failures.push(error) }
|
|
43
|
+
}
|
|
44
|
+
if (failures.length > 0) {
|
|
45
|
+
if (!checkFailed && failures.length === 1) throw failures[0]
|
|
46
|
+
const errors = checkFailed ? [checkError, ...failures] : failures
|
|
47
|
+
throw new AggregateError(errors,
|
|
48
|
+
`Z3 native cleanup failed: ${errors.map(errorMessage).join('; ')}`,
|
|
49
|
+
checkFailed ? { cause: checkError } : undefined)
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { errorMessage } from './error-message.ts'
|
|
2
|
+
type Worker = { terminate: () => Promise<unknown> }
|
|
3
|
+
type Pool = {
|
|
4
|
+
readonly runningWorkers: readonly Worker[]
|
|
5
|
+
readonly unusedWorkers: readonly Worker[]
|
|
6
|
+
terminateAllThreads: () => void
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** Keep Emscripten's message handlers until Node confirms each worker has exited. */
|
|
10
|
+
export const closeWorkers = async (pool: Pool | undefined): Promise<void> => {
|
|
11
|
+
if (pool === undefined) return
|
|
12
|
+
const stopped = new Set<Worker>()
|
|
13
|
+
while (true) {
|
|
14
|
+
const workers = [...new Set([...pool.runningWorkers, ...pool.unusedWorkers])]
|
|
15
|
+
.filter(worker => !stopped.has(worker))
|
|
16
|
+
if (workers.length === 0) break
|
|
17
|
+
for (const worker of workers) stopped.add(worker)
|
|
18
|
+
// A throwing termination must not prevent attempts on the remaining workers.
|
|
19
|
+
// Keep handlers alive until every attempted termination has settled.
|
|
20
|
+
const results = await Promise.allSettled(workers.map(async worker => worker.terminate()))
|
|
21
|
+
const failures = results.flatMap(result => result.status === 'rejected' ? [result.reason] : [])
|
|
22
|
+
if (failures.length === 1) throw failures[0]
|
|
23
|
+
if (failures.length > 1) throw new AggregateError(failures, `Z3 worker termination failed: ${failures.map(errorMessage).join('; ')}`)
|
|
24
|
+
}
|
|
25
|
+
// The binding replaces handlers with warnings when it clears the pool.
|
|
26
|
+
// Worker exit acknowledgments ensure pending cleanup messages came first.
|
|
27
|
+
pool.terminateAllThreads()
|
|
28
|
+
}
|
package/src/deadline.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export const withDeadline = async (
|
|
2
|
+
context: { interrupt: () => void },
|
|
3
|
+
timeoutMs: number,
|
|
4
|
+
check: () => Promise<'sat' | 'unsat' | 'unknown'>
|
|
5
|
+
): Promise<{ readonly status: 'sat' | 'unsat' | 'unknown', readonly interrupted: boolean }> => {
|
|
6
|
+
let interrupted = false
|
|
7
|
+
let interruptFailed = false
|
|
8
|
+
let interruptError: unknown
|
|
9
|
+
// Dispatch and native cancellation are asynchronous. Keep requesting cancellation
|
|
10
|
+
// until the check settles instead of assuming one interrupt was acknowledged.
|
|
11
|
+
const interrupt = (): void => {
|
|
12
|
+
interrupted = true
|
|
13
|
+
try { context.interrupt() } catch (error) {
|
|
14
|
+
// Timer failures belong to this check, not the host's uncaught-error
|
|
15
|
+
// handler. Retain one error while continuing cooperative cancellation.
|
|
16
|
+
if (!interruptFailed) { interruptFailed = true; interruptError = error }
|
|
17
|
+
}
|
|
18
|
+
timer = setTimeout(interrupt, 50)
|
|
19
|
+
timer.unref()
|
|
20
|
+
}
|
|
21
|
+
let timer = setTimeout(interrupt, timeoutMs)
|
|
22
|
+
timer.unref()
|
|
23
|
+
try {
|
|
24
|
+
let status: 'sat' | 'unsat' | 'unknown'
|
|
25
|
+
try { status = await check() } catch (error) {
|
|
26
|
+
if (interruptFailed) {
|
|
27
|
+
throw new AggregateError([error, interruptError],
|
|
28
|
+
`Z3 check failed: ${errorMessage(error)}; deadline interruption also failed: ${errorMessage(interruptError)}`,
|
|
29
|
+
{ cause: error })
|
|
30
|
+
}
|
|
31
|
+
throw error
|
|
32
|
+
}
|
|
33
|
+
// Wait for native work before the caller releases its solver/optimizer.
|
|
34
|
+
if (interruptFailed) throw interruptError
|
|
35
|
+
return { status, interrupted }
|
|
36
|
+
} finally {
|
|
37
|
+
clearTimeout(timer)
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
import { errorMessage } from './error-message.ts'
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Formatting a failure must not prevent runtime cleanup or replace its diagnostic. */
|
|
2
|
+
export const errorMessage = (error: unknown): string => {
|
|
3
|
+
try { return error instanceof Error ? String(error.message) : String(error) }
|
|
4
|
+
catch { return '[unprintable thrown value]' }
|
|
5
|
+
}
|