Skip to content

the SDK installs the generated binding tables the shipped aot_builtin_ast.h includes - #3963

Merged
borisbat merged 1 commit into
masterfrom
bbatkin/sdk-install-inc
Sep 8, 2026
Merged

the SDK installs the generated binding tables the shipped aot_builtin_ast.h includes#3963
borisbat merged 1 commit into
masterfrom
bbatkin/sdk-install-inc

Conversation

@borisbat

@borisbat borisbat commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Behavior change: an installed SDK carries include/daScript/builtin/ast_gen.inc and debugapi_gen.inc; an SDK consumer's AOT translation unit that touches the ast module compiles again.

Why. The shipped include/daScript/simulate/aot_builtin_ast.h includes daScript/builtin/ast_gen.inc, and the install rules never carried the two generated .inc files under include/daScript/builtin/ - only src/builtin/*.h lands there. The tree compiles such a unit from its own include directory, so nothing in the repo could see it; dasProfile's AOT companion module on a Debian box did: fatal error: 'daScript/builtin/ast_gen.inc' file not found.

What changes.

  • CMakeLists.txt installs the two .inc files beside the builtin headers.
  • ci/smoke_test_bundle.sh gains a section over shipped-header includes, one line per (header, include) pair, MISSING when the bundle lacks the include.

Observable behavior.

  • cmake --install prefix: include/daScript/builtin/ gains ast_gen.inc and debugapi_gen.inc.
  • The bundle smoke test prints include/daScript/builtin/ast_gen.inc OK, and MISSING against a bundle installed from master.

Where to look. The install rule next to DAS_BUILTIN_HEADERS in CMakeLists.txt; the "Shipped headers' includes" section in the smoke test.

Validation, claims, ledger

Validation

  • A scratch cmake --install from this branch carries both files; the smoke check reads OK on it and MISSING with ast_gen.inc removed.
  • Found on zen4 building dasProfile against a fresh SDK from master; the M5's build had passed the same step, why is not established.

Not done

  • DASTargets.cmake exports absolute source-tree paths for the glfw and hv static libraries (modules/dasGlfw/glfw/$<CONFIG>/lib/libglfw3.a, modules/dasHV/hv/...) - an SDK moved to another machine links those targets against paths that are not there. Seen while reading the exports, not touched here.

…n.inc - the shipped aot_builtin_ast.h includes ast_gen.inc, so an SDK consumer's AOT translation unit that touched the ast module failed to compile with 'daScript/builtin/ast_gen.inc' file not found (dasProfile's AOT companion on a Debian box), while the tree compiled it from its own include directory; ci/smoke_test_bundle.sh checks that every shipped header's include the table names is in the bundle, MISSING when it is not
Copilot AI lite review requested due to automatic review settings September 8, 2026 01:05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The change is narrowly scoped to SDK install rules and adds a targeted smoke-test regression check without affecting runtime behavior.

Pull request overview

This PR fixes an SDK packaging gap where shipped headers (include/daScript/simulate/aot_builtin_ast.h) include generated .inc files that were not installed into the SDK, causing downstream AOT builds that touch the AST module to fail. It also strengthens the bundle smoke test to detect this class of “header includes a non-shipped file” regressions.

Changes:

  • Install the generated binding tables include/daScript/builtin/ast_gen.inc and include/daScript/builtin/debugapi_gen.inc into the SDK.
  • Extend ci/smoke_test_bundle.sh with a “Shipped headers' includes” check to ensure required included files exist in the bundle.
File summaries
File Description
CMakeLists.txt Installs the generated .inc binding tables alongside other builtin headers so SDK consumers can compile AOT TUs including aot_builtin_ast.h.
ci/smoke_test_bundle.sh Adds a bundle-level guard that fails if a shipped header’s required included file is missing from the installed bundle.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@borisbat
borisbat merged commit a3f309f into master Sep 8, 2026
37 checks passed
@borisbat
borisbat deleted the bbatkin/sdk-install-inc branch September 8, 2026 02:00
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