[jsr294-modularity-eg] 294 EG conf call, 2009-04-15
Alex Buckley
Alex.Buckley at Sun.COM
Fri Apr 24 02:45:16 EDT 2009
OK, so modifiers-first was not a very good idea. Concepts like
'optional' actually belong as far away from 'requires' as possible!
requires module N @ 1.0+/optional;
requires package P @ (1.0,2.0]/dynamic;
The effect of these directives is so different than 'import' in normal
compilation units that I hesitate to reuse the keyword.
Alex
Bryan Atsatt wrote:
> I'm having difficulty with "optional requires" :^). Maybe 'optional'
> should substitute for 'requires' here?
>
> optional module N @ 1.0+;
> requires package P @ (1.0,2.0];
>
> Or use 'import' and 'export' instead of requires/provides?
>
> optional import module N @ 1.0+;
> import package P @ (1.0,2.0];
>
> // Bryan
>
> Alex Buckley wrote:
>> Bryan Atsatt wrote:
>>> module M @ 5.0 {
>>> requires module "N at 1.0+; optional=true";
>>> requires package "P@(1.0,2.0]";
>>> permits module "O"; // Module O is M's friend
>>> provides module "M at 4.5+"; // M v5.0 is compatible with 4.5+
>>> provides package "m"; // Exports package 'm'
>>> }
>>
>> 0) Can I suggest that 'requires system ...' is as good as 'system ...' ?
>>
>> 1) Can I suggest putting modifiers like 'optional' first:
>>
>> optional requires module N @ 1.0+;
>> requires package P @ (1.0,2.0];
>>
>> This mirrors class/method/field signatures and allows a simple,
>> flexible grammar for the content of a module compilation unit: (Id ==
>> identifier)
>>
>> Id* ('requires'|'permits'|'provides') Id Id ['@' VStart VPart*] ';'
>>
>> VStart:
>> digit
>> '['
>> '('
>>
>> VPart:
>> InputCharacter but not FF, Space, Tab, '"', '\'', '\\', ';'
>> // InputCharacter is any UnicodeInputCharacter except CR and LF
>> // Note it includes comma and dot, allowing version ranges like
>> // 1.0,2.0 at the cost of disallowing multiple operands per requires
>>
>> Alex
>> _______________________________________________
>> jsr294-modularity-eg mailing list
>> jsr294-modularity-eg at cs.oswego.edu
>> http://cs.oswego.edu/mailman/listinfo/jsr294-modularity-eg
>>
> _______________________________________________
> jsr294-modularity-eg mailing list
> jsr294-modularity-eg at cs.oswego.edu
> http://cs.oswego.edu/mailman/listinfo/jsr294-modularity-eg
More information about the jsr294-modularity-eg
mailing list