Class used to implement Scheme top-level environments.
EXPORT_SPECIFIED
public static final int EXPORT_SPECIFIED
LAZY_DECLARATIONS
public static final int LAZY_DECLARATIONS
NONSTATIC_SPECIFIED
public static final int NONSTATIC_SPECIFIED
STATIC_RUN_SPECIFIED
public static final int STATIC_RUN_SPECIFIED
STATIC_SPECIFIED
public static final int STATIC_SPECIFIED
SUPERTYPE_SPECIFIED
public static final int SUPERTYPE_SPECIFIED
alwaysCompile
public static boolean alwaysCompile
Flag to force compilation, even when not required.
debugPrintExpr
public static boolean debugPrintExpr
dumpZipPrefix
public static String dumpZipPrefix
Used to control which .zip file dumps are generated.
interactiveCounter
public static int interactiveCounter
Numeric identifier for this interactive "command".
Incremented by Shell.run, and used to set the module name,
and maybe the name of the --debug-dump-zip output file.
We increment and use this counter purely to ease debugging.
(Since each module gets its own ClassLoader, they don't
need to be named differently, and it doesn't matter
if there is a race condition on the counter.)
evalToClass
public static Class evalToClass(Compilation comp)
getInterfaces
public final ClassType[] getInterfaces()
getJavaName
public String getJavaName()
getSuperType
public final ClassType getSuperType()
isStatic
public final boolean isStatic()
readExternal
public void readExternal(ObjectInput in)
throws IOException,
ClassNotFoundException
setInterfaces
public final void setInterfaces(ClassType[] s)
setSuperType
public final void setSuperType(ClassType s)
setupLiterals
public static void setupLiterals()
Call-back from compiled code to initialize literals in immediate mode.
In non-immediate mode (i.e. generating class files) the compiler emits
code to "re-construct" literal values. However, in immediate mode
that would be wasteful, plus we would get values that are similar (equals)
to but not necessarily identical (eq) to the compile-time literal.
So we need to pass the literal values to the compiled code, by using
reflectiion to initialize various static fields. This method does that.
It is called from start of the the generated static initializer, which
helps makes things more consistent between immediate and non-immediate
mode.
staticInitRun
public boolean staticInitRun()
True if module body (i.e. run) is called by class initializer.
writeExternal
public void writeExternal(ObjectOutput out)
throws IOException