summaryrefslogtreecommitdiff
path: root/src/jvm
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2008-09-22 13:49:13 +0000
committerRich Hickey <richhickey@gmail.com>2008-09-22 13:49:13 +0000
commitca5ba2de079ba6d18781c14c49136d5682934514 (patch)
tree817ce639d1483ed815f5330cfc935bb3f17b5921 /src/jvm
parent454da80b478c4901c1d99cf56cb957b2aee7caac (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.java3
-rw-r--r--src/jvm/clojure/lang/RT.java7
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{