sounds *very* promising

On Fri, Nov 15, 2013 at 11:56 AM, Matthew Dempsky <[email protected]>wrote:

> Last night I wrote a quick one-off javac-based tool to parse and analyze
> all of GWT's source code, and to extract out inter-file dependencies (e.g.,
> dev/core/src/com/google/gwt/dev/GWTShell.java depends on
> dev/core/src/com/google/gwt/dev/cfg/ModuleDef.java).  I then ran a
> strongly-connected components analysis on the resulting graph to form a DAG.
>
> My expectation was our interdependencies would be hairy and cyclic enough
> that the DAG would probably already be pretty constrained.  But it turns
> out that our 6022 source files form 5206 SCCs.  If I first collapse all
> source files into a single vertex, then our 502 packages still form 394
> SCCs.  Ignoring test sources, I still get 246 packages grouped into 138
> SCCs.
>
> I think that's still too many to be immediately useful, so probably my
> next step is to write a tool to let me interactively find components that
> share a lot of incoming and outgoing edges and merge them together.
>
> If anyone has suggestions on additional criteria I can easily take into
> account, I'm interested.  (E.g., I know I should probably take into account
> super source and/or gwt.xml files, but javac doesn't know about those, so I
> just skipped them for now for simplicity. ;))
>
>
> Also, as something maybe interesting, here's a map from our third party
> libraries to source directories where we use them.  (For simplicity, I'm
> running this against the copy of GWT we're using within Google; e.g., we
> haven't merged the HtmlUnit/Jetty/JSON changes yet.  Oh, and this skips
> JUnit and Selenium for no particular reason, but JUnit uses are pretty
> obvious and Selenium is only used by RunStyleSelenium.)
>
> lib/apache/ant-1.6.5.jar:
>   dev/core/src/com/google/gwt/dev/resource/impl
>   dev/core/src/com/google/gwt/dev/shell/jetty
>   dev/core/test/com/google/gwt/dev/resource/impl
>
> lib/apache/commons/commons-collections-3.2.1.jar:
>   dev/core/test/org/apache/commons/collections/iterators
>   dev/core/test/org/apache/commons/collections/map
>   user/test/com/google/gwt/i18n
>   user/test/org/apache/commons/collections
>
> lib/apache/tapestry-util-text-4.0.2.jar:
>   user/src/com/google/gwt/i18n/rebind
>
> lib/cldr/21/icu4j.jar:
>   user/src/com/google/gwt/i18n/rebind
>
> lib/easymock/easymock-3.0.jar:
>   user/test/com/google/gwt/resources/rg
>   user/test/com/google/gwt/uibinder/rebind
>
> lib/eclipse/jdtCompilerAdapter-3.8.3.v20130121-145325.jar:
>   dev/core/src/com/google/gwt/dev/shell/jetty
>
> lib/eclipse/org.eclipse.jdt.core_3.8.3.v20130121-145325.jar:
>   dev/core/src/com/google/gwt/dev/javac
>   dev/core/src/com/google/gwt/dev/jdt
>   dev/core/src/com/google/gwt/dev/jjs/ast
>   dev/core/src/com/google/gwt/dev/jjs/impl
>   dev/core/test/com/google/gwt/dev/javac
>
> lib/guava/guava-15.0/guava-15.0-rebased.jar:
>   dev/codeserver/java/com/google/gwt/dev/codeserver
>   dev/core/src/com/google/gwt/core/ext
>   dev/core/src/com/google/gwt/core/ext/linker/impl
>   dev/core/src/com/google/gwt/core/linker
>   dev/core/src/com/google/gwt/dev
>   dev/core/src/com/google/gwt/dev/cfg
>   dev/core/src/com/google/gwt/dev/javac
>   dev/core/src/com/google/gwt/dev/javac/asm
>   dev/core/src/com/google/gwt/dev/javac/typemodel
>   dev/core/src/com/google/gwt/dev/jjs
>   dev/core/src/com/google/gwt/dev/jjs/ast
>   dev/core/src/com/google/gwt/dev/jjs/ast/js
>   dev/core/src/com/google/gwt/dev/jjs/impl
>   dev/core/src/com/google/gwt/dev/jjs/impl/codesplitter
>   dev/core/src/com/google/gwt/dev/jjs/impl/gflow
>   dev/core/src/com/google/gwt/dev/jjs/impl/gflow/cfg
>   dev/core/src/com/google/gwt/dev/jjs/impl/gflow/constants
>   dev/core/src/com/google/gwt/dev/jjs/impl/gflow/copy
>   dev/core/src/com/google/gwt/dev/jjs/impl/gflow/liveness
>   dev/core/src/com/google/gwt/dev/jjs/impl/gflow/unreachable
>   dev/core/src/com/google/gwt/dev/js
>   dev/core/src/com/google/gwt/dev/js/ast
>   dev/core/src/com/google/gwt/dev/resource/impl
>   dev/core/src/com/google/gwt/dev/shell
>   dev/core/src/com/google/gwt/dev/util
>   dev/core/src/com/google/gwt/dev/util/arg
>   dev/core/src/com/google/gwt/soyc
>   dev/core/test/com/google/gwt/core/ext/linker/impl
>   dev/core/test/com/google/gwt/dev/cfg
>   dev/core/test/com/google/gwt/dev/javac
>   dev/core/test/com/google/gwt/dev/jjs/impl
>   dev/core/test/com/google/gwt/dev/jjs/impl/codesplitter
>   dev/core/test/com/google/gwt/dev/jjs/impl/gflow
>   dev/core/test/com/google/gwt/dev/jjs/impl/gflow/cfg
>   dev/core/test/com/google/gwt/dev/js
>   user/src/com/google/gwt/editor/rebind
>   user/src/com/google/gwt/i18n/rebind
>   user/src/com/google/gwt/junit
>   user/src/com/google/gwt/resources/rg
>   user/src/com/google/gwt/safecss/shared
>   user/src/com/google/gwt/safehtml/rebind
>   user/src/com/google/gwt/safehtml/shared
>   user/src/com/google/gwt/uibinder/rebind
>   user/src/com/google/gwt/useragent/rebind
>   user/src/com/google/gwt/user/rebind
>   user/src/com/google/gwt/user/rebind/rpc
>   user/src/com/google/gwt/user/rebind/ui
>   user/src/com/google/gwt/validation/rebind
>   user/test/com/google/gwt/validation/rebind
>   user/test/org/hibernate/jsr303/tck/util
>
> lib/hibernate/validator/hibernate-validator-4.1.0.Final.jar:
>   user/src/com/google/gwt/validation/rebind
>   user/src/org/hibernate/validator/engine
>
> lib/hibernate/validator/tck/jsr303-tck-1.0.3.GA.jar:
>   user/test/org/hibernate/jsr303/tck/tests/bootstrap
>   user/test/org/hibernate/jsr303/tck/tests/bootstrap/customprovider
>   user/test/org/hibernate/jsr303/tck/tests/constraints/application
>   user/test/org/hibernate/jsr303/tck/tests/constraints/builtinconstraints
>
> user/test/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition
>
> user/test/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/nestedconstraintcomposition
>   user/test/org/hibernate/jsr303/tck/tests/constraints/constraintdefinition
>   user/test/org/hibernate/jsr303/tck/tests/constraints/customconstraint
>   user/test/org/hibernate/jsr303/tck/tests/constraints/groups
>   user/test/org/hibernate/jsr303/tck/tests/constraints/groups/groupsequence
>
> user/test/org/hibernate/jsr303/tck/tests/constraints/groups/groupsequenceisolation
>   user/test/org/hibernate/jsr303/tck/tests/constraints/groups/inheritance
>   user/test/org/hibernate/jsr303/tck/tests/constraints/inheritance
>
> user/test/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions
>   user/test/org/hibernate/jsr303/tck/tests/constraints/validatorresolution
>   user/test/org/hibernate/jsr303/tck/tests/messageinterpolation
>   user/test/org/hibernate/jsr303/tck/tests/metadata
>   user/test/org/hibernate/jsr303/tck/tests/traversableresolver
>   user/test/org/hibernate/jsr303/tck/tests/validation
>   user/test/org/hibernate/jsr303/tck/tests/validation/graphnavigation
>   user/test/org/hibernate/jsr303/tck/tests/validation/validatorcontext
>   user/test/org/hibernate/jsr303/tck/tests/validatorfactory
>   user/test/org/hibernate/jsr303/tck/tests/xmlconfiguration
>
> user/test/org/hibernate/jsr303/tck/tests/xmlconfiguration/constraintdeclaration
>
> user/test/org/hibernate/jsr303/tck/tests/xmlconfiguration/constraintdeclaration/clazzlevel
>
> user/test/org/hibernate/jsr303/tck/tests/xmlconfiguration/constraintdeclaration/fieldlevel
>
> user/test/org/hibernate/jsr303/tck/tests/xmlconfiguration/constraintdeclaration/propertylevel
>
> user/test/org/hibernate/jsr303/tck/tests/xmlconfiguration/constraintdefinition
>
> lib/htmlunit/htmlunit-2.9/htmlunit-2.9.jar:
>   dev/core/src/com/google/gwt/dev/shell
>   dev/core/test/com/google/gwt/core/ext/linker/impl
>   user/src/com/google/gwt/junit
>
> lib/htmlunit/htmlunit-2.9/htmlunit-core-js-2.9.jar:
>   dev/core/src/com/google/gwt/dev/shell
>   user/src/com/google/gwt/junit
>
> lib/javax/validation/validation-api-1.0.0.GA.jar:
>   user/src/com/google/gwt/editor/client
>   user/src/com/google/gwt/editor/client/impl
>   user/src/com/google/gwt/editor/client/testing
>   user/src/com/google/gwt/validation/client
>   user/src/com/google/gwt/validation/client/constraints
>   user/src/com/google/gwt/validation/client/impl
>   user/src/com/google/gwt/validation/client/impl/metadata
>   user/src/com/google/gwt/validation/client/spi
>   user/src/com/google/gwt/validation/rebind
>   user/src/com/google/web/bindery/requestfactory/gwt/client/testing
>   user/src/com/google/web/bindery/requestfactory/server
>   user/src/com/google/web/bindery/requestfactory/shared
>   user/src/com/google/web/bindery/requestfactory/shared/impl
>   user/src/javax/validation
>   user/src/org/hibernate/validator/engine
>   user/test/com/google/gwt/editor/client
>   user/test/com/google/gwt/editor/rebind/model
>   user/test/com/google/gwt/validation/client
>   user/test/com/google/gwt/validation/client/constraints
>   user/test/com/google/gwt/validation/client/impl
>   user/test/com/google/gwt/validation/client/impl/metadata
>   user/test/com/google/gwt/validation/example/client
>   user/test/com/google/gwt/validation/rebind
>   user/test/com/google/gwt/validation/testing/constraints
>   user/test/com/google/web/bindery/requestfactory/gwt/client
>   user/test/com/google/web/bindery/requestfactory/gwt/client/ui
>   user/test/com/google/web/bindery/requestfactory/server
>   user/test/com/google/web/bindery/requestfactory/shared
>   user/test/org/hibernate/jsr303/tck/tests/bootstrap
>   user/test/org/hibernate/jsr303/tck/tests/bootstrap/customprovider
>   user/test/org/hibernate/jsr303/tck/tests/constraints/application
>   user/test/org/hibernate/jsr303/tck/tests/constraints/builtinconstraints
>
> user/test/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition
>
> user/test/org/hibernate/jsr303/tck/tests/constraints/constraintcomposition/nestedconstraintcomposition
>   user/test/org/hibernate/jsr303/tck/tests/constraints/constraintdefinition
>   user/test/org/hibernate/jsr303/tck/tests/constraints/customconstraint
>   user/test/org/hibernate/jsr303/tck/tests/constraints/groups
>   user/test/org/hibernate/jsr303/tck/tests/constraints/groups/groupsequence
>
> user/test/org/hibernate/jsr303/tck/tests/constraints/groups/groupsequenceisolation
>   user/test/org/hibernate/jsr303/tck/tests/constraints/groups/inheritance
>   user/test/org/hibernate/jsr303/tck/tests/constraints/inheritance
>
> user/test/org/hibernate/jsr303/tck/tests/constraints/invalidconstraintdefinitions
>   user/test/org/hibernate/jsr303/tck/tests/constraints/validatorresolution
>   user/test/org/hibernate/jsr303/tck/tests/messageinterpolation
>   user/test/org/hibernate/jsr303/tck/tests/metadata
>   user/test/org/hibernate/jsr303/tck/tests/traversableresolver
>   user/test/org/hibernate/jsr303/tck/tests/validation
>   user/test/org/hibernate/jsr303/tck/tests/validation/graphnavigation
>   user/test/org/hibernate/jsr303/tck/tests/validation/validatorcontext
>   user/test/org/hibernate/jsr303/tck/tests/validatorfactory
>   user/test/org/hibernate/jsr303/tck/tests/xmlconfiguration
>
> user/test/org/hibernate/jsr303/tck/tests/xmlconfiguration/constraintdeclaration
>   user/test/org/hibernate/jsr303/tck/util
>
> lib/jetty/jetty-6.1.11.jar:
>   dev/codeserver/java/com/google/gwt/dev/codeserver
>   dev/core/src/com/google/gwt/dev/shell/jetty
>   user/src/com/google/gwt/junit
>   user/test/com/google/web/bindery/requestfactory/server
>
> lib/jscomp/20131014/compiler-rebased.jar:
>   dev/core/src/com/google/gwt/dev/js
>
> lib/jscomp/20131014/sourcemap-rebased.jar:
>   dev/codeserver/java/com/google/gwt/dev/codeserver
>   dev/core/src/com/google/gwt/core/ext/soyc
>   dev/core/src/com/google/gwt/core/linker
>   user/src/com/google/gwt/core/server
>   user/src/com/google/gwt/user/tools
>
> lib/jsr305/jsr305.jar:
>   user/test/com/google/gwt/core/client/testing
>   user/test/com/google/gwt/dev/jjs/test/unusedimports
>   user/test/com/google/gwt/dev/jjs/test/usedimports
>
> lib/protobuf/protobuf-2.5.0/protobuf-java-rebased-2.5.0.jar:
>   dev/core/src/com/google/gwt/dev/shell/remoteui
>   dev/core/test/com/google/gwt/dev/shell/remoteui
>
>
> lib/streamhtmlparser/streamhtmlparser-jsilver-r10/streamhtmlparser-jsilver-r10-1.5-rebased.jar:
>   user/src/com/google/gwt/safehtml/rebind
>   user/src/com/google/gwt/safehtml/shared
>
> lib/tomcat/servlet-api-2.5.jar:
>   dev/codeserver/java/com/google/gwt/dev/codeserver
>   dev/core/src/com/google/gwt/dev/shell
>   dev/core/src/com/google/gwt/dev/shell/log
>   user/src/com/google/gwt/core/server
>   user/src/com/google/gwt/junit/server
>   user/src/com/google/gwt/rpc/server
>   user/src/com/google/gwt/user/server
>   user/src/com/google/gwt/user/server/rpc
>   user/src/com/google/web/bindery/requestfactory/server
>   user/test/com/google/gwt/core/server
>   user/test/com/google/gwt/http/server
>   user/test/com/google/gwt/jsonp/server
>   user/test/com/google/gwt/module/server
>   user/test/com/google/gwt/user/server
>   user/test/com/google/gwt/user/server/rpc
>   user/test/com/google/gwt/user/server/runasync
>   user/test/com/google/gwt/user/server/ui
>   user/test/com/google/web/bindery/requestfactory/server
>
> lib/w3c/flute/flute-1.3-gg2.jar:
>   user/src/com/google/gwt/resources/css
>
> lib/w3c/sac/sac-1.3.jar:
>   user/src/com/google/gwt/junit
>   user/src/com/google/gwt/resources/css
>
>  --
> http://groups.google.com/group/Google-Web-Toolkit-Contributors
> ---
> You received this message because you are subscribed to the Google Groups
> "GWT Contributors" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT 
Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to