picolisp

Unnamed repository; edit this file to name it for gitweb.
git clone https://logand.com/git/picolisp.git/
Log | Files | Refs | README | LICENSE

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:
Mdoc/app.html | 10+++++-----
Mdoc/faq.html | 16++++++++--------
Mdoc/ref.html | 22+++++++++++-----------
Mdoc/refA.html | 8++++----
Mdoc/refL.html | 12++++++------
Mdoc/refP.html | 21+++++++++++----------
Mdoc/ref_.html | 8++++----
Mdoc/structures | 4++--
Mdoc/tut.html | 35+++++++++++++++++------------------
Mdoc64/structures | 6+++---
Mersatz/picolisp.jar | 0
Msrc/flow.c | 4++--
Msrc/main.c | 4++--
Msrc/pico.h | 6+++---
Msrc/subr.c | 4++--
Msrc/vers.h | 2+-
Msrc64/apply.l | 12++++++------
Msrc64/big.l | 4++--
Msrc64/defs.l | 4++--
Msrc64/err.l | 8++++----
Msrc64/flow.l | 10+++++-----
Msrc64/gc.l | 4++--
Msrc64/glob.l | 4++--
Msrc64/ht.l | 4++--
Msrc64/io.l | 4++--
Msrc64/main.l | 16++++++++--------
Msrc64/subr.l | 18+++++++++---------
Msrc64/sym.l | 10+++++-----
Msrc64/tags | 6+++---
Msrc64/version.l | 4++--
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