@ifc-lite/wasm 3.0.14 → 3.0.15

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/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "IFC-Lite Contributors"
6
6
  ],
7
7
  "description": "WebAssembly bindings for IFC-Lite",
8
- "version": "3.0.14",
8
+ "version": "3.0.15",
9
9
  "license": "MPL-2.0",
10
10
  "repository": {
11
11
  "type": "git",
package/pkg/ifc-lite.d.ts CHANGED
@@ -384,13 +384,14 @@ export class IfcAPI {
384
384
  * even though the pre-pass worker built the same index minutes
385
385
  * earlier.
386
386
  *
387
- * Building an `FxHashMap` from the three input slices costs ~1 s on
388
- * 14 M entries about 4–5× faster than re-scanning the file. After
389
- * this call, the next `processGeometryBatch` skips the lazy build
390
- * branch and reuses the populated cache by `Arc::clone()`.
387
+ * Builds a compact [`ColumnarEntityIndex`] from the three input slices
388
+ * (sorted `u32` columns + binary search) instead of a per-worker
389
+ * `FxHashMap` ~229 MB vs ~436 MB on a 19.1 M-entity model (#1682).
390
+ * [`ColumnarEntityIndex::from_columns`] verifies the id ordering once
391
+ * (O(n)) and only argsorts if the producer did not emit sorted columns.
391
392
  *
392
- * `lengths[i]` is the byte length of entity `ids[i]`, so the cache
393
- * stores `(start, start + length)` to match the existing tuple layout.
393
+ * `lengths[i]` is the byte length of entity `ids[i]`, so lookup returns
394
+ * `(start, start + length)` to match the existing `(start, end)` layout.
394
395
  *
395
396
  * Idempotent in the sense that repeated calls REPLACE the cache —
396
397
  * supports the parser-worker pattern of reusing one IfcAPI across
package/pkg/ifc-lite.js CHANGED
@@ -1526,13 +1526,14 @@ export class IfcAPI {
1526
1526
  * even though the pre-pass worker built the same index minutes
1527
1527
  * earlier.
1528
1528
  *
1529
- * Building an `FxHashMap` from the three input slices costs ~1 s on
1530
- * 14 M entries about 4–5× faster than re-scanning the file. After
1531
- * this call, the next `processGeometryBatch` skips the lazy build
1532
- * branch and reuses the populated cache by `Arc::clone()`.
1529
+ * Builds a compact [`ColumnarEntityIndex`] from the three input slices
1530
+ * (sorted `u32` columns + binary search) instead of a per-worker
1531
+ * `FxHashMap` ~229 MB vs ~436 MB on a 19.1 M-entity model (#1682).
1532
+ * [`ColumnarEntityIndex::from_columns`] verifies the id ordering once
1533
+ * (O(n)) and only argsorts if the producer did not emit sorted columns.
1533
1534
  *
1534
- * `lengths[i]` is the byte length of entity `ids[i]`, so the cache
1535
- * stores `(start, start + length)` to match the existing tuple layout.
1535
+ * `lengths[i]` is the byte length of entity `ids[i]`, so lookup returns
1536
+ * `(start, start + length)` to match the existing `(start, end)` layout.
1536
1537
  *
1537
1538
  * Idempotent in the sense that repeated calls REPLACE the cache —
1538
1539
  * supports the parser-worker pattern of reusing one IfcAPI across
Binary file