You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
First of the refinement follow-ons. Also the **live confirmation** that
the code-scanning fix (`codeql.yml`, merged in #40) works — this PR
should pass the Code Scanning gate and be auto-mergeable without a
manual bootstrap.
## What
Idris2 `discover_roots` now unions two conventions:
1. **`.ipkg` `main = <Module>`** — the package's executable entry,
resolved to its `.idr` file (honouring an optional quoted `sourcedir`;
`--` comments stripped; first existing candidate base wins). The entry
needn't be literally `Main.idr` — e.g. `main = App` finds `App.idr`.
2. **Any `Main.idr`** — the bare-tree fallback (unchanged).
`ipkg_main_roots()` parses the `.ipkg` `key = value` fields (only `main`
and `sourcedir`/`source-dir` consulted) and resolves each `main` module
against candidate source roots.
## Verified (ran, not inferred)
- `cargo test` → **127 passing, 0 failed** (+1 integration: `main = App`
discovered + its cone wired; +2 unit: sourcedir/comment resolution;
no-resolvable-main → empty).
- clippy -D warnings, fmt, SPDX clean.
- **Dogfooded:** `reason --backend idris2` over an `.ipkg` fixture →
`crt_roots: ['App']`, App + Helper wired.
## Status
M4 now ~95% (remaining: totality-hole `?name` + per-def `partial` lint).
Next follow-ons: M6 (lake-env + `#print axioms` audit), M3
(workspace-fed verdicts + staleness).
---
_Generated by [Claude
Code](https://claude.ai/code/session_012MpYSh6Wy8YMBH2E3qVyT7)_
Co-authored-by: Claude <noreply@anthropic.com>
0 commit comments