-
Notifications
You must be signed in to change notification settings - Fork 6
feature - freestanding target profiles and runtime requirement reports #685
Copy link
Copy link
Open
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationfeatureNew feature or requestNew feature or requestincan compilerSuggestions, features, or bugs related to the Compiler (frontend/backend/codegen)Suggestions, features, or bugs related to the Compiler (frontend/backend/codegen)runtime / core cratesSuggestions, features, or bugs related to the `incan-core`, `incan-stdlib`, 'incan-derive` cratesSuggestions, features, or bugs related to the `incan-core`, `incan-stdlib`, 'incan-derive` cratestoolingSuggestions, features, or bugs related to the Tooling (CLI/formatter/test runner)Suggestions, features, or bugs related to the Tooling (CLI/formatter/test runner)
Milestone
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationfeatureNew feature or requestNew feature or requestincan compilerSuggestions, features, or bugs related to the Compiler (frontend/backend/codegen)Suggestions, features, or bugs related to the Compiler (frontend/backend/codegen)runtime / core cratesSuggestions, features, or bugs related to the `incan-core`, `incan-stdlib`, 'incan-derive` cratesSuggestions, features, or bugs related to the `incan-core`, `incan-stdlib`, 'incan-derive` cratestoolingSuggestions, features, or bugs related to the Tooling (CLI/formatter/test runner)Suggestions, features, or bugs related to the Tooling (CLI/formatter/test runner)
Type
Fields
Give feedbackNo fields configured for Feature.
Area
Problem statement
The 0.8 roadmap needs Incan to compile restricted freestanding artifacts and report which runtime, allocator, panic, target, and ABI capabilities they require. Today those requirements are not a first-class compiler contract. They are scattered across type information, stdlib/runtime helpers, emitted Rust assumptions, package metadata, and build behavior.
Without target profiles and requirement reports, freestanding support would be backend folklore: users would discover unsupported hosted APIs only after codegen or target-specific build failures.
Proposed solution
Add an experimental target-profile and runtime-requirement reporting path for 0.8. This should let the compiler represent a selected target profile, collect runtime/helper/package requirements from semantic facts, HIR, Body IR, ABI metadata, and stdlib/runtime layer metadata, and report why a program is or is not compatible with the selected target.
The first implementation should be deliberately narrow and should align with the future RFC from #681.
Expected shape:
Alternatives considered
Scope / acceptance criteria