Ready for another round of reviews.

I rebased patch set 6 to r7776.


http://gwt-code-reviews.appspot.com/160801/diff/16001/17002
File dev/core/src/com/google/gwt/core/ext/linker/SoftPermutation.java
(right):

http://gwt-code-reviews.appspot.com/160801/diff/16001/17002#newcode25
dev/core/src/com/google/gwt/core/ext/linker/SoftPermutation.java:25:
public abstract class SoftPermutation extends Artifact<SoftPermutation>
{
SoftPermutation is no longer a top-level artifact.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17003
File
dev/core/src/com/google/gwt/core/ext/linker/impl/SelectionScriptLinker.java
(right):

http://gwt-code-reviews.appspot.com/160801/diff/16001/17003#newcode419
dev/core/src/com/google/gwt/core/ext/linker/impl/SelectionScriptLinker.java:419:
protected abstract String getModuleSuffix(TreeLogger logger,
LinkerContext context)
I'll re-import the formatter settings before submitting the final thing,
but I don't want to hold this up.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17003#newcode445
dev/core/src/com/google/gwt/core/ext/linker/impl/SelectionScriptLinker.java:445:
if (result.getSoftPermutations().length > 0) {
All hard permutations now implicitly contain a single soft permutation
with no additional properties that require evaluation.  This removes a
number of special-case if-statements.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17003#newcode454
dev/core/src/com/google/gwt/core/ext/linker/impl/SelectionScriptLinker.java:454:
softMap));
Done.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17004
File
dev/core/src/com/google/gwt/core/ext/linker/impl/StandardCompilationResult.java
(right):

http://gwt-code-reviews.appspot.com/160801/diff/16001/17004#newcode121
dev/core/src/com/google/gwt/core/ext/linker/impl/StandardCompilationResult.java:121:
* This will ignore empty property maps.
It does now.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17009
File dev/core/src/com/google/gwt/dev/Permutation.java (right):

http://gwt-code-reviews.appspot.com/160801/diff/16001/17009#newcode115
dev/core/src/com/google/gwt/dev/Permutation.java:115: * together.
Done.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17009#newcode140
dev/core/src/com/google/gwt/dev/Permutation.java:140:
other.rebindAnswers.clear();
It's defensive, per the existing logic.  Moved to a destroy() method.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17010
File dev/core/src/com/google/gwt/dev/Precompile.java (right):

http://gwt-code-reviews.appspot.com/160801/diff/16001/17010#newcode302
dev/core/src/com/google/gwt/dev/Precompile.java:302: private static
class CollapsedPermutationKey extends StringKey {
Moved CollapsedPermutationKey to a top-level type called
CollapsedPropertyKey so the logic can be shared between Precompile and
PropertyPermutations.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17010#newcode339
dev/core/src/com/google/gwt/dev/Precompile.java:339: return
collapsedPropertyMap.isEmpty() ? null
No longer special-cased.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17010#newcode600
dev/core/src/com/google/gwt/dev/Precompile.java:600: // Construct a key
from the stringified map of live rebind answers.
Created a new RebindAnswersPermutationKey that handles this.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17010#newcode662
dev/core/src/com/google/gwt/dev/Precompile.java:662: // No collapsed
properties in that permutation
Nothing.  Removed special case.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17010#newcode686
dev/core/src/com/google/gwt/dev/Precompile.java:686:
mergeInto.putRebindAnswer("com.google.gwt.lang.CollapsedPropertyHolder",
Removed code smell.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17010#newcode696
dev/core/src/com/google/gwt/dev/Precompile.java:696: }
Renumbering added.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17010#newcode759
dev/core/src/com/google/gwt/dev/Precompile.java:759:
module.getActiveLinkerNames()).size();
Added knowledge of soft-property collapsing to PropertyPermutations that
doesn't require spinning up entire Permutation objects.  Verified that a
distributed build with and without sharded generators produces expected
number of hard/soft permutations.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17011
File dev/core/src/com/google/gwt/dev/cfg/BindingProperty.java (right):

http://gwt-code-reviews.appspot.com/160801/diff/16001/17011#newcode271
dev/core/src/com/google/gwt/dev/cfg/BindingProperty.java:271: // Maps a
value to the set that contains that value
Deferring this since it's not critical to the patch.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17011#newcode272
dev/core/src/com/google/gwt/dev/cfg/BindingProperty.java:272:
Map<String, SortedSet<String>> map = new LinkedHashMap<String,
SortedSet<String>>();
Fixed.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17011#newcode276
dev/core/src/com/google/gwt/dev/cfg/BindingProperty.java:276: // Examine
each orinial value in the set
Fixed.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17011#newcode283
dev/core/src/com/google/gwt/dev/cfg/BindingProperty.java:283: // If so,
merge the existing set into this one and update pointers
Fixed.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17011#newcode299
dev/core/src/com/google/gwt/dev/cfg/BindingProperty.java:299: return
o1.toString().compareTo(o2.toString());
Done.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17013
File dev/core/src/com/google/gwt/dev/cfg/ModuleDefSchema.java (right):

http://gwt-code-reviews.appspot.com/160801/diff/16001/17013#newcode1034
dev/core/src/com/google/gwt/dev/cfg/ModuleDefSchema.java:1034: private
static class PropertyValueGlob {
Fixed.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17015
File dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
(right):

http://gwt-code-reviews.appspot.com/160801/diff/16001/17015#newcode240
dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java:240:
ResolveRebinds.exec(jprogram, permutation);
Fixed, though it also needs the property oracles.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17017
File dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
(right):

http://gwt-code-reviews.appspot.com/160801/diff/16001/17017#newcode1476
dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java:1476:
* function gwtOnLoad(errFn, modName, modBase){
Doc updated.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17018
File dev/core/src/com/google/gwt/dev/jjs/impl/ResolveRebinds.java
(right):

http://gwt-code-reviews.appspot.com/160801/diff/16001/17018#newcode204
dev/core/src/com/google/gwt/dev/jjs/impl/ResolveRebinds.java:204:
list.add(permutationId(oracle));
Fixed.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17018#newcode208
dev/core/src/com/google/gwt/dev/jjs/impl/ResolveRebinds.java:208:
JClassType fallbackType = null;
It's an optimization.  Renamed to "mostUsed"

http://gwt-code-reviews.appspot.com/160801/diff/16001/17018#newcode224
dev/core/src/com/google/gwt/dev/jjs/impl/ResolveRebinds.java:224:
program.getTypeJavaLangObject(), false, true, true, false, false);
Added getNonNullType() call.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17018#newcode247
dev/core/src/com/google/gwt/dev/jjs/impl/ResolveRebinds.java:247:
Collections.sort(permutations);
Done.

http://gwt-code-reviews.appspot.com/160801/diff/16001/17020
File
dev/core/super/com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/CollapsedPropertyHolder.java
(right):

http://gwt-code-reviews.appspot.com/160801/diff/16001/17020#newcode22
dev/core/super/com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/CollapsedPropertyHolder.java:22:
final class CollapsedPropertyHolder {
Removed the static initializer by having gwtOnLoad() assign the
permutationId field if it's in the compilation.

http://gwt-code-reviews.appspot.com/160801/diff/70001/71011
File dev/core/src/com/google/gwt/dev/Permutation.java (right):

http://gwt-code-reviews.appspot.com/160801/diff/70001/71011#newcode38
dev/core/src/com/google/gwt/dev/Permutation.java:38: private transient
SortedMap<String, String> lazyHardRebindAnswers;
Ignore this field, I don't want to blow away my draft comments uploading
a new patch.  I figured out how to shove all of the hard rebind answer
calculation into ResolveRebinds.

http://gwt-code-reviews.appspot.com/160801/show

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

To unsubscribe from this group, send email to 
google-web-toolkit-contributors+unsubscribegooglegroups.com or reply to this email with 
the words "REMOVE ME" as the subject.

Reply via email to