You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
and then open a PR of your `some_feature_branch` against https://github.com/rust-lang/project-stable-mir
33
-
34
-
### Updating the rustc library
35
-
36
-
First we need to bump our stack limit, as the rustc repo otherwise quickly hits that:
37
-
38
-
```
39
-
ulimit -s 60000
40
-
```
41
-
42
-
#### Maximum function recursion depth (1000) reached
43
-
44
-
Then we need to disable `dash` as the default shell for sh scripts, as otherwise we run into a
45
-
hard limit of a recursion depth of 1000:
46
-
47
-
```
48
-
sudo dpkg-reconfigure dash
49
-
```
50
-
51
-
and then select `No` to disable dash.
52
-
53
-
54
-
#### Patching your `git worktree`
55
-
56
-
The regular git worktree does not scale to repos of the size of the rustc repo.
57
-
So download the `git-subtree.sh` from https://github.com/gitgitgadget/git/pull/493/files and run
Note: only ever sync to rustc from the project-stable-mir's `smir` branch. Do not sync with your own forks.
74
-
75
-
Then open a PR against rustc just like a regular PR.
7
+
See the StableMIR ["Getting Started"](https://rust-lang.github.io/project-stable-mir/getting-started.html)
8
+
guide for more information.
76
9
77
10
## Stable MIR Design
78
11
79
-
The stable-mir will follow a similar approach to proc-macro2. It’s
80
-
implementation will eventually be broken down into two main crates:
12
+
The stable-mir will follow a similar approach to proc-macro2. Its
13
+
implementation is split between two main crates:
81
14
82
15
-`stable_mir`: Public crate, to be published on crates.io, which will contain
83
-
the stable data structure as well as proxy APIs to make calls to the
84
-
compiler.
85
-
-`rustc_smir`: The compiler crate that will translate from internal MIR to
86
-
SMIR. This crate will also implement APIs that will be invoked by
87
-
stable-mir to query the compiler for more information.
16
+
the stable data structure as well as calls to `rustc_smir` APIs. The
17
+
translation between stable and internal constructs will also be done in this crate,
18
+
however, this is currently implemented in the `rustc_smir` crate.[^translation].
19
+
-`rustc_smir`: This crate implements the public APIs to the compiler.
20
+
It is responsible for gathering all the information requested, and providing
21
+
the data in its unstable form.
22
+
23
+
[^translation]: This is currently implemented in the `rustc_smir` crate,
24
+
but we are working to change that.
88
25
89
-
This will help tools to communicate with the rust compiler via stable APIs. Tools will depend on
90
-
`stable_mir` crate, which will invoke the compiler using APIs defined in `rustc_smir`. I.e.:
26
+
I.e.,
27
+
tools will depend on `stable_mir` crate,
28
+
which will invoke the compiler using APIs defined in `rustc_smir`.
0 commit comments