So I was thinking it'd be good to talk out this proposed "RLS 2.0" plan in a bit more detail. @Aleksey Kladov I think you had a kind of initial "working group charter" you were experimenting with?
My rough thoughts are here: https://paper.dropbox.com/doc/RLS-2.0-Working-Group--AXafDG6_pH_jftQT~TpGbzmuAQ-uo0pmm49tcfxKvD3yLts6
This should be accessible and editable
I am going to bed now, will join the discussion tomorrow! :sleepy:
So, the first step in "how to proceed" is probably organization: in what repository the code lives, how wg communicates, etc. For code, I personally would be a fan of a dedicated github.org.
Suggestion: rename and re purpose existing rust-analyzer org to rls2.
For communication, this zulip stream sounds perfect. We probably should add
wg-rls2-notes repo to host the charter, meeting notes, links to other resources etc.
Another organizational question is "who are the 'members' of wg?": it's useful to keep a list of folks whom you might annoy with pings, meetings, notes taking, r?, etc (of course, everyone is welcome to participate without any prior coordination, and I expect that we'll produce quite a few E-mentor issues!) :-) I think at least @matklad., @Florian Diebold , @pnkfelix and @mw might be interested in being in wg .If you are as well, please speak up!
That's it for org questions I think?
I’m also very interested, as you know 💪
oops, sorry, you've definitely should have been on the list :)
I'm also interested :)
Regarding renaming the rust-analyzer org to rls2: If there were nothing else tagged with the name "rls2", then I'd say there's no need for such a rename. But if we are going to have e.g. WG-<namehere> then WG-rls2 is probably better than WG-rust-analyzer, and therefore a rename of rust-analyzer org to rls2 probably makes sense.
At least this stream is tagged rls-2.0 :)
(I could rename it to WG-rls2 if that would be of interest. I don't know exactly what policy we're using for stream names going forward.)
So, I think we'll have several things under the name (zulip channel, wg repo, github org), and rls2 seems a better tag (shorter). Let's say that the default action (unless anyone objects today or tomorrow) would be to rename rust-analyzer org to rls2 and use that as a name for the effort. I'll also tentatively create a WG repo under the org and will put charter from the paper doc & info about zulip and members there. This I think covers all immediate boring org questions and we can discuss what do we actually do in terms of writing code :-)
(I am not sure such ad-hoch hugely async meeting is the best way to proceede, but it seems good enough to arrive at "at the same page" state)
Overall, I think a strategy of shipping a working, but incomplete language server (i.e., what rust analyzer is basically doing now) is a good one: we get immediate feedback, see very tangible results (as in, I've implemented the thing, and now I can see completion in this case) and actually ship a tool which is used by some folks.
I think rust-analyzer as it exists today provides the best foundation for such a server. Other possibilities would be to base the work on existing rls server, or to do another from-scratch impl. A potential problem with just using rust-analyzer is that some of its abstractions might be not the best ones, but that should be fixable by keeping "does this thing makes sense?" question in mind and doing targeting refactorings.
In terms of specific areas we need to focus on, it is definitely macro expansion/name resolution. It's both the main unknown for "how ideal architecture of Rust IDE compiler looks like" and the main blocker for adding more user-visible features to rust-analyzer
I'm assuming that we're killing the discord channel?
I think this format btw
@Jeremy Kolb yep, I plan to kill the dsicord
@matklad I'm interested
@matklad shall I create a @WG-rls2 user-group here on Zulip? (Is it
what is "user group on Zulip"? A separate zulip instance? or a separate stream in this zulip?
I'll create @WG-rls2.0 for now, if I can. We can reduce it later if needed.
its neither a stream nor an instance
It's just a group of people that you can ping at once.
its an alias for a group of people
I'll make it first to demonstrate.
didn't know that zulip can do that! Sure, an alias will be helpful!
@davidtwco do you want to be on this WG too? Or are you just planning to lurk on the stream for now?
Just lurking at the moment.
(Here is a demo of the @WG-rls2.0 )
@matklad Sorry for too late replying. I'm interesting too.
@matklad right now we've been putting working group directories in https://github.com/rust-lang/compiler-team -- what do you think about moving that content into this repository?
I can invite you
or at least a pointer
I believe I've already send a PR :)
merged but I also invited you as a collaborator
@matklad this PR still references
#t-compiler/wg-nll btw in the How to participate section of the Readme