commit 5c956f284a394893c8b97022243b792bbb50bf4e
parent 0c86279bd5726635f923c203f20a1509be189801
Author: Alexander Burger <abu@software-lab.de>
Date: Tue, 11 Oct 2011 17:16:42 +0200
'*Prompt' global variable
Diffstat:
18 files changed, 299 insertions(+), 264 deletions(-)
diff --git a/CHANGES b/CHANGES
@@ -1,4 +1,5 @@
* XXdec11 picoLisp-3.0.9
+ '*Prompt' global variable
'local' symbols function
'open' optional 'flg' argument
diff --git a/doc/ref.html b/doc/ref.html
@@ -1849,6 +1849,8 @@ abbreviations:
<a href="refF.html#fun?">fun?</a>
<a href="refA.html#all">all</a>
<a href="refS.html#symbols">symbols</a>
+ <a href="refL.html#local">local</a>
+ <a href="refI.html#import">import</a>
<a href="refI.html#intern">intern</a>
<a href="refE.html#extern">extern</a>
<a href="ref_.html#====">====</a>
@@ -2551,6 +2553,7 @@ abbreviations:
<a href="ref_.html#@@">@@</a>
<a href="ref_.html#@@@">@@@</a>
<a href="refT.html#This">This</a>
+ <a href="refP.html#*Prompt">*Prompt</a>
<a href="refD.html#*Dbg">*Dbg</a>
<a href="refZ.html#*Zap">*Zap</a>
<a href="refS.html#*Scl">*Scl</a>
diff --git a/doc/refP.html b/doc/refP.html
@@ -37,6 +37,19 @@ NIL 5286
-> T
</code></pre>
+<dt><a name="*Prompt"><code>*Prompt</code></a>
+<dd>A global variable holding a (possibly empty) expression, to be evaluated and
+<code><a href="refP.html#prin">prin</a></code>ted every time before a prompt is
+output to the console in the "read-eval-print-loop" (REPL).
+
+<pre><code>
+: (setq *Prompt '(pack "[" (stamp) "]"))
+-> (pack "[" (stamp) "]")
+[2011-10-11 16:50:05]: (+ 1 2 3)
+-> 6
+[2011-10-11 16:50:11]:
+</code></pre>
+
<dt><a name="pack"><code>(pack 'any ..) -> sym</code></a>
<dd>Returns a transient symbol whose name is concatenated from all arguments
<code>any</code>. A <code>NIL</code> arguments contributes nothing to the result
diff --git a/ersatz/picolisp.jar b/ersatz/picolisp.jar
Binary files differ.
diff --git a/ersatz/sys.src b/ersatz/sys.src
@@ -1,4 +1,4 @@
-// 27jul11abu
+// 11oct11abu
// (c) Software Lab. Alexander Burger
import java.util.*;
@@ -30,6 +30,7 @@ public class PicoLisp {
final static Symbol At2 = mkSymbol(Nil, "@@", Intern);
final static Symbol At3 = mkSymbol(Nil, "@@@", Intern);
final static Symbol This = mkSymbol(Nil, "This", Intern);
+ final static Symbol Prompt = mkSymbol(Nil, "*Prompt", Intern);
final static Symbol Dbg = mkSymbol(Nil, "*Dbg", Intern);
final static Symbol Scl = mkSymbol(Zero, "*Scl", Intern);
final static Symbol Class = mkSymbol(Nil, "*Class", Intern);
@@ -467,7 +468,7 @@ public class PicoLisp {
y = InFile.read('\0');
else {
if (pr != '\0' && InFile.Chr == 0) {
- OutFile.Wr.print(pr);
+ OutFile.Wr.print(Prompt.Car.eval().name() + pr);
OutFile.space();
OutFile.Wr.flush();
}
diff --git a/lib/debug.l b/lib/debug.l
@@ -1,6 +1,11 @@
-# 17jan11abu
+# 11oct11abu
# (c) Software Lab. Alexander Burger
+# Prompt
+(when (== 64 64)
+ (setq *Prompt
+ '(unless (== (symbols) 'pico) (symbols)) ) )
+
# Browsing
(de doc (Sym Browser)
(let (L (chop Sym) C (car L))
diff --git a/lib/tags b/lib/tags
@@ -87,7 +87,7 @@ chop (1208 . "@src64/sym.l")
circ (816 . "@src64/subr.l")
circ? (2402 . "@src64/subr.l")
clip (1799 . "@src64/subr.l")
-close (4378 . "@src64/io.l")
+close (4381 . "@src64/io.l")
cmd (2912 . "@src64/main.l")
cnt (1413 . "@src64/apply.l")
co (2540 . "@src64/flow.l")
@@ -98,7 +98,7 @@ cond (1911 . "@src64/flow.l")
connect (201 . "@src64/net.l")
cons (747 . "@src64/subr.l")
copy (1225 . "@src64/subr.l")
-ctl (4251 . "@src64/io.l")
+ctl (4254 . "@src64/io.l")
ctty (2710 . "@src64/main.l")
cut (1911 . "@src64/sym.l")
date (2424 . "@src64/main.l")
@@ -115,14 +115,14 @@ dir (2843 . "@src64/main.l")
dm (542 . "@src64/flow.l")
do (2133 . "@src64/flow.l")
e (2914 . "@src64/flow.l")
-echo (4409 . "@src64/io.l")
+echo (4412 . "@src64/io.l")
env (606 . "@src64/main.l")
eof (3524 . "@src64/io.l")
eol (3515 . "@src64/io.l")
-err (4231 . "@src64/io.l")
+err (4234 . "@src64/io.l")
errno (1374 . "@src64/main.l")
eval (175 . "@src64/flow.l")
-ext (5137 . "@src64/io.l")
+ext (5146 . "@src64/io.l")
ext? (1149 . "@src64/sym.l")
extern (1015 . "@src64/sym.l")
extra (1261 . "@src64/flow.l")
@@ -137,7 +137,7 @@ find (1322 . "@src64/apply.l")
fish (1613 . "@src64/apply.l")
flg? (2445 . "@src64/subr.l")
flip (1699 . "@src64/subr.l")
-flush (5112 . "@src64/io.l")
+flush (5121 . "@src64/io.l")
fold (3489 . "@src64/sym.l")
for (2222 . "@src64/flow.l")
fork (3256 . "@src64/flow.l")
@@ -163,7 +163,7 @@ idx (2151 . "@src64/sym.l")
if (1797 . "@src64/flow.l")
if2 (1816 . "@src64/flow.l")
ifn (1857 . "@src64/flow.l")
-in (4191 . "@src64/io.l")
+in (4194 . "@src64/io.l")
inc (2256 . "@src64/big.l")
index (2637 . "@src64/subr.l")
info (2747 . "@src64/main.l")
@@ -187,7 +187,7 @@ lisp (1982 . "@src64/main.l")
list (887 . "@src64/subr.l")
listen (151 . "@src64/net.l")
lit (150 . "@src64/flow.l")
-load (4168 . "@src64/io.l")
+load (4171 . "@src64/io.l")
lock (1182 . "@src64/db.l")
loop (2165 . "@src64/flow.l")
low? (3361 . "@src64/sym.l")
@@ -237,11 +237,11 @@ offset (2677 . "@src64/subr.l")
on (1697 . "@src64/sym.l")
onOff (1727 . "@src64/sym.l")
one (1760 . "@src64/sym.l")
-open (4335 . "@src64/io.l")
+open (4338 . "@src64/io.l")
opid (3217 . "@src64/flow.l")
opt (3033 . "@src64/main.l")
or (1632 . "@src64/flow.l")
-out (4211 . "@src64/io.l")
+out (4214 . "@src64/io.l")
pack (1259 . "@src64/sym.l")
pair (2394 . "@src64/subr.l")
pass (754 . "@src64/apply.l")
@@ -249,18 +249,18 @@ pat? (728 . "@src64/sym.l")
path (1244 . "@src64/io.l")
peek (3431 . "@src64/io.l")
pick (1369 . "@src64/apply.l")
-pipe (4272 . "@src64/io.l")
+pipe (4275 . "@src64/io.l")
poll (3320 . "@src64/io.l")
pool (648 . "@src64/db.l")
pop (1887 . "@src64/sym.l")
port (5 . "@src64/net.l")
-pr (5220 . "@src64/io.l")
+pr (5229 . "@src64/io.l")
pre? (1525 . "@src64/sym.l")
-prin (5036 . "@src64/io.l")
-prinl (5050 . "@src64/io.l")
-print (5076 . "@src64/io.l")
-println (5107 . "@src64/io.l")
-printsp (5092 . "@src64/io.l")
+prin (5045 . "@src64/io.l")
+prinl (5059 . "@src64/io.l")
+print (5085 . "@src64/io.l")
+println (5116 . "@src64/io.l")
+printsp (5101 . "@src64/io.l")
prior (2713 . "@src64/subr.l")
prog (1752 . "@src64/flow.l")
prog1 (1760 . "@src64/flow.l")
@@ -280,12 +280,12 @@ rand (3003 . "@src64/big.l")
range (997 . "@src64/subr.l")
rank (3033 . "@src64/subr.l")
raw (449 . "@src64/main.l")
-rd (5154 . "@src64/io.l")
+rd (5163 . "@src64/io.l")
read (2656 . "@src64/io.l")
replace (1499 . "@src64/subr.l")
rest (2339 . "@src64/main.l")
reverse (1678 . "@src64/subr.l")
-rewind (5120 . "@src64/io.l")
+rewind (5129 . "@src64/io.l")
rollback (1889 . "@src64/db.l")
rot (848 . "@src64/subr.l")
run (306 . "@src64/flow.l")
@@ -301,7 +301,7 @@ size (2806 . "@src64/subr.l")
skip (3501 . "@src64/io.l")
sort (3962 . "@src64/subr.l")
sp? (719 . "@src64/sym.l")
-space (5054 . "@src64/io.l")
+space (5063 . "@src64/io.l")
split (1592 . "@src64/subr.l")
stack (555 . "@src64/main.l")
state (2001 . "@src64/flow.l")
@@ -345,7 +345,7 @@ when (1876 . "@src64/flow.l")
while (2053 . "@src64/flow.l")
wipe (3236 . "@src64/sym.l")
with (1324 . "@src64/flow.l")
-wr (5237 . "@src64/io.l")
+wr (5246 . "@src64/io.l")
xchg (1652 . "@src64/sym.l")
xor (1693 . "@src64/flow.l")
x| (2887 . "@src64/big.l")
diff --git a/src/io.c b/src/io.c
@@ -1,4 +1,4 @@
-/* 05oct11abu
+/* 11oct11abu
* (c) Software Lab. Alexander Burger
*/
@@ -2044,7 +2044,7 @@ any load(any ex, int pr, any x) {
data(c1) = read1(0);
else {
if (pr && !Chr)
- Env.put(pr), space(), flushAll();
+ prin(EVAL(val(Prompt))), Env.put(pr), space(), flushAll();
data(c1) = read1(isatty(STDIN_FILENO)? '\n' : 0);
if (Chr == '\n')
Chr = 0;
diff --git a/src/main.c b/src/main.c
@@ -1,4 +1,4 @@
-/* 09sep11abu
+/* 11oct11abu
* (c) Software Lab. Alexander Burger
*/
@@ -28,7 +28,7 @@ any Alarm, Sigio, Line, Zero, One;
any Intern[IHASH], Transient[IHASH], Extern[EHASH];
any ApplyArgs, ApplyBody, DbVal, DbTail;
any Nil, DB, Meth, Quote, T;
-any Solo, PPid, Pid, At, At2, At3, This, Dbg, Zap, Ext, Scl, Class;
+any Solo, PPid, Pid, At, At2, At3, This, Prompt, Dbg, Zap, Ext, Scl, Class;
any Run, Hup, Sig1, Sig2, Up, Err, Msg, Uni, Led, Tsm, Adr, Fork, Bye;
bool Break;
sig_atomic_t Signal[NSIG];
diff --git a/src/pico.h b/src/pico.h
@@ -1,4 +1,4 @@
-/* 08sep11abu
+/* 11oct11abu
* (c) Software Lab. Alexander Burger
*/
@@ -254,7 +254,7 @@ extern any Alarm, Sigio, Line, Zero, One;
extern any Intern[IHASH], Transient[IHASH], Extern[EHASH];
extern any ApplyArgs, ApplyBody, DbVal, DbTail;
extern any Nil, DB, Meth, Quote, T;
-extern any Solo, PPid, Pid, At, At2, At3, This, Dbg, Zap, Ext, Scl, Class;
+extern any Solo, PPid, Pid, At, At2, At3, This, Prompt, Dbg, Zap, Ext, Scl, Class;
extern any Run, Hup, Sig1, Sig2, Up, Err, Msg, Uni, Led, Tsm, Adr, Fork, Bye;
extern bool Break;
extern sig_atomic_t Signal[NSIG];
diff --git a/src/tab.c b/src/tab.c
@@ -1,4 +1,4 @@
-/* 09jul11abu
+/* 11oct11abu
* (c) Software Lab. Alexander Burger
*/
@@ -385,31 +385,32 @@ void initSymbols(void) {
mkExt(val(DB) = DbVal = consStr(DbTail = box('1')));
Extern['1'] = cons(DbVal, Nil);
- Solo = initSym(Zero, "*Solo");
- PPid = initSym(Nil, "*PPid");
- Pid = initSym(boxCnt(getpid()), "*Pid");
- At = initSym(Nil, "@");
- At2 = initSym(Nil, "@@");
- At3 = initSym(Nil, "@@@");
- This = initSym(Nil, "This");
- Dbg = initSym(Nil, "*Dbg");
- Zap = initSym(Nil, "*Zap");
- Ext = initSym(Nil, "*Ext");
- Scl = initSym(Zero, "*Scl");
- Class = initSym(Nil, "*Class");
- Run = initSym(Nil, "*Run");
- Hup = initSym(Nil, "*Hup");
- Sig1 = initSym(Nil, "*Sig1");
- Sig2 = initSym(Nil, "*Sig2");
- Up = initSym(Nil, "^");
- Err = initSym(Nil, "*Err");
- Msg = initSym(Nil, "*Msg");
- Uni = initSym(Nil, "*Uni");
- Led = initSym(Nil, "*Led");
- Tsm = initSym(Nil, "*Tsm");
- Adr = initSym(Nil, "*Adr");
- Fork = initSym(Nil, "*Fork");
- Bye = initSym(Nil, "*Bye"); // Last unremovable symbol
+ Solo = initSym(Zero, "*Solo");
+ PPid = initSym(Nil, "*PPid");
+ Pid = initSym(boxCnt(getpid()), "*Pid");
+ At = initSym(Nil, "@");
+ At2 = initSym(Nil, "@@");
+ At3 = initSym(Nil, "@@@");
+ This = initSym(Nil, "This");
+ Prompt = initSym(Nil, "*Prompt");
+ Dbg = initSym(Nil, "*Dbg");
+ Zap = initSym(Nil, "*Zap");
+ Ext = initSym(Nil, "*Ext");
+ Scl = initSym(Zero, "*Scl");
+ Class = initSym(Nil, "*Class");
+ Run = initSym(Nil, "*Run");
+ Hup = initSym(Nil, "*Hup");
+ Sig1 = initSym(Nil, "*Sig1");
+ Sig2 = initSym(Nil, "*Sig2");
+ Up = initSym(Nil, "^");
+ Err = initSym(Nil, "*Err");
+ Msg = initSym(Nil, "*Msg");
+ Uni = initSym(Nil, "*Uni");
+ Led = initSym(Nil, "*Led");
+ Tsm = initSym(Nil, "*Tsm");
+ Adr = initSym(Nil, "*Adr");
+ Fork = initSym(Nil, "*Fork");
+ Bye = initSym(Nil, "*Bye"); // Last unremovable symbol
for (i = 0; i < (int)(sizeof(Symbols)/sizeof(symInit)); ++i)
initSym(box(num(Symbols[i].code)), Symbols[i].name);
diff --git a/src/vers.h b/src/vers.h
@@ -1 +1 @@
-static byte Version[4] = {3,0,8,2};
+static byte Version[4] = {3,0,8,3};
diff --git a/src64/err.l b/src64/err.l
@@ -1,4 +1,4 @@
-# 29sep11abu
+# 11oct11abu
# (c) Software Lab. Alexander Burger
# Debug print routine
@@ -11,7 +11,7 @@
ld (OutFile) ((OutFiles) II) # Set to OutFiles[2] (stderr)
push (PutB) # Save 'put'
ld (PutB) putStdoutB # Set new
- call printE # Print argument
+ call printE_E # Print argument
call newline # and a newline
pop (PutB) # Restore 'put'
pop (OutFile) # and output channel
@@ -110,13 +110,13 @@
call outStringC
push E # Save reason
ld E X # Get context
- call printE # Print context
+ call printE_E # Print context
call newline
pop E # Retrieve reason
end
null E # Reason?
if nz # Yes
- call printE # Print reason
+ call printE_E # Print reason
ld C Dashes # Print " -- "
call outStringC
end
diff --git a/src64/glob.l b/src64/glob.l
@@ -1,4 +1,4 @@
-# 29sep11abu
+# 11oct11abu
# (c) Software Lab. Alexander Burger
(data 'Data)
@@ -159,6 +159,7 @@
initSym At2 "@@" Nil
initSym At3 "@@@" Nil
initSym This "This" Nil
+ initSym Prompt "*Prompt" Nil
initSym Dbg "*Dbg" Nil
initSym Zap "*Zap" Nil
initSym Ext "*Ext" Nil
diff --git a/src64/io.l b/src64/io.l
@@ -1,4 +1,4 @@
-# 05oct11abu
+# 11oct11abu
# (c) Software Lab. Alexander Burger
# Close file descriptor
@@ -4106,12 +4106,15 @@
ld C 0 # No terminator
call readC_E # Read expression
else
- ld A (L -I)
- or B B # Prompt?
+ null (L -I) # Prompt?
if nz # Yes
null (Chr)
if z
- call (PutB) # Output prompt
+ ld E (Prompt) # Output prompt prefix
+ eval
+ call prinE_E
+ ld A (L -I) # Output prompt
+ call (PutB)
call space
call flushAll
end
@@ -4754,9 +4757,12 @@
# Print one expression
(code 'printE_E)
- push E # Save expression
+ link
+ push E # <L I> Save expression
+ link
call printE # Print it
- pop E # Restore
+ ld E (L I) # Restore
+ drop
ret
(code 'printE 0)
@@ -4973,9 +4979,12 @@
# Print string representation
(code 'prinE_E 0)
- push E # Save expression
+ link
+ push E # <L I> Save expression
+ link
call prinE # Print it
- pop E # Restore
+ ld E (L I) # Restore
+ drop
ret
(code 'prinE 0)
diff --git a/src64/subr.l b/src64/subr.l
@@ -1,4 +1,4 @@
-# 20sep11abu
+# 11oct11abu
# (c) Software Lab. Alexander Burger
# (car 'var) -> any
@@ -3622,7 +3622,7 @@
call space
ld E ((L III)) # car(tp1)
call uniFillE_E # Fill with values
- call printE # and print
+ call printE_E # and print
call newline
break T
end
diff --git a/src64/tags b/src64/tags
@@ -9,16 +9,16 @@
AF_INET sys/x86-64.linux.defs.l 138
AV ./glob.l 7
AV0 ./glob.l 8
-Addr ./glob.l 615
-Adr ./glob.l 177
+Addr ./glob.l 616
+Adr ./glob.l 178
Alarm ./glob.l 77
-AllocErr ./glob.l 1158
-ArgErr ./glob.l 1187
-Arrow ./glob.l 1174
+AllocErr ./glob.l 1159
+ArgErr ./glob.l 1188
+Arrow ./glob.l 1175
At ./glob.l 158
At2 ./glob.l 159
At3 ./glob.l 160
-AtomErr ./glob.l 1193
+AtomErr ./glob.l 1194
Avail ./glob.l 11
BEG ./defs.l 44
BIG ./defs.l 35
@@ -27,18 +27,18 @@ BLKSIZE ./defs.l 54
BLKTAG ./defs.l 55
BSym ./glob.l 154
BUFSIZ sys/x86-64.linux.defs.l 26
-BadChain ./glob.l 1179
-BadCount ./glob.l 1180
-BadDot ./glob.l 1213
-BadFdErr ./glob.l 1208
-BadInput ./glob.l 1212
+BadChain ./glob.l 1180
+BadCount ./glob.l 1181
+BadDot ./glob.l 1214
+BadFdErr ./glob.l 1209
+BadInput ./glob.l 1213
BlkIndex ./glob.l 68
BlkLink ./glob.l 69
Break ./glob.l 50
-BrkErr ./glob.l 1202
+BrkErr ./glob.l 1203
Buf ./glob.l 12
BufEnd ./glob.l 54
-Bye ./glob.l 179
+Bye ./glob.l 180
CDR ./defs.l 37
CELLS ./defs.l 6
CHAR_DIGIT ./defs.l 64
@@ -50,20 +50,20 @@ CSym ./glob.l 153
C_CC sys/x86-64.linux.defs.l 73
C_IFLAG sys/x86-64.linux.defs.l 71
C_LFLAG sys/x86-64.linux.defs.l 72
-CaseBlocks ./glob.l 622
-CaseData ./glob.l 752
-CaseLower ./glob.l 1113
-CaseUpper ./glob.l 1089
+CaseBlocks ./glob.l 623
+CaseData ./glob.l 753
+CaseLower ./glob.l 1114
+CaseUpper ./glob.l 1090
Catch ./glob.l 20
-CbErr ./glob.l 1161
-CellErr ./glob.l 1192
+CbErr ./glob.l 1162
+CellErr ./glob.l 1193
Child ./glob.l 44
Children ./glob.l 43
-Chr ./glob.l 583
-CircFree ./glob.l 1178
-Class ./glob.l 166
-CloseErr ./glob.l 1204
-CntErr ./glob.l 1189
+Chr ./glob.l 584
+CircFree ./glob.l 1179
+Class ./glob.l 167
+CloseErr ./glob.l 1205
+CntErr ./glob.l 1190
Code ./main.l 4
DB ./glob.l 144
DB1 ./defs.l 11
@@ -71,24 +71,24 @@ DBs ./glob.l 63
DIG ./defs.l 36
DOT ./defs.l 45
D_NAME sys/x86-64.linux.defs.l 122
-Dashes ./glob.l 1183
+Dashes ./glob.l 1184
Data ./glob.l 4
-Db1 ./glob.l 562
+Db1 ./glob.l 563
DbBlock ./glob.l 66
DbFile ./glob.l 64
DbFiles ./glob.l 65
DbJnl ./glob.l 70
DbLog ./glob.l 71
-DbRdErr ./glob.l 1227
-DbSizErr ./glob.l 1229
-DbSyncErr ./glob.l 1221
-DbWrErr ./glob.l 1228
-DbfErr ./glob.l 1224
-Dbg ./glob.l 162
-Delim ./glob.l 1172
-DelimEnd ./glob.l 1173
-DivErr ./glob.l 1196
-DlErr ./glob.l 1238
+DbRdErr ./glob.l 1228
+DbSizErr ./glob.l 1230
+DbSyncErr ./glob.l 1222
+DbWrErr ./glob.l 1229
+DbfErr ./glob.l 1225
+Dbg ./glob.l 163
+Delim ./glob.l 1173
+DelimEnd ./glob.l 1174
+DivErr ./glob.l 1197
+DlErr ./glob.l 1239
EACCES sys/x86-64.linux.defs.l 9
EAGAIN sys/x86-64.linux.defs.l 8
EBADF sys/x86-64.linux.defs.l 7
@@ -98,40 +98,40 @@ END ./defs.l 46
ENOENT sys/x86-64.linux.defs.l 5
EPIPE sys/x86-64.linux.defs.l 10
EXTERN ./defs.l 50
-Env ./glob.l 588
-EnvApply ./glob.l 599
-EnvArgs ./glob.l 595
-EnvBind ./glob.l 589
-EnvCls ./glob.l 597
-EnvCo ./glob.l 582
-EnvCo7 ./glob.l 606
-EnvCtlFrames ./glob.l 593
-EnvEnd ./glob.l 610
-EnvErrFrames ./glob.l 592
-EnvInFrames ./glob.l 590
-EnvIntern ./glob.l 594
-EnvKey ./glob.l 598
-EnvMake ./glob.l 600
-EnvMid ./glob.l 605
-EnvNext ./glob.l 596
-EnvOutFrames ./glob.l 591
-EnvParseC ./glob.l 603
-EnvParseEOF ./glob.l 604
-EnvParseX ./glob.l 602
-EnvProtect ./glob.l 608
-EnvTask ./glob.l 607
-EnvTrace ./glob.l 609
-EnvYoke ./glob.l 601
-EofErr ./glob.l 1210
-Err ./glob.l 172
-ErrTok ./glob.l 1182
-ExecErr ./glob.l 1157
-Ext ./glob.l 164
-ExtErr ./glob.l 1191
+Env ./glob.l 589
+EnvApply ./glob.l 600
+EnvArgs ./glob.l 596
+EnvBind ./glob.l 590
+EnvCls ./glob.l 598
+EnvCo ./glob.l 583
+EnvCo7 ./glob.l 607
+EnvCtlFrames ./glob.l 594
+EnvEnd ./glob.l 611
+EnvErrFrames ./glob.l 593
+EnvInFrames ./glob.l 591
+EnvIntern ./glob.l 595
+EnvKey ./glob.l 599
+EnvMake ./glob.l 601
+EnvMid ./glob.l 606
+EnvNext ./glob.l 597
+EnvOutFrames ./glob.l 592
+EnvParseC ./glob.l 604
+EnvParseEOF ./glob.l 605
+EnvParseX ./glob.l 603
+EnvProtect ./glob.l 609
+EnvTask ./glob.l 608
+EnvTrace ./glob.l 610
+EnvYoke ./glob.l 602
+EofErr ./glob.l 1211
+Err ./glob.l 173
+ErrTok ./glob.l 1183
+ExecErr ./glob.l 1158
+Ext ./glob.l 165
+ExtErr ./glob.l 1192
ExtN ./glob.l 45
-Extern ./glob.l 564
+Extern ./glob.l 565
Extn ./glob.l 46
-ExtraErr ./glob.l 1166
+ExtraErr ./glob.l 1167
FD_CLOEXEC sys/x86-64.linux.defs.l 23
FD_SET sys/x86-64.linux.defs.l 111
FLOCK sys/x86-64.linux.defs.l 36
@@ -146,26 +146,26 @@ F_SETLKW sys/x86-64.linux.defs.l 51
F_SETOWN sys/x86-64.linux.defs.l 52
F_UNLCK sys/x86-64.linux.defs.l 46
F_WRLCK sys/x86-64.linux.defs.l 45
-Flock ./glob.l 613
-Fork ./glob.l 178
-ForkErr ./glob.l 1206
+Flock ./glob.l 614
+Fork ./glob.l 179
+ForkErr ./glob.l 1207
GcCount ./glob.l 51
GcMark ./glob.l 74
GcMarkEnd ./glob.l 129
-GcSymEnd ./glob.l 568
+GcSymEnd ./glob.l 569
GetBinZ_FB ./glob.l 30
-Get_A ./glob.l 585
-Giveup ./glob.l 1156
+Get_A ./glob.l 586
+Giveup ./glob.l 1157
HEAP ./defs.l 5
HOSTENT sys/x86-64.linux.defs.l 125
H_ADDR_LIST sys/x86-64.linux.defs.l 128
H_LENGTH sys/x86-64.linux.defs.l 127
H_NAME sys/x86-64.linux.defs.l 126
-HashBlank ./glob.l 1163
+HashBlank ./glob.l 1164
Heaps ./glob.l 10
Hear ./glob.l 39
Home ./glob.l 9
-Hup ./glob.l 168
+Hup ./glob.l 169
I ./defs.l 14
II ./defs.l 15
III ./defs.l 16
@@ -176,47 +176,47 @@ ISIG sys/x86-64.linux.defs.l 74
ISym ./glob.l 150
IV ./defs.l 17
IX ./defs.l 22
-IdErr ./glob.l 1226
-IgnLog ./glob.l 1177
-InBye ./glob.l 1143
+IdErr ./glob.l 1227
+IgnLog ./glob.l 1178
+InBye ./glob.l 1144
InFDs ./glob.l 25
-InFile ./glob.l 586
+InFile ./glob.l 587
InFiles ./glob.l 26
-IpBindErr ./glob.l 1234
-IpGetsocknameErr ./glob.l 1232
-IpListenErr ./glob.l 1235
-IpSetsockoptErr ./glob.l 1233
-IpSocketErr ./glob.l 1231
-Jam ./glob.l 1142
-JnlErr ./glob.l 1225
+IpBindErr ./glob.l 1235
+IpGetsocknameErr ./glob.l 1233
+IpListenErr ./glob.l 1236
+IpSetsockoptErr ./glob.l 1234
+IpSocketErr ./glob.l 1232
+Jam ./glob.l 1143
+JnlErr ./glob.l 1226
L_LEN sys/x86-64.linux.defs.l 40
L_PID sys/x86-64.linux.defs.l 41
L_START sys/x86-64.linux.defs.l 39
L_TYPE sys/x86-64.linux.defs.l 37
L_WHENCE sys/x86-64.linux.defs.l 38
-Led ./glob.l 175
+Led ./glob.l 176
LineC ./glob.l 49
LineX ./glob.l 79
Link ./glob.l 19
Lisp ./glob.l 80
LispEnd ./glob.l 128
-LockErr ./glob.l 1223
-LstErr ./glob.l 1194
+LockErr ./glob.l 1224
+LstErr ./glob.l 1195
MAXPATHLEN sys/x86-64.linux.defs.l 29
-MakeErr ./glob.l 1198
+MakeErr ./glob.l 1199
MaxBlkSize ./glob.l 67
Meth ./glob.l 145
Mic ./glob.l 37
-Month ./glob.l 1145
-Msg ./glob.l 173
-MsgErr ./glob.l 1201
+Month ./glob.l 1146
+Msg ./glob.l 174
+MsgErr ./glob.l 1202
NIX ./defs.l 43
NSym ./glob.l 151
NUMBER ./defs.l 47
Nil ./glob.l 134
-NoFdErr ./glob.l 1209
+NoFdErr ./glob.l 1210
NoMemory ./main.l 211
-NumErr ./glob.l 1188
+NumErr ./glob.l 1189
ONE ./defs.l 9
OS ./glob.l 143
O_APPEND sys/x86-64.linux.defs.l 20
@@ -228,30 +228,31 @@ O_RDONLY sys/x86-64.linux.defs.l 14
O_RDWR sys/x86-64.linux.defs.l 16
O_TRUNC sys/x86-64.linux.defs.l 19
O_WRONLY sys/x86-64.linux.defs.l 15
-OpenErr ./glob.l 1203
-OrgTermio ./glob.l 612
+OpenErr ./glob.l 1204
+OrgTermio ./glob.l 613
OutFDs ./glob.l 27
-OutFile ./glob.l 587
+OutFile ./glob.l 588
OutFiles ./glob.l 28
PIPE_BUF sys/x86-64.linux.defs.l 27
PPid ./glob.l 156
-PRepl ./glob.l 1141
+PRepl ./glob.l 1142
Penv ./glob.l 56
Pid ./glob.l 157
-PidSigMsg ./glob.l 1159
-PipeErr ./glob.l 1205
+PidSigMsg ./glob.l 1160
+PipeErr ./glob.l 1206
Pnl ./glob.l 57
-ProtErr ./glob.l 1184
-PutB ./glob.l 584
+Prompt ./glob.l 162
+ProtErr ./glob.l 1185
+PutB ./glob.l 585
PutBinBZ ./glob.l 29
-QuitMsg ./glob.l 1160
+QuitMsg ./glob.l 1161
Quote ./glob.l 146
RTLD_GLOBAL sys/x86-64.linux.defs.l 33
RTLD_LAZY sys/x86-64.linux.defs.l 32
-Redefined ./glob.l 1164
-ReentErr ./glob.l 1199
-RenErr ./glob.l 1197
-Repl ./glob.l 1140
+Redefined ./glob.l 1165
+ReentErr ./glob.l 1200
+RenErr ./glob.l 1198
+Repl ./glob.l 1141
Ret ./main.l 8
RetE_E ./main.l 28
RetNil ./main.l 22
@@ -260,8 +261,8 @@ Retc ./main.l 10
Retnc ./main.l 13
Retnz ./main.l 19
Retz ./main.l 16
-RolbLog ./glob.l 1176
-Run ./glob.l 167
+RolbLog ./glob.l 1177
+Run ./glob.l 168
SA_FLAGS sys/x86-64.linux.defs.l 84
SA_HANDLER sys/x86-64.linux.defs.l 82
SA_MASK sys/x86-64.linux.defs.l 83
@@ -307,14 +308,14 @@ SYM ./defs.l 39
S_ADDR sys/x86-64.linux.defs.l 131
S_IFDIR sys/x86-64.linux.defs.l 62
S_IFMT sys/x86-64.linux.defs.l 61
-Scl ./glob.l 165
+Scl ./glob.l 166
Seed ./glob.l 31
-SelectErr ./glob.l 1214
+SelectErr ./glob.l 1215
Sep0 ./glob.l 52
Sep3 ./glob.l 53
-SetFD ./glob.l 1171
-Sig1 ./glob.l 169
-Sig2 ./glob.l 170
+SetFD ./glob.l 1172
+Sig1 ./glob.l 170
+Sig2 ./glob.l 171
Sigio ./glob.l 78
Signal ./glob.l 60
Slot ./glob.l 35
@@ -323,20 +324,20 @@ SpMiPipe ./glob.l 38
Spkr ./glob.l 36
Stack0 ./glob.l 15
Stacks ./glob.l 16
-StkErr ./glob.l 1186
+StkErr ./glob.l 1187
StkLimit ./glob.l 18
StkSize ./glob.l 17
StrC ./glob.l 48
StrX ./glob.l 47
-SuparErr ./glob.l 1211
-SuperErr ./glob.l 1165
-SymErr ./glob.l 1190
-SymNsErr ./glob.l 1185
+SuparErr ./glob.l 1212
+SuperErr ./glob.l 1166
+SymErr ./glob.l 1191
+SymNsErr ./glob.l 1186
SymTab ./glob.l 133
-SymTabEnd ./glob.l 555
-Sync ./glob.l 1144
+SymTabEnd ./glob.l 556
+Sync ./glob.l 1145
TAIL ./defs.l 40
-TBuf ./glob.l 617
+TBuf ./glob.l 618
TCSADRAIN sys/x86-64.linux.defs.l 77
TERMIOS sys/x86-64.linux.defs.l 70
TMS sys/x86-64.linux.defs.l 65
@@ -354,53 +355,53 @@ TSym ./glob.l 147
Talking ./glob.l 42
Tell ./glob.l 40
TellBuf ./glob.l 41
-TellErr ./glob.l 1230
+TellErr ./glob.l 1231
Termio ./glob.l 21
-TgOS ./glob.l 558
+TgOS ./glob.l 559
This ./glob.l 161
-ThrowErr ./glob.l 1167
+ThrowErr ./glob.l 1168
TickS ./glob.l 34
TickU ./glob.l 33
Time ./glob.l 22
-Tio ./glob.l 1138
-Tms ./glob.l 614
-TrSyncErr ./glob.l 1222
+Tio ./glob.l 1139
+Tms ./glob.l 615
+TrSyncErr ./glob.l 1223
Transient ./glob.l 75
-Trc1 ./glob.l 1168
-Trc2 ./glob.l 1169
-TruncErr ./glob.l 1220
-Tsm ./glob.l 176
+Trc1 ./glob.l 1169
+Trc2 ./glob.l 1170
+TruncErr ./glob.l 1221
+Tsm ./glob.l 177
TtyPid ./glob.l 24
UDPMAX ./defs.l 58
USec ./glob.l 23
-UdpOvflErr ./glob.l 1236
-UndefErr ./glob.l 1237
-Uni ./glob.l 174
-Up ./glob.l 171
+UdpOvflErr ./glob.l 1237
+UndefErr ./glob.l 1238
+Uni ./glob.l 175
+Up ./glob.l 172
V ./defs.l 18
VI ./defs.l 19
VII ./defs.l 20
VIII ./defs.l 21
VMIN sys/x86-64.linux.defs.l 75
VTIME sys/x86-64.linux.defs.l 76
-VarErr ./glob.l 1195
-Version ./glob.l 571
+VarErr ./glob.l 1196
+Version ./glob.l 572
WNOHANG sys/x86-64.linux.defs.l 107
WUNTRACED sys/x86-64.linux.defs.l 108
-WaitPidErr ./glob.l 1207
-WrBytesErr ./glob.l 1215
-WrChildErr ./glob.l 1216
-WrJnlErr ./glob.l 1218
-WrLogErr ./glob.l 1219
-WrSyncErr ./glob.l 1217
-YieldErr ./glob.l 1200
+WaitPidErr ./glob.l 1208
+WrBytesErr ./glob.l 1216
+WrChildErr ./glob.l 1217
+WrJnlErr ./glob.l 1219
+WrLogErr ./glob.l 1220
+WrSyncErr ./glob.l 1218
+YieldErr ./glob.l 1201
ZERO ./defs.l 8
-Zap ./glob.l 163
-_a_ ./glob.l 1150
-_ap_ ./glob.l 1151
-_dot_ ./glob.l 1152
-_r_ ./glob.l 1148
-_w_ ./glob.l 1149
+Zap ./glob.l 164
+_a_ ./glob.l 1151
+_ap_ ./glob.l 1152
+_dot_ ./glob.l 1153
+_r_ ./glob.l 1149
+_w_ ./glob.l 1150
addAE_A ./big.l 1517
adduAE_A ./big.l 540
allocAE_A ./main.l 207
@@ -617,7 +618,7 @@ doChop ./sym.l 1208
doCirc ./subr.l 816
doCircQ ./subr.l 2402
doClip ./subr.l 1799
-doClose ./io.l 4378
+doClose ./io.l 4381
doCmd ./main.l 2912
doCnt ./apply.l 1413
doCo ./flow.l 2540
@@ -629,7 +630,7 @@ doCond ./flow.l 1911
doConnect ./net.l 201
doCons ./subr.l 747
doCopy ./subr.l 1225
-doCtl ./io.l 4251
+doCtl ./io.l 4254
doCtty ./main.l 2710
doCut ./sym.l 1911
doDate ./main.l 2424
@@ -647,7 +648,7 @@ doDiv ./big.l 2513
doDm ./flow.l 542
doDo ./flow.l 2133
doE ./flow.l 2914
-doEcho ./io.l 4409
+doEcho ./io.l 4412
doEnv ./main.l 606
doEof ./io.l 3524
doEol ./io.l 3515
@@ -655,10 +656,10 @@ doEq ./subr.l 2059
doEq0 ./subr.l 2173
doEqT ./subr.l 2181
doEqual ./subr.l 2115
-doErr ./io.l 4231
+doErr ./io.l 4234
doErrno ./main.l 1374
doEval ./flow.l 175
-doExt ./io.l 5137
+doExt ./io.l 5146
doExtQ ./sym.l 1149
doExtern ./sym.l 1015
doExtra ./flow.l 1261
@@ -673,7 +674,7 @@ doFind ./apply.l 1322
doFish ./apply.l 1613
doFlgQ ./subr.l 2445
doFlip ./subr.l 1699
-doFlush ./io.l 5112
+doFlush ./io.l 5121
doFold ./sym.l 3489
doFor ./flow.l 2222
doFork ./flow.l 3256
@@ -702,7 +703,7 @@ doIdx ./sym.l 2151
doIf ./flow.l 1797
doIf2 ./flow.l 1816
doIfn ./flow.l 1857
-doIn ./io.l 4191
+doIn ./io.l 4194
doInc ./big.l 2256
doIndex ./subr.l 2637
doInfo ./main.l 2747
@@ -727,7 +728,7 @@ doLisp ./main.l 1982
doList ./subr.l 887
doListen ./net.l 151
doLit ./flow.l 150
-doLoad ./io.l 4168
+doLoad ./io.l 4171
doLock ./db.l 1182
doLoop ./flow.l 2165
doLowQ ./sym.l 3361
@@ -781,11 +782,11 @@ doOffset ./subr.l 2677
doOn ./sym.l 1697
doOnOff ./sym.l 1727
doOne ./sym.l 1760
-doOpen ./io.l 4335
+doOpen ./io.l 4338
doOpid ./flow.l 3217
doOpt ./main.l 3033
doOr ./flow.l 1632
-doOut ./io.l 4211
+doOut ./io.l 4214
doPack ./sym.l 1259
doPair ./subr.l 2394
doPass ./apply.l 754
@@ -793,18 +794,18 @@ doPatQ ./sym.l 728
doPath ./io.l 1244
doPeek ./io.l 3431
doPick ./apply.l 1369
-doPipe ./io.l 4272
+doPipe ./io.l 4275
doPoll ./io.l 3320
doPool ./db.l 648
doPop ./sym.l 1887
doPort ./net.l 5
-doPr ./io.l 5220
+doPr ./io.l 5229
doPreQ ./sym.l 1525
-doPrin ./io.l 5036
-doPrinl ./io.l 5050
-doPrint ./io.l 5076
-doPrintln ./io.l 5107
-doPrintsp ./io.l 5092
+doPrin ./io.l 5045
+doPrinl ./io.l 5059
+doPrint ./io.l 5085
+doPrintln ./io.l 5116
+doPrintsp ./io.l 5101
doPrior ./subr.l 2713
doProg ./flow.l 1752
doProg1 ./flow.l 1760
@@ -825,13 +826,13 @@ doRand ./big.l 3003
doRange ./subr.l 997
doRank ./subr.l 3033
doRaw ./main.l 449
-doRd ./io.l 5154
+doRd ./io.l 5163
doRead ./io.l 2656
doRem ./big.l 2572
doReplace ./subr.l 1499
doRest ./main.l 2339
doReverse ./subr.l 1678
-doRewind ./io.l 5120
+doRewind ./io.l 5129
doRollback ./db.l 1889
doRot ./subr.l 848
doRun ./flow.l 306
@@ -850,7 +851,7 @@ doSize ./subr.l 2806
doSkip ./io.l 3501
doSort ./subr.l 3962
doSpQ ./sym.l 719
-doSpace ./io.l 5054
+doSpace ./io.l 5063
doSplit ./subr.l 1592
doStack ./main.l 555
doState ./flow.l 2001
@@ -896,7 +897,7 @@ doWhen ./flow.l 1876
doWhile ./flow.l 2053
doWipe ./sym.l 3236
doWith ./flow.l 1324
-doWr ./io.l 5237
+doWr ./io.l 5246
doXchg ./sym.l 1652
doXor ./flow.l 1693
doYield ./flow.l 2709
@@ -1030,7 +1031,7 @@ needVarAX ./err.l 346
needVarEX ./err.l 356
newBlock_X ./db.l 449
newIdEX_X ./db.l 492
-newline ./io.l 4665
+newline ./io.l 4668
noFdErrX ./err.l 529
nonblockingA_A ./io.l 51
numErrAX ./err.l 412
@@ -1038,13 +1039,13 @@ numErrEX ./err.l 414
oct3C_CA ./db.l 180
openErrEX ./err.l 500
oruAE_A ./big.l 394
-outAoA ./io.l 4714
-outNameE ./io.l 4738
-outNumE ./io.l 4674
-outOctA ./io.l 4701
-outStringC ./io.l 4728
-outStringS ./io.l 4726
-outWordA ./io.l 4681
+outAoA ./io.l 4717
+outNameE ./io.l 4741
+outNumE ./io.l 4677
+outOctA ./io.l 4704
+outStringC ./io.l 4731
+outStringS ./io.l 4729
+outWordA ./io.l 4684
packAoACX_CX ./db.l 108
packECX_CX ./sym.l 1292
packExtNmX_E ./db.l 87
@@ -1060,14 +1061,14 @@ popOutFiles ./io.l 1914
prByteCEXY ./io.l 680
prCntCE ./io.l 703
prE ./io.l 728
-prExtNmX ./io.l 4693
-prNameX ./io.l 4746
+prExtNmX ./io.l 4696
+prNameX ./io.l 4749
prTellEZ ./io.l 722
preCEXY_F ./sym.l 1459
-prinE ./io.l 4981
-prinE_E ./io.l 4975
-printE ./io.l 4762
-printE_E ./io.l 4756
+prinE ./io.l 4990
+prinE_E ./io.l 4981
+printE ./io.l 4768
+printE_E ./io.l 4759
propEC_E ./sym.l 2734
protErrEX ./err.l 386
pushCtlFilesY ./io.l 1858
@@ -1077,7 +1078,7 @@ pushOutFilesY ./io.l 1842
putACE ./sym.l 2480
putBlockBZ ./db.l 609
putSrcEC_E ./flow.l 25
-putStdoutB ./io.l 4622
+putStdoutB ./io.l 4625
putStringB ./main.l 2236
putTellBZ ./io.l 996
putUdpBZ ./net.l 328
@@ -1140,7 +1141,7 @@ sizeCE_C ./subr.l 2926
skipC_A ./io.l 2007
slowNbC_FA ./io.l 207
slowZ_F ./io.l 185
-space ./io.l 4669
+space ./io.l 4672
stdinByte_A ./io.l 425
stkErr ./err.l 395
stkErrE ./err.l 397
diff --git a/src64/version.l b/src64/version.l
@@ -1,6 +1,6 @@
-# 05oct11abu
+# 11oct11abu
# (c) Software Lab. Alexander Burger
-(de *Version 3 0 8 2)
+(de *Version 3 0 8 3)
# vi:et:ts=3:sw=3