63 lines
2.8 KiB
Markdown
63 lines
2.8 KiB
Markdown
# 1.0.0-beta.10 Developer Experience API Discovery
|
|
|
|
Status: release scope for `1.0.0-beta.10`.
|
|
|
|
`1.0.0-beta.10` is a tooling/docs slice on top of the beta.8 concrete alias
|
|
foundation and beta.9 collection alias unification work. It improves API
|
|
discovery for the existing source-authored standard library and adds
|
|
editor-facing source metadata without adding new source-language execution
|
|
semantics, compiler-known runtime names, or runtime helpers.
|
|
|
|
## Scope
|
|
|
|
- Upgrade `scripts/render-stdlib-api-doc.js` so the generated
|
|
`docs/language/STDLIB_API.md` catalog lists exact exported helper
|
|
signatures, not only helper names.
|
|
- Parse each `lib/std/*.slo` module, collect module-local `(type ...)`
|
|
aliases, and normalize those aliases recursively in public helper
|
|
signatures.
|
|
- Verify exported helper names have matching `(fn ...)` forms.
|
|
- Omit non-exported helper functions and `(type ...)` aliases from the public
|
|
catalog.
|
|
- Regenerate `docs/language/STDLIB_API.md`.
|
|
- Add `glagol symbols <file.slo|project|workspace>` for deterministic
|
|
`slovo.symbols` S-expression metadata over modules, imports, exports,
|
|
aliases, structs, enums, functions, tests, spans/ranges, and workspace
|
|
package names.
|
|
- Update README, language docs, compiler docs, and the post-beta roadmap to
|
|
describe beta API discovery clearly.
|
|
|
|
## Public Contract
|
|
|
|
The generated catalog is a beta discovery aid for the current `lib/std`
|
|
surface. Public signatures show concrete types such as `(vec i32)`,
|
|
`(option string)`, and `(result u64 i32)` instead of module-local alias names
|
|
such as `VecI32`, `OptionString`, or `ResultU64`.
|
|
|
|
The catalog remains generated from source and is not a hand-maintained API
|
|
freeze. It can help reviewers see current helper signatures, but it does not
|
|
make those helpers stable `1.0.0` standard-library APIs.
|
|
|
|
The `symbols` command is an editor-integration building block, not an LSP
|
|
server. Its output is deterministic machine-readable S-expression text and
|
|
uses the beta10 `slovo.symbols` schema label.
|
|
|
|
## Explicit Non-Scope
|
|
|
|
- no executable generics
|
|
- no generic aliases or parameterized aliases
|
|
- no maps or sets
|
|
- no traits, inference, monomorphization, or iterators
|
|
- no new compiler-known runtime names
|
|
- no runtime helper or ABI/layout changes
|
|
- no LSP server, watch mode, SARIF, or daemon protocol
|
|
- no stable `1.0.0` standard-library freeze
|
|
|
|
## Checks
|
|
|
|
Focused checks for this slice:
|
|
|
|
- `node scripts/render-stdlib-api-doc.js`
|
|
- `cargo test --test symbols_beta10`
|
|
- `git diff --check -- scripts/render-stdlib-api-doc.js docs/language/STDLIB_API.md compiler/src/main.rs compiler/src/symbols.rs compiler/tests/symbols_beta10.rs README.md docs/language/SPEC-v1.md docs/language/ROADMAP.md docs/language/RELEASE_NOTES.md docs/compiler/ROADMAP.md docs/compiler/RELEASE_NOTES.md docs/POST_BETA_ROADMAP.md .llm/BETA_10_DEVELOPER_EXPERIENCE_API_DISCOVERY.md`
|