Tracker
Roadmap search
Versions, deliverables, workstreams, tasks, and pages
Backends (JIT and AOT) - Contracts and edge cases
articleStandard
src/content/docs/platform-spec/compiler/build-pipeline/backends-jit-aot/contracts-and-edge-cases.mdx
import SpecArticleChrome from '@beskid/beskid-ui/platform-spec/SpecArticleChrome.astro';
<SpecArticleChrome />- JIT and AOT must not diverge in front-end semantic results for the same source.
- Entrypoint contract for executables requires symbol
mainin current AOT linker strategy. - AOT supports
Exe,SharedLib,StaticLib, andObjectOnlyoutput kinds, with platform limits enforced by linker strategy checks. - Static archive merge currently targets Unix-style toolchains (
ar/ranliborlibtoolon Apple hosts); Windows static archive merge is rejected as unsupported. - When JIT extern loading is enabled (
extern_dlopen), symbol resolution must respect configured allow/deny policy filters (BESKID_EXTERN_ALLOW,BESKID_EXTERN_DENY). - Backend failures should report compile/build diagnostics, not silently fallback to alternate modes.