[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