module-info.class spec and attributes

David M. Lloyd david.lloyd at redhat.com
Wed Jun 29 17:24:17 PDT 2011


On 06/29/2011 07:07 PM, Alex Buckley wrote:
> (Sent this mail yesterday but I think it got lost.)
>
> On 6/28/2011 2:24 PM, David Bosschaert wrote:
>> I wonder why such a binary .class file for module declarations is
>> really needed. Why not go for a textual file, for instance
>> META-INF/module-info.jmod (or something like that) and declare the
>> module declarations in there using a textual format of some sort?
>
> The arguments for a binary compiled form are given at:
>
> http://openjdk.java.net/projects/jigsaw/doc/draft-java-module-system-requirements-12#_C

All of which are trivially debunkable.  Yes, it is *slightly* more 
efficient to read structured binary than a text format.  It is an 
insignificant difference though.  We actually parse ours as XML using 
StAX, which should be somewhat more expensive than a dedicated text 
parser, and it's so fast that I'm not even able to get a significant 
measurement of the time when booting up a 100+ module project.  The 
performance argument is invalid.

And constraining the module metadata to a Java-like syntax with a 
Java-like file name is just a dumb idea.  There's no reason for it.

Saying that requiring a tool to modify the metadata for a module is 
somehow a good thing is pretty off the wall too.  I mean just crazy.

Come down to Earth guys.

>> IMO there are multiple benefits associated keeping the textual format.
>> People using the jar can use a simple zip tool to look inside the jar
>> to see what its dependencies are. Additionally tools can easily be
>> written to read the module-info.jmod file without needing to resort to
>> classfile parsing libraries. The module information can be of use to
>> both developer as well as deployer tools.
>>
>> Finally it's probably easier to make the textual file extensible, as
>> required by [1], without resorting to inefficient reflection-style
>> operations.
>
> I think these points are also captured in Appendix C. Could not the same
> points have been made in favor of a textual format for class and
> interface declarations?

Yup.  But that ship has sailed.  A binary format for module 
meta-information is going to be yet another annoying disaster.

-- 
- DML



More information about the jigsaw-dev mailing list