codemod
Magnit.Tokenization
codemod | Magnit.Tokenization | |
---|---|---|
8 | 1 | |
3,895 | 1 | |
- | - | |
0.0 | 10.0 | |
over 3 years ago | over 1 year ago | |
Python | C# | |
Apache License 2.0 | Creative Commons Zero v1.0 Universal |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
codemod
-
Ohm: A library and language for building parsers, interpreters, compilers, etc.
This is new to me, sounds interesting!
I once used Codemod [0] to migrate an old JS codebase. Would this be a use case for Ohm as well?
[0] https://github.com/facebookarchive/codemod
- Automating Dead Code Cleanup
-
Meta pledges Three-Year sponsorship for Python if GIL removal is accepted
That differs but is a reasonable understanding. I’m instead referring to automations that perform large scale refactoring as handled by Facebook, who would be contributing to this effort.
https://github.com/facebookarchive/codemod
It sounds like what you are describing is what’s known as poly fills which convert code into a variant that maximizes function across implementations which isn’t really applicable here.
-
Automatic Dependency Upgrade Tool (with auto-resolve breaking changes)
That's why I've been working on a tool that automatically upgrades major versions of libraries with breaking changes, the idea is to simplify the process and save developers time and effort by having a bank of transformers (using codemod & jscodeshift) and open source them:
- Python 2 Removed from Debian
-
How Our Engineering Team Used Python's AST to Patch 100,000s of Lines of Code
What they did appears similar to https://github.com/facebook/codemod.
-
Software Is Drowning the World
I think codemod is probably one such tool: https://github.com/facebook/codemod
Magnit.Tokenization
-
Ohm: A library and language for building parsers, interpreters, compilers, etc.
Oh, this is awesome!
Truth be told, I'm glad I didn't know about it when I wrote a much more simplified project (shameless plug: https://github.com/catapart/Magnit.Tokenization), because I DEFINITELY would have just used your solution, even though its a bit overkill for those needs.
That said, after having finished what I needed, of course I started to wonder about what else I could add to it, with the main stopping force being the need to rewrite the parsing engine (regex ain't going to cut it for more complicated syntaxes). Which is one of those dev projects that linger in the back of your mind until you either see it through, or see that someone else has done it.
And, on that record, I think you've done a better job than I could ever attempt, so I'm very glad to know about this library, now! I don't have anything specifically in mind for it, but having the doors it opens available is quite nice!
What are some alternatives?
jscodeshift - A JavaScript codemod toolkit.
Chevrotain - Parser Building Toolkit for JavaScript
comby - A code rewrite tool for structural search and replace that supports ~every language.
ohm - A library and language for building parsers, interpreters, compilers, etc.
scala-steward - :robot: A bot that helps you keep your projects up-to-date
mation-spec
semgrep - Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.
goimports - [mirror] Go Tools
cinder - Cinder is Meta's internal performance-oriented production version of CPython.
nogil-3.12 - Multithreaded Python without the GIL (experimental rebase on 3.12)
numpy - The fundamental package for scientific computing with Python.
Filestash - 🦄 A modern web client for SFTP, S3, FTP, WebDAV, Git, Minio, LDAP, CalDAV, CardDAV, Mysql, Backblaze, ...