summaryrefslogtreecommitdiff
path: root/src/jvm/clojure
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2008-11-08 18:53:02 +0000
committerRich Hickey <richhickey@gmail.com>2008-11-08 18:53:02 +0000
commit3d1daab442b6f6067d5f2fff066bdcee60f9379a (patch)
tree888561e35331358588eec7c5f815c398c8764813 /src/jvm/clojure
parent250c99e43c43a63542b2791d7329087cc26504ea (diff)
Interim checkin - DO NOT USE!!
Unless you are interested in helping test: Moved clojure ns to clojure.core, moved set/xml etc up out of dirs New binding syntax (breaking change) for: doseq dotimes with-open when-first if-let when-let plus: new print-dup functionality for replica generation of compilation constants new *print-dup* flag, prints duplicators back to simplified readably printing for repl readable fns, as long as they are not closures
Diffstat (limited to 'src/jvm/clojure')
-rw-r--r--src/jvm/clojure/lang/Compiler.java44
-rw-r--r--src/jvm/clojure/lang/LispReader.java24
-rw-r--r--src/jvm/clojure/lang/MultiFn.java10
-rw-r--r--src/jvm/clojure/lang/RT.java20
-rw-r--r--src/jvm/clojure/lang/Repl.java24
5 files changed, 61 insertions, 61 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java
index 4ee53cef..ace59409 100644
--- a/src/jvm/clojure/lang/Compiler.java
+++ b/src/jvm/clojure/lang/Compiler.java
@@ -62,10 +62,10 @@ static final Symbol MONITOR_EXIT = Symbol.create("monitor-exit");
static final Symbol NEW = Symbol.create("new");
//static final Symbol UNQUOTE = Symbol.create("unquote");
//static final Symbol UNQUOTE_SPLICING = Symbol.create("unquote-splicing");
-//static final Symbol SYNTAX_QUOTE = Symbol.create("clojure", "syntax-quote");
-static final Symbol LIST = Symbol.create("clojure", "list");
-static final Symbol HASHMAP = Symbol.create("clojure", "hash-map");
-static final Symbol VECTOR = Symbol.create("clojure", "vector");
+//static final Symbol SYNTAX_QUOTE = Symbol.create("clojure.core", "syntax-quote");
+static final Symbol LIST = Symbol.create("clojure.core", "list");
+static final Symbol HASHMAP = Symbol.create("clojure.core", "hash-map");
+static final Symbol VECTOR = Symbol.create("clojure.core", "vector");
static final Symbol _AMP_ = Symbol.create("&");
static final Symbol ISEQ = Symbol.create("clojure.lang.ISeq");
@@ -177,7 +177,7 @@ static final public Var IN_CATCH_FINALLY = Var.create(null);
static final public Var SOURCE = Var.create("NO_SOURCE_FILE");
//String
-static final public Var SOURCE_PATH = Var.intern(Namespace.findOrCreate(Symbol.create("clojure")),
+static final public Var SOURCE_PATH = Var.intern(Namespace.findOrCreate(Symbol.create("clojure.core")),
Symbol.create("*file*"), null);
//Integer
@@ -2871,7 +2871,7 @@ static public class FnExpr implements Expr{
String basename = enclosingMethod != null ?
(enclosingMethod.fn.name + "$")
: //"clojure.fns." +
- (munge(currentNS().name.name) + ".");
+ (munge(currentNS().name.name) + "$");
if(RT.second(form) instanceof Symbol)
name = ((Symbol) RT.second(form)).name;
fn.simpleName = ((name != null ?
@@ -3172,27 +3172,27 @@ static public class FnExpr implements Expr{
loader = (DynamicClassLoader) LOADER.get();
bytecode = cw.toByteArray();
-// String path = "gen" + File.separator + internalName + ".class";
-// File cf = new File(path);
-// cf.getParentFile().mkdirs();
-// cf.createNewFile();
-// OutputStream cfs = new FileOutputStream(cf);
-// try
-// {
-// cfs.write(bytecode);
-// }
-// finally
-// {
-// cfs.close();
-// }
+ String path = "gen" + File.separator + internalName + ".class";
+ File cf = new File(path);
+ cf.getParentFile().mkdirs();
+ cf.createNewFile();
+ OutputStream cfs = new FileOutputStream(cf);
+ try
+ {
+ cfs.write(bytecode);
+ }
+ finally
+ {
+ cfs.close();
+ }
}
synchronized Class getCompiledClass(){
if(compiledClass == null)
try
{
- //compiledClass = RT.classForName(name);//loader.defineClass(name, bytecode);
- compiledClass = loader.defineClass(name, bytecode);
+ compiledClass = RT.classForName(name);//loader.defineClass(name, bytecode);
+ //compiledClass = loader.defineClass(name, bytecode);
}
catch(Exception e)
{
@@ -3206,7 +3206,7 @@ static public class FnExpr implements Expr{
}
public void emit(C context, FnExpr fn, GeneratorAdapter gen){
- getCompiledClass();
+ //getCompiledClass();
//emitting a Fn means constructing an instance, feeding closed-overs from enclosing scope, if any
//fn arg is enclosing fn, not this
gen.newInstance(fntype);
diff --git a/src/jvm/clojure/lang/LispReader.java b/src/jvm/clojure/lang/LispReader.java
index 963253d0..4847692d 100644
--- a/src/jvm/clojure/lang/LispReader.java
+++ b/src/jvm/clojure/lang/LispReader.java
@@ -27,16 +27,16 @@ static final Symbol THE_VAR = Symbol.create("var");
//static Symbol SYNTAX_QUOTE = Symbol.create(null, "syntax-quote");
//static Symbol UNQUOTE = Symbol.create(null, "unquote");
//static Symbol UNQUOTE_SPLICING = Symbol.create(null, "unquote-splicing");
-static Symbol CONCAT = Symbol.create("clojure", "concat");
-static Symbol LIST = Symbol.create("clojure", "list");
-static Symbol APPLY = Symbol.create("clojure", "apply");
-static Symbol HASHMAP = Symbol.create("clojure", "hash-map");
-static Symbol HASHSET = Symbol.create("clojure", "hash-set");
-static Symbol VECTOR = Symbol.create("clojure", "vector");
-static Symbol WITH_META = Symbol.create("clojure", "with-meta");
-static Symbol META = Symbol.create("clojure", "meta");
-static Symbol DEREF = Symbol.create("clojure", "deref");
-//static Symbol DEREF_BANG = Symbol.create("clojure", "deref!");
+static Symbol CONCAT = Symbol.create("clojure.core", "concat");
+static Symbol LIST = Symbol.create("clojure.core", "list");
+static Symbol APPLY = Symbol.create("clojure.core", "apply");
+static Symbol HASHMAP = Symbol.create("clojure.core", "hash-map");
+static Symbol HASHSET = Symbol.create("clojure.core", "hash-set");
+static Symbol VECTOR = Symbol.create("clojure.core", "vector");
+static Symbol WITH_META = Symbol.create("clojure.core", "with-meta");
+static Symbol META = Symbol.create("clojure.core", "meta");
+static Symbol DEREF = Symbol.create("clojure.core", "deref");
+//static Symbol DEREF_BANG = Symbol.create("clojure.core", "deref!");
static IFn[] macros = new IFn[256];
static IFn[] dispatchMacros = new IFn[256];
@@ -50,7 +50,7 @@ static Pattern intPat =
static Pattern ratioPat = Pattern.compile("([-+]?[0-9]+)/([0-9]+)");
static Pattern floatPat = Pattern.compile("[-+]?[0-9]+(\\.[0-9]+)?([eE][-+]?[0-9]+)?[M]?");
static final Symbol SLASH = Symbol.create("/");
-static final Symbol CLOJURE_SLASH = Symbol.create("clojure","/");
+static final Symbol CLOJURE_SLASH = Symbol.create("clojure.core","/");
//static Pattern accessorPat = Pattern.compile("\\.[a-zA-Z_]\\w*");
//static Pattern instanceMemberPat = Pattern.compile("\\.([a-zA-Z_][\\w\\.]*)\\.([a-zA-Z_]\\w*)");
//static Pattern staticMemberPat = Pattern.compile("([a-zA-Z_][\\w\\.]*)\\.([a-zA-Z_]\\w*)");
@@ -270,7 +270,7 @@ static private Object interpretToken(String s) throws Exception{
{
return SLASH;
}
- else if(s.equals("clojure//"))
+ else if(s.equals("clojure.core//"))
{
return CLOJURE_SLASH;
}
diff --git a/src/jvm/clojure/lang/MultiFn.java b/src/jvm/clojure/lang/MultiFn.java
index 527a0d38..4f127491 100644
--- a/src/jvm/clojure/lang/MultiFn.java
+++ b/src/jvm/clojure/lang/MultiFn.java
@@ -23,11 +23,11 @@ IPersistentMap preferTable;
IPersistentMap methodCache;
Object cachedHierarchy;
-static final Var assoc = RT.var("clojure", "assoc");
-static final Var dissoc = RT.var("clojure", "dissoc");
-static final Var isa = RT.var("clojure", "isa?");
-static final Var parents = RT.var("clojure", "parents");
-static final Var hierarchy = RT.var("clojure", "global-hierarchy");
+static final Var assoc = RT.var("clojure.core", "assoc");
+static final Var dissoc = RT.var("clojure.core", "dissoc");
+static final Var isa = RT.var("clojure.core", "isa?");
+static final Var parents = RT.var("clojure.core", "parents");
+static final Var hierarchy = RT.var("clojure.core", "global-hierarchy");
public MultiFn(IFn dispatchFn, Object defaultDispatchVal) throws Exception{
this.dispatchFn = dispatchFn;
diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java
index 9ab615e5..741dba22 100644
--- a/src/jvm/clojure/lang/RT.java
+++ b/src/jvm/clojure/lang/RT.java
@@ -164,7 +164,7 @@ Symbol.create("SuppressWarnings"), SuppressWarnings.class
// single instance of UTF-8 Charset, so as to avoid catching UnsupportedCharsetExceptions everywhere
static public Charset UTF8 = Charset.forName("UTF-8");
-static public final Namespace CLOJURE_NS = Namespace.findOrCreate(Symbol.create("clojure"));
+static public final Namespace CLOJURE_NS = Namespace.findOrCreate(Symbol.create("clojure.core"));
//static final Namespace USER_NS = Namespace.findOrCreate(Symbol.create("user"));
final static public Var OUT =
Var.intern(CLOJURE_NS, Symbol.create("*out*"), new OutputStreamWriter(System.out, UTF8));
@@ -182,7 +182,7 @@ static Keyword LINE_KEY = Keyword.intern(null, "line");
static Keyword FILE_KEY = Keyword.intern(null, "file");
final static public Var USE_CONTEXT_CLASSLOADER =
Var.intern(CLOJURE_NS, Symbol.create("*use-context-classloader*"), null);
-//final static public Var CURRENT_MODULE = Var.intern(Symbol.create("clojure", "current-module"),
+//final static public Var CURRENT_MODULE = Var.intern(Symbol.create("clojure.core", "current-module"),
// Module.findOrCreateModule("clojure/user"));
final static Symbol LOAD_FILE = Symbol.create("load-file");
@@ -222,7 +222,7 @@ final static IFn inNamespace = new AFn(){
// if(!refers.isBound())
// {
// refers.bindRoot(PersistentHashMap.EMPTY);
-// Compiler.eval(list(Symbol.create("clojure", "refer"), EXPORTS));
+// Compiler.eval(list(Symbol.create("clojure.core", "refer"), EXPORTS));
// }
return ns;
}
@@ -377,12 +377,12 @@ static public void init() throws Exception{
}
static void doInit() throws Exception{
- loadResourceScript(RT.class, "clojure/boot.clj");
+ loadResourceScript(RT.class, "clojure/core.clj");
loadResourceScript(RT.class, "clojure/proxy.clj", false);
loadResourceScript(RT.class, "clojure/genclass.clj", false);
- loadResourceScript(RT.class, "clojure/zip/zip.clj", false);
- loadResourceScript(RT.class, "clojure/xml/xml.clj", false);
- loadResourceScript(RT.class, "clojure/set/set.clj", false);
+ loadResourceScript(RT.class, "clojure/zip.clj", false);
+ loadResourceScript(RT.class, "clojure/xml.clj", false);
+ loadResourceScript(RT.class, "clojure/set.clj", false);
Var.pushThreadBindings(
RT.map(CURRENT_NS, CURRENT_NS.get(),
@@ -390,10 +390,10 @@ static void doInit() throws Exception{
try
{
Symbol USER = Symbol.create("user");
- Symbol CLOJURE = Symbol.create("clojure");
+ Symbol CLOJURE = Symbol.create("clojure.core");
- Var in_ns = var("clojure", "in-ns");
- Var refer = var("clojure", "refer");
+ Var in_ns = var("clojure.core", "in-ns");
+ Var refer = var("clojure.core", "refer");
in_ns.invoke(USER);
refer.invoke(CLOJURE);
maybeLoadResourceScript("user.clj");
diff --git a/src/jvm/clojure/lang/Repl.java b/src/jvm/clojure/lang/Repl.java
index daeba5a8..0c31d045 100644
--- a/src/jvm/clojure/lang/Repl.java
+++ b/src/jvm/clojure/lang/Repl.java
@@ -18,19 +18,19 @@ import java.io.PrintWriter;
public class Repl{
static final Symbol USER = Symbol.create("user");
-static final Symbol CLOJURE = Symbol.create("clojure");
+static final Symbol CLOJURE = Symbol.create("clojure.core");
-static final Var in_ns = RT.var("clojure", "in-ns");
-static final Var refer = RT.var("clojure", "refer");
-static final Var ns = RT.var("clojure", "*ns*");
-static final Var warn_on_reflection = RT.var("clojure", "*warn-on-reflection*");
-static final Var print_meta = RT.var("clojure", "*print-meta*");
-static final Var print_length = RT.var("clojure", "*print-length*");
-static final Var print_level = RT.var("clojure", "*print-level*");
-static final Var star1 = RT.var("clojure", "*1");
-static final Var star2 = RT.var("clojure", "*2");
-static final Var star3 = RT.var("clojure", "*3");
-static final Var stare = RT.var("clojure", "*e");
+static final Var in_ns = RT.var("clojure.core", "in-ns");
+static final Var refer = RT.var("clojure.core", "refer");
+static final Var ns = RT.var("clojure.core", "*ns*");
+static final Var warn_on_reflection = RT.var("clojure.core", "*warn-on-reflection*");
+static final Var print_meta = RT.var("clojure.core", "*print-meta*");
+static final Var print_length = RT.var("clojure.core", "*print-length*");
+static final Var print_level = RT.var("clojure.core", "*print-level*");
+static final Var star1 = RT.var("clojure.core", "*1");
+static final Var star2 = RT.var("clojure.core", "*2");
+static final Var star3 = RT.var("clojure.core", "*3");
+static final Var stare = RT.var("clojure.core", "*e");
public static void main(String[] args) throws Exception{