changing a parameter name will never be a binary-incompatible change

Markus Keller markus_keller at ch.ibm.com
Thu May 2 05:56:09 PDT 2013


Section 2.1 of "Method Parameter Reflection" says:
"1. Parameter names are not essential to the Java virtual machine. They 
play no part
in linkage, so changing a parameter name will never be a 
binary-incompatible
change."

Is the "will never be" really necessary? Is it absolutely impossible that 
the JVM will at one point get a new instruction that will perform method 
lookup by parameter name? Maybe not for the Java language, but to better 
support other languages.

The "will never be" would make such an evolution illegal. I think it's 
better to just say "[..], so changing a parameter name is a 
binary-compatible change.". That's clear enough for now, but leaves the 
door open for developments in a new version of the spec.

Markus



More information about the enhanced-metadata-spec-discuss mailing list