Skip to content

Integrate reusable BIM modules, scope rules and numeric properties - #12

Merged
JohnHeikens merged 31 commits into
masterfrom
merge-pr8-pr11
Oct 23, 2026
Merged

JohnHeikens merged 31 commits into
masterfrom
merge-pr8-pr11

Conversation

@nino2-aec

@nino2-aec nino2-aec commented Oct 15, 2026 •

Copy link
Copy Markdown

This integrates the reusable parts of #8 and the scope rules and numeric property types from #11 onto current master. BIM geometry modules live under lib/bim, including extrusion, placement, bounds, mass and meshing. The Dynedra application, old C graphics compute runtime and unselected CAD modules are excluded; repository architecture stays unchanged.

Compiler integration fixes validate incomplete destruction targets before lifecycle diagnostics, accept representable floating-point subnormals, and reconcile numeric constraints, pointer types and explicit variable resolution. Imported geometry expressions use explicit grouping under master’s existing ambiguity rules. MPL-2.0 licensing and provenance are retained.

Validation before the 2026-10-23 update: optimized compiler build and C++ formatting checks pass. The complete required suite initially passed 715/716 fixtures; the remaining polyline fixture had a signed variable/type-pattern collision, was corrected with explicit variable syntax, and passes the original test harness. All 716 fixtures are now covered successfully, plus all 53 auxiliary checks. A final five-fixture rerun passes after rebuilding, and compute SPIR-V emission was checked for its GLCompute entry point and workgroup declaration.

This is a curated replacement for the selected content; merging the original PRs wholesale would reintroduce excluded application code.

Update 2026-10-23

  • Integrated both commits from Release discarded type-inference expression clones #14: cloned expressions are released with their inference bodies and trials, and saved subjects retain their lexical owner chain. Includes the ownership accounting test and the subject-loop lifetime regression.
  • Merged current master (8fcbc842) and resolved the test registration conflicts while retaining the existing provenance and numeric checks.
  • Extracted Boolean intrinsic typing, ordinary function-call inference, and declared type-constraint inference into included implementation files so each touched compiler file stays below 1,000 lines. Independent review confirmed identical expanded C++ tokens; these files still belong to one compilation unit.
  • Corrected the installer's isolated Git mock, which previously reported repository success without returning a repository path. Both installer checks pass.

The optimized compiler builds, formatting checks pass, and independent static review found no introduced issues. The local full run recorded 767 passes and six failures. All six are now accounted for: the four storage-exhaustion cases pass individually with their original expected output, both installer checks pass with the corrected mock, and the hidden-window Vulkan fixture passes its success scenario and all nine rejection scenarios with Xvfb pointed at the installed keyboard definitions (/usr/share/xkeyboard-config-2). The initial native-display control hit a resize assertion; the configured virtual display supplies the fixture's intended test environment.

Merged into master as 95d87e0e. Linux CI on the final revision passes 773 checks, zero failures or skips; extension packaging and Launchpad source packaging also pass. macOS and Windows CI were still running at merge time. CI: https://github.com/OpenAEC-Foundation/dynlex/actions/runs/39970362048.

codex added 23 commits October 13, 2026 14:29
@JohnHeikens
JohnHeikens merged commit 95d87e0 into master Oct 23, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants