slovo/.llm/BETA_10_DEVELOPER_EXPERIENCE_API_DISCOVERY.md

2.8 KiB

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