Skip to content

lql-lsp-rust: antlr-rust 0.3.0-beta is unmaintained + nightly-only — a stable, maintained alternative #86

Description

@tinovyatkin

Hi — nice to see an LQL language server in Rust. A heads-up on one dependency, since the rest of lql-lsp-rust holds a strict lint bar (unsafe_code = "deny", pedantic) that this dep quietly undercuts.

crates/lql-parser (and lql-analyzer) depend on antlr-rust = "0.3.0-beta". That crate is rrevenantt/antlr4rust — last commit 2022, pinned to ANTLR 4.8, and it requires nightly Rust (its README warns about "nightly breakage"). So the LSP currently rides on an unmaintained, nightly-only runtime inside an otherwise stable, strict-lint workspace.

Two ways forward if you want off it:

  1. antlr4rust 0.5+ — the actively-maintained fork of that same runtime, now stable-Rust and ANTLR 4.13.2-aligned. Closest to a version bump, though the generated visitor/listener API changed.
  2. antlr-rust-runtime — a clean-room runtime I maintain: stable Rust, one runtime dependency (thiserror), unsafe_code = "warn", passes the upstream ANTLR conformance descriptors, and heavily perf-profiled. Generation is metadata-first — you'd re-run the ANTLR tool on your existing Lql.g4 to emit .interp, generate Rust, and commit it (no JVM at cargo build).

Either gets you onto stable and off the 2022 crate. Both mean regenerating the parser and adapting the generated-API glue in lql-parser, so it's real work, not a swap — but for #2 I'm happy to open a PR that does the regen + wiring if it'd help. No pressure either way; mostly wanted the unmaintained/nightly dependency on your radar.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions