commit a1a41c9a04a3e679690f26f09b3a8670fda9f6fc
parent e1fc104200ccbe659212f7e7ce684df0a83e9fec
Author: Alexander Burger <abu@software-lab.de>
Date: Fri, 2 Nov 2012 11:24:27 +0100
Added '*CPU' global variable (64-bit)
Diffstat:
6 files changed, 192 insertions(+), 175 deletions(-)
diff --git a/CHANGES b/CHANGES
@@ -1,4 +1,5 @@
* DDmmm12 picoLisp-3.1.1
+ '*CPU' global variable (64-bit)
Bug in 'collect' for 'fold'ed keys
File descriptor leak in 'dir' (64-bit)
Namespace support also in Ersatz PicoLisp
diff --git a/doc/ref.html b/doc/ref.html
@@ -2591,6 +2591,7 @@ abbreviations:
<dd><code>
<a href="#nilSym">NIL</a>
<a href="refP.html#pico">pico</a>
+ <a href="refC.html#*CPU">*CPU</a>
<a href="refO.html#*OS">*OS</a>
<a href="refD.html#*DB">*DB</a>
<a href="refT.html#T">T</a>
diff --git a/doc/refC.html b/doc/refC.html
@@ -11,6 +11,17 @@
<dl>
+<dt><a name="*CPU"><code>*CPU</code></a>
+<dd>(64-bit version only) A global variable holding the target CPU
+(architecture). Possible values include <code>"x86-64"</code>,
+<code>"ppc64"</code> or <code>"emu"</code>. See also <code><a
+href="refO.html#*OS">*OS</a></code>.
+
+<pre><code>
+: *CPU
+-> "x86-64"
+</code></pre>
+
<dt><a name="*Class"><code>*Class</code></a>
<dd>A global variable holding the current class. See also <code><a
href="ref.html#oop">OO Concepts</a></code>, <code><a
diff --git a/doc/refO.html b/doc/refO.html
@@ -25,7 +25,7 @@ href="refO.html#once">once</a></code>.
<dt><a name="*OS"><code>*OS</code></a>
<dd>A global constant holding the name of the operating system. Possible values
include <code>"Linux"</code>, <code>"FreeBSD"</code>, <code>"Darwin"</code> or
-<code>"Cygwin"</code>.
+<code>"Cygwin"</code>. See also <code><a href="refC.html#*CPU">*CPU</a></code>.
<pre><code>
: *OS
diff --git a/src64/glob.l b/src64/glob.l
@@ -1,4 +1,4 @@
-# 07jun12abu
+# 02nov12abu
# (c) Software Lab. Alexander Burger
(data 'Data)
@@ -140,6 +140,7 @@
# Protected symbols
initSym pico "pico" Pico
+ initSym CPU "*CPU" TgCPU
initSym OS "*OS" TgOS
initSym DB "*DB" Db1
initFun Meth "meth" doMeth
@@ -557,7 +558,8 @@
: SymTabEnd
# Transient symbols
- initSym TgOS `*TargetOS TgOS
+ initSym TgCPU `*Architecture TgCPU
+ initSym TgOS `*TargetOS TgOS
# Database root symbol '{1}'
word DB1 # Name
diff --git a/src64/tags b/src64/tags
@@ -16,36 +16,36 @@ AI_NEXT sys/x86-64.linux.defs.l 148
AI_SOCKTYPE sys/x86-64.linux.defs.l 145
AV glob.l 7
AV0 glob.l 8
-Addr glob.l 617
-Adr glob.l 178
+Addr glob.l 619
+Adr glob.l 179
Alarm glob.l 77
-AllocErr glob.l 1160
-ArgErr glob.l 1189
-Arrow glob.l 1176
-At glob.l 158
-At2 glob.l 159
-At3 glob.l 160
-AtomErr glob.l 1195
+AllocErr glob.l 1162
+ArgErr glob.l 1191
+Arrow glob.l 1178
+At glob.l 159
+At2 glob.l 160
+At3 glob.l 161
+AtomErr glob.l 1197
Avail glob.l 11
BEG defs.l 44
BIG defs.l 35
BLK defs.l 53
BLKSIZE defs.l 54
BLKTAG defs.l 55
-BSym glob.l 154
+BSym glob.l 155
BUFSIZ sys/x86-64.linux.defs.l 26
-BadChain glob.l 1181
-BadCount glob.l 1182
-BadDot glob.l 1215
-BadFdErr glob.l 1210
-BadInput glob.l 1214
+BadChain glob.l 1183
+BadCount glob.l 1184
+BadDot glob.l 1217
+BadFdErr glob.l 1212
+BadInput glob.l 1216
BlkIndex glob.l 68
BlkLink glob.l 69
Break glob.l 50
-BrkErr glob.l 1204
+BrkErr glob.l 1206
Buf glob.l 12
BufEnd glob.l 54
-Bye glob.l 180
+Bye glob.l 181
CDR defs.l 37
CELLS defs.l 6
CHAR_DIGIT defs.l 64
@@ -53,48 +53,49 @@ CHAR_LETTER defs.l 63
CHAR_LOWERCASE defs.l 62
CHAR_UPPERCASE defs.l 61
CNT defs.l 34
-CSym glob.l 153
+CPU glob.l 143
+CSym glob.l 154
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 624
-CaseData glob.l 754
-CaseLower glob.l 1115
-CaseUpper glob.l 1091
+CaseBlocks glob.l 626
+CaseData glob.l 756
+CaseLower glob.l 1117
+CaseUpper glob.l 1093
Catch glob.l 20
-CbErr glob.l 1163
+CbErr glob.l 1165
Child glob.l 44
Children glob.l 43
-Chr glob.l 585
-CircFree glob.l 1180
-Class glob.l 167
-CloseErr glob.l 1206
-CntErr glob.l 1191
+Chr glob.l 587
+CircFree glob.l 1182
+Class glob.l 168
+CloseErr glob.l 1208
+CntErr glob.l 1193
Code main.l 4
-DB glob.l 144
+DB glob.l 145
DB1 defs.l 11
DBs glob.l 63
DIG defs.l 36
DOT defs.l 45
D_NAME sys/x86-64.linux.defs.l 122
-Dashes glob.l 1185
+Dashes glob.l 1187
Data glob.l 4
-Db1 glob.l 564
+Db1 glob.l 566
DbBlock glob.l 66
DbFile glob.l 64
DbFiles glob.l 65
DbJnl glob.l 70
DbLog glob.l 71
-DbRdErr glob.l 1229
-DbSizErr glob.l 1231
-DbSyncErr glob.l 1223
-DbWrErr glob.l 1230
-DbfErr glob.l 1226
-Dbg glob.l 163
-Delim glob.l 1174
-DelimEnd glob.l 1175
-DivErr glob.l 1198
-DlErr glob.l 1241
+DbRdErr glob.l 1231
+DbSizErr glob.l 1233
+DbSyncErr glob.l 1225
+DbWrErr glob.l 1232
+DbfErr glob.l 1228
+Dbg glob.l 164
+Delim glob.l 1176
+DelimEnd glob.l 1177
+DivErr glob.l 1200
+DlErr glob.l 1243
EACCES sys/x86-64.linux.defs.l 9
EAGAIN sys/x86-64.linux.defs.l 8
EBADF sys/x86-64.linux.defs.l 7
@@ -104,40 +105,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 590
-EnvApply glob.l 601
-EnvArgs glob.l 597
-EnvBind glob.l 591
-EnvCls glob.l 599
-EnvCo glob.l 584
-EnvCo7 glob.l 608
-EnvCtlFrames glob.l 595
-EnvEnd glob.l 612
-EnvErrFrames glob.l 594
-EnvInFrames glob.l 592
-EnvIntern glob.l 596
-EnvKey glob.l 600
-EnvMake glob.l 602
-EnvMid glob.l 607
-EnvNext glob.l 598
-EnvOutFrames glob.l 593
-EnvParseC glob.l 605
-EnvParseEOF glob.l 606
-EnvParseX glob.l 604
-EnvProtect glob.l 610
-EnvTask glob.l 609
-EnvTrace glob.l 611
-EnvYoke glob.l 603
-EofErr glob.l 1212
-Err glob.l 173
-ErrTok glob.l 1184
-ExecErr glob.l 1159
-Ext glob.l 165
-ExtErr glob.l 1193
+Env glob.l 592
+EnvApply glob.l 603
+EnvArgs glob.l 599
+EnvBind glob.l 593
+EnvCls glob.l 601
+EnvCo glob.l 586
+EnvCo7 glob.l 610
+EnvCtlFrames glob.l 597
+EnvEnd glob.l 614
+EnvErrFrames glob.l 596
+EnvInFrames glob.l 594
+EnvIntern glob.l 598
+EnvKey glob.l 602
+EnvMake glob.l 604
+EnvMid glob.l 609
+EnvNext glob.l 600
+EnvOutFrames glob.l 595
+EnvParseC glob.l 607
+EnvParseEOF glob.l 608
+EnvParseX glob.l 606
+EnvProtect glob.l 612
+EnvTask glob.l 611
+EnvTrace glob.l 613
+EnvYoke glob.l 605
+EofErr glob.l 1214
+Err glob.l 174
+ErrTok glob.l 1186
+ExecErr glob.l 1161
+Ext glob.l 166
+ExtErr glob.l 1195
ExtN glob.l 45
-Extern glob.l 566
+Extern glob.l 568
Extn glob.l 46
-ExtraErr glob.l 1168
+ExtraErr glob.l 1170
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
@@ -152,22 +153,22 @@ 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 615
-Fork glob.l 179
-ForkErr glob.l 1208
+Flock glob.l 617
+Fork glob.l 180
+ForkErr glob.l 1210
GcCount glob.l 51
GcMark glob.l 74
GcMarkEnd glob.l 129
-GcSymEnd glob.l 570
+GcSymEnd glob.l 572
GetBinZ_FB glob.l 30
-Get_A glob.l 587
-Giveup glob.l 1158
+Get_A glob.l 589
+Giveup glob.l 1160
HEAP defs.l 5
-HashBlank glob.l 1165
+HashBlank glob.l 1167
Heaps glob.l 10
Hear glob.l 39
Home glob.l 9
-Hup glob.l 169
+Hup glob.l 170
I defs.l 14
II defs.l 15
III defs.l 16
@@ -176,55 +177,55 @@ INTERN defs.l 48
IPPROTO_IPV6 sys/x86-64.linux.defs.l 131
IPV6_V6ONLY sys/x86-64.linux.defs.l 132
ISIG sys/x86-64.linux.defs.l 74
-ISym glob.l 150
+ISym glob.l 151
IV defs.l 17
IX defs.l 22
-IdErr glob.l 1228
-IgnLog glob.l 1179
-InBye glob.l 1145
+IdErr glob.l 1230
+IgnLog glob.l 1181
+InBye glob.l 1147
InFDs glob.l 25
-InFile glob.l 588
+InFile glob.l 590
InFiles glob.l 26
-IpBindErr glob.l 1237
-IpGetsocknameErr glob.l 1234
-IpListenErr glob.l 1238
-IpReuseaddrErr glob.l 1236
-IpSocketErr glob.l 1233
-IpV6onlyErr glob.l 1235
-Jam glob.l 1144
-JnlErr glob.l 1227
+IpBindErr glob.l 1239
+IpGetsocknameErr glob.l 1236
+IpListenErr glob.l 1240
+IpReuseaddrErr glob.l 1238
+IpSocketErr glob.l 1235
+IpV6onlyErr glob.l 1237
+Jam glob.l 1146
+JnlErr glob.l 1229
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 176
+Led glob.l 177
LineC glob.l 49
LineX glob.l 79
Link glob.l 19
Lisp glob.l 80
LispEnd glob.l 128
-LockErr glob.l 1225
-LstErr glob.l 1196
+LockErr glob.l 1227
+LstErr glob.l 1198
MAXPATHLEN sys/x86-64.linux.defs.l 29
-MakeErr glob.l 1200
+MakeErr glob.l 1202
MaxBlkSize glob.l 67
-Meth glob.l 145
+Meth glob.l 146
Mic glob.l 37
-Month glob.l 1147
-Msg glob.l 174
-MsgErr glob.l 1203
+Month glob.l 1149
+Msg glob.l 175
+MsgErr glob.l 1205
NIX defs.l 43
NI_MAXHOST sys/x86-64.linux.defs.l 135
NI_NAMEREQD sys/x86-64.linux.defs.l 136
-NSym glob.l 151
+NSym glob.l 152
NUMBER defs.l 47
Nil glob.l 134
-NoFdErr glob.l 1211
+NoFdErr glob.l 1213
NoMemory main.l 211
-NumErr glob.l 1190
+NumErr glob.l 1192
ONE defs.l 9
-OS glob.l 143
+OS glob.l 144
O_APPEND sys/x86-64.linux.defs.l 20
O_ASYNC sys/x86-64.linux.defs.l 54
O_CREAT sys/x86-64.linux.defs.l 17
@@ -234,33 +235,33 @@ 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 1205
-OrgTermio glob.l 614
+OpenErr glob.l 1207
+OrgTermio glob.l 616
OutFDs glob.l 27
-OutFile glob.l 589
+OutFile glob.l 591
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
+PPid glob.l 157
+PRepl glob.l 1145
+PairErr glob.l 1196
Penv glob.l 56
Pico glob.l 137
-Pid glob.l 157
-PidSigMsg glob.l 1161
-PipeErr glob.l 1207
+Pid glob.l 158
+PidSigMsg glob.l 1163
+PipeErr glob.l 1209
Pnl glob.l 57
-Prompt glob.l 162
-ProtErr glob.l 1186
-PutB glob.l 586
+Prompt glob.l 163
+ProtErr glob.l 1188
+PutB glob.l 588
PutBinBZ glob.l 29
-QuitMsg glob.l 1162
-Quote glob.l 146
+QuitMsg glob.l 1164
+Quote glob.l 147
RTLD_GLOBAL sys/x86-64.linux.defs.l 33
RTLD_LAZY sys/x86-64.linux.defs.l 32
-Redefined glob.l 1166
-ReentErr glob.l 1201
-RenErr glob.l 1199
-Repl glob.l 1142
+Redefined glob.l 1168
+ReentErr glob.l 1203
+RenErr glob.l 1201
+Repl glob.l 1144
Ret main.l 8
RetE_E main.l 28
RetNil main.l 22
@@ -269,8 +270,8 @@ Retc main.l 10
Retnc main.l 13
Retnz main.l 19
Retz main.l 16
-RolbLog glob.l 1178
-Run glob.l 168
+RolbLog glob.l 1180
+Run glob.l 169
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
@@ -305,7 +306,7 @@ SOCK_DGRAM sys/x86-64.linux.defs.l 126
SOCK_STREAM sys/x86-64.linux.defs.l 125
SOL_SOCKET sys/x86-64.linux.defs.l 129
SO_REUSEADDR sys/x86-64.linux.defs.l 130
-SSym glob.l 152
+SSym glob.l 153
STACK defs.l 7
STAT sys/x86-64.linux.defs.l 57
ST_MODE sys/x86-64.linux.defs.l 58
@@ -314,36 +315,36 @@ ST_SIZE sys/x86-64.linux.defs.l 59
SYM defs.l 39
S_IFDIR sys/x86-64.linux.defs.l 62
S_IFMT sys/x86-64.linux.defs.l 61
-Scl glob.l 166
+Scl glob.l 167
Seed glob.l 31
-SelectErr glob.l 1216
+SelectErr glob.l 1218
Sep0 glob.l 52
Sep3 glob.l 53
-SetFD glob.l 1173
-Sig1 glob.l 170
-Sig2 glob.l 171
+SetFD glob.l 1175
+Sig1 glob.l 171
+Sig2 glob.l 172
Sigio glob.l 78
Signal glob.l 60
Slot glob.l 35
-Solo glob.l 155
+Solo glob.l 156
SpMiPipe glob.l 38
Spkr glob.l 36
Stack0 glob.l 15
Stacks glob.l 16
-StkErr glob.l 1188
+StkErr glob.l 1190
StkLimit glob.l 18
StkSize glob.l 17
StrC glob.l 48
StrX glob.l 47
-SuparErr glob.l 1213
-SuperErr glob.l 1167
-SymErr glob.l 1192
-SymNsErr glob.l 1187
+SuparErr glob.l 1215
+SuperErr glob.l 1169
+SymErr glob.l 1194
+SymNsErr glob.l 1189
SymTab glob.l 133
-SymTabEnd glob.l 557
-Sync glob.l 1146
+SymTabEnd glob.l 558
+Sync glob.l 1148
TAIL defs.l 40
-TBuf glob.l 619
+TBuf glob.l 621
TCSADRAIN sys/x86-64.linux.defs.l 77
TERMIOS sys/x86-64.linux.defs.l 70
TMS sys/x86-64.linux.defs.l 65
@@ -357,57 +358,58 @@ TM_SEC sys/x86-64.linux.defs.l 114
TM_YEAR sys/x86-64.linux.defs.l 119
TOP defs.l 10
TRANSIENT defs.l 49
-TSym glob.l 147
+TSym glob.l 148
Talking glob.l 42
Tell glob.l 40
TellBuf glob.l 41
-TellErr glob.l 1232
+TellErr glob.l 1234
Termio glob.l 21
-TgOS glob.l 560
-This glob.l 161
-ThrowErr glob.l 1169
+TgCPU glob.l 561
+TgOS glob.l 562
+This glob.l 162
+ThrowErr glob.l 1171
TickS glob.l 34
TickU glob.l 33
Time glob.l 22
-Tio glob.l 1140
-Tms glob.l 616
-TrSyncErr glob.l 1224
+Tio glob.l 1142
+Tms glob.l 618
+TrSyncErr glob.l 1226
Transient glob.l 75
-Trc1 glob.l 1170
-Trc2 glob.l 1171
-TruncErr glob.l 1222
-Tsm glob.l 177
+Trc1 glob.l 1172
+Trc2 glob.l 1173
+TruncErr glob.l 1224
+Tsm glob.l 178
TtyPid glob.l 24
UDPMAX defs.l 58
USec glob.l 23
-UdpOvflErr glob.l 1239
-UndefErr glob.l 1240
-Uni glob.l 175
-Up glob.l 172
+UdpOvflErr glob.l 1241
+UndefErr glob.l 1242
+Uni glob.l 176
+Up glob.l 173
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 1197
-Version glob.l 573
+VarErr glob.l 1199
+Version glob.l 575
WNOHANG sys/x86-64.linux.defs.l 107
WUNTRACED sys/x86-64.linux.defs.l 108
-WaitPidErr glob.l 1209
-WrBytesErr glob.l 1217
-WrChildErr glob.l 1218
-WrJnlErr glob.l 1220
-WrLogErr glob.l 1221
-WrSyncErr glob.l 1219
-YieldErr glob.l 1202
+WaitPidErr glob.l 1211
+WrBytesErr glob.l 1219
+WrChildErr glob.l 1220
+WrJnlErr glob.l 1222
+WrLogErr glob.l 1223
+WrSyncErr glob.l 1221
+YieldErr glob.l 1204
ZERO defs.l 8
-Zap glob.l 164
-_a_ glob.l 1152
-_ap_ glob.l 1153
-_dot_ glob.l 1154
-_r_ glob.l 1150
-_w_ glob.l 1151
+Zap glob.l 165
+_a_ glob.l 1154
+_ap_ glob.l 1155
+_dot_ glob.l 1156
+_r_ glob.l 1152
+_w_ glob.l 1153
addAE_A big.l 1517
adduAE_A big.l 540
allocAE_A main.l 207