Skip to content

Commit 9fffd9e

Browse files
authored
[mypyc] Update README and add wiki links (#18463)
Remove stale content and add various links.
1 parent 075f79a commit 9fffd9e

File tree

2 files changed

+15
-128
lines changed

2 files changed

+15
-128
lines changed

mypyc/README.md

Lines changed: 7 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -1,133 +1,12 @@
11
mypyc: Mypy to Python C Extension Compiler
22
==========================================
33

4-
**NOTE: We are in the process of moving the mypyc README to the**
5-
**[mypyc repository](https://github.com/mypyc/mypyc)**
4+
For the mypyc README, refer to the [mypyc repository](https://github.com/mypyc/mypyc). The mypyc
5+
repository also contains the mypyc issue tracker. All mypyc code lives
6+
here in the mypy repository.
67

7-
**This may be out of date!**
8+
Source code for the mypyc user documentation lives under
9+
[mypyc/doc](./doc).
810

9-
Mypyc is a compiler that compiles mypy-annotated, statically typed
10-
Python modules into CPython C extensions. Currently our primary focus
11-
is on making mypy faster through compilation -- the default mypy wheels
12-
are compiled with mypyc. Compiled mypy is about 4x faster than
13-
without compilation.
14-
15-
Mypyc compiles what is essentially a Python language variant using "strict"
16-
semantics. This means (among some other things):
17-
18-
* Most type annotations are enforced at runtime (raising ``TypeError`` on mismatch)
19-
20-
* Classes are compiled into extension classes without ``__dict__``
21-
(much, but not quite, like if they used ``__slots__``)
22-
23-
* Monkey patching doesn't work
24-
25-
* Instance attributes won't fall back to class attributes if undefined
26-
27-
* Also there are still a bunch of bad bugs and unsupported features :)
28-
29-
Compiled modules can import arbitrary Python modules, and compiled modules
30-
can be used from other Python modules. Typically mypyc is used to only
31-
compile modules that contain performance bottlenecks.
32-
33-
You can run compiled modules also as normal, interpreted Python
34-
modules, since mypyc targets valid Python code. This means that
35-
all Python developer tools and debuggers can be used.
36-
37-
macOS Requirements
38-
------------------
39-
40-
* macOS Sierra or later
41-
42-
* Xcode command line tools
43-
44-
* Python 3.5+ from python.org (other versions are untested)
45-
46-
Linux Requirements
47-
------------------
48-
49-
* A recent enough C/C++ build environment
50-
51-
* Python 3.5+
52-
53-
Windows Requirements
54-
--------------------
55-
56-
* Windows has been tested with Windows 10 and MSVC 2017.
57-
58-
* Python 3.5+
59-
60-
Quick Start for Contributors
61-
----------------------------
62-
63-
First clone the mypy git repository:
64-
65-
$ git clone https://github.com/python/mypy.git
66-
$ cd mypy
67-
68-
Optionally create a virtualenv (recommended):
69-
70-
$ python3 -m venv <directory>
71-
$ source <directory>/bin/activate
72-
73-
Then install the dependencies:
74-
75-
$ python3 -m pip install -r test-requirements.txt
76-
77-
Now you can run the tests:
78-
79-
$ pytest -q mypyc
80-
81-
Look at the [issue tracker](https://github.com/mypyc/mypyc/issues)
82-
for things to work on. Please express your interest in working on an
83-
issue by adding a comment before doing any significant work, since
84-
there is a risk of duplicate work.
85-
86-
Note that the issue tracker is hosted on the mypyc GitHub project, not
87-
with mypy itself.
88-
89-
Documentation
90-
-------------
91-
92-
We have some [developer documentation](doc/dev-intro.md).
93-
94-
Development Status and Roadmap
95-
------------------------------
96-
97-
These are the current planned major milestones:
98-
99-
1. [DONE] Support a smallish but useful Python subset. Focus on compiling
100-
single modules, while the rest of the program is interpreted and does not
101-
need to be type checked.
102-
103-
2. [DONE] Support compiling multiple modules as a single compilation unit (or
104-
dynamic linking of compiled modules). Without this inter-module
105-
calls will use slower Python-level objects, wrapper functions and
106-
Python namespaces.
107-
108-
3. [DONE] Mypyc can compile mypy.
109-
110-
4. [DONE] Optimize some important performance bottlenecks.
111-
112-
5. [PARTIALLY DONE] Generate useful errors for code that uses unsupported Python
113-
features instead of crashing or generating bad code.
114-
115-
6. [DONE] Release a version of mypy that includes a compiled mypy.
116-
117-
7.
118-
1. More feature/compatibility work. (100% compatibility with Python is distinctly
119-
an anti-goal, but more than we have now is a good idea.)
120-
2. [DONE] Support compiling Black, which is a prominent tool that could benefit
121-
and has maintainer buy-in.
122-
(Let us know if you maintain another Python tool or library and are
123-
interested in working with us on this!)
124-
3. More optimization! Code size reductions in particular are likely to
125-
be valuable and will speed up mypyc compilation.
126-
127-
8. We'll see! Adventure is out there!
128-
129-
Future
130-
------
131-
132-
We have some ideas for
133-
[future improvements and optimizations](doc/future.md).
11+
Mypyc welcomes new contributors! Refer to our
12+
[developer documentation](./doc/dev-intro.md) for more information.

mypyc/doc/dev-intro.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@ This is a short introduction aimed at anybody who is interested in
44
contributing to mypyc, or anybody who is curious to understand how
55
mypyc works internally.
66

7+
## Developer Documentation in the Wiki
8+
9+
We have more mypyc developer documentation in our
10+
[wiki](https://github.com/python/mypy/wiki/Developer-Guides).
11+
12+
For basic information common to both mypy and mypyc development, refer
13+
to the [mypy wiki home page](https://github.com/python/mypy/wiki).
14+
715
## Key Differences from Python
816

917
Code compiled using mypyc is often much faster than CPython since it

0 commit comments

Comments
 (0)