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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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