Add python mode#2219
Open
jessegrabowski wants to merge 10 commits into
Open
Conversation
The "raw" mode H factor and R were declared (M,M) and (M,N) but are actually (M,N) and (K,N), which np.vectorize rejects for M < N.
ricardoV94
reviewed
Jun 13, 2026
Promotes the per-subclass routing PythonLinker did into the VMLinker default, so every pure-Python VM path (pyvm, FAST_COMPILE, cxx-less vm) prefers a registered python_funcify before falling back to perform.
93397e4 to
9c8465d
Compare
PythonLinker is now a whole-graph JITLinker registered as pyjit; py is a plain VMLinker -- the robust per-node Python reference (lazy ops, perform fallback). The redundant perform linker is dropped.
The base Op.perform now delegates to the python_funcify dispatch, so an Op's numeric behaviour can live entirely in the registry. Cholesky keeps only its symbolic definition.
9c8465d to
29b972b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1990
mode="py"becomes a full python mode. The existingpybecomesperform. The python mode is a VMLinker so we can do IFElse. I started moving some of the big ugly linalg implemetations from perform to a python dispatch as a show of what I think the advantage of this setup is. The performs where most people will look become nice and clean, and all the lapack dancing gets hidden in the dispatch.