Skip to content

v0.0.5

Latest

Choose a tag to compare

@0xGeorgii 0xGeorgii released this 27 Jul 08:37
· 37 commits to main since this release
2d27450

v0.0.5 LSP Support

Language Server Protocol support

  • New inference-lsp server (apps/lsp), backed by a new ide/ crate stack (VFS, source database, semantic database, IDE API). Diagnostics on open/change, hover, goto-definition, completions, document symbols, and inlay hints.
  • Ships with the managed toolchain. VS Code extension 0.0.5 brings the server up out of the box, restarts it on toolchain switch/install, probes the correct managed location on Windows (%APPDATA%\inference), and contributes the standard inference-lsp.trace.server setting. infs doctor verifies the server binary at the bin/ symlink editors actually resolve.
  • Built for responsiveness: salsa-memoized incremental analysis, per-keystroke coalescing, request cancellation ($/cancelRequest, plus a didChange superseding older in-flight work), a snapshot read pool so a slow analysis never blocks hover or completion, bounded caches whose eviction actually frees memory, and analysis-panic containment so a compiler bug degrades one request instead of killing the session.
  • Correct across the seams: file identity is normalized through the URI/VFS/loader path (UTF-8 BOM stripping, case-insensitive-filesystem handling, non-file URIs ignored), goto/hover follow the type checker's resolution rather than a name scan, completions only offer names that compile when accepted, and the initialize/shutdown lifecycle is LSP 3.17-conformant.

What's Changed

  • LSP server by @0xGeorgii in #239
  • lsp: contain analysis panics in the message loop by @0xGeorgii in #258
  • vscode: restart running LSP server on toolchain switch/install by @0xGeorgii in #259
  • infs: doctor verifies inference-lsp at the bin/ symlink the editor uses by @0xGeorgii in #260
  • lsp: invalidate IDE analysis when an unreadable import becomes readable by @0xGeorgii in #261
  • lsp: stop offering completions that don't resolve or shouldn't show by @0xGeorgii in #262
  • analysis: restore duplicate-FnKey tripwire tolerant of parse-recovered keys by @0xGeorgii in #263
  • docs: fix LSP-stack documentation inaccuracies by @0xGeorgii in #264
  • lsp: resolve the analysis source root via manifest walk-up with closure fallback by @0xGeorgii in #265
  • lsp: close hit-test coverage gaps (word-end caret, directives, type params, enum variants, local consts) by @0xGeorgii in #267
  • lsp: fix file-identity and path edge cases across the URI/vfs/loader seam by @0xGeorgii in #266
  • tests: collision-proof temp-dir suffixes in project test helper by @0xGeorgii in #274
  • codegen: single shared statement-descent for the function-body discovery passes by @0xGeorgii in #278
  • lsp: make goto/hover follow the checker resolution instead of name-scans by @0xGeorgii in #271
  • codegen: thread the function name explicitly instead of ambient current_fn_name by @0xGeorgii in #279
  • lsp panic boundary by @0xGeorgii in #282
  • 250 vscode restart lsp on toolchain switch by @0xGeorgii in #283
  • tests: coqc round-trip gate for proof-mode wasm-to-v output by @0xGeorgii in #276
  • refactoring: extract project front end into leaf inference-project-model crate by @0xGeorgii in #285
  • lsp: coalesce per-keystroke work and bound the analysis caches by @0xGeorgii in #286
  • lsp: drop didChange for a document that was never opened by @0xGeorgii in #290
  • compiler: bound the unreachable-file scan and fail open at the cap by @0xGeorgii in #289
  • Adopt salsa in the IDE stack: index-arena scope tree, memoized analyses, shared queries, cancellation, edge-driven invalidation by @0xGeorgii in #291
  • ide-db: eviction actually frees analyses — durability/LRU audit and the memory bound by @0xGeorgii in #293
  • lsp: concurrent snapshot reads — a worker-forwarded read pool over cloned salsa handles by @0xGeorgii in #295
  • lsp: no idle work after shutdown — abandon queued republishes instead of flushing them by @0xGeorgii in #297
  • ci: quote the rocq gate's test filter so the workflow YAML parses by @0xGeorgii in #298
  • Update book + small vscode ext edits by @0xGeorgii in #300
  • Fix codegen else if branch lowering by @0xGeorgii in #301
  • Fix loop-scoped compound literals not re-zeroing each iteration by @0xGeorgii in #302
  • Fix self-referential compound-literal reassignment (struct + array) by @0xGeorgii in #303
  • analysis: reject reserved wasm export names (A043) by @0xGeorgii in #304
  • A042: NonDetOutsideSpec by @0xGeorgii in #305
  • wasm-codegen: constrain narrow-typed uzumaki draws to the declared value domain by @0xGeorgii in #306
  • Power operator rejection by @0xGeorgii in #307
  • Unique is not supported yet error by @0xGeorgii in #308
  • Short-circuit logical operators by @0xGeorgii in #309
  • Shift Count Out of Range (errors) by @0xGeorgii in #310
  • wasm-codegen: trap narrow division overflow and invalid enum tags at the export ABI by @0xGeorgii in #311
  • lsp: fix test-harness wait livelock — waits drain the wire past interleaved traffic by @0xGeorgii in #312

Full Changelog: v0.0.4...v0.0.5