@bldrs-ai/conway 1.559.1526 → 1.563.1540
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/compiled/examples/browser-bundled.cjs +1 -1
- package/compiled/examples/cli-bundled.cjs +53 -9
- package/compiled/examples/cli-step-bundled.cjs +1 -1
- package/compiled/examples/validator-bundled.cjs +1 -1
- package/compiled/src/core/retained_memory.d.ts +10 -2
- package/compiled/src/core/retained_memory.d.ts.map +1 -1
- package/compiled/src/core/retained_memory.js +10 -2
- package/compiled/src/ifc/ifc_demand_extraction.test.js +140 -0
- package/compiled/src/ifc/ifc_geometry_extraction.d.ts +30 -0
- package/compiled/src/ifc/ifc_geometry_extraction.d.ts.map +1 -1
- package/compiled/src/ifc/ifc_geometry_extraction.js +72 -8
- package/compiled/src/ifc/ifc_regression_batch_main.js +12 -3
- package/compiled/src/scripts/bless_perf_snapshot.test.js +88 -1
- package/compiled/src/scripts/perf_ab_compare.test.d.ts +2 -0
- package/compiled/src/scripts/perf_ab_compare.test.d.ts.map +1 -0
- package/compiled/src/scripts/perf_ab_compare.test.js +218 -0
- package/compiled/src/version/version.js +1 -1
- package/compiled/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -30,7 +30,7 @@ var import_node_process = require("node:process");
|
|
|
30
30
|
var readline = __toESM(require("node:readline"), 1);
|
|
31
31
|
|
|
32
32
|
// compiled/src/version/version.js
|
|
33
|
-
var versionString = "Conway v1.
|
|
33
|
+
var versionString = "Conway v1.563.1540";
|
|
34
34
|
|
|
35
35
|
// compiled/dependencies/conway-geom/interface/conway_geometry.js
|
|
36
36
|
var wasmType = "";
|
|
@@ -14965,7 +14965,7 @@ ${t5.join("\n")}` : "";
|
|
|
14965
14965
|
var import_process = require("process");
|
|
14966
14966
|
|
|
14967
14967
|
// compiled/src/version/version.js
|
|
14968
|
-
var versionString = "Conway v1.
|
|
14968
|
+
var versionString = "Conway v1.563.1540";
|
|
14969
14969
|
|
|
14970
14970
|
// compiled/dependencies/conway-geom/interface/conway_geometry.js
|
|
14971
14971
|
function pThreadsAllowed() {
|
|
@@ -93909,23 +93909,67 @@ var IfcGeometryExtraction = class _IfcGeometryExtraction {
|
|
|
93909
93909
|
return !isFace(id) && typeID !== entity_types_ifc_gen_default.IFCPOLYGONALFACESET && typeID !== entity_types_ifc_gen_default.IFCTRIANGULATEDFACESET;
|
|
93910
93910
|
};
|
|
93911
93911
|
const claimed = /* @__PURE__ */ new Set();
|
|
93912
|
-
|
|
93912
|
+
let visited;
|
|
93913
|
+
try {
|
|
93914
|
+
visited = await this.model.ensureResidentClosureByLocalID(localID, extra, seen, descend, leafSpans, isFace, claimed);
|
|
93915
|
+
} catch (error) {
|
|
93916
|
+
if (seen !== void 0) {
|
|
93917
|
+
try {
|
|
93918
|
+
await this.pageStyleSeeds_(localID, claimed, seen, descend, isFace, leafSpans);
|
|
93919
|
+
} catch {
|
|
93920
|
+
}
|
|
93921
|
+
}
|
|
93922
|
+
throw error;
|
|
93923
|
+
}
|
|
93924
|
+
await this.pageStyleSeeds_(localID, claimed, visited, descend, isFace, leafSpans);
|
|
93925
|
+
await this.ensureResidentVisitedFacesetPayloads_(claimed, visited, leafSpans);
|
|
93926
|
+
return visited;
|
|
93927
|
+
}
|
|
93928
|
+
/**
|
|
93929
|
+
* Page the styled-item and material-definition records seeded by
|
|
93930
|
+
* `claimed` — the records ONE closure walk actually paged — so the
|
|
93931
|
+
* synchronous extract that follows can read them.
|
|
93932
|
+
*
|
|
93933
|
+
* `claimed`, not the walk's returned set: the walk returns the CALLER'S
|
|
93934
|
+
* set, which the aggregate prefetch shares across every related product
|
|
93935
|
+
* of one IfcRelAggregates (see ensureResidentForAggregateExtract).
|
|
93936
|
+
* Scanning that per product is O(products x model), not O(product) — on
|
|
93937
|
+
* SKYLARK250 (1,992 products under two relationships, ~3,000 records of
|
|
93938
|
+
* closure each) it reaches ~6 M lookups on the last product and costs
|
|
93939
|
+
* minutes before the first mesh, inside one un-yielding await chain
|
|
93940
|
+
* (conway#561). Every record lands in exactly one walk's `claimed`, so
|
|
93941
|
+
* the union of seeds collected across the walks sharing a set is
|
|
93942
|
+
* unchanged; only the repetition goes. Same distinction conway#526 drew
|
|
93943
|
+
* for {@link ensureResidentVisitedFacesetPayloads_}.
|
|
93944
|
+
*
|
|
93945
|
+
* That "exactly one walk" holds only for walks that COMPLETE, which is
|
|
93946
|
+
* why the aborted path calls this too — see the catch in
|
|
93947
|
+
* {@link ensureResidentForProductExtractUnguarded_}.
|
|
93948
|
+
*
|
|
93949
|
+
* @param localID The product whose walk claimed these records.
|
|
93950
|
+
* @param claimed Records this walk paged.
|
|
93951
|
+
* @param seen The set the walk pinned through, extended by this one.
|
|
93952
|
+
* @param descend Closure-walk descent predicate.
|
|
93953
|
+
* @param isFace Closure-walk packed-leaf predicate.
|
|
93954
|
+
* @param leafSpans Optional out-array of coalesced pin ranges.
|
|
93955
|
+
* @return {Promise<void>} Resolves when the seeds are resident.
|
|
93956
|
+
*/
|
|
93957
|
+
async pageStyleSeeds_(localID, claimed, seen, descend, isFace, leafSpans) {
|
|
93913
93958
|
const styleExtra = [];
|
|
93914
|
-
for (const
|
|
93915
|
-
const styled = this.materials.styledItemMap.get(
|
|
93959
|
+
for (const claimedID of claimed) {
|
|
93960
|
+
const styled = this.materials.styledItemMap.get(claimedID);
|
|
93916
93961
|
if (styled !== void 0) {
|
|
93917
93962
|
styleExtra.push(styled);
|
|
93918
93963
|
}
|
|
93919
|
-
const definition = this.materials.materialDefinitionsMap.get(
|
|
93964
|
+
const definition = this.materials.materialDefinitionsMap.get(claimedID);
|
|
93920
93965
|
if (definition !== void 0) {
|
|
93921
93966
|
styleExtra.push(definition);
|
|
93922
93967
|
}
|
|
93923
93968
|
}
|
|
93924
|
-
if (styleExtra.length
|
|
93925
|
-
|
|
93969
|
+
if (styleExtra.length === 0) {
|
|
93970
|
+
return;
|
|
93926
93971
|
}
|
|
93927
|
-
await this.
|
|
93928
|
-
return visited;
|
|
93972
|
+
await this.model.ensureResidentClosureByLocalID(localID, styleExtra, seen, descend, leafSpans, isFace, claimed);
|
|
93929
93973
|
}
|
|
93930
93974
|
/**
|
|
93931
93975
|
* Page a faceset's Coordinates record and its Faces[] run as one
|
|
@@ -15943,7 +15943,7 @@ var ParsingBuffer = class {
|
|
|
15943
15943
|
};
|
|
15944
15944
|
|
|
15945
15945
|
// compiled/src/version/version.js
|
|
15946
|
-
var versionString = "Conway v1.
|
|
15946
|
+
var versionString = "Conway v1.563.1540";
|
|
15947
15947
|
|
|
15948
15948
|
// compiled/dependencies/conway-geom/interface/conway_geometry.js
|
|
15949
15949
|
function pThreadsAllowed() {
|
|
@@ -944,7 +944,7 @@ var EntityTypesIfcCount = 909;
|
|
|
944
944
|
var entity_types_ifc_gen_default = EntityTypesIfc;
|
|
945
945
|
|
|
946
946
|
// compiled/src/version/version.js
|
|
947
|
-
var versionString = "Conway v1.
|
|
947
|
+
var versionString = "Conway v1.563.1540";
|
|
948
948
|
|
|
949
949
|
// compiled/dependencies/conway-geom/interface/conway_geometry.js
|
|
950
950
|
var wasmType = "";
|
|
@@ -87,8 +87,16 @@ export declare function canSettleMemory(): boolean;
|
|
|
87
87
|
* produces `parseTimeMs` / `geometryTimeMs` / `totalTimeMs` — baseline before
|
|
88
88
|
* the load starts, retained sample after teardown. That property is what
|
|
89
89
|
* makes the retention columns free, and it is checkable by measurement: a run
|
|
90
|
-
* with `--expose-gc` and a run without share identical code, so
|
|
91
|
-
* columns
|
|
90
|
+
* with `--expose-gc` and a run without share identical code, so any movement
|
|
91
|
+
* in the timing columns between them is down to the settle. The SIGN says
|
|
92
|
+
* which way: gc-on slower is the settle leaking into the measured window,
|
|
93
|
+
* which is a bug; gc-on faster is the pre-load settle taking engine-init
|
|
94
|
+
* garbage OUT of that window. That is an absolute cost of about 10 ms per
|
|
95
|
+
* load, measured as 13-16% of `parseTimeMs` on models that parse in ~60 ms
|
|
96
|
+
* and unresolvable against one that parses in 578 ms, so read a ratio
|
|
97
|
+
* against the model's own parse time. `rc-regression.yml` runs both
|
|
98
|
+
* conditions in one job; see design/new/perf-measurement.md §"The settle
|
|
99
|
+
* also cleans the window".
|
|
92
100
|
*
|
|
93
101
|
* @return {Promise<SettledMemorySample | undefined>} The settled sample, or
|
|
94
102
|
* undefined where no collector is exposed — in which case the caller emits
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retained_memory.d.ts","sourceRoot":"","sources":["../../../src/core/retained_memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AASH;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAElC,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAA;IAEhB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAA;IAErB,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAE/B,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAA;IAEb,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAA;IAElB,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,IAAI,CAAE,MAAM,IAAI,CAAE,GAAG,SAAS,CAKtD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAKzC;AAED
|
|
1
|
+
{"version":3,"file":"retained_memory.d.ts","sourceRoot":"","sources":["../../../src/core/retained_memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AASH;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAElC,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAA;IAEhB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAA;IAErB,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAE/B,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAA;IAEb,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAA;IAElB,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,IAAI,CAAE,MAAM,IAAI,CAAE,GAAG,SAAS,CAKtD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAKzC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,qBAAqB,IACvC,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAuB3C;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,4BAA4B,CAC9C,QAAQ,EAAE,MAAM,GAAI,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAG/D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,mBAAmB,GAAG,SAAS,EACzC,QAAQ,EAAE,mBAAmB,GAAG,SAAS,GAAI,gBAAgB,GAAG,SAAS,CAa5E"}
|
|
@@ -72,8 +72,16 @@ export function canSettleMemory() {
|
|
|
72
72
|
* produces `parseTimeMs` / `geometryTimeMs` / `totalTimeMs` — baseline before
|
|
73
73
|
* the load starts, retained sample after teardown. That property is what
|
|
74
74
|
* makes the retention columns free, and it is checkable by measurement: a run
|
|
75
|
-
* with `--expose-gc` and a run without share identical code, so
|
|
76
|
-
* columns
|
|
75
|
+
* with `--expose-gc` and a run without share identical code, so any movement
|
|
76
|
+
* in the timing columns between them is down to the settle. The SIGN says
|
|
77
|
+
* which way: gc-on slower is the settle leaking into the measured window,
|
|
78
|
+
* which is a bug; gc-on faster is the pre-load settle taking engine-init
|
|
79
|
+
* garbage OUT of that window. That is an absolute cost of about 10 ms per
|
|
80
|
+
* load, measured as 13-16% of `parseTimeMs` on models that parse in ~60 ms
|
|
81
|
+
* and unresolvable against one that parses in 578 ms, so read a ratio
|
|
82
|
+
* against the model's own parse time. `rc-regression.yml` runs both
|
|
83
|
+
* conditions in one job; see design/new/perf-measurement.md §"The settle
|
|
84
|
+
* also cleans the window".
|
|
77
85
|
*
|
|
78
86
|
* @return {Promise<SettledMemorySample | undefined>} The settled sample, or
|
|
79
87
|
* undefined where no collector is exposed — in which case the caller emits
|
|
@@ -248,4 +248,144 @@ describe("concurrent windowed product prefetch (conway#526)", () => {
|
|
|
248
248
|
model.releaseSourceViews(pins);
|
|
249
249
|
model.unpinLocalIDs(pins);
|
|
250
250
|
}, 120000);
|
|
251
|
+
test("the style-seed scan costs one pass over the model, not one per product", async () => {
|
|
252
|
+
// conway#561: the closure walk RETURNS the caller's `seen` set, and
|
|
253
|
+
// ensureResidentForAggregateExtract shares one set across every
|
|
254
|
+
// related product of a relationship. Scanning that set for style
|
|
255
|
+
// seeds per product is therefore O(products x model): on SKYLARK250
|
|
256
|
+
// it was 5m16s of dead air between the end of parsing and the first
|
|
257
|
+
// mesh. Scanning `claimed` — what THIS call paged — makes the total
|
|
258
|
+
// work one pass over the shared set no matter how many products
|
|
259
|
+
// share it.
|
|
260
|
+
const model = await windowedModel(new InMemoryStepByteStore(new Uint8Array(fs.readFileSync("data/index.ifc"))));
|
|
261
|
+
const extraction = new IfcGeometryExtraction(conwayGeometry, model);
|
|
262
|
+
extraction.quietRecoverableLogging = true;
|
|
263
|
+
extraction.deferDanglingPlacements = true;
|
|
264
|
+
const prepPins = await extraction.ensureResidentForDemandPrep();
|
|
265
|
+
try {
|
|
266
|
+
extraction.prepareDemandExtraction();
|
|
267
|
+
}
|
|
268
|
+
finally {
|
|
269
|
+
model.releaseSourceViews(prepPins);
|
|
270
|
+
model.unpinLocalIDs(prepPins);
|
|
271
|
+
}
|
|
272
|
+
const products = [...model.types(IfcProduct)].map((p) => p.localID);
|
|
273
|
+
expect(products.length).toBeGreaterThan(2);
|
|
274
|
+
// Counted after prepare, so only the prefetch's own lookups land here.
|
|
275
|
+
const styledItemMap = extraction.materials.styledItemMap;
|
|
276
|
+
const realGet = styledItemMap.get.bind(styledItemMap);
|
|
277
|
+
let lookups = 0;
|
|
278
|
+
styledItemMap.get = (key) => {
|
|
279
|
+
++lookups;
|
|
280
|
+
return realGet(key);
|
|
281
|
+
};
|
|
282
|
+
// The aggregate prefetch's shape: ONE set for every product.
|
|
283
|
+
const pins = new Set();
|
|
284
|
+
const leafSpans = [];
|
|
285
|
+
try {
|
|
286
|
+
for (const localID of products) {
|
|
287
|
+
await extraction.ensureResidentForProductExtract(localID, pins, leafSpans);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
finally {
|
|
291
|
+
styledItemMap.get = realGet;
|
|
292
|
+
}
|
|
293
|
+
expect(pins.size).toBeGreaterThan(0);
|
|
294
|
+
// Each record is scanned by the one call that claimed it, so the
|
|
295
|
+
// lookups never exceed the shared set. Pre-fix this was
|
|
296
|
+
// products.length x |pins| and the assertion fails by ~an order of
|
|
297
|
+
// magnitude on this fixture alone.
|
|
298
|
+
expect(lookups).toBeLessThanOrEqual(pins.size);
|
|
299
|
+
model.releaseSourceViews(pins);
|
|
300
|
+
model.unpinLocalIDs(pins);
|
|
301
|
+
for (const span of leafSpans) {
|
|
302
|
+
model.unpinAddressRange(span.address, span.length);
|
|
303
|
+
}
|
|
304
|
+
}, 120000);
|
|
305
|
+
test("an aborted walk still pages the style seeds for what it claimed", async () => {
|
|
306
|
+
// conway#561 review (codex P2): `claimed` partitions the shared set
|
|
307
|
+
// only across walks that COMPLETE. The closure walk claims and pins
|
|
308
|
+
// each record into `seen` BEFORE awaiting residency, and has no
|
|
309
|
+
// internal catch — so a store rejection leaves its claims in `seen`
|
|
310
|
+
// and unwinds, the guard contains the failure without retrying
|
|
311
|
+
// (conway#526), and no sibling can ever claim those records again.
|
|
312
|
+
// Scanning the cumulative set used to recover their style seeds by
|
|
313
|
+
// accident; scanning `claimed` does not, which would silently strip
|
|
314
|
+
// colours from every product sharing geometry with the failed one.
|
|
315
|
+
const model = await windowedModel(new InMemoryStepByteStore(new Uint8Array(fs.readFileSync("data/index.ifc"))));
|
|
316
|
+
const extraction = new IfcGeometryExtraction(conwayGeometry, model);
|
|
317
|
+
extraction.quietRecoverableLogging = true;
|
|
318
|
+
extraction.deferDanglingPlacements = true;
|
|
319
|
+
const prepPins = await extraction.ensureResidentForDemandPrep();
|
|
320
|
+
try {
|
|
321
|
+
extraction.prepareDemandExtraction();
|
|
322
|
+
}
|
|
323
|
+
finally {
|
|
324
|
+
model.releaseSourceViews(prepPins);
|
|
325
|
+
model.unpinLocalIDs(prepPins);
|
|
326
|
+
}
|
|
327
|
+
const products = [...model.types(IfcProduct)].map((p) => p.localID);
|
|
328
|
+
expect(products.length).toBeGreaterThan(1);
|
|
329
|
+
const failing = products[0];
|
|
330
|
+
const sibling = products[1];
|
|
331
|
+
// A seed owned by a record the aborted walk is GUARANTEED to claim:
|
|
332
|
+
// the product's own record is wave 1, added to `seen` before the
|
|
333
|
+
// first await. Planted rather than discovered so the test does not
|
|
334
|
+
// depend on where index.ifc happens to put a styled item.
|
|
335
|
+
const sentinel = products[products.length - 1];
|
|
336
|
+
extraction.materials.styledItemMap.set(failing, sentinel);
|
|
337
|
+
// Reject partway through the BFS, after wave 1 has been claimed.
|
|
338
|
+
const realEnsureResident = model.ensureResidentByLocalID.bind(model);
|
|
339
|
+
let countdown = -1;
|
|
340
|
+
let injected = false;
|
|
341
|
+
model.ensureResidentByLocalID = (id) => {
|
|
342
|
+
if (countdown > 0 && --countdown === 0) {
|
|
343
|
+
injected = true;
|
|
344
|
+
return Promise.reject(new Error("simulated store read failure"));
|
|
345
|
+
}
|
|
346
|
+
return realEnsureResident(id);
|
|
347
|
+
};
|
|
348
|
+
// Every seed list handed to the closure walk, so "was the sentinel
|
|
349
|
+
// paged" is observable without reaching into the walk.
|
|
350
|
+
const realClosure = model.ensureResidentClosureByLocalID.bind(model);
|
|
351
|
+
const seedLists = [];
|
|
352
|
+
model.ensureResidentClosureByLocalID =
|
|
353
|
+
(id, extraLocalIDs, ...rest) => {
|
|
354
|
+
if (extraLocalIDs !== void 0) {
|
|
355
|
+
seedLists.push([...extraLocalIDs]);
|
|
356
|
+
}
|
|
357
|
+
return realClosure(id, extraLocalIDs, ...rest);
|
|
358
|
+
};
|
|
359
|
+
const pins = new Set();
|
|
360
|
+
const leafSpans = [];
|
|
361
|
+
try {
|
|
362
|
+
countdown = 5;
|
|
363
|
+
await extraction.ensureResidentForProductExtract(failing, pins, leafSpans);
|
|
364
|
+
countdown = -1;
|
|
365
|
+
// A probe that never fires looks exactly like a clean model: if
|
|
366
|
+
// the closure finished before the fifth read the scenario never
|
|
367
|
+
// happened and the assertions below prove nothing.
|
|
368
|
+
expect(injected).toBe(true);
|
|
369
|
+
expect(pins.has(failing)).toBe(true);
|
|
370
|
+
const sentinelPagings = seedLists.filter((seeds) => seeds.includes(sentinel)).length;
|
|
371
|
+
// Pre-fix this is 0: the aborted walk never reaches the style
|
|
372
|
+
// pass, and `failing` is in the shared set forever.
|
|
373
|
+
expect(sentinelPagings).toBe(1);
|
|
374
|
+
// The sibling skips `failing` (it is already in `seen`), which is
|
|
375
|
+
// exactly why the aborted walk had to page the seed itself — and
|
|
376
|
+
// it must not re-page it either.
|
|
377
|
+
await extraction.ensureResidentForProductExtract(sibling, pins, leafSpans);
|
|
378
|
+
expect(seedLists.filter((seeds) => seeds.includes(sentinel)).length).toBe(1);
|
|
379
|
+
}
|
|
380
|
+
finally {
|
|
381
|
+
;
|
|
382
|
+
model.ensureResidentByLocalID = realEnsureResident;
|
|
383
|
+
model.ensureResidentClosureByLocalID = realClosure;
|
|
384
|
+
}
|
|
385
|
+
model.releaseSourceViews(pins);
|
|
386
|
+
model.unpinLocalIDs(pins);
|
|
387
|
+
for (const span of leafSpans) {
|
|
388
|
+
model.unpinAddressRange(span.address, span.length);
|
|
389
|
+
}
|
|
390
|
+
}, 120000);
|
|
251
391
|
});
|
|
@@ -1253,6 +1253,36 @@ export declare class IfcGeometryExtraction {
|
|
|
1253
1253
|
* @return {Promise<Set<number>>} Pinned local IDs.
|
|
1254
1254
|
*/
|
|
1255
1255
|
private ensureResidentForProductExtractUnguarded_;
|
|
1256
|
+
/**
|
|
1257
|
+
* Page the styled-item and material-definition records seeded by
|
|
1258
|
+
* `claimed` — the records ONE closure walk actually paged — so the
|
|
1259
|
+
* synchronous extract that follows can read them.
|
|
1260
|
+
*
|
|
1261
|
+
* `claimed`, not the walk's returned set: the walk returns the CALLER'S
|
|
1262
|
+
* set, which the aggregate prefetch shares across every related product
|
|
1263
|
+
* of one IfcRelAggregates (see ensureResidentForAggregateExtract).
|
|
1264
|
+
* Scanning that per product is O(products x model), not O(product) — on
|
|
1265
|
+
* SKYLARK250 (1,992 products under two relationships, ~3,000 records of
|
|
1266
|
+
* closure each) it reaches ~6 M lookups on the last product and costs
|
|
1267
|
+
* minutes before the first mesh, inside one un-yielding await chain
|
|
1268
|
+
* (conway#561). Every record lands in exactly one walk's `claimed`, so
|
|
1269
|
+
* the union of seeds collected across the walks sharing a set is
|
|
1270
|
+
* unchanged; only the repetition goes. Same distinction conway#526 drew
|
|
1271
|
+
* for {@link ensureResidentVisitedFacesetPayloads_}.
|
|
1272
|
+
*
|
|
1273
|
+
* That "exactly one walk" holds only for walks that COMPLETE, which is
|
|
1274
|
+
* why the aborted path calls this too — see the catch in
|
|
1275
|
+
* {@link ensureResidentForProductExtractUnguarded_}.
|
|
1276
|
+
*
|
|
1277
|
+
* @param localID The product whose walk claimed these records.
|
|
1278
|
+
* @param claimed Records this walk paged.
|
|
1279
|
+
* @param seen The set the walk pinned through, extended by this one.
|
|
1280
|
+
* @param descend Closure-walk descent predicate.
|
|
1281
|
+
* @param isFace Closure-walk packed-leaf predicate.
|
|
1282
|
+
* @param leafSpans Optional out-array of coalesced pin ranges.
|
|
1283
|
+
* @return {Promise<void>} Resolves when the seeds are resident.
|
|
1284
|
+
*/
|
|
1285
|
+
private pageStyleSeeds_;
|
|
1256
1286
|
/**
|
|
1257
1287
|
* Page a faceset's Coordinates record and its Faces[] run as one
|
|
1258
1288
|
* or more tight address spans. The generic closure visits the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc_geometry_extraction.d.ts","sourceRoot":"","sources":["../../../src/ifc/ifc_geometry_extraction.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ifc_geometry_extraction.d.ts","sourceRoot":"","sources":["../../../src/ifc/ifc_geometry_extraction.ts"],"names":[],"mappings":"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"}
|
|
@@ -5345,23 +5345,87 @@ export class IfcGeometryExtraction {
|
|
|
5345
5345
|
// is the caller's shared set when a batch prefetches concurrently.
|
|
5346
5346
|
// Only the former may be read synchronously afterwards (conway#526).
|
|
5347
5347
|
const claimed = new Set();
|
|
5348
|
-
|
|
5348
|
+
let visited;
|
|
5349
|
+
try {
|
|
5350
|
+
visited =
|
|
5351
|
+
await this.model.ensureResidentClosureByLocalID(localID, extra, seen, descend, leafSpans, isFace, claimed);
|
|
5352
|
+
}
|
|
5353
|
+
catch (error) {
|
|
5354
|
+
// The walk claims and pins each record into the SHARED `seen` BEFORE
|
|
5355
|
+
// awaiting its residency — that is what makes overlapping walks pin
|
|
5356
|
+
// once — and it has no internal catch, so a store rejection leaves
|
|
5357
|
+
// those claims in `seen` and unwinds. The guard above then contains
|
|
5358
|
+
// the failure to this product and does not retry (conway#526), so no
|
|
5359
|
+
// sibling product will ever claim those records again: they fail
|
|
5360
|
+
// `seen.has(...)` in every later walk. pageStyleSeeds_ is the only
|
|
5361
|
+
// thing that pages their styled items and material definitions, so
|
|
5362
|
+
// skipping it here would silently strip colours from every OTHER
|
|
5363
|
+
// product sharing geometry with this one — no error, wrong render.
|
|
5364
|
+
//
|
|
5365
|
+
// Only when the set is shared. With no `seen` the claims are visible
|
|
5366
|
+
// to nobody, a later walk over this product re-claims and re-scans
|
|
5367
|
+
// them, and a recovery walk here would pin records through a set the
|
|
5368
|
+
// caller has no handle on to unpin.
|
|
5369
|
+
if (seen !== void 0) {
|
|
5370
|
+
try {
|
|
5371
|
+
await this.pageStyleSeeds_(localID, claimed, seen, descend, isFace, leafSpans);
|
|
5372
|
+
}
|
|
5373
|
+
catch {
|
|
5374
|
+
// Best effort: the store is already failing for this product, and
|
|
5375
|
+
// the original rejection is the one worth surfacing.
|
|
5376
|
+
}
|
|
5377
|
+
}
|
|
5378
|
+
throw error;
|
|
5379
|
+
}
|
|
5380
|
+
await this.pageStyleSeeds_(localID, claimed, visited, descend, isFace, leafSpans);
|
|
5381
|
+
await this.ensureResidentVisitedFacesetPayloads_(claimed, visited, leafSpans);
|
|
5382
|
+
return visited;
|
|
5383
|
+
}
|
|
5384
|
+
/**
|
|
5385
|
+
* Page the styled-item and material-definition records seeded by
|
|
5386
|
+
* `claimed` — the records ONE closure walk actually paged — so the
|
|
5387
|
+
* synchronous extract that follows can read them.
|
|
5388
|
+
*
|
|
5389
|
+
* `claimed`, not the walk's returned set: the walk returns the CALLER'S
|
|
5390
|
+
* set, which the aggregate prefetch shares across every related product
|
|
5391
|
+
* of one IfcRelAggregates (see ensureResidentForAggregateExtract).
|
|
5392
|
+
* Scanning that per product is O(products x model), not O(product) — on
|
|
5393
|
+
* SKYLARK250 (1,992 products under two relationships, ~3,000 records of
|
|
5394
|
+
* closure each) it reaches ~6 M lookups on the last product and costs
|
|
5395
|
+
* minutes before the first mesh, inside one un-yielding await chain
|
|
5396
|
+
* (conway#561). Every record lands in exactly one walk's `claimed`, so
|
|
5397
|
+
* the union of seeds collected across the walks sharing a set is
|
|
5398
|
+
* unchanged; only the repetition goes. Same distinction conway#526 drew
|
|
5399
|
+
* for {@link ensureResidentVisitedFacesetPayloads_}.
|
|
5400
|
+
*
|
|
5401
|
+
* That "exactly one walk" holds only for walks that COMPLETE, which is
|
|
5402
|
+
* why the aborted path calls this too — see the catch in
|
|
5403
|
+
* {@link ensureResidentForProductExtractUnguarded_}.
|
|
5404
|
+
*
|
|
5405
|
+
* @param localID The product whose walk claimed these records.
|
|
5406
|
+
* @param claimed Records this walk paged.
|
|
5407
|
+
* @param seen The set the walk pinned through, extended by this one.
|
|
5408
|
+
* @param descend Closure-walk descent predicate.
|
|
5409
|
+
* @param isFace Closure-walk packed-leaf predicate.
|
|
5410
|
+
* @param leafSpans Optional out-array of coalesced pin ranges.
|
|
5411
|
+
* @return {Promise<void>} Resolves when the seeds are resident.
|
|
5412
|
+
*/
|
|
5413
|
+
async pageStyleSeeds_(localID, claimed, seen, descend, isFace, leafSpans) {
|
|
5349
5414
|
const styleExtra = [];
|
|
5350
|
-
for (const
|
|
5351
|
-
const styled = this.materials.styledItemMap.get(
|
|
5415
|
+
for (const claimedID of claimed) {
|
|
5416
|
+
const styled = this.materials.styledItemMap.get(claimedID);
|
|
5352
5417
|
if (styled !== void 0) {
|
|
5353
5418
|
styleExtra.push(styled);
|
|
5354
5419
|
}
|
|
5355
|
-
const definition = this.materials.materialDefinitionsMap.get(
|
|
5420
|
+
const definition = this.materials.materialDefinitionsMap.get(claimedID);
|
|
5356
5421
|
if (definition !== void 0) {
|
|
5357
5422
|
styleExtra.push(definition);
|
|
5358
5423
|
}
|
|
5359
5424
|
}
|
|
5360
|
-
if (styleExtra.length
|
|
5361
|
-
|
|
5425
|
+
if (styleExtra.length === 0) {
|
|
5426
|
+
return;
|
|
5362
5427
|
}
|
|
5363
|
-
await this.
|
|
5364
|
-
return visited;
|
|
5428
|
+
await this.model.ensureResidentClosureByLocalID(localID, styleExtra, seen, descend, leafSpans, isFace, claimed);
|
|
5365
5429
|
}
|
|
5366
5430
|
/**
|
|
5367
5431
|
* Page a faceset's Coordinates record and its Faces[] run as one
|
|
@@ -29,9 +29,18 @@ const CHILD_NODE_FLAGS = '--experimental-specifier-resolution=node';
|
|
|
29
29
|
* both samples sit outside the timed region — baseline before the load,
|
|
30
30
|
* retained sample after teardown — so a run with the flag and a run without
|
|
31
31
|
* should produce the same timing columns from identical code. Set the
|
|
32
|
-
* variable to `0`, `false` or `off` for the without side of that A/B
|
|
33
|
-
*
|
|
34
|
-
*
|
|
32
|
+
* variable to `0`, `false` or `off` for the without side of that A/B; the
|
|
33
|
+
* `rebless` job of `.github/workflows/rc-regression.yml` does exactly that
|
|
34
|
+
* for its second, control pass, because the two conditions have to share a
|
|
35
|
+
* runner for the comparison to mean anything (between two CI runs the timing
|
|
36
|
+
* columns carry a ~1.5x runner scale factor against a ~1% effect).
|
|
37
|
+
*
|
|
38
|
+
* Read any movement with its sign. Gc-on SLOWER means the settle is reaching
|
|
39
|
+
* the measured window, which is a bug rather than a tolerance. Gc-on FASTER
|
|
40
|
+
* means the opposite — the pre-load settle collects engine-init garbage that
|
|
41
|
+
* the flag-off run collects inside the timed region instead. That is about
|
|
42
|
+
* 10 ms per load: 13-16% of `parseTimeMs` on a model that parses in ~60 ms,
|
|
43
|
+
* and lost in the noise on one that parses in 578 ms.
|
|
35
44
|
*
|
|
36
45
|
* @return {boolean} True unless CONWAY_PERF_EXPOSE_GC disables it.
|
|
37
46
|
*/
|
|
@@ -16,7 +16,7 @@ import { createRequire } from 'module';
|
|
|
16
16
|
const require_ = createRequire(import.meta.url);
|
|
17
17
|
// Resolved from the repo root: the test runs from compiled/src/scripts, and
|
|
18
18
|
// scripts/ is not part of the tsc build. Jest's rootDir is the repo root.
|
|
19
|
-
const { DETAIL_COLUMNS, findPreviousSnapshot, isChronologicalDelta, removeStaleDeltas, writeDetailCsv, versionCompare, } = require_(path.resolve(process.cwd(), 'scripts/bless_perf_snapshot.cjs'));
|
|
19
|
+
const { DETAIL_COLUMNS, findPreviousSnapshot, isChronologicalDelta, removeStaleDeltas, renderReadme, writeDetailCsv, versionCompare, } = require_(path.resolve(process.cwd(), 'scripts/bless_perf_snapshot.cjs'));
|
|
20
20
|
const { parseCsv } = require_(path.resolve(process.cwd(), 'scripts/csv_rfc4180.cjs'));
|
|
21
21
|
let workDir;
|
|
22
22
|
beforeEach(() => {
|
|
@@ -328,3 +328,90 @@ describe('isChronologicalDelta', () => {
|
|
|
328
328
|
}
|
|
329
329
|
});
|
|
330
330
|
});
|
|
331
|
+
describe('renderReadme', () => {
|
|
332
|
+
const info = {
|
|
333
|
+
engine: 'conway1.560.1600-ci',
|
|
334
|
+
repoName: 'test-models',
|
|
335
|
+
modelCount: 97,
|
|
336
|
+
retentionCount: 97,
|
|
337
|
+
deltaName: 'conway1.451.1357-ci_1.560.1600_delta.csv',
|
|
338
|
+
previousName: 'conway1.451.1357-ci_test-models',
|
|
339
|
+
};
|
|
340
|
+
test('does not repeat the pre-#553 claim that geometryMemoryMb is N/A', () => {
|
|
341
|
+
// #553 restored geometryMemoryMb on the conway-native writer (SKYLARK250
|
|
342
|
+
// reads 185.22 against the 185.836 recorded at 1.451). The README shipped
|
|
343
|
+
// beside the 1.549 snapshot still says it is unmeasured, which is now the
|
|
344
|
+
// opposite of the truth for a column carrying real data; that text was
|
|
345
|
+
// removed from this template, and this keeps it out.
|
|
346
|
+
const text = renderReadme(info);
|
|
347
|
+
expect(text).not.toContain('`geometryMemoryMb` is absent here');
|
|
348
|
+
expect(text).toContain('`schemaVersion`,\n`preprocessorVersion` and `originatingSystem` are `N/A`');
|
|
349
|
+
// The N/A-is-not-a-zero framing is the point of #548 and must survive for
|
|
350
|
+
// the columns genuinely absent from an older snapshot.
|
|
351
|
+
expect(text).toContain('That is a missing\nmeasurement, not a zero');
|
|
352
|
+
});
|
|
353
|
+
test('says on its own face whether the settle ran', () => {
|
|
354
|
+
// A directory of N/A retention must explain itself without anyone having
|
|
355
|
+
// to find the workflow that produced it.
|
|
356
|
+
expect(renderReadme(info)).toContain('Retention is measured on 97 of 97');
|
|
357
|
+
expect(renderReadme({ ...info, retentionCount: 0 }))
|
|
358
|
+
.toContain('Retention is `N/A` on every row here');
|
|
359
|
+
});
|
|
360
|
+
test('names the blessed pass as the one this snapshot came from', () => {
|
|
361
|
+
const text = renderReadme(info);
|
|
362
|
+
expect(text).toContain('CONWAY_PERF_EXPOSE_GC=0');
|
|
363
|
+
expect(text).toContain('The control pass is never blessed');
|
|
364
|
+
});
|
|
365
|
+
test('the N/A inventory covers the retention columns, not just FAIL rows', () => {
|
|
366
|
+
// A settle-less snapshot used to assert both 'Every other column is
|
|
367
|
+
// measured - with the exception of a row whose loadStatus is not OK' and
|
|
368
|
+
// 'Retention is `N/A` on every row here', four paragraphs apart in one
|
|
369
|
+
// file. The retention columns read N/A on an OK row whenever the run had
|
|
370
|
+
// no --expose-gc, which is exactly the run this branch describes.
|
|
371
|
+
const text = renderReadme({ ...info, retentionCount: 0 });
|
|
372
|
+
expect(text).toContain('Retention is `N/A` on every row here');
|
|
373
|
+
expect(text).not.toContain('Every other column is measured — with the');
|
|
374
|
+
expect(text).toContain('the three retention columns carry `N/A`');
|
|
375
|
+
expect(text).toContain('on an `OK` row as\nmuch as a failed one');
|
|
376
|
+
});
|
|
377
|
+
test('attributes the geometryMemoryMb split to the writers #555 measured', () => {
|
|
378
|
+
// #555 measured 16.8 vs 22.3 MB between `ifc_command_line_main` and the
|
|
379
|
+
// IFC regression child - two IFC pipelines. MB-Khaya never reaches the
|
|
380
|
+
// AP214 child, so pinning that figure to the IFC-row-vs-STEP-row split
|
|
381
|
+
// this file mixes would cite evidence for a claim it does not support.
|
|
382
|
+
const text = renderReadme(info);
|
|
383
|
+
expect(text).toContain('The IFC **CLI** and the IFC\nregression child read 16.8 vs 22.3 MB');
|
|
384
|
+
expect(text).toContain('has not been measured to disagree');
|
|
385
|
+
});
|
|
386
|
+
test('describes the second-engine term as closed by #557, not as current', () => {
|
|
387
|
+
// conway#557 landed: both regression children now extract on the engine
|
|
388
|
+
// main() initialised. A README still saying an IFC row carries ~100 MB of
|
|
389
|
+
// second engine would be describing a world that no longer exists - and
|
|
390
|
+
// the boundary that DOES matter now is that pre-#557 snapshots carry the
|
|
391
|
+
// constant and this one does not.
|
|
392
|
+
const text = renderReadme(info);
|
|
393
|
+
expect(text).toContain('carried a second, unrelated split until conway#557');
|
|
394
|
+
expect(text).toContain('~55-60 MB constant on every IFC row');
|
|
395
|
+
expect(text).not.toContain('roughly 100 MB');
|
|
396
|
+
expect(text).toContain('A snapshot blessed\nbefore conway#557');
|
|
397
|
+
});
|
|
398
|
+
test('warns off the misreadings the columns invite', () => {
|
|
399
|
+
const text = renderReadme(info);
|
|
400
|
+
// Retention is live model + leak, not leak.
|
|
401
|
+
expect(text).toContain('still-live model plus anything genuinely leaked');
|
|
402
|
+
// The two columns that are pipeline-scoped, with their issues.
|
|
403
|
+
expect(text).toContain('conway/issues/555');
|
|
404
|
+
expect(text).toContain('conway/issues/557');
|
|
405
|
+
// The third native quantity, and the arrayBuffers/external subset rule.
|
|
406
|
+
expect(text).toContain('getAllocationSize');
|
|
407
|
+
expect(text).toContain('ArrayBuffer subset');
|
|
408
|
+
// Cross-run timing carries the runner scale factor.
|
|
409
|
+
expect(text).toContain('median 1.55x');
|
|
410
|
+
});
|
|
411
|
+
test('names the delta and its predecessor, or says there is none', () => {
|
|
412
|
+
expect(renderReadme(info)).toContain('`conway1.451.1357-ci_1.560.1600_delta.csv` diffs this run against ' +
|
|
413
|
+
'`../conway1.451.1357-ci_test-models/`.');
|
|
414
|
+
expect(renderReadme({ ...info, deltaName: '', previousName: '' }))
|
|
415
|
+
.toContain('no delta was produced');
|
|
416
|
+
});
|
|
417
|
+
});
|