diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-09-22 13:49:13 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-09-22 13:49:13 +0000 |
commit | ca5ba2de079ba6d18781c14c49136d5682934514 (patch) | |
tree | 817ce639d1483ed815f5330cfc935bb3f17b5921 /src/jvm | |
parent | 454da80b478c4901c1d99cf56cb957b2aee7caac (diff) |
added print-method multimethod and switched printing to use it
built on contribution from Erik Soehnel
Diffstat (limited to 'src/jvm')
-rw-r--r-- | src/jvm/clojure/lang/Compiler.java | 3 | ||||
-rw-r--r-- | src/jvm/clojure/lang/RT.java | 7 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java index aae4cc9b..6f1351cd 100644 --- a/src/jvm/clojure/lang/Compiler.java +++ b/src/jvm/clojure/lang/Compiler.java @@ -4324,7 +4324,7 @@ public static Object load(Reader rdr, String sourcePath, String sourceName) thro } return ret; } - +/* public static void main(String[] args) throws Exception{ RT.init(); for(String file : args) @@ -4389,4 +4389,5 @@ SOURCE, "REPL" Var.popThreadBindings(); } } +*/ } diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java index 06379eb3..2a01ab36 100644 --- a/src/jvm/clojure/lang/RT.java +++ b/src/jvm/clojure/lang/RT.java @@ -202,7 +202,7 @@ final static Var ALLOW_UNRESOLVED_VARS = Var.intern(CLOJURE_NS, Symbol.create("* final static Var IN_NS_VAR = Var.intern(CLOJURE_NS, Symbol.create("in-ns"), F); final static Var NS_VAR = Var.intern(CLOJURE_NS, Symbol.create("ns"), F); - +static final Var PRINT_METHOD = Var.intern(CLOJURE_NS, Symbol.create("print-method")); //final static Var IMPORTS = Var.intern(CLOJURE_NS, Symbol.create("*imports*"), DEFAULT_IMPORTS); final static IFn inNamespace = new AFn(){ public Object invoke(Object arg1) throws Exception{ @@ -1156,7 +1156,9 @@ static public boolean suppressRead(){ static public void print(Object x, Writer w) throws Exception{ - //todo - make extensible + //call multimethod + PRINT_METHOD.invoke(x, w); +/* boolean readably = booleanCast(PRINT_READABLY.get()); if(x instanceof Obj) { @@ -1318,6 +1320,7 @@ static public void print(Object x, Writer w) throws Exception{ w.write('M'); } else w.write(x.toString()); + */ } private static void printInnerSeq(ISeq x, Writer w) throws Exception{ |