Commit d849dca
authored
CATIA emits a FILE_NAME with a literal `#` inside the quoted filename
(`'…\X0\2#.ifc'`). EntityScanner's `memchr('#')` anchor latched onto
the in-string `#`, then find_entity_end started with the wrong
quote-parity assumption and skipped every `;` for the rest of the
file. The scanner returned 0 entities — IFCLite Viewer showed
properties but no geometry.
Parser fix: skip past `DATA;` on construction (quote-aware, handles
`''` escaped pairs), and require `#` to be followed by a digit before
treating it as an entity anchor. Matches the validation already in
`build_entity_index` and the TS StepTokenizer. Three regression tests.
Build pipeline: stop committing the wasm bundles to git. The original
symptom for #654 was stale `.wasm` shipping to production, and during
this PR we hit it twice — once when cargo's incremental cache reused
stale `ifc-lite-core`, once when a merge-conflict resolution picked
the wrong bytes. Pipeline now rebuilds wasm from Rust source on every
deploy: turbo wires the wasm packages into the workspace build graph;
Vercel install/build scripts bootstrap the Rust toolchain and
propagate the env through turbo subprocesses; the Desktop
Compatibility CI workflow installs Rust + wasm-pack too. Most deploys
are JS-only and hit turbo's content cache, paying ~0 s extra;
Rust-touching deploys add ~30-60 s warm.
Verified end-to-end against CatiaBuilding.ifc:
0 → 83 375 entities scanned
0 → 769/770 walls with mesh; all doors/slabs/windows with mesh
Closes #654.
1 parent 384efaa commit d849dca
21 files changed
Lines changed: 387 additions & 10513 deletions
File tree
- .github/workflows
- apps/viewer-embed
- packages
- wasm-threaded
- pkg
- snippets/wasm-bindgen-rayon-38edf6e439f6d70d/src
- wasm
- pkg
- rust/core/src
- scripts
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
12 | 15 | | |
13 | 16 | | |
14 | | - | |
15 | 17 | | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
16 | 25 | | |
17 | 26 | | |
18 | 27 | | |
| |||
42 | 51 | | |
43 | 52 | | |
44 | 53 | | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
45 | 68 | | |
46 | 69 | | |
47 | 70 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
48 | 63 | | |
49 | 64 | | |
50 | 65 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
235 | 235 | | |
236 | 236 | | |
237 | 237 | | |
238 | | - | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
239 | 242 | | |
240 | 243 | | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
241 | 249 | | |
242 | 250 | | |
243 | 251 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
4 | | - | |
| 3 | + | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
11 | 14 | | |
12 | 15 | | |
13 | 16 | | |
| |||
0 commit comments