>> One thing that readers will wonder (doesn't belong in JVMS, but belongs >> somewhere) is what suggested practice are for using invocation name / >> constant name. I don't see the name widely used in indy, but I could >> imagine it more widely used in condy, because constants often have names >> (like Pi.) For a BSM that effectively has a single String parameter, I >> think we'll get more compact classfiles if we use the name and a shared >> no-arg BootstrapMethods entry, but is that a good reason? > > Combined with one other reason it is good enough. The other reason is that > invokedynamic > BSMs already take a method name. It is helpful to keep indy and condy BSMs > similar, where > possible. The similarity allows similar parts to be factored together, in > both spec. and > implementation. The similarity, in brief, condy:indy :: Fieldref:Methodref. > In all cases, > you have a NameAndType (field or method) accompanied by either a Class or a > BSM.
I was asking a slightly different question; not “why should condy support an invocation name”, but, “given that condy supports an invocation name, how and when should a bootstrap writer choose to use it vs one (or more) String parameters?”
