summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/jvm/clojure/lang/Compiler.java11
-rw-r--r--src/jvm/clojure/lang/RT.java10
2 files changed, 12 insertions, 9 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java
index 1fc04492..4800124a 100644
--- a/src/jvm/clojure/lang/Compiler.java
+++ b/src/jvm/clojure/lang/Compiler.java
@@ -237,9 +237,6 @@ static final public Var INSTANCE = Var.intern(Namespace.findOrCreate(Symbol.inte
static final public Var ADD_ANNOTATIONS = Var.intern(Namespace.findOrCreate(Symbol.intern("clojure.core")),
Symbol.intern("add-annotations"));
-//boolean
-static final public Var UNCHECKED_MATH = Var.intern(Namespace.findOrCreate(Symbol.intern("clojure.core")),
- Symbol.intern("*unchecked-math*"), Boolean.FALSE).setDynamic();
//Integer
static final public Var LINE = Var.create(0).setDynamic();
@@ -817,7 +814,7 @@ static public abstract class HostExpr implements Expr, MaybePrimitiveExpr{
{
Method m = null;
gen.checkCast(NUMBER_TYPE);
- if(RT.booleanCast(UNCHECKED_MATH.deref()))
+ if(RT.booleanCast(RT.UNCHECKED_MATH.deref()))
{
if(paramType == int.class)
m = Method.getMethod("int uncheckedIntCast(Object)");
@@ -1242,7 +1239,7 @@ static abstract class MethodExpr extends HostExpr{
{
final MaybePrimitiveExpr pe = (MaybePrimitiveExpr) e;
pe.emitUnboxed(C.EXPRESSION, objx, gen);
- if(RT.booleanCast(UNCHECKED_MATH.deref()))
+ if(RT.booleanCast(RT.UNCHECKED_MATH.deref()))
gen.invokeStatic(RT_TYPE, Method.getMethod("int uncheckedIntCast(long)"));
else
gen.invokeStatic(RT_TYPE, Method.getMethod("int intCast(long)"));
@@ -6725,7 +6722,7 @@ public static Object load(Reader rdr, String sourcePath, String sourceName) thro
RT.CURRENT_NS, RT.CURRENT_NS.deref(),
LINE_BEFORE, pushbackReader.getLineNumber(),
LINE_AFTER, pushbackReader.getLineNumber()
- ,UNCHECKED_MATH, UNCHECKED_MATH.deref()
+ ,RT.UNCHECKED_MATH, RT.UNCHECKED_MATH.deref()
,RT.WARN_ON_REFLECTION, RT.WARN_ON_REFLECTION.deref()
));
@@ -6850,7 +6847,7 @@ public static Object compile(Reader rdr, String sourcePath, String sourceName) t
CONSTANT_IDS, new IdentityHashMap(),
KEYWORDS, PersistentHashMap.EMPTY,
VARS, PersistentHashMap.EMPTY
- ,UNCHECKED_MATH, UNCHECKED_MATH.deref()
+ ,RT.UNCHECKED_MATH, RT.UNCHECKED_MATH.deref()
,RT.WARN_ON_REFLECTION, RT.WARN_ON_REFLECTION.deref()
// ,LOADER, RT.makeClassLoader()
));
diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java
index 1b37bb6f..8dc55f2f 100644
--- a/src/jvm/clojure/lang/RT.java
+++ b/src/jvm/clojure/lang/RT.java
@@ -188,6 +188,10 @@ static Keyword DECLARED_KEY = Keyword.intern(null, "declared");
static Keyword DOC_KEY = Keyword.intern(null, "doc");
final static public Var USE_CONTEXT_CLASSLOADER =
Var.intern(CLOJURE_NS, Symbol.intern("*use-context-classloader*"), T).setDynamic();
+//boolean
+static final public Var UNCHECKED_MATH = Var.intern(Namespace.findOrCreate(Symbol.intern("clojure.core")),
+ Symbol.intern("*unchecked-math*"), Boolean.FALSE).setDynamic();
+
//final static public Var CURRENT_MODULE = Var.intern(Symbol.intern("clojure.core", "current-module"),
// Module.findOrCreateModule("clojure/user"));
@@ -399,7 +403,8 @@ static public void load(String scriptbase, boolean failIfNotFound) throws Except
try {
Var.pushThreadBindings(
RT.map(CURRENT_NS, CURRENT_NS.deref(),
- WARN_ON_REFLECTION, WARN_ON_REFLECTION.deref()));
+ WARN_ON_REFLECTION, WARN_ON_REFLECTION.deref()
+ ,RT.UNCHECKED_MATH, RT.UNCHECKED_MATH.deref()));
loaded = (loadClassForName(scriptbase.replace('/', '.') + LOADER_SUFFIX) != null);
}
finally {
@@ -421,7 +426,8 @@ static void doInit() throws Exception{
Var.pushThreadBindings(
RT.map(CURRENT_NS, CURRENT_NS.deref(),
- WARN_ON_REFLECTION, WARN_ON_REFLECTION.deref()));
+ WARN_ON_REFLECTION, WARN_ON_REFLECTION.deref()
+ ,RT.UNCHECKED_MATH, RT.UNCHECKED_MATH.deref()));
try {
Symbol USER = Symbol.intern("user");
Symbol CLOJURE = Symbol.intern("clojure.core");