Stream: t-compiler/wg-rls-2.0

Topic: publishing rust-analyzer


matklad (Nov 14 2019 at 17:27, on Zulip):

TBD

matklad (Nov 14 2019 at 17:28, on Zulip):

So, the big related question here is "do we want to advertize rust-analyzer" as a (one of) the recommended IDE for Rust?

matklad (Nov 14 2019 at 17:29, on Zulip):

It's not strictly isomorphic to publishing, but close enough. In my mind, providing builds sends "hey, this is ready" signal

matklad (Nov 14 2019 at 17:30, on Zulip):

I am definitely not ready to consider rust-analyzer "done" at the moment, and I am somewhat skeptical that fixing X, Y and Z problems would be enough to call it ready

Laurențiu Nicola (Nov 14 2019 at 17:30, on Zulip):

I imagine saying it's officially recommended will require some buy-in from the larger Rust project -- maybe not an RFC, but at least an FCP?

matklad (Nov 14 2019 at 17:31, on Zulip):

And that as well, yeah

Laurențiu Nicola (Nov 14 2019 at 17:32, on Zulip):

But more or less quietly putting out a "beta" version might still be a good idea. Maybe not now, but say in the next 3-6 months?

centril (Nov 14 2019 at 17:33, on Zulip):

@matklad personally I would be happy with a "nightly; use at own risk, not necessarily ready"

centril (Nov 14 2019 at 17:33, on Zulip):

basically I would prefer just not to build RA myself

matklad (Nov 14 2019 at 17:33, on Zulip):

I guess, I am fine with providing builds and some auto-update hooks provided that:

Laurențiu Nicola (Nov 14 2019 at 17:34, on Zulip):

I'm sure users will run into all kinds of bugs, but it's been quite usable (and useful) for a long time

Laurențiu Nicola (Nov 14 2019 at 17:35, on Zulip):

Maybe it's me, but I feel that name resolution is one of the more important features, and that's been working quite well lately

centril (Nov 14 2019 at 17:35, on Zulip):

yea; currently, I check the commit log of RA every now and then to see if any new interesting features have landed

centril (Nov 14 2019 at 17:36, on Zulip):

and then decide if I should build RA, which takes a while on my laptop

Laurențiu Nicola (Nov 14 2019 at 17:36, on Zulip):

I think autocompletion, hover and go to definition are things that most users care a lot about. I'm not sure how RLS has been doing on that front, but RA might be better these days

Laurențiu Nicola (Nov 14 2019 at 17:37, on Zulip):

@centril pro tip: build it without debug info, it's like twice as fast

centril (Nov 14 2019 at 17:37, on Zulip):

@Laurențiu Nicola that's not the default thing when you follow the install instructions in the readme?

Laurențiu Nicola (Nov 14 2019 at 17:38, on Zulip):

it's got [profile.release] debug = 1 in Cargo.toml

centril (Nov 14 2019 at 17:39, on Zulip):

aw -- maybe y'all could provide a "this is what you should do as a user" thing that doesn't use debuginfo

Laurențiu Nicola (Nov 14 2019 at 17:39, on Zulip):

Check this out: https://github.com/rust-analyzer/rust-analyzer/issues/1987#issuecomment-552167300 -- and that's with lld

matklad (Nov 14 2019 at 17:39, on Zulip):

(so that folks can get useful stacktraces in the debugger if rust-analyzer freezes)

Laurențiu Nicola (Nov 14 2019 at 17:40, on Zulip):

(I think most freezes come from notify on MacOS and a couple of chalk bugs; maybe we should force client-side watching on MacOS)

matklad (Nov 14 2019 at 17:42, on Zulip):

I think we should just default to client-side watching if the client supports this

matklad (Nov 14 2019 at 17:42, on Zulip):

(and fix chalk, obviously :) )

centril (Nov 14 2019 at 17:43, on Zulip):

would be good to note the protip in the readme if y'all don't want to make other changes

centril (Nov 14 2019 at 17:43, on Zulip):

I would totally forget otherwise personally

Laurențiu Nicola (Nov 14 2019 at 17:44, on Zulip):

And maybe file a bug about rustc being 15x slower on release builds with debug symbols? :sweat_smile:

matklad (Nov 14 2019 at 17:45, on Zulip):

Why file a bug? Better just fix it :D

Laurențiu Nicola (Nov 14 2019 at 17:46, on Zulip):

So.. besides client-side watching, are there any serious issues that we don't want people to run into?

matklad (Nov 14 2019 at 17:47, on Zulip):

Not really... Yeah, I think we are stable enough to just disable the debuginfo by default

Jeremy Kolb (Nov 14 2019 at 19:42, on Zulip):

I made a pull request earlier in the week to add us to the LSP implementation page

Jeremy Kolb (Nov 14 2019 at 19:43, on Zulip):

releasing to the public could bring in more contributors (and more issue reports for sure)

Daniel Mcnab (Nov 14 2019 at 19:43, on Zulip):

I wonder if we could compile to webassembly and run through nodejs so that the vscode extension could be easily distributed

Jeremy Kolb (Nov 14 2019 at 19:43, on Zulip):

I think there's a way to mark extensions as alpha or beta. I've seen those in my vscode

Jeremy Kolb (Nov 14 2019 at 19:44, on Zulip):

@Daniel Mcnab as opposed to having a post install step that compiles or downloads the executable?

Daniel Mcnab (Nov 14 2019 at 19:46, on Zulip):

Yeah, exactly

Daniel Mcnab (Nov 14 2019 at 19:46, on Zulip):

I've been considering that approach for a personal project, and was wondering how applicable it could be

Daniel Mcnab (Nov 14 2019 at 19:47, on Zulip):

Although I'm not sure what the state of multithreading in wasm is.

Jeremy Kolb (Nov 14 2019 at 19:48, on Zulip):

I haven't tried it but there is some support: https://github.com/rust-analyzer/rust-analyzer/pull/1888

Jeremy Kolb (Nov 14 2019 at 19:49, on Zulip):

What does rls do? Is the server portion just distributed via rustup and the client is what is downloaded as an extension?

Daniel Mcnab (Nov 14 2019 at 19:50, on Zulip):

That PR just disables multithreading for wasm, unfortunately. Rls is distributed through rustup unless it changed

Daniel Mcnab (Nov 14 2019 at 19:50, on Zulip):

The C/C++ extension downloads a precompiled binary I think

marcogroppo (Nov 14 2019 at 20:47, on Zulip):

yes, the C/C++ and the C# extensions download precompiled binaries. rust-analyzer has a WASM demo here: https://rust-analyzer.github.io/wasm-demo.html but it's pretty limited

Laurențiu Nicola (Nov 14 2019 at 21:20, on Zulip):

For now I think it's fine to download pre-compiled binaries. Linux might be a little tricky though.

Jeremy Kolb (Nov 14 2019 at 22:20, on Zulip):

Because of different archs or dynamic linking? Could use musl to get around the latter.

Last update: Dec 12 2019 at 01:45UTC