commit 0af57a30d6e83e3122be092fd3d062a761e0ea9d
parent cb53a8bf7cb8d0fa3eacd6bbdee869561828b4a4
Author: Alexander Burger <abu@software-lab.de>
Date: Thu, 7 Jun 2012 12:36:48 +0200
Docs terminology: "cell" is used ambiguously
Diffstat:
30 files changed, 135 insertions(+), 135 deletions(-)
diff --git a/doc/app.html b/doc/app.html
@@ -2025,7 +2025,7 @@ used explicitly. Instead, components are directly linked to internal Lisp data
structures, which are usually either variables or database objects.
<p>The <code>+Var</code> prefix class takes a variable (described as the
-<code>var</code> data type - either a symbol or a cell - in the <a
+<code>var</code> data type - either a symbol or a cons pair - in the <a
href="ref.html#fun">Function Reference</a>). In the following example, we
initialize a global variable with the value "abc", and let a
<code>+TextField</code> operate on it. The "Print" button can be used to display
@@ -2046,10 +2046,10 @@ its current value.
########################################################################
</code></pre>
-<p><code>+E/R</code> takes an entity/relation specification. This is a cell,
-with a relation in its CAR (e.g. <code>nm</code>, for an object's name), and an
-expression in its CDR (typically <code>(: home obj)</code>, the object stored in
-the <code>obj</code> property of the current form).
+<p><code>+E/R</code> takes an entity/relation specification. This is a cons
+pair, with a relation in its CAR (e.g. <code>nm</code>, for an object's name),
+and an expression in its CDR (typically <code>(: home obj)</code>, the object
+stored in the <code>obj</code> property of the current form).
<p>For an isolated, simple example, we create a temporary database, and access
the <code>nr</code> and <code>nm</code> properties of an object stored in a
diff --git a/doc/faq.html b/doc/faq.html
@@ -94,8 +94,8 @@ PicoLisp Machine</a> in the reference manual.
<p>There is only one symbolic data type, no distinction (confusion) between
symbols, strings, variables, special variables and identifiers.
-<p>Most data-manipulation functions operate on the value cells of symbols as
-well as the CARs of list cells:
+<p>Most data-manipulation functions operate on the values of symbols as well as
+the CARs of cons pairs:
<pre><code>
: (let (N 7 L (7 7 7)) (inc 'N) (inc (cdr L)) (cons N L))
@@ -167,7 +167,7 @@ explicitly passing around file descriptors.
arbitrary data types facilitates generalized comparing and sorting.
<li>Uniform handling of <code>var</code> locations (i.e. values of symbols and
-CARs of list cells).
+CARs of cons pairs).
<li>The universality and usefulness of symbol properties is enforced and
extended with implicit and explicit bindings of the symbol <code><a
@@ -563,12 +563,12 @@ debugged.
<p>Because PicoLisp has something better: <a
href="ref.html#transient-io">Transient symbols</a>. They look and behave like
-strings in any respect, but are nevertheless true symbols, with a value cell and
-a property list.
+strings in any respect, but are nevertheless true symbols, with a value and a
+property list.
-<p>This leads to interesting opportunities. The value cell, for example, can
-point to other data that represent the string's translation. This is used
-extensively for localization. When a program calls
+<p>This leads to interesting opportunities. The value, for example, can point to
+other data that represent the string's translation. This is used extensively for
+localization. When a program calls
<pre><code>
(prinl "Good morning!")
diff --git a/doc/ref.html b/doc/ref.html
@@ -222,7 +222,7 @@ the three base types and the symbol variations:
|
+--------+--------+
| | |
- Number Symbol List
+ Number Symbol Pair
|
|
+--------+--------+--------+
@@ -297,11 +297,11 @@ from the cell's start address. Therefore, the bit pattern of a symbol will be:
<p>Thus, a symbol is recognized by the interpreter when bit(2) is non-zero.
-<p>A property is a key-value pair, represented as a cell in the symbol's tail.
-This is called a "property list". The property list may be terminated by a
+<p>A property is a key-value pair, represented by a cons pair in the symbol's
+tail. This is called a "property list". The property list may be terminated by a
number representing the symbol's name. In the following example, a symbol with
-the name <code>"abc"</code> has three properties: A KEY/VAL cell, a cell with
-only a KEY, and another KEY/VAL cell.
+the name <code>"abc"</code> has three properties: A KEY/VAL pair, a cell with
+only a KEY, and another KEY/VAL pair.
<pre><code>
Symbol
@@ -324,9 +324,9 @@ only a KEY, and another KEY/VAL cell.
</code></pre>
<p>Each property in a symbol's tail is either a symbol (like the single KEY
-above, then it represents the boolean value <code>T</code>), or a cell with the
-property key in its CDR and the property value in its CAR. In both cases, the
-key should be a symbol, because searches in the property list are performed
+above, then it represents the boolean value <code>T</code>), or a cons pair with
+the property key in its CDR and the property value in its CAR. In both cases,
+the key should be a symbol, because searches in the property list are performed
using pointer comparisons.
<p>The name of a symbol is stored as a number at the end of the tail. It
@@ -448,8 +448,8 @@ specified at creation time.
<p><hr>
<h4><a name="lst">Lists</a></h4>
-<p>A list is a sequence of one or more cells, holding numbers, symbols, or
-lists.
+<p>A list is a sequence of one or more cells (cons pairs), holding numbers,
+symbols, or cons pairs.
<pre><code>
|
@@ -1819,7 +1819,7 @@ abbreviations:
<li><code>dat</code> - Date: Days, starting first of March of the year 0 A.D.
<li><code>tim</code> - Time: Seconds since midnight
<li><code>obj</code> - Object/Class: A symbol with methods and/or classes
-<li><code>var</code> - Variable: Either a symbol or a cell
+<li><code>var</code> - Variable: Either a symbol or a cons pair
<li><code>exe</code> - Executable: A list as executable expression (<code>eval</code>)
<li><code>prg</code> - Prog-Body: A list of executable expressions (<code>run</code>)
<li><code>fun</code> - Function: Either a number (code-pointer), a symbol (message) or a list (lambda)
diff --git a/doc/refA.html b/doc/refA.html
@@ -23,10 +23,10 @@ href="refA.html#accept">accept</a></code>.
<dt><a name="adr"><code>(adr 'var) -> num</code></a>
<dt><code>(adr 'num) -> var</code>
-<dd>Converts, in the first form, a variable <code>var</code> (a symbol or a
-cell) into <code>num</code> (actually an encoded pointer). A symbol will result
-in a negative number, and a cell in a positive number. The second form converts
-a pointer back into the original <code>var</code>.
+<dd>Converts, in the first form, a variable <code>var</code> (a symbol or a cons
+pair) into <code>num</code> (actually an encoded pointer). A symbol will result
+in a negative number, and a cons pair in a positive number. The second form
+converts a pointer back into the original <code>var</code>.
<pre><code>
: (setq X (box 7))
diff --git a/doc/refL.html b/doc/refL.html
@@ -347,7 +347,7 @@ queries. See also <code><a href="refM.html#map/3">map/3</a></code>.
<dt><a name="lst?"><code>(lst? 'any) -> flg</code></a>
<dd>Returns <code>T</code> when the argument <code>any</code> is a (possibly
-empty) list (<code>NIL</code> or a cons pair cell). See also <code><a
+empty) list (<code>NIL</code> or a cons pair). See also <code><a
href="refP.html#pair">pair</a></code>.
<pre><code>
@@ -564,11 +564,11 @@ and <code><a href="refN.html#n0">n0</a></code>.
<dt><a name="lup"><code>(lup 'lst 'any) -> lst</code></a>
<dt><code>(lup 'lst 'any 'any2) -> lst</code>
-<dd>Looks up <code>any</code> in the CAR-elements of cells stored in the index
-tree <code>lst</code>, as built-up by <code><a
-href="refI.html#idx">idx</a></code>. In the first form, the first found cell is
-returned, in the second form a list of all cells whose CAR is in the range
-<code>any</code> .. <code>any2</code>. See also <code><a
+<dd>Looks up <code>any</code> in the CAR-elements of cons pairs stored in the
+index tree <code>lst</code>, as built-up by <code><a
+href="refI.html#idx">idx</a></code>. In the first form, the first found cons
+pair is returned, in the second form a list of all pairs whose CAR is in the
+range <code>any</code> .. <code>any2</code>. See also <code><a
href="refA.html#assoc">assoc</a></code>.
<pre><code>
diff --git a/doc/refP.html b/doc/refP.html
@@ -80,8 +80,8 @@ href="refA.html#align">align</a></code>.
</code></pre>
<dt><a name="pair"><code>(pair 'any) -> any</code></a>
-<dd>Returns <code>any</code> when the argument a cons pair cell. See also
-<code><a href="refA.html#atom">atom</a></code>.
+<dd>Returns <code>any</code> when the argument a cons pair. See also <code><a
+href="refA.html#atom">atom</a></code>.
<pre><code>
: (pair NIL)
@@ -689,8 +689,8 @@ href="refP.html#prog1">prog1</a></code>.
<dd>Fetches a property for a property key <code>sym</code> from a symbol. That
symbol is <code>sym1</code> (if no other arguments are given), or a symbol found
by applying the <code><a href="refG.html#get">get</a></code> algorithm to
-<code>sym1|lst</code> and the following arguments. The property (the cell, not
-just its value) is returned, suitable for direct (destructive) manipulations
+<code>sym1|lst</code> and the following arguments. The property (the cons pair,
+not just its value) is returned, suitable for direct (destructive) manipulations
with functions expecting a <code>var</code> argument. See also <code><a
href="ref_.html#::">::</a></code>.
@@ -803,12 +803,13 @@ href="refQ.html#queue">queue</a></code>.
-> (4 3 2 1)
</code></pre>
-<dt><a name="put"><code>(put 'sym1|lst ['sym2|cnt ..] 'sym|0 'any) -> any</code></a>
-<dd>Stores a new value <code>any</code> for a property key <code>sym</code> (or
-in the value cell for zero) in a symbol. That symbol is <code>sym1</code> (if no
-other arguments are given), or a symbol found by applying the <code><a
-href="refG.html#get">get</a></code> algorithm to <code>sym1|lst</code> and the
-following arguments. See also <code><a href="ref_.html#=:">=:</a></code>.
+<dt><a name="put"><code>(put 'sym1|lst ['sym2|cnt ..] 'sym|0 'any) ->
+any</code></a> <dd>Stores a new value <code>any</code> for a property key
+<code>sym</code> (or in the symbol value for zero) in a symbol. That symbol is
+<code>sym1</code> (if no other arguments are given), or a symbol found by
+applying the <code><a href="refG.html#get">get</a></code> algorithm to
+<code>sym1|lst</code> and the following arguments. See also <code><a
+href="ref_.html#=:">=:</a></code>.
<pre><code>
: (put 'X 'a 1)
diff --git a/doc/ref_.html b/doc/ref_.html
@@ -255,9 +255,9 @@ href="ref_.html#;">;</a></code>, <code><a href="ref_.html#=:">=:</a></code> and
from a symbol. That symbol is <code>This</code> (if no other arguments are
given), or a symbol found by applying the <code><a
href="refG.html#get">get</a></code> algorithm to <code>This</code> and the
-following arguments. The property (the cell, not just its value) is returned,
-suitable for direct (destructive) manipulations with functions expecting a
-<code>var</code> argument. Used typically in methods or <code><a
+following arguments. The property (the cons pair, not just its value) is
+returned, suitable for direct (destructive) manipulations with functions
+expecting a <code>var</code> argument. Used typically in methods or <code><a
href="refW.html#with">with</a></code> bodies. See also <code><a
href="ref_.html#=:">=:</a></code>, <code><a
href="refP.html#prop">prop</a></code> and <code><a
@@ -360,7 +360,7 @@ href="refG.html#gt0">gt0</a></code>.
<dt><a name="=:"><code>(=: sym|0 [sym1|cnt .. sym2|0] 'any)</code></a>
<dd>Stores a new value <code>any</code> for a property key <code>sym</code> or
-<code>sym2</code> (or in the value cell for zero) in a symbol. That symbol is
+<code>sym2</code> (or in the symbol value for zero) in a symbol. That symbol is
<code>This</code> (if no other arguments are given), or a symbol found by
applying the <code><a href="refG.html#get">get</a></code> algorithm to
<code>This</code> and the following arguments. Used typically in methods or
diff --git a/doc/structures b/doc/structures
@@ -3,7 +3,7 @@
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx010 Number
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx100 Symbol
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxx000 Cell
+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxx000 Pair
Number
@@ -23,7 +23,7 @@
| DIG | / |
+-----+-----+
- Cell
+ Pair
|
V
+-----+-----+
diff --git a/doc/tut.html b/doc/tut.html
@@ -250,14 +250,14 @@ to know:
<p>The most commonly used tool is probably the <code><a
href="refS.html#show">show</a></code> function. It takes a symbolic argument,
-and shows the symbol's name (if any), followed by its value cell, and then the
+and shows the symbol's name (if any), followed by its value, and then the
contents of the property list on the following lines (assignment of such things
to a symbol can be done with <code><a href="refS.html#set">set</a></code>,
<code><a href="refS.html#setq">setq</a></code>, and <code><a
href="refP.html#put">put</a></code>).
<pre><code>
-: (setq A '(This is the value)) # Set the value cell of 'A'
+: (setq A '(This is the value)) # Set the value of 'A'
-> (This is the value)
: (put 'A 'key1 'val1) # Store property 'key1'
-> val1
@@ -1374,13 +1374,13 @@ consideration in the head of the programmer than a physical reality.
<li>A Class
<ul>
<li>Has a name (interned symbol)
- <li>Has method definitions and superclass(es) in the value cell
+ <li>Has method definitions and superclass(es) in the value
<li>May have class variables (attributes) in the property list
</ul>
<li>An Object
<ul>
<li>Has no name (anonymous symbol) or is an external symbol
- <li>Has class(es) (and optionally method definitions) in the value cell
+ <li>Has class(es) (and optionally method definitions) in the value
<li>Has instance variables (attributes) in the property list
</ul>
</ol>
@@ -1390,11 +1390,11 @@ usually are internal symbols. By convention, their names start with a
'<code>+</code>'. Sometimes it makes sense, however, to create named objects (as
global singletons, for example), or even anonymous classes.
-<p>Both classes and objects have a list in their value cell, consisting of
-method definitions (often empty for objects) and (super)class(es). And both
-classes and objects have local data in their property lists (often empty for
-classes). This implies, that any given object (as an instance of a class) may
-have private (object-local) methods defined.
+<p>Both classes and objects have a list in their value, consisting of method
+definitions (often empty for objects) and (super)class(es). And both classes and
+objects have local data in their property lists (often empty for classes). This
+implies, that any given object (as an instance of a class) may have private
+(object-local) methods defined.
<p>It is rather difficult to contrive a simple OOP example. We constructed a
hierarchy of geometric shapes, with a base class <code>+Shape</code> and two
@@ -1521,8 +1521,8 @@ $134432824 (+Rectangle) # Show the rectangle
</code></pre>
<p>We see that the symbol <code>$134432824</code> has a list of classes
-'<code>(+Rectangle)</code>' in its value cell, and the coordinates, width and
-height in is property list.
+'<code>(+Rectangle)</code>' in its value, and the coordinates, width and height
+in its property list.
<p>Sending messages to that object
@@ -1664,8 +1664,8 @@ symbolic atoms (called "<a href="ref.html#external">External Symbols</a>"), that
happen to be read from pool file(s) when accessed, and written back
automatically when modified.
-<p>In all other aspects they are normal symbols. They have a value cell, a
-property list and a name.
+<p>In all other aspects they are normal symbols. They have a value, a property
+list and a name.
<p>The name cannot be directly controlled by the programmer, as it is assigned
when the symbol is created. It is an encoded index of the symbol's location in
@@ -1694,8 +1694,7 @@ programmer.
{1} NIL # Value of '{1}' is NIL, property list empty
</code></pre>
-<p>Now let's put something into the value cell and property list of
-<code>{1}</code>.
+<p>Now let's put something into the value and property list of <code>{1}</code>.
<pre><code>
: (set *DB "Hello world") # Set value of '{1}' to a transient symbol (string)
@@ -2531,9 +2530,9 @@ previous examples:
<p>However, an easier and less error-prone prone way - especially when more than
one property has to be changed - is using <code><a
-href="refU.html#update">update</a></code>. It presents the value cell (the list
-of classes) and then each property on its own line, allowing the user to change
-it with the <a href="#ledit">command line editor</a>.
+href="refU.html#update">update</a></code>. It presents the value (the list of
+classes) and then each property on its own line, allowing the user to change it
+with the <a href="#ledit">command line editor</a>.
<p>Just hitting ENTER will leave that property unchanged. To modify it, you'll
typically hit ESC to get into command mode, and move the cursor to the point of
diff --git a/doc64/structures b/doc64/structures
@@ -1,4 +1,4 @@
-# 09mar11abu
+# 07jun12abu
# (c) Software Lab. Alexander Burger
@@ -7,7 +7,7 @@
cnt xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxS010
big xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxS100
sym xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1000
- cell xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0000
+ pair xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0000
Bignum
@@ -28,7 +28,7 @@
+-----+-----+
- Cell
+ Pair
|
V
+-----+-----+
diff --git a/ersatz/picolisp.jar b/ersatz/picolisp.jar
Binary files differ.
diff --git a/src/flow.c b/src/flow.c
@@ -1,4 +1,4 @@
-/* 11mar12abu
+/* 07jun12abu
* (c) Software Lab. Alexander Burger
*/
@@ -1171,7 +1171,7 @@ any doAt(any ex) {
any x;
x = cdr(ex), x = EVAL(car(x));
- NeedCell(ex,x);
+ NeedPair(ex,x);
if (isNil(cdr(x)))
return Nil;
NeedCnt(ex,car(x));
diff --git a/src/main.c b/src/main.c
@@ -1,4 +1,4 @@
-/* 18mar12abu
+/* 07jun12abu
* (c) Software Lab. Alexander Burger
*/
@@ -572,7 +572,7 @@ void numError(any ex, any x) {err(ex, x, "Number expected");}
void cntError(any ex, any x) {err(ex, x, "Small number expected");}
void symError(any ex, any x) {err(ex, x, "Symbol expected");}
void extError(any ex, any x) {err(ex, x, "External symbol expected");}
-void cellError(any ex, any x) {err(ex, x, "Cell expected");}
+void pairError(any ex, any x) {err(ex, x, "Cons pair expected");}
void atomError(any ex, any x) {err(ex, x, "Atom expected");}
void lstError(any ex, any x) {err(ex, x, "List expected");}
void varError(any ex, any x) {err(ex, x, "Variable expected");}
diff --git a/src/pico.h b/src/pico.h
@@ -1,4 +1,4 @@
-/* 11oct11abu
+/* 07jun12abu
* (c) Software Lab. Alexander Burger
*/
@@ -224,7 +224,7 @@ typedef struct catchFrame {
#define NeedCnt(ex,x) if (!isNum(x) || isNum(cdr(numCell(x)))) cntError(ex,x)
#define NeedSym(ex,x) if (!isSym(x)) symError(ex,x)
#define NeedExt(ex,x) if (!isSym(x) || !isExt(x)) extError(ex,x)
-#define NeedCell(ex,x) if (!isCell(x)) cellError(ex,x)
+#define NeedPair(ex,x) if (!isCell(x)) pairError(ex,x)
#define NeedAtom(ex,x) if (isCell(x)) atomError(ex,x)
#define NeedLst(ex,x) if (!isCell(x) && !isNil(x)) lstError(ex,x)
#define NeedVar(ex,x) if (isNum(x)) varError(ex,x)
@@ -279,7 +279,7 @@ int bufSize(any);
void bufString(any,char*);
void bye(int) __attribute__ ((noreturn));
void byteSym(int,int*,any*);
-void cellError(any,any) __attribute__ ((noreturn));
+void pairError(any,any) __attribute__ ((noreturn));
void charSym(int,int*,any*);
any circ(any);
void closeInFile(int);
diff --git a/src/subr.c b/src/subr.c
@@ -1,4 +1,4 @@
-/* 25jan11abu
+/* 07jun12abu
* (c) Software Lab. Alexander Burger
*/
@@ -238,7 +238,7 @@ any doCon(any ex) {
cell c1;
x = cdr(ex), Push(c1, EVAL(car(x)));
- NeedCell(ex,data(c1));
+ NeedPair(ex,data(c1));
x = cdr(x), x = cdr(data(c1)) = EVAL(car(x));
drop(c1);
return x;
diff --git a/src/vers.h b/src/vers.h
@@ -1 +1 @@
-static byte Version[4] = {3,1,0,6};
+static byte Version[4] = {3,1,0,7};
diff --git a/src64/apply.l b/src64/apply.l
@@ -1,4 +1,4 @@
-# 24aug11abu
+# 07jun12abu
# (c) Software Lab. Alexander Burger
(code 'applyXYZ_E 0)
@@ -40,7 +40,7 @@
jnz undefinedCX
cmp S (StkLimit) # Stack check
jlt stkErrX
- atom C # Cell?
+ atom C # Pair?
if z # Yes
# Apply EXPR
push X
@@ -394,7 +394,7 @@
jnz undefinedCX
cmp S (StkLimit) # Stack check
jlt stkErrX
- atom C # Cell?
+ atom C # Pair?
if z # Yes
# Apply EXPR
push X
@@ -1067,7 +1067,7 @@
lea Z (L II) # Last arg
call applyXYZ_E # Apply
pop Y
- atom E # Got cell?
+ atom E # Got pair?
if z # Yes
null (L -I) # Result tail?
if z # No
@@ -1127,7 +1127,7 @@
lea Z (L II) # Last arg
call applyVarXYZ_E # Apply
pop Y
- atom E # Got cell?
+ atom E # Got pair?
if z # Yes
null (L -I) # Result tail?
if z # No
@@ -1653,7 +1653,7 @@
ld (L I) C
ret
end
- atom A # Cell?
+ atom A # Pair?
jnz ret # No
cmp (A CDR) Nil # CDR?
if ne # Yes
diff --git a/src64/big.l b/src64/big.l
@@ -1,4 +1,4 @@
-# 06apr12abu
+# 07jun12abu
# (c) Software Lab. Alexander Burger
### Destructive primitives ###
@@ -2928,7 +2928,7 @@
push C # Counter
ld C 0
do
- atom E # Cell?
+ atom E # Pair?
while z # Yes
push E # Recurse on CAR
ld E (E)
diff --git a/src64/defs.l b/src64/defs.l
@@ -1,4 +1,4 @@
-# 05jun10abu
+# 07jun12abu
# (c) Software Lab. Alexander Burger
# Constants
@@ -34,7 +34,7 @@
(equ CNT 2) # Count tag
(equ BIG 4) # Rest of a bignum + bignum tag
(equ DIG -4) # First digit of a big number
-(equ CDR 8) # CDR part of a list cell
+(equ CDR 8) # CDR part of a cons pair
(equ SIGN 8) # Sign bit of a number
(equ SYM 8) # Symbol tag
(equ TAIL -8) # Tail of a symbol
diff --git a/src64/err.l b/src64/err.l
@@ -1,4 +1,4 @@
-# 19oct11abu
+# 07jun12abu
# (c) Software Lab. Alexander Burger
# Debug print routine
@@ -435,10 +435,10 @@
ld Y ExtErr
jmp errEXYZ
-(code 'cellErrAX)
+(code 'pairErrAX)
ld E A
-(code 'cellErrEX)
- ld Y CellErr
+(code 'pairErrEX)
+ ld Y PairErr
jmp errEXYZ
(code 'atomErrAX)
diff --git a/src64/flow.l b/src64/flow.l
@@ -1,4 +1,4 @@
-# 12mar12abu
+# 07jun12abu
# (c) Software Lab. Alexander Burger
(code 'redefMsgEC)
@@ -157,7 +157,7 @@
if ne # No
cmp E TSym # T?
if ne # No
- atom E # Cell?
+ atom E # Pair?
jnz 10 # No
num (E) # CAR number?
if z # No
@@ -2102,8 +2102,8 @@
ld Y (E CDR) # Y on args
ld E (Y) # Eval first
eval
- atom E # Need cell
- jnz cellErrEX
+ atom E # Need pair
+ jnz pairErrEX
cmp (E CDR) Nil # CDR?
jeq 10 # No
ld A (E) # Get 'cnt1'
@@ -2169,7 +2169,7 @@
ld Y X # Body in Y
do
ld E (Y) # Next expression
- atom E # Cell?
+ atom E # Pair?
if z # Yes
ld A (E) # Get CAR
cmp A Nil # NIL?
diff --git a/src64/gc.l b/src64/gc.l
@@ -1,4 +1,4 @@
-# 29sep11abu
+# 07jun12abu
# (c) Software Lab. Alexander Burger
# Mark data
@@ -454,7 +454,7 @@
pop X
ret
-### Build cons cells ###
+### Build cons pair ###
(code 'cons_A 0)
ld A (Avail) # Get avail list
null A # Empty?
diff --git a/src64/glob.l b/src64/glob.l
@@ -1,4 +1,4 @@
-# 22apr12abu
+# 07jun12abu
# (c) Software Lab. Alexander Burger
(data 'Data)
@@ -1191,7 +1191,7 @@
: CntErr asciz "Small number expected"
: SymErr asciz "Symbol expected"
: ExtErr asciz "External symbol expected"
-: CellErr asciz "Cell expected"
+: PairErr asciz "Cons pair expected"
: AtomErr asciz "Atom expected"
: LstErr asciz "List expected"
: VarErr asciz "Variable expected"
diff --git a/src64/ht.l b/src64/ht.l
@@ -1,4 +1,4 @@
-# 18may12abu
+# 07jun12abu
# (c) Software Lab. Alexander Burger
(data 'HtData)
@@ -28,7 +28,7 @@
eval
num E # Number?
jnz 20 # Yes
- atom E # Cell?
+ atom E # Pair?
jz 20 # Yes
sym (E TAIL) # External symbol?
if nz # Yes
diff --git a/src64/io.l b/src64/io.l
@@ -1,4 +1,4 @@
-# 17oct11abu
+# 07jun12abu
# (c) Software Lab. Alexander Burger
# Close file descriptor
@@ -2131,7 +2131,7 @@
ld X (L I) # Get name so far
call findSymX_E # Find or create symbol
ld X 0 # Clear error context
- atom (E) # Value must be a cell
+ atom (E) # Value must be a pair
jnz symNsErrEX
ld (EnvIntern) E # Switch symbol namespace
ld C 4 # Build new name
diff --git a/src64/main.l b/src64/main.l
@@ -1,4 +1,4 @@
-# 30apr12abu
+# 07jun12abu
# (c) Software Lab. Alexander Burger
(code 'Code)
@@ -931,7 +931,7 @@
cmp E Nil
jeq 30 # [<sym> NIL]
atom E
- jz 10 # [<sym> <cell>]
+ jz 10 # [<sym> <pair>]
cmp E TSym
jeq 10 # [<sym> T]
push X # [<sym> <sym>]
@@ -1007,9 +1007,9 @@
loop
end
atom E
- if nz # [<cell> <sym>]
+ if nz # [<pair> <sym>]
cmp E TSym
- if eq # [<cell> T]
+ if eq # [<pair> T]
or B B # nz
setc # lt
ret
@@ -1017,7 +1017,7 @@
clrc # gt
ret
end
- push X # [<cell> <cell>]
+ push X # [<pair> <pair>]
push Y
ld X A # Keep originals
ld Y E
@@ -1045,10 +1045,10 @@
if nz # Yes
cmp E TSym
if ne
- clrc # gt [<cell> <atom>]
+ clrc # gt [<pair> <atom>]
break T
end
- or B B # nz [<cell> T]
+ or B B # nz [<pair> T]
setc # lt
break T
end
@@ -2161,7 +2161,7 @@
cmp C E # Circular?
jeq retnz # Yes
ld A (C) # Next item
- atom A # Cell?
+ atom A # Pair?
if z # Yes
num (A) # CAR a number?
if nz # Yes
diff --git a/src64/subr.l b/src64/subr.l
@@ -1,4 +1,4 @@
-# 22mar12abu
+# 07jun12abu
# (c) Software Lab. Alexander Burger
# (car 'var) -> any
@@ -729,8 +729,8 @@
ld Y (E CDR) # Y on args
ld E (Y) # Eval 'lst'
eval
- atom E # Need cell
- jnz cellErrEX
+ atom E # Need pair
+ jnz pairErrEX
link
push E # <L I> Safe
link
@@ -852,7 +852,7 @@
ld Y (E CDR) # Y on args
ld E (Y) # Eval 'lst'
eval
- atom E # Cell?
+ atom E # Pair?
if z # Yes
link
push E # <L I> Safe
@@ -1077,7 +1077,7 @@
ld E (E) # Eval it
eval
do
- atom E # Cell?
+ atom E # Pair?
jnz retT # Yes
cmp (E) Nil # Found NIL?
jz retNil # Yes
@@ -1119,7 +1119,7 @@
ld Y (Y CDR)
ld E (Y) # Eval 'lst2'
eval
- atom E # Cell?
+ atom E # Pair?
if nz # No
ld E ((EnvYoke)) # Retrieve new 'lst1'
do
@@ -1683,7 +1683,7 @@
link
ld A Nil # Result
do
- atom E # Cells?
+ atom E # More cells?
while z # Yes
call consA_C # Cons next CAR
ld (C) (E)
@@ -1703,7 +1703,7 @@
ld Y (E CDR) # Y on args
ld E (Y) # Eval 'lst'
eval
- atom E # Cell?
+ atom E # Pair?
if z # Yes
ld Y (Y CDR)
atom Y # Second arg?
@@ -2930,7 +2930,7 @@
push E # Save list
do
add C (hex "10") # Increment count
- atom (E) # Is CAR a cell?
+ atom (E) # Is CAR a pair?
if z # Yes
push E
ld E (E) # Count CAR
diff --git a/src64/sym.l b/src64/sym.l
@@ -1,4 +1,4 @@
-# 13apr12abu
+# 07jun12abu
# (c) Software Lab. Alexander Burger
### Compare long names ###
@@ -957,7 +957,7 @@
ld Y (Y CDR) # Second arg?
atom Y # Any?
if nz # No
- atom (E) # Value must be a cell
+ atom (E) # Value must be a pair
jnz symNsErrEX
else
call checkVarEX
@@ -972,7 +972,7 @@
sym E
jz symErrEX
ld C (E) # Get source
- atom C # Must be a cell
+ atom C # Must be a pair
jnz symNsErrEX
ld X (C) # Source short names
call cons_Y # Create namespace cell
@@ -2632,7 +2632,7 @@
ret
(code 'getnECX_E 0)
- num E # Need symbol or cell
+ num E # Need symbol or pair
jnz argErrEX
atom E # List?
if z # Yes
@@ -3305,7 +3305,7 @@
link
push E # <L I> 'obj|typ'
link
- num E # Need symbol or cell
+ num E # Need symbol or pair
jnz argErrEX
sym E # Symbol?
if nz # Yes
diff --git a/src64/tags b/src64/tags
@@ -63,7 +63,6 @@ CaseLower glob.l 1115
CaseUpper glob.l 1091
Catch glob.l 20
CbErr glob.l 1163
-CellErr glob.l 1194
Child glob.l 44
Children glob.l 43
Chr glob.l 585
@@ -243,6 +242,7 @@ OutFiles glob.l 28
PIPE_BUF sys/x86-64.linux.defs.l 27
PPid glob.l 156
PRepl glob.l 1143
+PairErr glob.l 1194
Penv glob.l 56
Pico glob.l 137
Pid glob.l 157
@@ -471,8 +471,6 @@ cbl6 main.l 1959
cbl7 main.l 1963
cbl8 main.l 1967
cbl9 main.l 1971
-cellErrAX err.l 438
-cellErrEX err.l 440
charSymACX_CX io.l 1256
checkVarAX err.l 365
checkVarEX err.l 381
@@ -1059,6 +1057,8 @@ packAoACX_CX db.l 108
packECX_CX sym.l 1303
packExtNmX_E db.l 87
packOctACX_CX db.l 120
+pairErrAX err.l 438
+pairErrEX err.l 440
parseBCE_E io.l 3893
pathStringE_SZ io.l 1172
pico glob.l 142
diff --git a/src64/version.l b/src64/version.l
@@ -1,6 +1,6 @@
-# 21may12abu
+# 07jun12abu
# (c) Software Lab. Alexander Burger
-(de *Version 3 1 0 6)
+(de *Version 3 1 0 7)
# vi:et:ts=3:sw=3