codemod
numpy
codemod | numpy | |
---|---|---|
8 | 4 | |
3,895 | 3 | |
- | - | |
0.0 | 0.0 | |
over 3 years ago | 9 months ago | |
Python | ||
Apache License 2.0 | BSD 3-clause "New" or "Revised" License |
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
numpy
-
Meta pledges Three-Year sponsorship for Python if GIL removal is accepted
I can’t imagine you’ve read the proposal with a comment like this. The interpreter is already patched (twice in the proposal, for two different versions of Python), and Sam Gross has personally already patched many commonly used Python libraries. Here’s numpy patched, a mess of C and Fortran written for high performance code: https://github.com/colesbury/numpy/commits/v1.24.0-nogil
This comment is the definition of FUD.
-
Python Language Summit: Python Without the GIL
Numpy.
Here's a patch the author himself wrote to fix a spot where this change break's numpy's thread safety: https://github.com/colesbury/numpy/commit/2ad41a1fb8b0c28fa8...
Maybe that's the only one? Maybe it isn't? But I think the point still stands that people saying this has the potential to break existing Python packages in subtle ways are not just being hyperbolic.
-
Removing the GIL: Notes From the Meeting Between Core Devs and the Author of the `nogil`Fork
That does not appear to be true. numpy is a heavy user of c extension. The number of changes to make this compatible was like <10 lines. It's these two commits, https://github.com/colesbury/numpy/commit/811868dd47fa8d53cea6c83ee07f6f4da44f041a + https://github.com/colesbury/numpy/commit/c66f8a2e24e7816575c6680bbe070d5ce0c79fa7
-
A viable solution for Python concurrency
Yikes, C extensions can't assume they are under GIL by default:
https://github.com/colesbury/numpy/commits/v1.19.3-nogil
What are some alternatives?
jscodeshift - A JavaScript codemod toolkit.
nogil - Multithreaded Python without the GIL
comby - A code rewrite tool for structural search and replace that supports ~every language.
go - The Go programming language
scala-steward - :robot: A bot that helps you keep your projects up-to-date
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.
Magnit.Tokenization - Tokenize strings into custom tokens using ordered regex operations.
nogil-3.12 - Multithreaded Python without the GIL (experimental rebase on 3.12)
Filestash - 🦄 A modern web client for SFTP, S3, FTP, WebDAV, Git, Minio, LDAP, CalDAV, CardDAV, Mysql, Backblaze, ...
Chevrotain - Parser Building Toolkit for JavaScript