-
Bug
-
Resolution: Fixed
-
P3
-
7
-
b01
-
generic
-
generic
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8019010 | 7u45 | John Rose | P3 | Closed | Fixed | b01 |
JDK-8003082 | 7u40 | John Rose | P3 | Closed | Fixed | b01 |
JDK-2216819 | 7u2 | John Rose | P3 | Resolved | Fixed | b04 |
JDK-2212406 | hs22 | John Rose | P3 | Resolved | Fixed | b01 |
We need to remove these limits, allowing the full number of arguments. This number ranges up to 255, per JVM spec 4.3.3 and 4.11. Current implementation techniques which use "one class per arity" will need to be replaced by more generic techniques, since groups of 255 classes are not scalable, especially when the complexity is super-linear (as with descriptor polymorphism).
Other CRs have removed argument count limitations everywhere except for SPARC code and, and the now-obsolete common JDK code which works around the limitations of the SPARC port of JSR 292.
This is the SPARC change which updates the SPARC port to remove arguent count limitations (by implementing ricochet frames):
7045514: SPARC assembly code for JSR 292 ricochet frames
The present CR is a followup to that SPARC upgrade, and depends on it. It requests the removal of the obsolete common code in the JDK, as soon as there is no longer any need for it on SPARC.
It includes the complete removal of the following files, which were workarounds for the lack of ricochet frames:
FilterGeneric.java FilterOneArgument.java FromGeneric.java SpreadGeneric.java ToGeneric.java
Also, it removes obsolete test exclusions from MethodHandlesTest (key unit test), and extend argument counts of test cases past (obsolete) limits of about 10.
This change will help stabilize JSR 292 on JDK 7.
There is a tested patch for this change in the mlvm patch repository:
http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/tip/meth-argcount-6983728.patch
- backported by
-
JDK-2212406 JSR 292 code for limited argument counts is unused and should be deleted
- Resolved
-
JDK-2216819 JSR 292 code for limited argument counts is unused and should be deleted
- Resolved
-
JDK-8003082 JSR 292 code for limited argument counts is unused and should be deleted
- Closed
-
JDK-8003083 JSR 292 code for limited argument counts is unused and should be deleted
- Closed
-
JDK-8019010 JSR 292 code for limited argument counts is unused and should be deleted
- Closed
- relates to
-
JDK-8000999 backport of JSR 292 to 7u
- Closed
-
JDK-6939861 JVM should handle more conversion operations
- Closed
-
JDK-7018894 JSR 292 method handle collector transform does not work correctly on subtypes of Object[]
- Closed