Skip to content

feat(lang): v2.5 Tier B — string literals, rands(), lookup()#17

Merged
particlesector merged 4 commits into
mainfrom
base16/20260508-203725-v2-5-tier-b
May 9, 2026
Merged

feat(lang): v2.5 Tier B — string literals, rands(), lookup()#17
particlesector merged 4 commits into
mainfrom
base16/20260508-203725-v2-5-tier-b

Conversation

@particlesector
Copy link
Copy Markdown
Owner

Summary

  • Implements all remaining v2.5 Tier B language features: double-quoted string literals (with escape sequences), rands(), and lookup()
  • Inverse trig, vector math (norm, cross, sign), and string functions (str, chr, ord, len) were already in from Tier A — Tier B is now fully complete
  • Adds 20 new [tier-b] tests across lexer and interpreter; all 1056 assertions pass
  • Adds tests/tier_b_test.scad visual test, verified output matches OpenSCAD
  • Updates roadmap: v1, v2, Tier A, and Tier B all marked complete
  • Fixes ImGui 1.91.9+ API break (RenderPass/MSAASamples → PipelineInfoMain)
  • Switches Catch2 from vcpkg to FetchContent to avoid MSVC runtime symbol mismatches
  • Pins vcpkg baseline (6b07d2d) so all environments get consistent library versions

Test plan

  • chiselcad_tests.exe passes (1056 assertions, 185 test cases)
  • tests/tier_b_test.scad renders correctly in ChiselCAD and matches OpenSCAD output
  • CI green on Windows and Linux

chrislindseygames and others added 4 commits May 9, 2026 04:29
- Lex/parse/evaluate double-quoted string literals with escape sequences
- Add StringLit AST node to ExprNode variant
- Add rands(min, max, count [, seed]) built-in — seeded deterministic RNG
- Add lookup(key, table) built-in — piecewise linear interpolation
- Inverse trig, norm, cross, sign, str, chr, ord, len were already in
- 16 new [tier-b] interpreter tests + 4 lexer tests; 1056 assertions pass
- Add tests/tier_b_test.scad visual test; verified against OpenSCAD output
- Fix ImGui_ImplVulkan_InitInfo API break (RenderPass/MSAASamples moved
  to PipelineInfoMain; CreateFontsTexture removed) from imgui post-2025/09
- Switch Catch2 from vcpkg to FetchContent to avoid MSVC runtime mismatch
- Update roadmap: v1, v2, Tier A, Tier B all marked complete

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
PipelineInfoMain, ApiVersion were added in imgui 1.91.9 (2025-09-26).
CreateFontsTexture was removed in the same release. Use IMGUI_VERSION_NUM
guards so the code compiles against older vcpkg baselines in CI.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
IMGUI_VERSION_NUM threshold was unreliable across vcpkg baselines.
IMGUI_HAS_TEXTURES is defined in the same API overhaul that moved
RenderPass/MSAASamples to PipelineInfoMain and removed CreateFontsTexture.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds vcpkg-configuration.json with baseline 6b07d2d (imgui 1.92.7).
All environments now get the same library versions; removes the brittle
IMGUI_HAS_TEXTURES preprocessor guard in favour of the clean new API.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@particlesector particlesector merged commit 8f128ff into main May 9, 2026
4 checks passed
@particlesector particlesector deleted the base16/20260508-203725-v2-5-tier-b branch May 9, 2026 05:42
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.

2 participants