aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2018-01-27 21:34:16 +0000
committerAleksey Kladov <[email protected]>2018-01-27 21:34:16 +0000
commitffe545cc37b9d4b1c45171575a6cc3128fa346e5 (patch)
treeac8dd8bd38c8a6441b3eb7cdcc624cc84af128ba
parenta4880ca03e76f09e85bea1441360edde40f4157c (diff)
Brush up CONTRIBUTING.md
-rw-r--r--CONTRIBUTING.md (renamed from docs/CONTRIBUTING.md)23
1 files changed, 15 insertions, 8 deletions
diff --git a/docs/CONTRIBUTING.md b/CONTRIBUTING.md
index 5ae2e830e..570a26c51 100644
--- a/docs/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,32 +1,39 @@
1The project is in its early stages: contributions are welcome and 1The project is in its early stages: contributions are welcome and
2would be **very** helpful, but the project is not *yet* optimized for 2would be **very** helpful, but the project is not *yet* optimized for
3contributors. Moreover, it is doubly experimental, so there's no 3contribution. Moreover, it is doubly experimental, so there's no
4guarantee that any work here would reach production. That said, here 4guarantee that any work here would reach production. That said, here
5are some arias where contributions would be **especially** welcome: 5are some areas where contributions would be **especially** welcome:
6 6
7 7
8* Designing internal data structures: RFC only outlines the 8* Designing internal data structures: RFC only outlines the
9 constraints, it's an open question how to satisfy them in the 9 constraints, it's an open question how to satisfy them in the
10 optimal way. See `ARCHITECTURE.md` for current design questions. 10 optimal way. See `ARCHITECTURE.md` for current design questions.
11 11
12* Porting libsyntax parser to libsyntax2: currently libsyntax2 parses 12* Porting libsyntax parser to libsyntax2: currently libsyntax2 parses
13 only a tiny subset of Rust. This should be fixed by porting parsing 13 only a tiny subset of Rust. This should be fixed by porting parsing
14 functions from libsyntax one by one. 14 functions from libsyntax one by one. Take a look at the
15 15 [libsyntax parser](https://github.com/rust-lang/rust/blob/6b99adeb11313197f409b4f7c4083c2ceca8a4fe/src/libsyntax/parse/parser.rs)
16 for "what to port" and at the
17 [Kotlin parser](https://github.com/JetBrains/kotlin/blob/4d951de616b20feca92f3e9cc9679b2de9e65195/compiler/frontend/src/org/jetbrains/kotlin/parsing/KotlinParsing.java)
18 for "how to port".
19
16* Writing validators: by design, libsyntax2 is very lax about the 20* Writing validators: by design, libsyntax2 is very lax about the
17 input. For example, the lexer happily accepts unclosed strings. The 21 input. For example, the lexer happily accepts unclosed strings. The
18 idea is that there should be a higher level visitor, which walks the 22 idea is that there should be a higher level visitor, which walks the
19 syntax tree after parsing and produces all the warnings. Alas, 23 syntax tree after parsing and produces all the warnings. Alas,
20 there's no such visitor yet :( Would you like to write one? :) 24 there's no such visitor yet :( Would you like to write one? :)
21 25
22* Creating tests: it would be tremendously helpful to read each of 26* Creating tests: it would be tremendously helpful to read each of
23 libsyntax and libsyntax2 parser functions and crate a small separate 27 libsyntax and libsyntax2 parser functions and crate a small separate
24 test cases to cover each and every edge case. 28 test cases to cover each and every edge case.
25 29
26* Building stuff with libsyntax2: it would be really cool to compile 30* Building stuff with libsyntax2: it would be really cool to compile
27 libsyntax2 to WASM and add *client side* syntax validation to rust 31 libsyntax2 to WASM and add *client side* syntax validation to rust
28 playground! 32 playground!
29 33
30 34
31Do take a look at the issue tracker, and try to read other docs in 35Do take a look at the issue tracker, and try to read other docs in
32this folder. 36the [./docs] folder!
37
38If you don't know where to start, or have *any* questions or suggestions,
39don't hesitate to chat at [Gitter](https://gitter.im/libsyntax2/Lobby)!