Comments (4)
Thanks, though this does not really answer what's wrong with contributing to mypy, for example helping to make it faster. There seems to be no reason why your (very cool!) static analysis tools wouldn't work with any type checker. After all they only care about the end result: the resolved types of functions and variables.
@ze-phyr-us: there's nothing wrong with contributing to mypy ;) We decided not to because for two main reasons:
- we believe there are fundamental limitations to what you can achieve in terms of performance in a tool written in Python. I'm sure it's possible replicate the lock free shared-memory / multiprocessing architecture in Python but that leads to
- we do have a lot of the infrastructure for this already in place from the Hack type checker. On top of the parallelization we can also reuse parts of the deeper static analysis we're running on our PHP codebase that we haven't been able to open source before.
from pyre-check.
Thanks, though this does not really answer what's wrong with contributing to mypy, for example helping to make it faster. There seems to be no reason why your (very cool!) static analysis tools wouldn't work with any type checker. After all they only care about the end result: the resolved types of functions and variables.
Don't get me wrong – I am glad that gradual typing is gaining so much traction in the Python world. But as I understand it writing a good type checker for Python is a massive undertaking – judging by the number of issues Mypy has and which we run into almost daily when using it at work. So clearly your decision to write your own was not taken lightly, and I am wondering why you decided Mypy wasn't worth the effort.
from pyre-check.
I'm not affiliated with the Pyre team, but you may find these comments helpful from one of them: https://news.ycombinator.com/item?id=17048682
To summarize: the "overriding concern" was
We are building deeper semantic static analysis tools on top of Pyre. We've built some of these tools for Hack/PHP already, so following the Hack type checker's architecture is the best way for us to achieve this.
from pyre-check.
I think @phooji's comment on Hackernews captures the basic motivation. He also gave a talk at PyCon providing more context around the direction we're taking here: https://www.youtube.com/watch?v=hWV8t494N88
from pyre-check.
Related Issues (20)
- Pyre infers set-of-literals as set[str] rather than set[MyLiteral] HOT 1
- Null
- Ask for if also import pysa-filter for `sapp` when run `pyre init-pysa`
- Allow use of pyre_extensions in pyre playground, use newer typing_extensions
- Mutable attributes of classes should be invariant in subclasses. HOT 1
- Internal crash: Raised in src/string.ml HOT 11
- Pyre doesn't understand for-else statement HOT 2
- Is it possible to taint specific values of parameters? HOT 2
- Tainting Python Builtin Functions! How do we do this? HOT 1
- Module boto3 - Taint Propagation Issue HOT 3
- Context Manager - Taint Propagation Issue
- PySpark - Incompatible parameter type & Unsupported operand HOT 1
- [Pyre setup.sh] Terminal closes while building from source HOT 2
- Pysa tutorial not working HOT 4
- Find lambdas are not checked correctly HOT 1
- Errors with recursive type aliases: "JSON is declared to have type `TypeAlias` but is used as type `UnionType`"
- pyre from PyPI can't find its typeshed directory HOT 1
- Update pyre-check.org/play to use Python 3.11 HOT 2
- [BUG] Check command exited with non-zero return code: 126. HOT 1
- CI builds are broken
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pyre-check.