@bldrs-ai/conway 1.376.1184 → 1.378.1185
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 +7 -2
- package/compiled/examples/cli-bundled.cjs +7 -2
- package/compiled/examples/cli-step-bundled.cjs +7 -2
- package/compiled/examples/validator-bundled.cjs +7 -2
- package/compiled/src/step/parsing/step_deserialization_functions.d.ts +16 -0
- package/compiled/src/step/parsing/step_deserialization_functions.d.ts.map +1 -1
- package/compiled/src/step/parsing/step_deserialization_functions.js +20 -1
- package/compiled/src/step/parsing/step_deserialization_functions.test.d.ts +2 -0
- package/compiled/src/step/parsing/step_deserialization_functions.test.d.ts.map +1 -0
- package/compiled/src/step/parsing/step_deserialization_functions.test.js +27 -0
- package/compiled/src/step/step_model_base.d.ts.map +1 -1
- package/compiled/src/step/step_model_base.js +10 -0
- package/compiled/src/version/version.js +1 -1
- package/compiled/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1426,7 +1426,11 @@ var stringParser = step_string_parser_default.Instance.match;
|
|
|
1426
1426
|
var HASH = parsing_constants_default.HASH;
|
|
1427
1427
|
var ZERO4 = parsing_constants_default.ZERO;
|
|
1428
1428
|
var SLASH2 = parsing_constants_default.SLASH;
|
|
1429
|
-
var
|
|
1429
|
+
var EMPTY_PARSING_BYTES = new Uint8Array(1);
|
|
1430
|
+
var parsingBufferReusable = new ParsingBuffer(EMPTY_PARSING_BYTES, 0, 1);
|
|
1431
|
+
function releaseScratchParsingBuffer() {
|
|
1432
|
+
parsingBufferReusable.reinit(EMPTY_PARSING_BYTES, 0, 1);
|
|
1433
|
+
}
|
|
1430
1434
|
function NVL(testValue, replaceValue) {
|
|
1431
1435
|
return testValue ?? replaceValue;
|
|
1432
1436
|
}
|
|
@@ -4417,6 +4421,7 @@ var StepModelBase = class {
|
|
|
4417
4421
|
invalidate(dropVtable = false) {
|
|
4418
4422
|
if (dropVtable) {
|
|
4419
4423
|
this.vtableBuilder_.clear(true);
|
|
4424
|
+
releaseScratchParsingBuffer();
|
|
4420
4425
|
this.descriptorCache_ = [];
|
|
4421
4426
|
if (this.complexEntries_ !== void 0) {
|
|
4422
4427
|
for (const item of this.complexEntries_.values()) {
|
|
@@ -70042,7 +70047,7 @@ IfcStepParser.Instance = new IfcStepParser();
|
|
|
70042
70047
|
var ifc_step_parser_default = IfcStepParser;
|
|
70043
70048
|
|
|
70044
70049
|
// compiled/src/version/version.js
|
|
70045
|
-
var versionString = "Conway Web-Ifc Shim v1.
|
|
70050
|
+
var versionString = "Conway Web-Ifc Shim v1.378.1185";
|
|
70046
70051
|
|
|
70047
70052
|
// compiled/src/statistics/statistics.js
|
|
70048
70053
|
var Statistics = class {
|
|
@@ -16361,7 +16361,11 @@ var stringParser = step_string_parser_default.Instance.match;
|
|
|
16361
16361
|
var HASH = parsing_constants_default.HASH;
|
|
16362
16362
|
var ZERO4 = parsing_constants_default.ZERO;
|
|
16363
16363
|
var SLASH2 = parsing_constants_default.SLASH;
|
|
16364
|
-
var
|
|
16364
|
+
var EMPTY_PARSING_BYTES = new Uint8Array(1);
|
|
16365
|
+
var parsingBufferReusable = new ParsingBuffer(EMPTY_PARSING_BYTES, 0, 1);
|
|
16366
|
+
function releaseScratchParsingBuffer() {
|
|
16367
|
+
parsingBufferReusable.reinit(EMPTY_PARSING_BYTES, 0, 1);
|
|
16368
|
+
}
|
|
16365
16369
|
function NVL(testValue, replaceValue) {
|
|
16366
16370
|
return testValue ?? replaceValue;
|
|
16367
16371
|
}
|
|
@@ -19352,6 +19356,7 @@ var StepModelBase = class {
|
|
|
19352
19356
|
invalidate(dropVtable = false) {
|
|
19353
19357
|
if (dropVtable) {
|
|
19354
19358
|
this.vtableBuilder_.clear(true);
|
|
19359
|
+
releaseScratchParsingBuffer();
|
|
19355
19360
|
this.descriptorCache_ = [];
|
|
19356
19361
|
if (this.complexEntries_ !== void 0) {
|
|
19357
19362
|
for (const item of this.complexEntries_.values()) {
|
|
@@ -86283,7 +86288,7 @@ var IfcSceneBuilder = class {
|
|
|
86283
86288
|
};
|
|
86284
86289
|
|
|
86285
86290
|
// compiled/src/version/version.js
|
|
86286
|
-
var versionString = "Conway Web-Ifc Shim v1.
|
|
86291
|
+
var versionString = "Conway Web-Ifc Shim v1.378.1185";
|
|
86287
86292
|
|
|
86288
86293
|
// compiled/src/statistics/statistics.js
|
|
86289
86294
|
var Statistics = class {
|
|
@@ -16361,7 +16361,11 @@ var stringParser = step_string_parser_default.Instance.match;
|
|
|
16361
16361
|
var HASH = parsing_constants_default.HASH;
|
|
16362
16362
|
var ZERO4 = parsing_constants_default.ZERO;
|
|
16363
16363
|
var SLASH2 = parsing_constants_default.SLASH;
|
|
16364
|
-
var
|
|
16364
|
+
var EMPTY_PARSING_BYTES = new Uint8Array(1);
|
|
16365
|
+
var parsingBufferReusable = new ParsingBuffer(EMPTY_PARSING_BYTES, 0, 1);
|
|
16366
|
+
function releaseScratchParsingBuffer() {
|
|
16367
|
+
parsingBufferReusable.reinit(EMPTY_PARSING_BYTES, 0, 1);
|
|
16368
|
+
}
|
|
16365
16369
|
function NVL(testValue, replaceValue) {
|
|
16366
16370
|
return testValue ?? replaceValue;
|
|
16367
16371
|
}
|
|
@@ -19232,6 +19236,7 @@ var StepModelBase = class {
|
|
|
19232
19236
|
invalidate(dropVtable = false) {
|
|
19233
19237
|
if (dropVtable) {
|
|
19234
19238
|
this.vtableBuilder_.clear(true);
|
|
19239
|
+
releaseScratchParsingBuffer();
|
|
19235
19240
|
this.descriptorCache_ = [];
|
|
19236
19241
|
if (this.complexEntries_ !== void 0) {
|
|
19237
19242
|
for (const item of this.complexEntries_.values()) {
|
|
@@ -79734,7 +79739,7 @@ var ExtractResult;
|
|
|
79734
79739
|
})(ExtractResult || (ExtractResult = {}));
|
|
79735
79740
|
|
|
79736
79741
|
// compiled/src/version/version.js
|
|
79737
|
-
var versionString = "Conway Web-Ifc Shim v1.
|
|
79742
|
+
var versionString = "Conway Web-Ifc Shim v1.378.1185";
|
|
79738
79743
|
|
|
79739
79744
|
// compiled/src/statistics/statistics.js
|
|
79740
79745
|
var Statistics = class {
|
|
@@ -2340,7 +2340,11 @@ var stringParser = step_string_parser_default.Instance.match;
|
|
|
2340
2340
|
var HASH = parsing_constants_default.HASH;
|
|
2341
2341
|
var ZERO4 = parsing_constants_default.ZERO;
|
|
2342
2342
|
var SLASH2 = parsing_constants_default.SLASH;
|
|
2343
|
-
var
|
|
2343
|
+
var EMPTY_PARSING_BYTES = new Uint8Array(1);
|
|
2344
|
+
var parsingBufferReusable = new ParsingBuffer(EMPTY_PARSING_BYTES, 0, 1);
|
|
2345
|
+
function releaseScratchParsingBuffer() {
|
|
2346
|
+
parsingBufferReusable.reinit(EMPTY_PARSING_BYTES, 0, 1);
|
|
2347
|
+
}
|
|
2344
2348
|
function NVL(testValue, replaceValue) {
|
|
2345
2349
|
return testValue ?? replaceValue;
|
|
2346
2350
|
}
|
|
@@ -4415,6 +4419,7 @@ var StepModelBase = class {
|
|
|
4415
4419
|
invalidate(dropVtable = false) {
|
|
4416
4420
|
if (dropVtable) {
|
|
4417
4421
|
this.vtableBuilder_.clear(true);
|
|
4422
|
+
releaseScratchParsingBuffer();
|
|
4418
4423
|
this.descriptorCache_ = [];
|
|
4419
4424
|
if (this.complexEntries_ !== void 0) {
|
|
4420
4425
|
for (const item of this.complexEntries_.values()) {
|
|
@@ -70040,7 +70045,7 @@ IfcStepParser.Instance = new IfcStepParser();
|
|
|
70040
70045
|
var ifc_step_parser_default = IfcStepParser;
|
|
70041
70046
|
|
|
70042
70047
|
// compiled/src/version/version.js
|
|
70043
|
-
var versionString = "Conway Web-Ifc Shim v1.
|
|
70048
|
+
var versionString = "Conway Web-Ifc Shim v1.378.1185";
|
|
70044
70049
|
|
|
70045
70050
|
// compiled/src/statistics/statistics.js
|
|
70046
70051
|
var Statistics = class {
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drop the module-level scratch parsing buffer's reference to the last
|
|
3
|
+
* buffer it read from.
|
|
4
|
+
*
|
|
5
|
+
* The scratch is `reinit`-pointed at a caller's buffer on every numeric
|
|
6
|
+
* extraction and never cleared, so after a parse it silently pins the
|
|
7
|
+
* ENTIRE source buffer (hundreds of MB on large models) until the next
|
|
8
|
+
* extraction repoints it. That was invisible while the model itself
|
|
9
|
+
* held the source, but once `spillSourceToExternalStore` releases the
|
|
10
|
+
* model's copy this scratch became the last thing keeping it alive
|
|
11
|
+
* (found via heap-snapshot retainer chain:
|
|
12
|
+
* `Context[parsingBufferReusable] → ParsingBuffer.buffer → source`).
|
|
13
|
+
* Called from the model's spill and cache-release paths; safe at any
|
|
14
|
+
* time because every use reinits the scratch first.
|
|
15
|
+
*/
|
|
16
|
+
export declare function releaseScratchParsingBuffer(): void;
|
|
1
17
|
/**
|
|
2
18
|
* NVL is a null coalescing function required for STEP.
|
|
3
19
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step_deserialization_functions.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/step_deserialization_functions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"step_deserialization_functions.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/step_deserialization_functions.ts"],"names":[],"mappings":"AAkCA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AAGD;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAE,CAAC,EAAI,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,YAAY,EAAE,CAAC,GAAI,CAAC,CAE9E;AAGD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAE,CAAC,EAAI,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,SAAS,GAAI,MAAM,CAExE;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAE,CAAC,EAAI,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,SAAS,GAAI,MAAM,CAEvE;AAGD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAUvC;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,MAAM,GAAG,SAAS,CAM1C;AAGD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,OAAO,GAAG,IAAI,GAAG,SAAS,CAwBlD;AAGD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,OAAO,GAAG,SAAS,CAgB3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACrB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAK,MAAM,CA2E/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACjC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,MAAM,CA0B9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACjC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,MAAM,CA0C9B;AAED;;;;;;;;;GASG;AACH,wBAAiB,gBAAgB,CAC7B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,gBAAgB,CAAE,MAAM,CAAE,CAkGlD;AAGD;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACtC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,MAAM,GAAG,SAAS,CA4C1C;AAID;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAChC,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAK,MAAM,GAAG,SAAS,CAsC3C;AAED,QAAA,MAAM,eAAe,8JAAkC,CAAA;AAEvD,OAAO,EAAE,eAAe,EAAE,CAAA;AAE1B,QAAA,MAAM,iBAAiB,iGAAoC,CAAA;AAE3D,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAE5B,QAAA,MAAM,iBAAiB,4FAAiC,CAAA;AAExD,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -24,7 +24,26 @@ const stringParser = StepStringParser.Instance.match;
|
|
|
24
24
|
const HASH = ParsingConstants.HASH;
|
|
25
25
|
const ZERO = ParsingConstants.ZERO;
|
|
26
26
|
const SLASH = ParsingConstants.SLASH;
|
|
27
|
-
const
|
|
27
|
+
const EMPTY_PARSING_BYTES = new Uint8Array(1);
|
|
28
|
+
const parsingBufferReusable = new ParsingBuffer(EMPTY_PARSING_BYTES, 0, 1);
|
|
29
|
+
/**
|
|
30
|
+
* Drop the module-level scratch parsing buffer's reference to the last
|
|
31
|
+
* buffer it read from.
|
|
32
|
+
*
|
|
33
|
+
* The scratch is `reinit`-pointed at a caller's buffer on every numeric
|
|
34
|
+
* extraction and never cleared, so after a parse it silently pins the
|
|
35
|
+
* ENTIRE source buffer (hundreds of MB on large models) until the next
|
|
36
|
+
* extraction repoints it. That was invisible while the model itself
|
|
37
|
+
* held the source, but once `spillSourceToExternalStore` releases the
|
|
38
|
+
* model's copy this scratch became the last thing keeping it alive
|
|
39
|
+
* (found via heap-snapshot retainer chain:
|
|
40
|
+
* `Context[parsingBufferReusable] → ParsingBuffer.buffer → source`).
|
|
41
|
+
* Called from the model's spill and cache-release paths; safe at any
|
|
42
|
+
* time because every use reinits the scratch first.
|
|
43
|
+
*/
|
|
44
|
+
export function releaseScratchParsingBuffer() {
|
|
45
|
+
parsingBufferReusable.reinit(EMPTY_PARSING_BYTES, 0, 1);
|
|
46
|
+
}
|
|
28
47
|
/**
|
|
29
48
|
* NVL is a null coalescing function required for STEP.
|
|
30
49
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step_deserialization_functions.test.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/step_deserialization_functions.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Pins for the module-level scratch parsing buffer used by numeric
|
|
2
|
+
// extraction. The scratch is reinit-pointed at the caller's buffer on
|
|
3
|
+
// every read and, without an explicit release, silently pins the LAST
|
|
4
|
+
// buffer it saw — after a parse, the model's entire source. The
|
|
5
|
+
// model's cache-release/spill path calls releaseScratchParsingBuffer()
|
|
6
|
+
// to drop that pin (heap-snapshot verified: the source ArrayBuffer is
|
|
7
|
+
// unreachable after spill + release, where before it was retained via
|
|
8
|
+
// Context[parsingBufferReusable] → ParsingBuffer.buffer).
|
|
9
|
+
import { describe, expect, test } from "@jest/globals";
|
|
10
|
+
import { releaseScratchParsingBuffer, stepExtractNumber, } from "./step_deserialization_functions.js";
|
|
11
|
+
const REAL_VALUE = 42.5;
|
|
12
|
+
const INT_VALUE = 7;
|
|
13
|
+
describe("releaseScratchParsingBuffer", () => {
|
|
14
|
+
test("extraction works again after a release (scratch reinits on use)", () => {
|
|
15
|
+
const bytes = new TextEncoder().encode("42.5,");
|
|
16
|
+
expect(stepExtractNumber(bytes, 0, bytes.length)).toBe(REAL_VALUE);
|
|
17
|
+
releaseScratchParsingBuffer();
|
|
18
|
+
// The release must not break subsequent extraction — every use
|
|
19
|
+
// reinits the scratch with the caller's buffer.
|
|
20
|
+
const more = new TextEncoder().encode("7,");
|
|
21
|
+
expect(stepExtractNumber(more, 0, more.length)).toBe(INT_VALUE);
|
|
22
|
+
// And releasing twice is harmless.
|
|
23
|
+
releaseScratchParsingBuffer();
|
|
24
|
+
releaseScratchParsingBuffer();
|
|
25
|
+
expect(stepExtractNumber(bytes, 0, bytes.length)).toBe(REAL_VALUE);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step_model_base.d.ts","sourceRoot":"","sources":["../../../src/step/step_model_base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"step_model_base.d.ts","sourceRoot":"","sources":["../../../src/step/step_model_base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,OAAO,EAGL,qBAAqB,EAEtB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,cAAc,MAAM,oBAAoB,CAAA;AAC/C,OAAO,gBAAgB,MAAM,sBAAsB,CAAA;AACnD,OAAO,2BAAmE,MAAM,kCAAkC,CAAA;AAClH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,qBAAqB,EAAE,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AAChG,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAGlE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAGxD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,aAAa,CACzC,aAAa,SAAS,MAAM,EAC5B,UAAU,SAAS,cAAc,CAAC,aAAa,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,CAClF,YAAW,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK;aAyElB,MAAM,EAAE,gBAAgB,CAAE,aAAa,EAAE,UAAU,CAAE;IACrE,OAAO,CAAC,OAAO;IAzEjB,kBAAyB,SAAS,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IAChE,kBAAyB,mBAAmB,EAAE,qBAAqB,CAAE,aAAa,EAAE,UAAU,CAAE,CAAA;IAEhG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAW9D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAQ;IAM5C,OAAO,CAAC,gBAAgB,CACgE;IAIxF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAC+C;IAQhF,OAAO,CAAC,eAAe,CAAoB;IAE3C;;;;;;;OAOG;IACI,kBAAkB,EAAE,OAAO,CAAO;IAEzC;;;OAGG;IACI,YAAY,EAAE,OAAO,CAAO;IAEnC,kBAAyB,SAAS,CAAC,EAAE,cAAc,CAAA;IAEnD,kBAAyB,QAAQ,CAAC,EAAE,aAAa,CAAA;IAEjD;;;;;;;OAOG;gBAEe,MAAM,EAAE,gBAAgB,CAAE,aAAa,EAAE,UAAU,CAAE,EAC7D,OAAO,EAAE,UAAU,GAAG,SAAS,EAAE,YAAY,EAAE,cAAc,CAAC,aAAa,CAAC,EAAE;IA+GxF;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;IActB;;;;;;;OAOG;IACH,OAAO,CAAC,KAAK;IAsBb;;;;;OAKG;IACI,UAAU,CAAE,UAAU,GAAE,OAAe,GAAI,IAAI;IAsEtD;;;;;OAKG;IACI,sBAAsB,CAC3B,OAAO,EAAE,2BAA2B,CAAE,aAAa,CAAE,GAAI,OAAO;IA+BlE;;;;;;;OAOG;IACI,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAWpD;;;;;OAKG;IACI,mBAAmB,CAAE,OAAO,EAAE,MAAM,GAAI,IAAI;IAYnD;;;;OAIG;IACH,IAAW,cAAc,IAAI,MAAM,CAElC;IAED;;;;;OAKG;IACH,IAAW,gBAAgB,IAAI,OAAO,CAErC;IAED;;;;;OAKG;IACH,IAAW,mBAAmB,IAAI,MAAM,CAEvC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,0BAA0B,CAC7B,KAAK,EAAE,qBAAqB,EAC5B,UAAU,CAAC,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,MAAM,GAAI,IAAI;IActC;;;;;;;;;;OAUG;IACU,uBAAuB,CAAE,OAAO,EAAE,MAAM,GAAI,OAAO,CAAE,IAAI,CAAE;IAuBxE;;;;;;;;OAQG;IACU,yBAAyB,CAAE,SAAS,EAAE,MAAM,GAAI,OAAO,CAAE,IAAI,CAAE;IAgB5E;;;;OAIG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;;;;OAKG;IACI,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS;IAcrF;;;;;;OAMG;IACI,8BAA8B,CAAC,CAAC,SAAS,6BAA6B,CAAE,aAAa,CAAE,EAAE,CAAC,SAAS,YAAY,CAAE,CAAC,CAAE,GAAG,UAAU,EAAG,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC,GAAI,CAAC,GAAG,SAAS;IAchM;;;;;;OAMG;IACI,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAUvE;;;;;;;;OAQG;IACI,0BAA0B,CAAE,CAAC,SAAS,6BAA6B,CAAE,aAAa,CAAE,EAAE,CAAC,SAAS,YAAY,CAAE,CAAC,CAAE,GAAG,UAAU,EACnI,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,CAAC,GACP,CAAC,GAAG,SAAS;IAWf;;;;;;;;;OASG;IACI,wBAAwB,CAAE,CAAC,SAAS,6BAA6B,CAAE,aAAa,CAAE,EAAE,CAAC,SAAS,YAAY,CAAE,CAAC,CAAE,GAAG,UAAU,EACjI,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,6BAA6B,CAAE,aAAa,CAAE,GACpD,CAAC,GAAG,SAAS;IAuFf;;;;;OAKG;IACI,uBAAuB,CAAE,IAAI,EAAE,mBAAmB,GAAI,WAAW;IASxE;;;;;;OAMG;IACI,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKjE;;;;;;;OAOG;IACI,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAsFnE;;;;;;;OAOG;IACI,KAAK,CAAC,CAAC,SAAS,6BAA6B,CAAC,aAAa,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,GAChF,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAS3C;;;;OAIG;IACI,eAAe,IAAK,GAAG,CAAE,aAAa,CAAE;IAO/C;;;;OAIG;IACI,wBAAwB,IAAK,gBAAgB,CAAE,aAAa,CAAE;IAKrE;;;;;;;OAOG;IACI,OAAO,CAAC,GAAG,KAAK,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC,UAAU,CAAC;IAOvE;;;;;;;OAOG;IACI,kBAAkB,CAAC,GAAG,KAAK,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC,UAAU,CAAC;IAIlF;;;;;;;;OAQG;IACK,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,GAAE,OAAe,GAAG,gBAAgB,CAAC,UAAU,CAAC;IAyBhG;;;;;;;OAOG;IACK,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,UAAU,CAAC;IAUrE;;;;;;OAMG;IACK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,UAAU,CAAC;IAWzD;;;;;;;OAOG;IACI,2BAA2B,CAAE,IAAI,EAAE,iBAAiB,GACzD,iBAAiB,GAAG,SAAS;IAK/B;;;;;;;OAOG;IACI,uBAAuB,CAAE,IAAI,EAAE,iBAAiB,GAAI,aAAa,GAAG,SAAS;CAIrF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { releaseScratchParsingBuffer } from "./parsing/step_deserialization_functions.js";
|
|
1
2
|
import { ResidentStepBufferProvider, WindowedStepBufferProvider, } from "./step_buffer_provider.js";
|
|
2
3
|
import StepVtableBuilder from "./parsing/step_vtable_builder.js";
|
|
3
4
|
import { extractOneHotLow } from "../indexing/bit_operations.js";
|
|
@@ -151,6 +152,15 @@ export default class StepModelBase {
|
|
|
151
152
|
invalidate(dropVtable = false) {
|
|
152
153
|
if (dropVtable) {
|
|
153
154
|
this.vtableBuilder_.clear(true);
|
|
155
|
+
// The module-level scratch parsing buffer stays pointed at the
|
|
156
|
+
// last buffer a numeric extraction read from — after a parse,
|
|
157
|
+
// that's this model's FULL source. Releasing caches (and
|
|
158
|
+
// especially spilling the source, which routes through here)
|
|
159
|
+
// must drop that pin too, or the released source stays alive
|
|
160
|
+
// via the scratch (heap-snapshot verified). Safe globally: every
|
|
161
|
+
// use reinits the scratch first, and any other live model just
|
|
162
|
+
// repoints it on its next read.
|
|
163
|
+
releaseScratchParsingBuffer();
|
|
154
164
|
// Common entries: drop their materialised descriptors outright — this is
|
|
155
165
|
// the memory the old retained object array could never release. They
|
|
156
166
|
// rematerialise from the columns on next access.
|
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
// only the first segment (major) is meaningful and is the one CI carries forward.
|
|
6
6
|
// Must stay in `vN.N.N` shape: the CI stamp regex, scripts/updateVersion.mjs, and
|
|
7
7
|
// statistics.ts all match `v\d+\.\d+\.\d+`.
|
|
8
|
-
const versionString = 'Conway Web-Ifc Shim v1.
|
|
8
|
+
const versionString = 'Conway Web-Ifc Shim v1.378.1185';
|
|
9
9
|
export { versionString };
|