Code to analyze a source base for project lambda
Neal Gafter
neal at gafter.com
Sat Feb 6 15:29:59 PST 2010
On Fri, Feb 5, 2010 at 1:13 AM, Mark Mahieu <markmahieu at googlemail.com>wrote:
> I think I've identified a smallish bug in Neal's analysis code, having
> cross referenced its output with that of my own.
>
Yes, that was a bug, and it did skew the results in a way that erroneously
favored both supporting SAM classes and nonlexical "this". The corrected
stats for openjdk6 are below. The corrected code can be downloaded from
http://www.javac.info/ijavac-Main.java
Cheers,
Neal
Total anonymous classes: 1177
But with no constructor args: 1089
And defining only one method: 900
And where the type is a SAM type: 828
Those that are recursive: 0
Those that reference 'this': 2
Those that reference an enclosing 'this': 49
Those that are interfaces: 771
Those that are classes: 57
Total distinct interfaces: 48
Total distinct classes: 11
The distinct interfaces were
com.sun.java.util.jar.pack.Histogram.BitMetric
com.sun.jdi.connect.Transport
com.sun.jmx.remote.internal.NotificationBufferFilter
com.sun.media.sound.ModelTransform
com.sun.net.ssl.HostnameVerifier
com.sun.security.auth.callback.DialogCallbackHandler.Action
com.sun.tools.example.debug.bdi.InputListener
com.sun.tools.example.debug.bdi.OutputListener
com.sun.tools.example.debug.expr.ExpressionParser.GetFrame
com.sun.tools.hat.internal.oql.ObjectVisitor
com.sun.tools.jdi.CommandSender
com.sun.tools.script.shell.Main.Command
java.awt.Conditional
java.awt.KeyEventPostProcessor
java.awt.event.ActionListener
java.awt.event.HierarchyListener
java.beans.ExceptionListener
java.beans.PropertyChangeListener
java.beans.VetoableChangeListener
java.io.FilenameFilter
java.io.ObjectInputValidation
java.lang.Runnable
java.net.CookiePolicy
java.net.HttpCookie.CookieAttributeAssignor
java.security.PrivilegedAction
java.security.PrivilegedExceptionAction
java.util.Comparator
java.util.concurrent.Callable
java.util.concurrent.Executor
java.util.concurrent.ThreadFactory
javax.imageio.event.IIOReadWarningListener
javax.imageio.event.IIOWriteWarningListener
javax.management.NotificationListener
javax.swing.UIDefaults.ActiveValue
javax.swing.UIDefaults.LazyValue
javax.swing.event.CaretListener
javax.swing.event.ChangeListener
javax.swing.event.HyperlinkListener
javax.xml.crypto.KeySelectorResult
javax.xml.crypto.NodeSetData
sun.awt.RequestFocusController
sun.java2d.StateTracker
sun.java2d.cmm.ProfileActivator
sun.java2d.loops.ProcessPath.EndSubPathHandler
sun.misc.JavaIODeleteOnExitAccess
sun.misc.JavaNetAccess
sun.nio.ch.FileChannelImpl.FileLockTable.Releaser
sun.nio.ch.Interruptible
The distinct classes were:
com.sun.tools.example.debug.tty.Commands.AsyncExecution
com.sun.tools.hat.internal.model.AbstractJavaHeapObjectVisitor
com.sun.tools.hat.internal.util.Comparer
java.awt.font.TextLine.Function
java.io.OutputStream
java.nio.charset.CoderResult.Cache
java.util.TimerTask
java.util.regex.Pattern.CharProperty
java.util.regex.Pattern.CharPropertyNames.CharPropertyFactory
java.util.regex.Pattern.CharPropertyNames.CloneableProperty
javax.swing.AbstractAction
More information about the lambda-dev
mailing list