diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/jvm/clojure/lang/Compiler.java | 4 | ||||
-rw-r--r-- | src/jvm/clojure/lang/RT.java | 32 | ||||
-rw-r--r-- | src/jvm/clojure/lang/Repl.java | 4 | ||||
-rw-r--r-- | src/jvm/clojure/lang/Script.java | 4 |
4 files changed, 30 insertions, 14 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java index bb933d7a..c949d8d7 100644 --- a/src/jvm/clojure/lang/Compiler.java +++ b/src/jvm/clojure/lang/Compiler.java @@ -3423,8 +3423,8 @@ RT.CURRENT_NS, RT.CURRENT_NS.get() return ret; } -public static void main(String[] args){ - +public static void main(String[] args) throws Exception{ + RT.init(); for(String file : args) try { diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java index 8521e0f8..4762e101 100644 --- a/src/jvm/clojure/lang/RT.java +++ b/src/jvm/clojure/lang/RT.java @@ -190,15 +190,15 @@ static return arg1 == arg2 ? RT.T : RT.F; } }); - try - { - InputStream ins = RT.class.getResourceAsStream("/boot.clj"); - Compiler.load(new InputStreamReader(ins)); - } - catch(Exception e) - { - throw new IllegalStateException("Error loading boot.clj", e); - } +// try +// { +// InputStream ins = RT.class.getResourceAsStream("/boot.clj"); +// Compiler.load(new InputStreamReader(ins)); +// } +// catch(Exception e) +// { +// throw new IllegalStateException("Error loading boot.clj", e); +// } } //static // { @@ -208,6 +208,20 @@ static // } +static public void init() throws Exception{ + try + { + Var.pushThreadBindings(RT.map(Compiler.SOURCE_PATH, "boot.clj", + Compiler.SOURCE, "boot.clj")); + InputStream ins = RT.class.getResourceAsStream("/boot.clj"); + Compiler.load(new InputStreamReader(ins)); + } + finally + { + Var.popThreadBindings(); + } +} + static public int nextID(){ return id.getAndIncrement(); } diff --git a/src/jvm/clojure/lang/Repl.java b/src/jvm/clojure/lang/Repl.java index 26273e87..b439f57e 100644 --- a/src/jvm/clojure/lang/Repl.java +++ b/src/jvm/clojure/lang/Repl.java @@ -19,8 +19,8 @@ public class Repl{ static final Symbol REFER = Symbol.create("clojure", "refer"); static final Symbol QUOTE = Symbol.create("quote"); static final Symbol CLOJURE = Symbol.create("clojure"); -public static void main(String[] args){ - +public static void main(String[] args) throws Exception{ + RT.init(); for(String file : args) try { diff --git a/src/jvm/clojure/lang/Script.java b/src/jvm/clojure/lang/Script.java index 781d41d3..2e9a9003 100644 --- a/src/jvm/clojure/lang/Script.java +++ b/src/jvm/clojure/lang/Script.java @@ -16,7 +16,9 @@ import java.io.OutputStreamWriter; import java.io.IOException; public class Script{ -public static void main(String[] args){ +public static void main(String[] args) throws Exception{ + + RT.init(); for(String file : args) try |