summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cli/runtime/AFn.cs48
-rw-r--r--src/cli/runtime/Accessor.cs4
-rw-r--r--src/cli/runtime/Cons.cs33
-rw-r--r--src/cli/runtime/IFn.cs4
-rw-r--r--src/cli/runtime/ISeq.cs22
-rw-r--r--src/cli/runtime/ISequential.cs22
-rw-r--r--src/cli/runtime/Keyword.cs4
-rw-r--r--src/cli/runtime/PersistentTree.cs4
-rw-r--r--src/cli/runtime/RT.cs50
-rw-r--r--src/cli/runtime/Reflector.cs2
-rw-r--r--src/cli/runtime/RestFn0.cs6
-rw-r--r--src/cli/runtime/RestFn1.cs12
-rw-r--r--src/cli/runtime/RestFn2.cs18
-rw-r--r--src/cli/runtime/RestFn3.cs26
-rw-r--r--src/cli/runtime/RestFn4.cs36
-rw-r--r--src/cli/runtime/RestFn5.cs48
-rw-r--r--src/cli/runtime/Transaction.cs10
-rw-r--r--src/cli/runtime/Var.cs2
-rw-r--r--src/org/clojure/runtime/AFn.java48
-rw-r--r--src/org/clojure/runtime/Accessor.java4
-rw-r--r--src/org/clojure/runtime/Cons.java29
-rw-r--r--src/org/clojure/runtime/IFn.java4
-rw-r--r--src/org/clojure/runtime/ISeq.java24
-rw-r--r--src/org/clojure/runtime/ISequential.java18
-rw-r--r--src/org/clojure/runtime/Keyword.java4
-rw-r--r--src/org/clojure/runtime/RT.java50
-rw-r--r--src/org/clojure/runtime/Reflector.java6
-rw-r--r--src/org/clojure/runtime/RestFn0.java6
-rw-r--r--src/org/clojure/runtime/RestFn1.java12
-rw-r--r--src/org/clojure/runtime/RestFn2.java18
-rw-r--r--src/org/clojure/runtime/RestFn3.java26
-rw-r--r--src/org/clojure/runtime/RestFn4.java36
-rw-r--r--src/org/clojure/runtime/RestFn5.java48
-rw-r--r--src/org/clojure/runtime/Transaction.java10
-rw-r--r--src/org/clojure/runtime/Var.java2
35 files changed, 396 insertions, 300 deletions
diff --git a/src/cli/runtime/AFn.cs b/src/cli/runtime/AFn.cs
index ceaec67d..0b7ef7ca 100644
--- a/src/cli/runtime/AFn.cs
+++ b/src/cli/runtime/AFn.cs
@@ -49,54 +49,54 @@ virtual public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Obje
return throwArity();
}
-virtual public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Cons args)
+virtual public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args)
/*throws Exception*/
{
return throwArity();
}
-virtual public Object applyTo(ThreadLocalData tld, Cons arglist) /*throws Exception*/
+virtual public Object applyTo(ThreadLocalData tld, ISeq arglist) /*throws Exception*/
{
return applyToHelper(this,tld,arglist);
}
-static public Object applyToHelper(IFn ifn,ThreadLocalData tld, Cons arglist) /*throws Exception*/
+static public Object applyToHelper(IFn ifn,ThreadLocalData tld, ISeq arglist) /*throws Exception*/
{
switch(RT.boundedLength(arglist, 5))
{
case 0:
return ifn.invoke(tld);
case 1:
- return ifn.invoke(tld, arglist.first);
+ return ifn.invoke(tld, arglist.first());
case 2:
- return ifn.invoke(tld, arglist.first
- , (arglist = arglist.rest).first
+ return ifn.invoke(tld, arglist.first()
+ , (arglist = arglist.rest()).first()
);
case 3:
- return ifn.invoke(tld, arglist.first
- , (arglist = arglist.rest).first
- , (arglist = arglist.rest).first
+ return ifn.invoke(tld, arglist.first()
+ , (arglist = arglist.rest()).first()
+ , (arglist = arglist.rest()).first()
);
case 4:
- return ifn.invoke(tld, arglist.first
- , (arglist = arglist.rest).first
- , (arglist = arglist.rest).first
- , (arglist = arglist.rest).first
+ return ifn.invoke(tld, arglist.first()
+ , (arglist = arglist.rest()).first()
+ , (arglist = arglist.rest()).first()
+ , (arglist = arglist.rest()).first()
);
case 5:
- return ifn.invoke(tld, arglist.first
- , (arglist = arglist.rest).first
- , (arglist = arglist.rest).first
- , (arglist = arglist.rest).first
- , (arglist = arglist.rest).first
+ return ifn.invoke(tld, arglist.first()
+ , (arglist = arglist.rest()).first()
+ , (arglist = arglist.rest()).first()
+ , (arglist = arglist.rest()).first()
+ , (arglist = arglist.rest()).first()
);
default:
- return ifn.invoke(tld, arglist.first
- , (arglist = arglist.rest).first
- , (arglist = arglist.rest).first
- , (arglist = arglist.rest).first
- , (arglist = arglist.rest).first
- , arglist.rest);
+ return ifn.invoke(tld, arglist.first()
+ , (arglist = arglist.rest()).first()
+ , (arglist = arglist.rest()).first()
+ , (arglist = arglist.rest()).first()
+ , (arglist = arglist.rest()).first()
+ , arglist.rest());
}
}
diff --git a/src/cli/runtime/Accessor.cs b/src/cli/runtime/Accessor.cs
index b63e5e7c..5c6948db 100644
--- a/src/cli/runtime/Accessor.cs
+++ b/src/cli/runtime/Accessor.cs
@@ -20,9 +20,9 @@ public Object invoke(ThreadLocalData tld) /*throws Exception*/ {
return AFn.throwArity();
} /** * Indexer implements IFn for attr access * This single arg version is the getter * @param tld * @param obj - must be AMap * @return the value of the attr or nil if not found * @throws Exception */ public Object invoke(ThreadLocalData tld, Object obj) //throws Exception {
- return Reflector.invokeInstanceMember(memberName, obj); } /** * Indexer implements IFn for attr access * This two arg version is the setter * @param tld * @param obj - must be AMap * @param val * @return val * @throws Exception */ public Object invoke(ThreadLocalData tld, Object obj, Object val) //throws Exception { return Reflector.invokeInstanceMember(memberName,obj,val); } public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3) //throws Exception { return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3); } public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4) //throws Exception { return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3,arg4); } public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5) //throws Exception { return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3,arg4,arg5); } public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Cons args) //throws Exception { return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3,arg4,arg5,args); }
+ return Reflector.invokeInstanceMember(memberName, obj); } /** * Indexer implements IFn for attr access * This two arg version is the setter * @param tld * @param obj - must be AMap * @param val * @return val * @throws Exception */ public Object invoke(ThreadLocalData tld, Object obj, Object val) //throws Exception { return Reflector.invokeInstanceMember(memberName,obj,val); } public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3) //throws Exception { return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3); } public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4) //throws Exception { return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3,arg4); } public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5) //throws Exception { return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3,arg4,arg5); } public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args) //throws Exception { return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3,arg4,arg5,args); }
-public Object applyTo(ThreadLocalData tld, Cons arglist) /*throws Exception*/ {
+public Object applyTo(ThreadLocalData tld, ISeq arglist) /*throws Exception*/ {
return AFn.applyToHelper(this, tld, arglist);
}
}
diff --git a/src/cli/runtime/Cons.cs b/src/cli/runtime/Cons.cs
index e097aafb..9b1030fa 100644
--- a/src/cli/runtime/Cons.cs
+++ b/src/cli/runtime/Cons.cs
@@ -15,33 +15,42 @@ using System;
namespace org.clojure.runtime
{
-public class Cons : Obj,Iter
+public class Cons : ISeq, ISequential
{
-public readonly Object first;
-public readonly Cons rest;
+private readonly Object _first;
+private readonly ISeq _rest;
-public Cons(Object first, Cons rest)
+public Cons(Object first, ISeq rest)
{
- this.first = first;
- this.rest = rest;
+ this._first = first;
+ this._rest = rest;
}
-#region Iter Members
+#region ISeq Members
-public object get()
+public object first()
{
- return first;
+ return _first;
}
-public Iter iterate()
+public ISeq rest()
{
- return rest;
+ return _rest;
}
#endregion
- }
+
+#region ISequential Members
+
+public ISeq seq()
+ {
+ return this;
+ }
+
+#endregion
+ }
}
diff --git a/src/cli/runtime/IFn.cs b/src/cli/runtime/IFn.cs
index e96fd902..f2e86341 100644
--- a/src/cli/runtime/IFn.cs
+++ b/src/cli/runtime/IFn.cs
@@ -30,8 +30,8 @@ Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object
/*throws Exception*/;
Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5,
- Cons args) /*throws Exception*/;
+ ISeq args) /*throws Exception*/;
-Object applyTo(ThreadLocalData tld, Cons arglist) /*throws Exception*/;
+Object applyTo(ThreadLocalData tld, ISeq arglist) /*throws Exception*/;
}
}
diff --git a/src/cli/runtime/ISeq.cs b/src/cli/runtime/ISeq.cs
new file mode 100644
index 00000000..cd7d9134
--- /dev/null
+++ b/src/cli/runtime/ISeq.cs
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) Rich Hickey. All rights reserved.
+ * The use and distribution terms for this software are covered by the
+ * Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
+ * which can be found in the file CPL.TXT at the root of this distribution.
+ * By using this software in any fashion, you are agreeing to be bound by
+ * the terms of this license.
+ * You must not remove this notice, or any other, from this software.
+ */
+
+using System;
+
+namespace org.clojure.runtime
+ {
+ public interface ISeq
+ {
+
+ Object first();
+
+ ISeq rest();
+ }
+ }
diff --git a/src/cli/runtime/ISequential.cs b/src/cli/runtime/ISequential.cs
new file mode 100644
index 00000000..66d5023e
--- /dev/null
+++ b/src/cli/runtime/ISequential.cs
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) Rich Hickey. All rights reserved.
+ * The use and distribution terms for this software are covered by the
+ * Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
+ * which can be found in the file CPL.TXT at the root of this distribution.
+ * By using this software in any fashion, you are agreeing to be bound by
+ * the terms of this license.
+ * You must not remove this notice, or any other, from this software.
+ */
+using System;
+
+
+namespace org.clojure.runtime
+ {
+
+ public interface ISequential
+ {
+
+ ISeq seq();
+
+ }
+ }
diff --git a/src/cli/runtime/Keyword.cs b/src/cli/runtime/Keyword.cs
index 903a8619..d4158540 100644
--- a/src/cli/runtime/Keyword.cs
+++ b/src/cli/runtime/Keyword.cs
@@ -42,13 +42,13 @@ public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3,
return AFn.throwArity();
}
-public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Cons args)
+public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args)
/*throws Exception*/
{
return AFn.throwArity();
}
-public Object applyTo(ThreadLocalData tld, Cons arglist) /*throws Exception*/ {
+public Object applyTo(ThreadLocalData tld, ISeq arglist) /*throws Exception*/ {
return AFn.applyToHelper(this, tld, arglist);
}
}
diff --git a/src/cli/runtime/PersistentTree.cs b/src/cli/runtime/PersistentTree.cs
index 61f18157..b4686264 100644
--- a/src/cli/runtime/PersistentTree.cs
+++ b/src/cli/runtime/PersistentTree.cs
@@ -729,7 +729,7 @@ public void Reset()
#endregion
}
- /*
+ //*
[STAThread]
static public void Main(String[] args){
if(args.Length != 1)
@@ -778,7 +778,7 @@ static public void Main(String[] args){
Console.Error.WriteLine("count = " + set.count());
Console.WriteLine("Building Hashtable");
- Hashtable od = new Hashtable(1001);
+ Hashtable od = Hashtable.Synchronized(new Hashtable(1001));
start = DateTime.Now;
for (int i = 0; i < ints.Length; i++)
{
diff --git a/src/cli/runtime/RT.cs b/src/cli/runtime/RT.cs
index ef60aa77..06455b47 100644
--- a/src/cli/runtime/RT.cs
+++ b/src/cli/runtime/RT.cs
@@ -52,18 +52,18 @@ public class RT
return null;
}
- static public Object equal(Object arg1, Object arg2) {
- if(arg1 == null)
- return arg2 == null ? T : null;
- else if(arg2 == null)
- return null;
- return (eql(arg1,arg2) != null
- || (arg1 is Cons
- && arg2 is Cons
- && equal(((Cons)arg1).first,((Cons)arg2).first)!=null
- && equal(((Cons)arg1).rest,((Cons)arg2).rest)!=null))
- ?T:null;
- }
+ //static public Object equal(Object arg1, Object arg2) {
+ // if(arg1 == null)
+ // return arg2 == null ? T : null;
+ // else if(arg2 == null)
+ // return null;
+ // return (eql(arg1,arg2) != null
+ // || (arg1 is Cons
+ // && arg2 is Cons
+ // && equal(((Cons)arg1).first(),((Cons)arg2).first())!=null
+ // && equal(((Cons)arg1).rest(),((Cons)arg2).rest())!=null))
+ // ?T:null;
+ // }
static public Iter iter(Object coll)
{
@@ -163,7 +163,7 @@ public class RT
{
return Convert.ToDouble(x);
}
-static public Cons cons(Object x, Cons y)
+static public Cons cons(Object x, ISeq y)
{
return new Cons(x, y);
}
@@ -198,27 +198,27 @@ static public Cons list(Object arg1, Object arg2, Object arg3, Object arg4, Obje
return listStar(arg1, arg2, arg3, arg4, arg5, null);
}
-static public Cons listStar(Object arg1, Cons rest)
+static public Cons listStar(Object arg1, ISeq rest)
{
return cons(arg1, rest);
}
-static public Cons listStar(Object arg1, Object arg2, Cons rest)
+static public Cons listStar(Object arg1, Object arg2, ISeq rest)
{
return cons(arg1, cons(arg2, rest));
}
-static public Cons listStar(Object arg1, Object arg2, Object arg3, Cons rest)
+static public Cons listStar(Object arg1, Object arg2, Object arg3, ISeq rest)
{
return cons(arg1, cons(arg2, cons(arg3, rest)));
}
-static public Cons listStar(Object arg1, Object arg2, Object arg3, Object arg4, Cons rest)
+static public Cons listStar(Object arg1, Object arg2, Object arg3, Object arg4, ISeq rest)
{
return cons(arg1, cons(arg2, cons(arg3, cons(arg4, rest))));
}
-static public Cons listStar(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Cons rest)
+static public Cons listStar(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq rest)
{
return cons(arg1, cons(arg2, cons(arg3, cons(arg4, cons(arg5, rest)))));
}
@@ -231,20 +231,20 @@ static public Cons arrayToList(Object[] a)
return ret;
}
-static public int length(Cons list)
+static public int length(ISeq list)
{
int i = 0;
- for(Cons c = list; c != null; c = c.rest)
+ for(ISeq c = list; c != null; c = c.rest())
{
i++;
}
return i;
}
-static public int boundedLength(Cons list, int limit)
+static public int boundedLength(ISeq list, int limit)
{
int i = 0;
- for(Cons c = list; c != null && i <= limit; c = c.rest)
+ for(ISeq c = list; c != null && i <= limit; c = c.rest())
{
i++;
}
@@ -347,7 +347,7 @@ static public Object setValues(ThreadLocalData tld, Object arg1, Object arg2, Ob
}
static public Object setValues(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4,
- Object arg5, Cons args) /**/
+ Object arg5, ISeq args) /**/
{
if(tld == null)
tld = ThreadLocalData.get();
@@ -357,9 +357,9 @@ static public Object setValues(ThreadLocalData tld, Object arg1, Object arg2, Ob
tld.mvArray[2] = arg3;
tld.mvArray[3] = arg4;
tld.mvArray[4] = arg5;
- for(int i = 5; args != null && i < ThreadLocalData.MULTIPLE_VALUES_LIMIT; i++, args = args.rest)
+ for(int i = 5; args != null && i < ThreadLocalData.MULTIPLE_VALUES_LIMIT; i++, args = args.rest())
{
- tld.mvArray[i] = args.first;
+ tld.mvArray[i] = args.first();
}
if(args != null)
throw new ArgumentException("Too many arguments to values (> ThreadLocalData.MULTIPLE_VALUES_LIMIT)");
diff --git a/src/cli/runtime/Reflector.cs b/src/cli/runtime/Reflector.cs
index a2894285..a4088a31 100644
--- a/src/cli/runtime/Reflector.cs
+++ b/src/cli/runtime/Reflector.cs
@@ -127,7 +127,7 @@ public static Object invokeInstanceMember(String name, Object target) //throws E
return prepRet(p.GetValue(target, new Object[]{boxArg(p.GetIndexParameters()[0].ParameterType,arg1)}));
p.SetValue(target,boxArg(p.PropertyType,arg1),null);
return arg1;
- } return invokeInstanceMethod(name, target, new Object[]{arg1}); } public static Object invokeInstanceMember(String name, Object target, Object arg1, Object arg2) //throws Exception { return invokeInstanceMethod(name, target, new Object[]{arg1, arg2}); } public static Object invokeInstanceMember(String name, Object target, Object arg1, Object arg2, Object arg3) //throws Exception { return invokeInstanceMethod(name, target, new Object[]{arg1, arg2, arg3}); } public static Object invokeInstanceMember(String name, Object target, Object arg1, Object arg2, Object arg3, Object arg4) //throws Exception { return invokeInstanceMethod(name, target, new Object[]{arg1, arg2, arg3, arg4}); } public static Object invokeInstanceMember(String name, Object target, Object arg1, Object arg2, Object arg3, Object arg4, Cons arglist) //throws Exception { Object[] args = new Object[4 + RT.length(arglist)]; args[0] = arg1; args[1] = arg2; args[2] = arg3; args[3] = arg4; for(int i = 4; arglist != null; i++, arglist = arglist.rest) args[i] = arglist.first; return invokeInstanceMethod(name, target, args); }
+ } return invokeInstanceMethod(name, target, new Object[]{arg1}); } public static Object invokeInstanceMember(String name, Object target, Object arg1, Object arg2) //throws Exception { return invokeInstanceMethod(name, target, new Object[]{arg1, arg2}); } public static Object invokeInstanceMember(String name, Object target, Object arg1, Object arg2, Object arg3) //throws Exception { return invokeInstanceMethod(name, target, new Object[]{arg1, arg2, arg3}); } public static Object invokeInstanceMember(String name, Object target, Object arg1, Object arg2, Object arg3, Object arg4) //throws Exception { return invokeInstanceMethod(name, target, new Object[]{arg1, arg2, arg3, arg4}); } public static Object invokeInstanceMember(String name, Object target, Object arg1, Object arg2, Object arg3, Object arg4, ISeq arglist) //throws Exception { Object[] args = new Object[4 + RT.length(arglist)]; args[0] = arg1; args[1] = arg2; args[2] = arg3; args[3] = arg4; for(int i = 4; arglist != null; i++, arglist = arglist.rest()) args[i] = arglist.first(); return invokeInstanceMethod(name, target, args); }
public static FieldInfo getField(Type t, string name,bool statics)
{
diff --git a/src/cli/runtime/RestFn0.cs b/src/cli/runtime/RestFn0.cs
index 578a8c44..7ef2dc4f 100644
--- a/src/cli/runtime/RestFn0.cs
+++ b/src/cli/runtime/RestFn0.cs
@@ -18,9 +18,9 @@ namespace org.clojure.runtime
public abstract class RestFn0 : AFn
{
-public abstract Object doInvoke(ThreadLocalData tld, Cons rest) /*throws Exception*/;
+public abstract Object doInvoke(ThreadLocalData tld, ISeq rest) /*throws Exception*/;
-override public Object applyTo(ThreadLocalData tld, Cons arglist) /*throws Exception*/
+override public Object applyTo(ThreadLocalData tld, ISeq arglist) /*throws Exception*/
{
return doInvoke(tld, arglist);
}
@@ -56,7 +56,7 @@ override public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Obj
return doInvoke(tld, RT.list(arg1, arg2, arg3, arg4, arg5));
}
-override public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Cons args)
+override public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args)
/*throws Exception*/
{
return doInvoke(tld, RT.listStar(arg1, arg2, arg3, arg4, arg5, args));
diff --git a/src/cli/runtime/RestFn1.cs b/src/cli/runtime/RestFn1.cs
index 822058f5..e61ecdd0 100644
--- a/src/cli/runtime/RestFn1.cs
+++ b/src/cli/runtime/RestFn1.cs
@@ -17,19 +17,19 @@ namespace org.clojure.runtime
public abstract class RestFn1 : AFn{
-public abstract Object doInvoke(ThreadLocalData tld, Object arg1, Cons rest) /*throws Exception*/;
+public abstract Object doInvoke(ThreadLocalData tld, Object arg1, ISeq rest) /*throws Exception*/;
-override public Object applyTo(ThreadLocalData tld, Cons arglist) /*throws Exception*/
+override public Object applyTo(ThreadLocalData tld, ISeq arglist) /*throws Exception*/
{
switch (RT.boundedLength(arglist, 1))
{
case 0:
return invoke(tld);
case 1:
- return invoke(tld, arglist.first);
+ return invoke(tld, arglist.first());
default:
- return doInvoke(tld, arglist.first
- , arglist.rest);
+ return doInvoke(tld, arglist.first()
+ , arglist.rest());
}
}
@@ -59,7 +59,7 @@ override public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Obj
return doInvoke(tld, arg1, RT.list(arg2, arg3, arg4, arg5));
}
-override public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Cons args)
+override public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args)
/*throws Exception*/
{
return doInvoke(tld, arg1, RT.listStar(arg2, arg3, arg4, arg5, args));
diff --git a/src/cli/runtime/RestFn2.cs b/src/cli/runtime/RestFn2.cs
index bc528dfa..29d14761 100644
--- a/src/cli/runtime/RestFn2.cs
+++ b/src/cli/runtime/RestFn2.cs
@@ -17,24 +17,24 @@ namespace org.clojure.runtime
public abstract class RestFn2 : AFn{
- public abstract Object doInvoke(ThreadLocalData tld, Object arg1, Object arg2, Cons rest) /*throws Exception*/;
+ public abstract Object doInvoke(ThreadLocalData tld, Object arg1, Object arg2, ISeq rest) /*throws Exception*/;
-override public Object applyTo(ThreadLocalData tld, Cons arglist) /*throws Exception*/
+override public Object applyTo(ThreadLocalData tld, ISeq arglist) /*throws Exception*/
{
switch (RT.boundedLength(arglist, 2))
{
case 0:
return invoke(tld);
case 1:
- return invoke(tld, arglist.first);
+ return invoke(tld, arglist.first());
case 2:
- return invoke(tld, arglist.first
- , (arglist = arglist.rest).first
+ return invoke(tld, arglist.first()
+ , (arglist = arglist.rest()).first()
);
default:
- return doInvoke(tld, arglist.first
- , (arglist = arglist.rest).first
- , arglist.rest);
+ return doInvoke(tld, arglist.first()
+ , (arglist = arglist.rest()).first()
+ , arglist.rest());
}
}
@@ -60,7 +60,7 @@ override public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Obj
return doInvoke(tld, arg1, arg2, RT.list(arg3, arg4, arg5));
}
-override public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Cons args)
+override public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args)
/*throws Exception*/
{
return doInvoke(tld, arg1, arg2, RT.listStar(arg3, arg4, arg5, args));
diff --git a/src/cli/runtime/RestFn3.cs b/src/cli/runtime/RestFn3.cs
index b236724c..3f7be0e2 100644
--- a/src/cli/runtime/RestFn3.cs
+++ b/src/cli/runtime/RestFn3.cs
@@ -17,30 +17,30 @@ namespace org.clojure.runtime
public abstract class RestFn3 : AFn{
- public abstract Object doInvoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Cons rest) /*throws Exception*/;
+ public abstract Object doInvoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, ISeq rest) /*throws Exception*/;
-override public Object applyTo(ThreadLocalData tld, Cons arglist) /*throws Exception*/
+override public Object applyTo(ThreadLocalData tld, ISeq arglist) /*throws Exception*/
{
switch (RT.boundedLength(arglist, 3))
{
case 0:
return invoke(tld);
case 1:
- return invoke(tld, arglist.first);
+ return invoke(tld, arglist.first());
case 2:
- return invoke(tld, arglist.first
- , (arglist = arglist.rest).first
+ return invoke(tld, arglist.first()
+ , (arglist = arglist.rest()).first()
);
case 3:
- return invoke(tld, arglist.first
- , (arglist = arglist.rest).first
- , (arglist = arglist.rest).first
+ return invoke(tld, arglist.first()
+ , (arglist = arglist.rest()).first()
+ , (arglist = arglist.rest()).first()
);
default:
- return doInvoke(tld, arglist.first
- , (arglist = arglist.rest).first
- , (arglist = arglist.rest).first
- , arglist.rest);
+ return doInvoke(tld, arglist.first()
+ , (arglist = arglist.rest()).first()
+ , (arglist = arglist.rest()).first()
+ , arglist.rest());
}
}
@@ -62,7 +62,7 @@ override public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Obj
return doInvoke(tld, arg1, arg2, arg3, RT.list(arg4, arg5));
}
-override public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Cons args)
+override public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args)
/*throws Exception*/
{
return doInvoke(tld, arg1, arg2, arg3, RT.listStar(arg4, arg5, args));
diff --git a/src/cli/runtime/RestFn4.cs b/src/cli/runtime/RestFn4.cs
index 04dfb33f..29b0a21f 100644
--- a/src/cli/runtime/RestFn4.cs
+++ b/src/cli/runtime/RestFn4.cs
@@ -17,38 +17,38 @@ namespace org.clojure.runtime
public abstract class RestFn4 : AFn{
- public abstract Object doInvoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Cons rest)
+ public abstract Object doInvoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, ISeq rest)
/*throws Exception*/;
-override public Object applyTo(ThreadLocalData tld, Cons arglist) /*throws Exception*/
+override public Object applyTo(ThreadLocalData tld, ISeq arglist) /*throws Exception*/
{
switch (RT.boundedLength(arglist, 4))
{
case 0:
return invoke(tld);
case 1:
- return invoke(tld, arglist.first);
+ return invoke(tld, arglist.first());
case 2:
- return invoke(tld, arglist.first
- , (arglist = arglist.rest).first
+ return invoke(tld, arglist.first()
+ , (arglist = arglist.rest()).first()
);
case 3:
- return invoke(tld, arglist.first
- , (arglist = arglist.rest).first
- , (arglist = arglist.rest).first
+ return invoke(tld, arglist.first()
+ , (arglist = arglist.rest()).first()
+ , (arglist = arglist.rest()).first()
);
case 4:
- return invoke(tld, arglist.first
- , (arglist = arglist.rest).first
- , (arglist = arglist.rest).first
- , (arglist = arglist.rest).first
+ return invoke(tld, arglist.first()
+ , (arglist = arglist.rest()).first()
+ , (arglist = arglist.rest()).first()
+ , (arglist = arglist.rest()).first()
);
default:
- return doInvoke(tld, arglist.first
- , (arglist = arglist.rest).first
- , (arglist = arglist.rest).first
- , (arglist = arglist.rest).first
- , arglist.rest);
+ return doInvoke(tld, arglist.first()
+ , (arglist = arglist.rest()).first()
+ , (arglist = arglist.rest()).first()
+ , (arglist = arglist.rest()).first()
+ , arglist.rest());
}
}
@@ -64,7 +64,7 @@ override public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Obj
return doInvoke(tld, arg1, arg2, arg3, arg4, RT.list(arg5));
}
-override public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Cons args)
+override public Object invoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args)
/*throws Exception*/
{
return doInvoke(tld, arg1, arg2, arg3, arg4, RT.listStar(arg5, args));
diff --git a/src/cli/runtime/RestFn5.cs b/src/cli/runtime/RestFn5.cs
index e4ea5fe7..74092dc0 100644
--- a/src/cli/runtime/RestFn5.cs
+++ b/src/cli/runtime/RestFn5.cs
@@ -18,46 +18,46 @@ namespace org.clojure.runtime
public abstract class RestFn5 : AFn{
public abstract Object doInvoke(ThreadLocalData tld, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5,
- Cons rest)
+ ISeq rest)
/*throws Exception*/;
-override public Object applyTo(ThreadLocalData tld, Cons arglist) /*throws Exception*/
+override public Object applyTo(ThreadLocalData tld, ISeq arglist) /*throws Exception*/