Revision: 7666
Author: b...@google.com
Date: Thu Mar  4 08:14:02 2010
Log: Edited wiki page through web user interface.
http://code.google.com/p/google-web-toolkit/source/detail?r=7666

Modified:
 /wiki/SoftPermutations.wiki

=======================================
--- /wiki/SoftPermutations.wiki Thu Mar  4 07:49:01 2010
+++ /wiki/SoftPermutations.wiki Thu Mar  4 08:14:02 2010
@@ -1,10 +1,26 @@
-#summary Runtime rebind evaluation (draft)
+#summary Runtime rebind evaluation

 = Introduction =

-Deferred-binding type replacement always requires a separate hard permutation. This contributes to permutation explosion. One technique for [ControllingPermutationExplosion controlling permutation explosion] is to allow certain rebind decisions to be evaluated at runtime thereby collapsing two or more hard permutations together.
-
-= Details =
+Historically, every distinct set of deferred-binding type replacements required a separate permutation to be emitted by the compiler. The indiscriminate use of type replacement would then contribute to permutation explosion. One technique for [ControllingPermutationExplosion controlling permutation explosion] is to allow certain rebind decisions to be evaluated at runtime, thereby collapsing two or more hard permutations together.
+
+= Use case =
+
+A new GWT module directive will be introduced to indicate that certain values of a deferred-binding property should be considered to be equivalent for the purposes of creating module permutations.
+{{{
+<collapse-property name="property.name" values="two, or, more, values" />
+}}}
+
+The `values` attribute will optionally accept glob patterns such as:
+{{{
+<collapse-property name="locale" values="en_*" />
+}}}
+or more simply:
+{{{
+<collapse-property name="user.agent" values="*" />
+}}}
+
+= Example =

To address the common use-case of rendering-engine variants where using deferred-binding:
 {{{
@@ -66,4 +82,4 @@
int foo = "bar".equals(foo_value) ? 1 : "baz".equals(foo_value) ? 0 : die();
 permutationId$ = user_agent * 1 + locale * 2 + foo * 6;
 }}}
-The multiplier sequence is [1], [user.agent], [user.agent + locale].
+The multiplier sequence is `[1], [user.agent], [user.agent + locale]`.

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

Reply via email to