diff options
author | Rich Hickey <richhickey@gmail.com> | 2007-07-02 20:11:41 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2007-07-02 20:11:41 +0000 |
commit | cbb04272ba5bf377cb2f24071915597e7ad7e437 (patch) | |
tree | d595194e5c5376de04145022af6b82470f1417cd | |
parent | 97795e1e3c44870ea715d602fa39ea61163bc3a4 (diff) |
interim checkin
-rw-r--r-- | src/jvm/clojure/lang/Module.java | 4 | ||||
-rw-r--r-- | src/jvm/clojure/lang/RT.java | 21 | ||||
-rw-r--r-- | src/jvm/clojure/lang/Symbol.java | 8 |
3 files changed, 12 insertions, 21 deletions
diff --git a/src/jvm/clojure/lang/Module.java b/src/jvm/clojure/lang/Module.java index 85d7a1cd..c99f9c25 100644 --- a/src/jvm/clojure/lang/Module.java +++ b/src/jvm/clojure/lang/Module.java @@ -31,11 +31,11 @@ Module(String name){ this.name = name; } -static public Module findModule(String name) throws Exception{ +static public Module findModule(String name){ return table.get(name); } -static public Module findOrCreateModule(String name) throws Exception{ +static public Module findOrCreateModule(String name){ Module module = findModule(name); if(module == null) module = table.putIfAbsent(name, new Module(name)); diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java index 36e0fa06..55a6fbba 100644 --- a/src/jvm/clojure/lang/RT.java +++ b/src/jvm/clojure/lang/RT.java @@ -18,10 +18,10 @@ import java.io.*; public class RT{ -static public Symbol T = new Symbol("t", null); -static public Var OUT; +static public Symbol T = new Symbol("t"); +final static public TRef OUT = new TRef(new OutputStreamWriter(System.out)); -static public Var _CT_MODULE; +final static public TRef CURRENT_MODULE = new TRef(Module.findOrCreateModule("clojure/user")); static public final Object[] EMPTY_ARRAY = new Object[]{}; static public final Character[] chars; @@ -32,19 +32,6 @@ static chars = new Character[256]; for(int i = 0; i < chars.length; i++) chars[i] = new Character((char) i); - try - { - OUT = Module.intern("clojure", "^out"); - _CT_MODULE = Module.intern("clojure", "^module"); - - - OUT.bind(new OutputStreamWriter(System.out)); - _CT_MODULE.bind((Module.findOrCreate("clj-user"))); - } - catch(Exception e) - { - e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. - } } static public int nextID(){ @@ -596,7 +583,7 @@ static public Object format(Object o, String s, Object... args) throws Exception if(o == null) w = new StringWriter(); else if(equal(o, T)) - w = (Writer) OUT.getValue(); + w = (Writer) OUT.currentVal(); else w = (Writer) o; doFormat(w, s, ArraySeq.create(args)); diff --git a/src/jvm/clojure/lang/Symbol.java b/src/jvm/clojure/lang/Symbol.java index cae743c2..0b1e1f5b 100644 --- a/src/jvm/clojure/lang/Symbol.java +++ b/src/jvm/clojure/lang/Symbol.java @@ -24,7 +24,7 @@ public String toString(){ return name; } -public Symbol(String name,String ns){ +public Symbol(String name, String ns){ this.name = name.intern(); if(ns != null) this.ns = ns.intern(); @@ -32,6 +32,10 @@ public Symbol(String name,String ns){ this.ns = null; } +public Symbol(String name){ + this(name, null); +} + public boolean equals(Object o){ if(this == o) return true; @@ -45,7 +49,7 @@ public boolean equals(Object o){ } public int hashCode(){ - return RT.hashCombine(name.hashCode(),RT.hash(ns)); + return RT.hashCombine(name.hashCode(), RT.hash(ns)); } } |