`Split` reads a keyword `axis` as absent, so `tf.split(x, n, axis=k)` with a computed `k` divides axis 0 instead of degrading
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 76/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Domain
- compilers, machine-learning, testing-qa
Research direction
Start in Split.isAxisPassed and compare its two anchoring paths with the keyword-name check now used by Unstack. Review the existing Split pins, then exercise a computed keyword axis like axis=last. Done means a passed but unresolved axis degrades to ⊤ instead of being treated as absent and selecting axis 0.
Written by the indexing model from the issue text.
Description
Split.isAxisPassed decides whether tf.split's axis was passed by counting positional arguments when the generator holds the invoke (call.getNumberOfPositionalParameters() > 3) and, only when it does not, by reading the keyword's points-to set. A keyword axis therefore reads as absent on an invoke-holding anchoring, and a keyword axis bound to a computed value (an empty points-to set) reads as absent on the other anchoring, so tf.split(x, n, axis=k) with k computed divides axis 0 instead of degrading, a fixed wrong answer where ⊤ is the sound one. The method's own Javadoc records the second half ("a keyword-passed computed axis is indistinguishable from an absent one here and is treated as absent").
Read, Not Measured
This is read from the code while building Unstack in the same family (https://github.com/wala/ML/issues/948), whose copy of the helper showed the defect on a fixture: m, n = tf.unstack(y, axis=last) with last = len(y.shape) - 1 over (3, 2) read (2,) (axis 0 removed) where the runtime answer is (3,). Unstack now tests the keyword by name on the invoke (call.getUse("axis") != -1) on both anchorings, so a passed-but-unresolvable axis degrades to ⊤. The same change applies to Split; its existing pins pass a positional axis or none, so none of them can see this.
- Dominant language
- Java
- Stars
- 27
- Forks
- 19
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from wala/ML
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Two producer self-recursion guards return ⊥ on the null-engine path where the resolver's policy is ⊤Open
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug summaries tensor inference
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
OpenAPITools/openapi-generator#25014 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
AloisSeckar/demos-java#380 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
openhab/openhab-core#5847 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
appsmithorg/appsmith#42297 · 1 comment ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
vert-x3/vertx-kafka-client#331 ·