summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2006-09-25 17:54:37 +0000
committerRich Hickey <richhickey@gmail.com>2006-09-25 17:54:37 +0000
commit51c468f878a842bc6e469c32acbc58543448d081 (patch)
tree269d7766024da9e03a4f15e255c3c73ef8289b93 /src
parent987dad567505261e0daf3dcbdd6363353cbe15a5 (diff)
renamed Namespace to Module
Diffstat (limited to 'src')
-rw-r--r--src/cli/runtime/LispReader.cs2
-rw-r--r--src/cli/runtime/Module.cs (renamed from src/cli/runtime/Namespace.cs)16
-rw-r--r--src/cli/runtime/RT.cs2
-rw-r--r--src/cli/runtime/Symbol.cs2
-rw-r--r--src/cli/runtime/Var.cs6
-rw-r--r--src/jvm/clojure/lang/LispReader.java2
-rw-r--r--src/jvm/clojure/lang/Module.java (renamed from src/jvm/clojure/lang/Namespace.java)14
-rw-r--r--src/jvm/clojure/lang/RT.java2
-rw-r--r--src/jvm/clojure/lang/Var.java29
9 files changed, 39 insertions, 36 deletions
diff --git a/src/cli/runtime/LispReader.cs b/src/cli/runtime/LispReader.cs
index 7aa22644..e1fcf36d 100644
--- a/src/cli/runtime/LispReader.cs
+++ b/src/cli/runtime/LispReader.cs
@@ -223,7 +223,7 @@ private static Object matchSymbol(String s) {
private static Object matchVar(String s) {
Match m = varPat.Match(s);
if(m.Success && m.Length == s.Length)
- return Namespace.intern(m.Groups[1].Value,m.Groups[2].Value);
+ return Module.intern(m.Groups[1].Value,m.Groups[2].Value);
return null;
}
diff --git a/src/cli/runtime/Namespace.cs b/src/cli/runtime/Module.cs
index aae5ffc1..e2c091fe 100644
--- a/src/cli/runtime/Namespace.cs
+++ b/src/cli/runtime/Module.cs
@@ -16,11 +16,11 @@ using System.Collections.Specialized;
namespace clojure.lang
{
-public class Namespace
+public class Module
{
/**
- * String->Namespace
+ * String->Module
*/
static public HybridDictionary table = new HybridDictionary();
@@ -31,24 +31,24 @@ public HybridDictionary vars = new HybridDictionary();
public String name;
-Namespace(String name)
+Module(String name)
{
this.name = name;
table.Add(name, this);
}
-static public Namespace find(String name)
+static public Module find(String name)
{
- return (Namespace) table[name];
+ return (Module) table[name];
}
-static public Namespace findOrCreate(String name)
+static public Module findOrCreate(String name)
{
lock(table)
{
- Namespace ns = find(name);
+ Module ns = find(name);
if(ns == null)
- ns = new Namespace(name);
+ table.Add(name,ns = new Module(name));
return ns;
}
}
diff --git a/src/cli/runtime/RT.cs b/src/cli/runtime/RT.cs
index 52c81ece..bb0c3886 100644
--- a/src/cli/runtime/RT.cs
+++ b/src/cli/runtime/RT.cs
@@ -21,7 +21,7 @@ public class RT
{
public static Symbol T = Symbol.intern("t");
- static public Var OUT = Namespace.intern("clojure", "^out");
+ static public Var OUT = Module.intern("clojure", "^out");
public static Object[] EMPTY_ARRAY = new Object[0];
diff --git a/src/cli/runtime/Symbol.cs b/src/cli/runtime/Symbol.cs
index 58bc30fe..c7dd6368 100644
--- a/src/cli/runtime/Symbol.cs
+++ b/src/cli/runtime/Symbol.cs
@@ -36,7 +36,7 @@ public static Symbol intern(String name) { lock(table) { Symbol sym = (Sym
else sym = new Symbol(name); if(table[name] != null) //defend against recursive static init
return (Symbol)table[name]; table.Add(name, sym); } return sym; } }
/**
- * Used by Namespace.intern()
+ * Used by Module.intern()
* @param name
* @param ns
*/
diff --git a/src/cli/runtime/Var.cs b/src/cli/runtime/Var.cs
index cb0327e7..626c4f48 100644
--- a/src/cli/runtime/Var.cs
+++ b/src/cli/runtime/Var.cs
@@ -15,11 +15,11 @@ namespace clojure.lang
{
public class Var : AFn
{
-public readonly Symbol sym; public Namespace ns; public Binding binding; volatile IPersistentMap threadBindings = PersistentArrayMap.EMPTY; volatile int tcount = 0; internal Var(Symbol sym, Namespace ns) { if(sym.GetType() != typeof(Symbol)) throw new ArgumentException("Only simple symbols can be vars"); this.ns = ns; this.sym = sym; } override public String ToString() { if(ns == null) return "#:" + sym; return ns.name + ":" + sym; } public Var bind(Object val) { if(binding == null)
+public readonly Symbol name; public Module module; public Binding binding; IPersistentMap threadBindings = PersistentArrayMap.EMPTY; int tcount = 0; internal Var(Symbol sym, Module ns) { if(sym.GetType() != typeof(Symbol)) throw new ArgumentException("Only simple symbols can be var names"); this.module = ns; this.name = sym; } override public String ToString() { if(module == null) return "#:" + name; return module.name + ":" + name; } public Var bind(Object val) { lock(this){ if(binding == null)
binding = new Binding(val); else binding.val = val;
- return this; } public Object getValue() {
- Binding binding = getBinding(); if(binding != null) return binding.val; throw new InvalidOperationException(this.ToString() + " is unbound."); } public Object setValue(Object val) {
+ return this; } } public Object getValue() {
+ Binding b = getBinding(); if(b != null) return b.val; throw new InvalidOperationException(this.ToString() + " is unbound."); } public Object setValue(Object val) {
Binding b = getThreadBinding(); if(b != null) return b.val = val; if(binding == null)
throw new InvalidOperationException(this.ToString() + " is unbound."); return binding.val = val; }
diff --git a/src/jvm/clojure/lang/LispReader.java b/src/jvm/clojure/lang/LispReader.java
index deac1160..be6a9344 100644
--- a/src/jvm/clojure/lang/LispReader.java
+++ b/src/jvm/clojure/lang/LispReader.java
@@ -251,7 +251,7 @@ private static Object matchSymbol(String s) {
private static Object matchVar(String s) {
Matcher m = varPat.matcher(s);
if(m.matches())
- return Namespace.intern(m.group(1),m.group(2));
+ return Module.intern(m.group(1),m.group(2));
return null;
}
diff --git a/src/jvm/clojure/lang/Namespace.java b/src/jvm/clojure/lang/Module.java
index d0d1ecdb..80ae6f58 100644
--- a/src/jvm/clojure/lang/Namespace.java
+++ b/src/jvm/clojure/lang/Module.java
@@ -15,7 +15,7 @@ package clojure.lang;
import java.util.HashMap;
import java.util.IdentityHashMap;
-public class Namespace{
+public class Module {
/**
* String->Namespace
@@ -28,24 +28,24 @@ static final public HashMap table = new HashMap();
final public IdentityHashMap vars = new IdentityHashMap();
final public String name;
-Namespace(String name)
+Module(String name)
{
this.name = name;
table.put(name, this);
}
-static public Namespace find(String name)
+static public Module find(String name)
{
- return (Namespace) table.get(name);
+ return (Module) table.get(name);
}
-static public Namespace findOrCreate(String name)
+static public Module findOrCreate(String name)
{
synchronized(table)
{
- Namespace ns = find(name);
+ Module ns = find(name);
if(ns == null)
- ns = new Namespace(name);
+ table.put(name,ns = new Module(name));
return ns;
}
}
diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java
index ff1da8f0..be94d654 100644
--- a/src/jvm/clojure/lang/RT.java
+++ b/src/jvm/clojure/lang/RT.java
@@ -18,7 +18,7 @@ import java.io.*;
public class RT{
static public Symbol T = Symbol.intern("t");
- static public Var OUT = Namespace.intern("clojure","^out");
+ static public Var OUT = Module.intern("clojure","^out");
static public final Object[] EMPTY_ARRAY = new Object[]{};
static public final Character[] chars;
diff --git a/src/jvm/clojure/lang/Var.java b/src/jvm/clojure/lang/Var.java
index 55e470e0..7576fbb1 100644
--- a/src/jvm/clojure/lang/Var.java
+++ b/src/jvm/clojure/lang/Var.java
@@ -18,38 +18,41 @@ import java.util.Random;
public class Var extends AFn {
-public final Symbol sym;
-public Namespace namespace;
+public final Symbol name;
+public Module module;
public Binding binding;
AtomicInteger tcount = new AtomicInteger(0);
AtomicReference<IPersistentMap> threadBindings = new AtomicReference(PersistentArrayMap.EMPTY);
-Var(Symbol sym, Namespace ns) {
+
+Var(Symbol sym, Module ns) {
if (!(sym.getClass() == Symbol.class))
- throw new IllegalArgumentException("Only simple symbols can be vars");
- this.namespace = ns;
- this.sym = sym;
+ throw new IllegalArgumentException("Only simple symbols can be var names");
+ this.module = ns;
+ this.name = sym;
}
public String toString() {
- if (namespace == null)
- return "#:" + sym;
- return namespace.name + ":" + sym;
+ if (module == null)
+ return "#:" + name;
+ return module.name + ":" + name;
}
public Var bind(Object val) {
+ synchronized(this){
if (binding == null)
binding = new Binding(val);
else
binding.val = val;
return this;
+ }
}
public Object getValue() {
- Binding binding = getBinding();
- if (binding != null)
- return binding.val;
+ Binding b = getBinding();
+ if (b != null)
+ return b.val;
throw new IllegalStateException(this.toString() + " is unbound.");
}
@@ -249,7 +252,7 @@ public static void main(String[] args) {
}
- Var test = Namespace.intern("test", "test");
+ Var test = Module.intern("test", "test");
test.bind(new Test());