Skip to content

Instantly share code, notes, and snippets.

@xeno-by
Created September 21, 2012 10:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xeno-by/3760764 to your computer and use it in GitHub Desktop.
Save xeno-by/3760764 to your computer and use it in GitHub Desktop.
Static state declared in reflective universes
myke run C:\Projects\Kepler\sandbox\Test.scala
git: branch = ticket/6412, commit = c065bde5f5 Merge remote-tracking branch 'paulp/treecheckers' into 2.10.x (Paul Phillips, 20.09.2012 14:08:03 -07:00)
psi: filename = cmd.exe, arguments = /C c:\PROGRA~1\Java\JDK\bin\java.exe -cp "C:\Projects\Kepler\test\files\codelib\code.jar;C:\Projects\Kepler\lib\jline.jar;C:\Projects\Kepler\build\locker\lib\scala-partest.jar;C:\Projects\Kepler\lib\fjbg.jar;C:\Projects\Kepler\build\locker\classes\compiler;C:\Projects\Kepler\build\asm\classes;C:\Projects\Kepler\build\libs\forkjoin.jar;C:\Projects\Kepler\build\locker\classes\reflect;C:\Projects\Kepler\build\locker\classes\library" -Dscala.usejavacp=true -Dscala.repl.vids=1 -Dscala.repl.autoruncode=C:\Users\xeno.by/.scala_autorun -Dscala.repl.maxprintstring=0 scala.tools.nsc.Main -language:experimental.macros Test.scala, home = C:\Projects\Kepler\sandbox
psi: filename = cmd.exe, arguments = /C c:\PROGRA~1\Java\JDK\bin\java.exe -cp "C:\Projects\Kepler\test\files\codelib\code.jar;C:\Projects\Kepler\lib\jline.jar;C:\Projects\Kepler\build\locker\lib\scala-partest.jar;C:\Projects\Kepler\lib\fjbg.jar;C:\Projects\Kepler\build\locker\classes\compiler;C:\Projects\Kepler\build\asm\classes;C:\Projects\Kepler\build\libs\forkjoin.jar;C:\Projects\Kepler\build\locker\classes\reflect;C:\Projects\Kepler\build\locker\classes\library" -Dscala.usejavacp=true -Dscala.repl.vids=1 -Dscala.repl.autoruncode=C:\Users\xeno.by/.scala_autorun -Dscala.repl.maxprintstring=0 scala.tools.nsc.MainGenericRunner -language:experimental.macros Test , home = C:\Projects\Kepler\sandbox
############################################
generated by https://gist.github.com/3760748
############################################
scala.reflect.internal.AnnotationCheckers
==============
variable annotationCheckers # managed by plugins, so it's not our responsibility
scala.reflect.internal.AnnotationInfos
==============
object Annotation
object AnnotationInfo
object ArrayAnnotArg
value ArrayArgument
object LiteralAnnotArg
value LiteralArgument
object NestedAnnotArg
value NestedArgument
object ScalaSigBytes
object UnmappableAnnotArg
object UnmappableAnnotation
scala.reflect.internal.BaseTypeSeqs
==============
value CyclicInheritance
value undetBaseTypeSeq # a small null object
scala.reflect.internal.BuildUtils
==============
value build
scala.reflect.internal.Constants
==============
object Constant
scala.reflect.internal.Definitions
==============
object definitions
scala.reflect.internal.FlagSets
==============
object Flag
value NoFlags
scala.reflect.internal.Kinds
==============
object KindErrors
value NoKindErrors
scala.reflect.internal.Names
==============
value HASH_MASK
value HASH_SIZE
value NAME_SIZE
variable chrs # an array of 128k chars
value nameDebug
variable nc
value termHashtable # an array of 32k names
value typeHashtable # an array of 32k names
scala.reflect.internal.Positions
==============
value NoPosition
lazy value posAssigner
scala.reflect.internal.Printers
==============
object ConsoleWriter
value footnoteIndex # wraps Map[Class[_], WeakHashMap[Any, Int]](). the number of possible Class[_] instances is limited to 2, so this map doesn't leak
value showOuterTests
scala.reflect.internal.Scopes
==============
object EmptyScope # cannot be entered, so its size won't grow uncontrollably
object Scope
value maxRecursions
scala.reflect.internal.StdCreators
==============
object FixedMirrorTreeCreator
object FixedMirrorTypeCreator
scala.reflect.internal.StdNames
==============
object binarynme
object compactify
object fulltpnme
value javanme
object nme
lazy value sn
object tpnme
scala.reflect.internal.SymbolTable
==============
value NoPeriod
value NoRunId
object SimpleNameOrdering
value gen
variable infoTransformers
variable per
object perRunCaches # dangerous are its uses, not the object itself
variable ph
variable phStack # number of phases is limited, so we're fine
value traceSymbolActivity
object traceSymbols # only activated when sys.props contains "scalac.debug.syms"
lazy value treeBuild
scala.reflect.internal.Symbols
==============
object CyclicReference
lazy value NoSymbol
object TypeHistory
value emptySymbolArray
variable ids # an integer, despite its name suggesting a collection
variable nextexid
!!!DANGER!!! value originalOwner # is only used in GenASM/GenJVM. presentation compiler doesn't track it. reflection shouldn't either. to do that we could use isCompilerUniverse.
variable recursionTable # only used in Symbol.info, is never unbalanced after Symbol.info returns
value symbolIsNonVariant
value symbolIsPossibleInRefinement
scala.reflect.internal.Trees
==============
object EmptyTree
lazy value EmptyTreeTypeSubstituter
object ImportSelector
object Modifiers
lazy value duplicator
object emptyValDef
variable nodeCount
value treeNodeCount # statistics is only enabled when explicitly asked to, so it's not a problem
scala.reflect.internal.TypeDebugging
==============
object typeDebug
scala.reflect.internal.Types
==============
value AnyDepth
object ApproximateDependentMap
object ErroneousCollector
object ErrorType
object GenPolyType
value GlbFailure
object HasTypeMember
object HasTypeParams
object IsDependentCollector
value LogPendingBaseTypesThreshold
value LogPendingSubTypesThreshold
value LogVolatileThreshold
object NoPrefix
object NoType
object RecoverableCyclicReference
object StripAnnotationsMap
object TypeConstraint
value TypeTagg
object UnmappableTree
object WildcardType
object adaptToNewRunMap # stateless
variable basetypeRecursions # integer
value boundsContainType
lazy value commonOwnerMapObj # non-growable footprint
object deAlias
object dropAllRefinements
object dropRepeatedParamType
object dropSingletonType
value emptySymCount # an immutable null object
value emptySymMap # an immutable null object
value emptySymbolSet # an immutable null object
value enableTypeVarExperimentals
variable explainSwitch
value glbResults # see lubResults
variable globalGlbDepth
value globalGlbLimit
variable indent
value initialUniquesCapacity
value intersectionWitness # looks safe, because it's weak, and it goes from List[Type]
value isTypeVar
!!!DANGER!!! value lubResults # is cleared upon exiting lub/glb, but leak through lub1/glb1 into isSubType, Infer and BaseTypeSeqs
value maxTostringRecursions # integer
value missingAliasException
lazy value numericHiBound
lazy value numericLoBound
value pendingBaseTypes # is kept balanced in baseTypeOfNonClassTypeRef via a try/finally block
value pendingSubTypes # is kept balanced in isSubType via a try/finally block
value pendingVolatiles # is kept balanced in isVolatile via a try/finally block
value printLubs
value propagateParameterBoundsToTypeVars
value traceTypeVars
value shorthands # immutable
variable skolemizationLevel
variable subsametypeRecursions # integer
object toDeBruijn
variable tostringRecursions # integer
value typeContainsTypeVar
value typeHasAnnotations
value typeIsAny
value typeIsErroneous
value typeIsError
value typeIsExistentiallyBound
value typeIsHigherKinded
value typeIsNonClassType
value typeIsNotNull
value typeIsNothing
value typeIsSubTypeOfSerializable
value typeListIsEmpty
object typeVarToOriginMap # stateless
!!!DANGER!!! lazy value undoLog # is leaking
variable uniqueRunId
!!!DANGER!!! variable uniques # is leaking
object unwrapToClass # stateless
object unwrapToStableClass # stateless
object unwrapWrapperTypes # stateless
value verifyLubs
variable volatileRecursions # integer
object wildcardToTypeVarMap # stateless
scala.reflect.internal.transform.Transforms
==============
value erasureLazy # stateless except for a few constants
value refChecksLazy # stateless
value uncurryLazy # stateless
scala.reflect.runtime.JavaMirrors
==============
lazy value mirrors # WeakHashMap[ClassLoader, WeakReference[JavaMirror]]. might leak weak references, adding several dozens of bytes to a footprint of an active classloader. seems reasonable.
lazy value rootMirror # a single object
lazy value rootToLoader # WeakHashMap[Symbol, ClassLoader]. prevents classloaders from being collected if there are symbols loaded by these classloaders. reasonable.
lazy value syntheticCoreClasses # immutable
scala.reflect.runtime.SynchronizedOps
==============
lazy value nameLock
scala.reflect.runtime.SynchronizedTypes
==============
object indentLock
object indentLock
object lubglbLock
object lubglbLock
object subsametypeLock
object subsametypeLock
object toStringLock
object toStringLock
object uniqueLock
object uniqueLock
@xeno-by
Copy link
Author

xeno-by commented Sep 21, 2012

@xeno-by
Copy link
Author

xeno-by commented Sep 21, 2012

@xeno-by
Copy link
Author

xeno-by commented Sep 21, 2012

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment