Here's what John and I worked out over IM to get the existing runtime
locales support migrated to soft permutations:

  - The existing locale property continues to work as it currently does.
  - The runtime.locales configuration property is eliminated in favor
of a runtimeLocale deferred-binding property.
  - The runtimeLocale property is defined and collapsed by a
ModuleDefMutator which also defines additional rebind rules based on
the defined locale values.
    - One or more ModuleDefMutators are installed by a <module-mutator
class="Foo" /> which are called before ModuleDef.normalize()
  - The SelectionProperty interface gains a getCollapsedValues() which
gives the values that are equivalent to the value returned by
getCurrentValue().
    - This allows the runtime performance of the Generators to be optimized.
  - The locale generators are simplified, removing the runtime locale
factory and instead relying on the soft rebind rules created by the
ModuleDefMutator.

This will increase the size of the permutation-selection matrix, but
this could be mitigated by using property-value extensions.  In the
same way that "es_AR extends es", we might have "chrome extends
safari", "iphone extends safari".  The value extension work is
separate and orthogonal, but plays nicely with the two techniques in
http://code.google.com/p/google-web-toolkit/wiki/ControllingPermutationExplosion.

Thoughts?

-- 
Bob Vawter
Google Web Toolkit Team

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to