Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Announcement] Esprima port to Python #1842

Open
Kronuz opened this issue Jul 15, 2017 · 4 comments
Open

[Announcement] Esprima port to Python #1842

Kronuz opened this issue Jul 15, 2017 · 4 comments

Comments

@Kronuz
Copy link

Kronuz commented Jul 15, 2017

I ported Esprima to Python, it's available here: https://github.com/Kronuz/esprima-python and it has been manually translated, the source code is an almost line by line translation from esprima v4.0.0-dev. It's fast and passes all tests.

pip install esprima

Feel free to open any issues regarding licensing, synergies with Esprima, improvements, possible usages.

@ariya
Copy link
Contributor

ariya commented Jul 20, 2017

That's an incredible piece of work @Kronuz! Are you interested in donating back your Python port to the JS Foundation? If yes, then we should definitely upstream the Python implementation to converge with and live in this official repository! Thoughts? Comments?

@Kronuz
Copy link
Author

Kronuz commented Jul 20, 2017

Absolutely! It'd be great indeed. Let me know how I could be of help.

During the translation I spotted a few issues in the original sources. Later I'll try to add a few pull requests for those too. Some aren't harmful at all for JavaScript but just make sense, some are features and a couple should be dangerous. I'm also experimenting on adding some ESnext support; I started experimenting a bit with static class properties, but it still needs more work. It'd be great to have stage-3 to stage-0 support too (as an option). It'd be awesome to bring those to the original codebase as well.

I'm using esprima-python as a base for a full rewrite of ECMAScript support for the next version of CodeIntel which will be used in SublimeCodeIntel (https://pypi.python.org/pypi/CodeIntel http://sublimecodeintel.github.io/SublimeCodeIntel/) as the JavaScript and Node.js support is currently very weak, slow and just plain lacking, so I'd want it to support all ES stages plus perhaps TypeScript as well.

@Kronuz
Copy link
Author

Kronuz commented Jul 21, 2017

Hey, @ariya, any chance to chat? I want to ask you a few questions regarding the vision you have of esprima, I'd love to make a few tweaks here and there alongside the Python version like some source code cleanups and improvements for maintainability and performance. I'd love to keep the two versions in sync.

@ariya
Copy link
Contributor

ariya commented Jul 22, 2017

These days, we tend to release Esprima major stable version every year, following the annual release of ECMAScript standard. There is a task to consider publishing a development version (#1749) that can contain Stage<4 features, but it requires some thought. It might be easier in the Python/PyPI, feel free to comment in that issue.

@Kronuz If you would like to discuss some plans, feel free to use the mailing list or email me directly (you can easily Google for my email address)!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants