Packages: a manifest cannot declare that a package needs a runtime build variant (http/gfx/zlib/net) — the failure is an undefined builtin at import, not a clear message at install
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 45/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- c
- Domain
- build-system, compilers, documentation, tooling
Research direction
Start with docs/PACKAGE_SPEC.md and the capability probe used by run_all_tests.sh, then trace the package install/verify and import paths. Check how eigs-package-template is structured. Done means the manifest field is documented and templated, mismatches fail clearly during install or verification, and unmet variants produce a named import-time error.
Written by the indexing model from the issue text.
Description
Gap
The runtime's zero-dependency property is about the C build (libc/libm, or the freestanding HAL), and packages are EigenScript source vendored as git checkouts (docs/PACKAGE_SPEC.md) — install runs no code, import runs it inside whatever binary the user has. Those two layers are compatible by design. But a package can legitimately require a runtime EXTENSION: an HTTP client library needs the http variant (http_* builtins), a UI helper needs gfx, a compression helper needs zlib, a socket helper needs net.
Today eigs.json has name, version, deps (and lint.allow) — no way to say "this package needs variant X". So on a make (default) binary, a package that calls http_post fails at first use with an undefined-variable error deep inside the package, long after --pkg install said everything was fine, and the user has no way to know it was a build-variant problem rather than a broken package.
Ask
- A manifest field, e.g.
"requires": ["http"](values = the runtime's variant names), documented in PACKAGE_SPEC.md. --pkg install/--pkg verifycheck the running binary's capability set (the runtime already knows which extensions it was built with — the same proberun_all_tests.shuses to gate the HTTP sections) against every installed package'srequires, and print one clear line per mismatch: which package, which variant, whichmaketarget provides it. Exit nonzero on mismatch (loud, per the fail-soft reform).import <leaf>on a package whoserequiresis unmet raises a named error at import time ("package X requires the http variant; this binary was built without it"), not an undefined variable at the first call.eigs-package-templategets the field with an empty list.
Why now
The package system has zero real consumers (every ecosystem eigs.json is a project-root marker with deps: {}); the first planned edges (a SAT portfolio consumer → EigenMiniSat; iLambdaAi → the ouroboros frontend) are pure EigenScript and will not hit this, but an HTTP or UI helper package is the obvious third, and this is the first thing it would hit. Filed so the gap is named before the edge, per CLAUDE.md's "surface the gap, don't work around it".
- Dominant language
- C
- Stars
- 3
- Forks
- 7
- Avg merge
- 4h 15m
- Merged PRs (30d)
- 106
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from InauguralSystems/EigenScript
-
area:lint-tooling bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
InauguralSystems/EigenScript#1340 ·
Maintainers usually reply within 1 day
-
area:stdlib found-by:code-review kind:silent-wrong
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
InauguralSystems/EigenScript#1338 ·
Maintainers usually reply within 1 day
-
area:lint-tooling found-by:critic kind:docs-drift
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
InauguralSystems/EigenScript#1335 ·
Maintainers usually reply within 1 day
-
area:ci found-by:critic kind:gate-defect
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
InauguralSystems/EigenScript#1311 ·
Maintainers usually reply within 1 day
-
enrolment: decide test_gc_runner_controls.py (exempt vs enrol) and whether floors need a ratchetOpenarea:gates found-by:critic kind:decision
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
InauguralSystems/EigenScript#1280 · 1 comment ·
Maintainers usually reply within 1 day
All issues in InauguralSystems/EigenScript
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
sandialabs/seacas#945 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ARM-software/sysarch-acs#556 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
bug needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
netdata/netdata#24062 · 1 comment ·
Maintainers usually reply within 1 day