Skip to content

Commit 5640325

Browse files
authored
Merge pull request #24 from Veykril/veykril/push-qqsqwrrumtyt
Add rust-analyzer proc-macro server project
2 parents c3d4b25 + a587206 commit 5640325

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

README.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ We use the GSoC project size parameters for estimating the expected time complex
3737
- [Prototype Cargo plumbing commands](#prototype-cargo-plumbing-commands)
3838
- [Move cargo shell completions to Rust](#move-cargo-shell-completions-to-Rust)
3939
- [Build script delegation](#build-script-delegation)
40+
- **rust-analyzer**
41+
- [Implement a new proc-macro server RPC API](#implement-a-new-proc-macro-server-RPC-API)
4042
- **Crate ecosystem**
4143
- [Modernize the libc crate](#Modernize-the-libc-crate)
4244
- [Add more lints to `cargo-semver-checks`](#add-more-lints-to-cargo-semver-checks)
@@ -611,6 +613,45 @@ Medium.
611613
- [Idea discussion](https://rust-lang.zulipchat.com/#narrow/channel/421156-gsoc/topic/Idea.3A.20Build.20script.20delegation)
612614
- Ed Page ([GitHub](https://github.com/epage), [Zulip](https://rust-lang.zulipchat.com/#narrow/dm/424212-Ed-Page))
613615

616+
## rust-analyzer
617+
618+
### Implement a new proc-macro server RPC API
619+
620+
**Description**
621+
622+
Today, rust-analyzer (and RustRover) expands proc-macros by spawning a separate proc-macro server
623+
process that loads and executes the proc-macro dynamic libraries. They communicate to this process
624+
via a JSON RPC interface that has not been given much thought when it was implemented, now starting
625+
to show its limitations.
626+
627+
The goal is to replace this current implementation entirely in favor of a more performant format
628+
that also supports the more complicated needs of the proc-macro API, outlined in
629+
https://github.com/rust-lang/rust-analyzer/issues/19205.
630+
631+
**Expected result**
632+
633+
There exists a new proc-macro server that is more efficient and allows for implementing the
634+
remaining proc-macro API. Ideally, it should be integrated within rust-analyzer.
635+
636+
**Desirable skills**
637+
638+
Intermediate knowledge of Rust.
639+
640+
**Project size**
641+
642+
Medium.
643+
644+
**Difficulty**
645+
646+
Medium.
647+
648+
**Mentor**
649+
- Lukas Wirth ([GitHub](https://github.com/veykril), [Zulip](https://rust-lang.zulipchat.com/#narrow/dm/300586-Lukas-Wirth))
650+
651+
**Zulip streams**
652+
- [Idea discussion](https://rust-lang.zulipchat.com/#narrow/channel/185405-t-compiler.2Frust-analyzer/topic/proc-macro.20server.20IPC.20format)
653+
- [rust-analyzer team](https://rust-lang.zulipchat.com/#narrow/channel/185405-t-compiler.2Frust-analyzer)
654+
614655
## Crate ecosystem
615656

616657
### Modernize the libc crate

0 commit comments

Comments
 (0)