Alexander Burger wrote:
 Hi Cle,

Hi Alexander,

 unfortunately, we see problems on Mac OS since quite some time.
 You'll see that if you search in the archive of this mailing list

I had already seen this, but those problems dealt with being not able to build picoLisp though. Therefore I had the hope, that my problem perhaps is already solved! :-}

 I don't have a Mac myself. So I'm still hoping that some of the Mac
 users fires up a debugger and helps, but no results so far :-(

Ok! Today I had give it a try and finally I was able to patch and build picoLisp to being runable under Snow Leopard passing all unit tests in lib/test.l and running doc/hello.l and doc/family.l too :-)

I have attached the patch necessary to fix all glitches for Snow Leopard. I have tested the changes against Snow Leopard and NetBSD and they work fine! I intend to have a look, if they run under Leopard (MacOS/X 10.5) tomorrow if I can manage to install Xcode on my PPC machine.

BTW: If you duplicate the OpenBSD section in the src/Makefile and replace OpenBSD by NetBSD, you can add another platform picoLisp is running onto :-D

The attached patch was made against the development version downloaded as picoLisp.tgz from your homepage. The patch was applied as:

  tar xzf picoLisp.tgz
  cd picoLisp
  patch -p0 < ../picoLisp.patch
  (cd src; make clean picolisp)
  ./p lib/test.l -bye

I hope, I did not break your coding style too much via the patch ...

Best regards and thanks for picoLisp ... :-)



Index: src/Makefile
--- src/Makefile
+++ src/Makefile
@@ -33,11 +33,11 @@
        STRIP = strip
 ifeq ($(shell uname), Darwin)
        OS = Darwin
        PICOLISP-FLAGS = -m32 -lc -lm -ldl
-       DYNAMIC-LIB-FLAGS = -dynamiclib -undefined dynamic_lookup
+       DYNAMIC-LIB-FLAGS = -dynamiclib -undefined dynamic_lookup -m32
        STRIP = :
 ifeq ($(shell uname -o), Cygwin)
        OS = Cygwin
        DYNAMIC-LIB-FLAGS = -shared

Index: src/main.c
--- src/main.c
+++ src/main.c
@@ -2,10 +2,31 @@
  * (c) Software Lab. Alexander Burger
 #include "pico.h"
+/* Globals declared in pico.h */
+int Signal, Chr, Slot, Spkr, Mic, Hear, Tell, Children, ExtN;
+char **AV, *AV0, *Home;
+child *Child;
+heap *Heaps;
+cell *Avail;
+stkEnv Env;
+catchFrame *CatchPtr;
+struct termios OrgTermio, *Termio;
+int InFDs, OutFDs;
+inFile *InFile, **InFiles;
+outFile *OutFile, **OutFiles;
+int (*getBin)(void);
+void (*putBin)(int);
+any TheKey, TheCls, Thrown;
+any Alarm, Line, Zero, One, 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 Run, Hup, Sig1, Sig2, Up, Err, Msg, Uni, Led, Tsm, Adr, Fork, Bye;
 /* Globals */
 static int TtyPid;
 static word2 USec;
 static struct timeval Tv;
 static bool Tio, Jam;
@@ -633,11 +654,11 @@
       else {
          if (n)
             memcpy(buf, Home, n);
          strcpy(buf + n, "lib/"),  strcpy(buf + n + 4, nm);
-      if (!(h = dlopen(buf, RTLD_LAZY | RTLD_GLOBAL))  ||  !(h = dlsym(h,p)))
+      if (!(h = dlopen(buf, RTLD_NOW | RTLD_GLOBAL))  ||  !(h = dlsym(h,p)))
          return NO;
       val(x) = box(num(h));
    return YES;
@@ -1061,10 +1082,17 @@
       if (*av[i] != '-') {
          if ((p = strrchr(av[i], '/')) && !(p == av[i]+1 && *av[i] == '.')) {
             Home = malloc(p - av[i] + 2);
             memcpy(Home, av[i], p - av[i] + 1);
             Home[p - av[i] + 1] = '\0';
+         }
+         else if ((p = getcwd(NULL,0)) != NULL) {
+            int len = strlen(p);
+            Home = malloc(len + 2);
+            memcpy(Home, p, len);
+            Home[len] = '/';
+            Home[len + 1] = '\0';
    AV0 = *av++;
    AV = av;

Index: src/pico.h
--- src/pico.h
+++ src/pico.h
@@ -234,512 +234,512 @@
 /* External symbol access */
 #define Fetch(ex,x)     if (isExt(x)) db(ex,x,1)
 #define Touch(ex,x)     if (isExt(x)) db(ex,x,2)
 /* Globals */
-int Signal, Chr, Slot, Spkr, Mic, Hear, Tell, Children, ExtN;
-char **AV, *AV0, *Home;
-child *Child;
-heap *Heaps;
-cell *Avail;
-stkEnv Env;
-catchFrame *CatchPtr;
-struct termios OrgTermio, *Termio;
-int InFDs, OutFDs;
-inFile *InFile, **InFiles;
-outFile *OutFile, **OutFiles;
-int (*getBin)(void);
-void (*putBin)(int);
-any TheKey, TheCls, Thrown;
-any Alarm, Line, Zero, One, 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 Run, Hup, Sig1, Sig2, Up, Err, Msg, Uni, Led, Tsm, Adr, Fork, Bye;
+extern int Signal, Chr, Slot, Spkr, Mic, Hear, Tell, Children, ExtN;
+extern char **AV, *AV0, *Home;
+extern child *Child;
+extern heap *Heaps;
+extern cell *Avail;
+extern stkEnv Env;
+extern catchFrame *CatchPtr;
+extern struct termios OrgTermio, *Termio;
+extern int InFDs, OutFDs;
+extern inFile *InFile, **InFiles;
+extern outFile *OutFile, **OutFiles;
+extern int (*getBin)(void);
+extern void (*putBin)(int);
+extern any TheKey, TheCls, Thrown;
+extern any Alarm, Line, Zero, One, Intern[IHASH], Transient[IHASH], 
+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 Run, Hup, Sig1, Sig2, Up, Err, Msg, Uni, Led, Tsm, Adr, Fork, Bye;
 /* Prototypes */
-void *alloc(void*,size_t);
-any apply(any,any,bool,int,cell*);
-void argError(any,any) __attribute__ ((noreturn));
-void atomError(any,any) __attribute__ ((noreturn));
-void begString(void);
-void bigAdd(any,any);
-int bigCompare(any,any);
-any bigCopy(any);
-void bigSub(any,any);
-void binPrint(int,any);
-any binRead(int);
-adr blk64(any);
-any boxChar(int,int*,any*);
-any boxWord2(word2);
-any brkLoad(any);
-int bufSize(any);
-void bufString(any,char*);
-void bye(int) __attribute__ ((noreturn));
-void byteSym(int,int*,any*);
-void cellError(any,any) __attribute__ ((noreturn));
-void charSym(int,int*,any*);
-void closeInFile(int);
-void closeOnExec(any,int);
-void closeOutFile(int);
-void cntError(any,any) __attribute__ ((noreturn));
-int compare(any,any);
-any cons(any,any);
-any consNum(word,any);
-any consStr(any);
-any consSym(any,any);
-void newline(void);
-void ctOpen(any,any,ctlFrame*);
-void db(any,any,int);
-int dbSize(any,any);
-void digAdd(any,word);
-void digDiv2(any);
-void digMul2(any);
-void digSub1(any);
-any doubleToNum(double);
-unsigned long ehash(any);
-any endString(void);
-bool eol(void);
-bool equal(any,any);
-void err(any,any,char*,...) __attribute__ ((noreturn));
-any evExpr(any,any);
-long evCnt(any,any);
-double evDouble(any,any);
-any evList(any);
-any evSym(any);
-void execError(char*) __attribute__ ((noreturn));
-void extError(any,any) __attribute__ ((noreturn));
-any extOffs(int,any);
-any findHash(any,any*);
-int firstByte(any);
-bool flush(outFile*);
-void flushAll(void);
-pid_t forkLisp(any);
-any funq(any);
-any get(any,any);
-int getChar(void);
-void getStdin(void);
-void giveup(char*) __attribute__ ((noreturn));
-bool hashed(any,long,any*);
-void heapAlloc(void);
-any idx(any,any,int);
-unsigned long ihash(any);
-inFile *initInFile(int,char*);
-outFile *initOutFile(int);
-void initSymbols(void);
-any intern(char*);
-bool isBlank(any);
-bool isLife(any);
-void lstError(any,any) __attribute__ ((noreturn));
-any load(any,int,any);
-any loadAll(any);
-any method(any);
-any mkChar(int);
-any mkDat(int,int,int);
-any mkName(char*);
-any mkStr(char*);
-any mkTime(int,int,int);
-any name(any);
-any new64(adr,any);
-any newId(any,int);
-int nonblocking(int);
-int numBytes(any);
-void numError(any,any) __attribute__ ((noreturn));
-double numToDouble(any);
-any numToSym(any,int,int,int);
-void outName(any);
-void outNum(any);
-void outString(char*);
-void outWord(word);
-void pack(any,int*,any*,cell*);
-int pathSize(any);
-void pathString(any,char*);
-void pipeError(any,char*);
-void popCtlFiles(void);
-void popInFiles(void);
-void popOutFiles(void);
-void pr(int,any);
-void prin(any);
-void prin1(any);
-void print(any);
-void print1(any);
-void prn(long);
-void protError(any,any) __attribute__ ((noreturn));
-void pushInFiles(inFrame*);
-void pushOutFiles(outFrame*);
-void pushCtlFiles(ctlFrame*);
-void put(any,any,any);
-void putStdout(int);
-void rdOpen(any,any,inFrame*);
-any read1(int);
-int rdBytes(int,byte*,int,bool);
-int secondByte(any);
-void setCooked(void);
-void setRaw(void);
-bool sharedLib(any);
-void sighandler(any);
-int slow(inFile*,bool);
-void space(void);
-bool subStr(any,any);
-int symByte(any);
-int symChar(any);
-void symError(any,any) __attribute__ ((noreturn));
-any symToNum(any,int,int,int);
-word2 unBoxWord2(any);
-void undefined(any,any);
-void unwind (catchFrame*);
-void varError(any,any) __attribute__ ((noreturn));
-long waitFd(any,int,long);
-bool wrBytes(int,byte*,int);
-void wrOpen(any,any,outFrame*);
-long xCnt(any,any);
-any xSym(any);
-void zapZero(any);
-any doAbs(any);
-any doAccept(any);
-any doAdd(any);
-any doAlarm(any);
-any doAll(any);
-any doAnd(any);
-any doAny(any);
-any doAppend(any);
-any doApply(any);
-any doArg(any);
-any doArgs(any);
-any doArgv(any);
-any doArrow(any);
-any doAsoq(any);
-any doAs(any);
-any doAssoc(any);
-any doAt(any);
-any doAtom(any);
-any doBind(any);
-any doBitAnd(any);
-any doBitOr(any);
-any doBitQ(any);
-any doBitXor(any);
-any doBool(any);
-any doBox(any);
-any doBoxQ(any);
-any doBreak(any);
-any doBy(any);
-any doBye(any) __attribute__ ((noreturn));
-any doCaaaar(any);
-any doCaaadr(any);
-any doCaaar(any);
-any doCaadar(any);
-any doCaaddr(any);
-any doCaadr(any);
-any doCaar(any);
-any doCadaar(any);
-any doCadadr(any);
-any doCadar(any);
-any doCaddar(any);
-any doCadddr(any);
-any doCaddr(any);
-any doCadr(any);
-any doCall(any);
-any doCar(any);
-any doCase(any);
-any doCatch(any);
-any doCdaaar(any);
-any doCdaadr(any);
-any doCdaar(any);
-any doCdadar(any);
-any doCdaddr(any);
-any doCdadr(any);
-any doCd(any);
-any doCdar(any);
-any doCddaar(any);
-any doCddadr(any);
-any doCddar(any);
-any doCdddar(any);
-any doCddddr(any);
-any doCdddr(any);
-any doCddr(any);
-any doCdr(any);
-any doChain(any);
-any doChar(any);
-any doChop(any);
-any doCirc(any);
-any doClip(any);
-any doClose(any);
-any doCmd(any);
-any doCnt(any);
-any doCol(any);
-any doCommit(any);
-any doCon(any);
-any doConc(any);
-any doCond(any);
-any doConnect(any);
-any doCons(any);
-any doCopy(any);
-any doCtl(any);
-any doCtty(any);
-any doCut(any);
-any doDate(any);
-any doDbck(any);
-any doDe(any);
-any doDec(any);
-any doDef(any);
-any doDefault(any);
-any doDel(any);
-any doDelete(any);
-any doDelq(any);
-any doDiff(any);
-any doDir(any);
-any doDiv(any);
-any doDm(any);
-any doDo(any);
-any doE(any);
-any doEcho(any);
-any doEnv(any);
-any doEof(any);
-any doEol(any);
-any doEq(any);
-any doEq0(any);
-any doEqT(any);
-any doEqual(any);
-any doEval(any);
-any doExt(any);
-any doExtern(any);
-any doExtQ(any);
-any doExtra(any);
-any doExtract(any);
-any doFifo(any);
-any doFile(any);
-any doFill(any);
-any doFilter(any);
-any doFin(any);
-any doFinally(any);
-any doFind(any);
-any doFish(any);
-any doFlgQ(any);
-any doFlip(any);
-any doFlush(any);
-any doFold(any);
-any doFor(any);
-any doFork(any);
-any doFormat(any);
-any doFree(any);
-any doFrom(any);
-any doFull(any);
-any doFunQ(any);
-any doGc(any);
-any doGe(any);
-any doGe0(any);
-any doGet(any);
-any doGetd(any);
-any doGetl(any);
-any doGlue(any);
-any doGt(any);
-any doGt0(any);
-any doHead(any);
-any doHeap(any);
-any doHear(any);
-any doHide(any);
-any doHost(any);
-any doId(any);
-any doIdx(any);
-any doIf(any);
-any doIf2(any);
-any doIfn(any);
-any doIn(any);
-any doInc(any);
-any doIndex(any);
-any doInfo(any);
-any doIntern(any);
-any doIpid(any);
-any doIsa(any);
-any doJob(any);
-any doJournal(any);
-any doKey(any);
-any doKill(any);
-any doLast(any);
-any doLe(any);
-any doLength(any);
-any doLet(any);
-any doLetQ(any);
-any doLieu(any);
-any doLine(any);
-any doLines(any);
-any doLink(any);
-any doList(any);
-any doListen(any);
-any doLit(any);
-any doLstQ(any);
-any doLoad(any);
-any doLock(any);
-any doLoop(any);
-any doLowQ(any);
-any doLowc(any);
-any doLt(any);
-any doLt0(any);
-any doLup(any);
-any doMade(any);
-any doMake(any);
-any doMap(any);
-any doMapc(any);
-any doMapcan(any);
-any doMapcar(any);
-any doMapcon(any);
-any doMaplist(any);
-any doMaps(any);
-any doMark(any);
-any doMatch(any);
-any doMax(any);
-any doMaxi(any);
-any doMember(any);
-any doMemq(any);
-any doMeta(any);
-any doMeth(any);
-any doMethod(any);
-any doMin(any);
-any doMini(any);
-any doMix(any);
-any doMmeq(any);
-any doMul(any);
-any doMulDiv(any);
-any doName(any);
-any doNand(any);
-any doNEq(any);
-any doNEq0(any);
-any doNEqT(any);
-any doNEqual(any);
-any doNeed(any);
-any doNew(any);
-any doNext(any);
-any doNil(any);
-any doNond(any);
-any doNor(any);
-any doNot(any);
-any doNth(any);
-any doNumQ(any);
-any doOff(any);
-any doOffset(any);
-any doOn(any);
-any doOne(any);
-any doOnOff(any);
-any doOpen(any);
-any doOpid(any);
-any doOpt(any);
-any doOr(any);
-any doOut(any);
-any doPack(any);
-any doPair(any);
-any doPass(any);
-any doPath(any);
-any doPatQ(any);
-any doPeek(any);
-any doPick(any);
-any doPid(any);
-any doPipe(any);
-any doPoll(any);
-any doPool(any);
-any doPop(any);
-any doPort(any);
-any doPr(any);
-any doPreQ(any);
-any doPrin(any);
-any doPrinl(any);
-any doPrint(any);
-any doPrintln(any);
-any doPrintsp(any);
-any doProg(any);
-any doProg1(any);
-any doProg2(any);
-any doProp(any);
-any doPropCol(any);
-any doProtect(any);
-any doProve(any);
-any doPush(any);
-any doPush1(any);
-any doPut(any);
-any doPutl(any);
-any doPwd(any);
-any doQueue(any);
-any doQuit(any);
-any doQuote(any);
-any doRand(any);
-any doRange(any);
-any doRank(any);
-any doRaw(any);
-any doRd(any);
-any doRead(any);
-any doRem(any);
-any doReplace(any);
-any doRest(any);
-any doReverse(any);
-any doRewind(any);
-any doRollback(any);
-any doRot(any);
-any doRpc(any);
-any doRun(any);
-any doSect(any);
-any doSeed(any);
-any doSeek(any);
-any doSemicol(any);
-any doSend(any);
-any doSeq(any);
-any doSet(any);
-any doSetCol(any);
-any doSetq(any);
-any doShift(any);
-any doSize(any);
-any doSkip(any);
-any doSort(any);
-any doSpace(any);
-any doSplit(any);
-any doSpQ(any);
-any doState(any);
-any doStem(any);
-any doStr(any);
-any doStrip(any);
-any doStrQ(any);
-any doSub(any);
-any doSubQ(any);
-any doSum(any);
-any doSuper(any);
-any doSym(any);
-any doSymQ(any);
-any doSync(any);
-any doSys(any);
-any doT(any);
-any doTail(any);
-any doTell(any);
-any doText(any);
-any doThrow(any);
-any doTick(any);
-any doTill(any);
-any doTime(any);
-any doTouch(any);
-any doTrace(any);
-any doTrim(any);
-any doTry(any);
-any doType(any);
-any doUdp(any);
-any doUnify(any);
-any doUnless(any);
-any doUntil(any);
-any doUp(any);
-any doUppQ(any);
-any doUppc(any);
-any doUse(any);
-any doUsec(any);
-any doVal(any);
-any doWait(any);
-any doWhen(any);
-any doWhile(any);
-any doWipe(any);
-any doWith(any);
-any doWr(any);
-any doXchg(any);
-any doXor(any);
-any doYoke(any);
-any doZap(any);
-any doZero(any);
+extern void *alloc(void*,size_t);
+extern any apply(any,any,bool,int,cell*);
+extern void argError(any,any) __attribute__ ((noreturn));
+extern void atomError(any,any) __attribute__ ((noreturn));
+extern void begString(void);
+extern void bigAdd(any,any);
+extern int bigCompare(any,any);
+extern any bigCopy(any);
+extern void bigSub(any,any);
+extern void binPrint(int,any);
+extern any binRead(int);
+extern adr blk64(any);
+extern any boxChar(int,int*,any*);
+extern any boxWord2(word2);
+extern any brkLoad(any);
+extern int bufSize(any);
+extern void bufString(any,char*);
+extern void bye(int) __attribute__ ((noreturn));
+extern void byteSym(int,int*,any*);
+extern void cellError(any,any) __attribute__ ((noreturn));
+extern void charSym(int,int*,any*);
+extern void closeInFile(int);
+extern void closeOnExec(any,int);
+extern void closeOutFile(int);
+extern void cntError(any,any) __attribute__ ((noreturn));
+extern int compare(any,any);
+extern any cons(any,any);
+extern any consNum(word,any);
+extern any consStr(any);
+extern any consSym(any,any);
+extern void newline(void);
+extern void ctOpen(any,any,ctlFrame*);
+extern void db(any,any,int);
+extern int dbSize(any,any);
+extern void digAdd(any,word);
+extern void digDiv2(any);
+extern void digMul2(any);
+extern void digSub1(any);
+extern any doubleToNum(double);
+extern unsigned long ehash(any);
+extern any endString(void);
+extern bool eol(void);
+extern bool equal(any,any);
+extern void err(any,any,char*,...) __attribute__ ((noreturn));
+extern any evExpr(any,any);
+extern long evCnt(any,any);
+extern double evDouble(any,any);
+extern any evList(any);
+extern any evSym(any);
+extern void execError(char*) __attribute__ ((noreturn));
+extern void extError(any,any) __attribute__ ((noreturn));
+extern any extOffs(int,any);
+extern any findHash(any,any*);
+extern int firstByte(any);
+extern bool flush(outFile*);
+extern void flushAll(void);
+extern pid_t forkLisp(any);
+extern any funq(any);
+extern any get(any,any);
+extern int getChar(void);
+extern void getStdin(void);
+extern void giveup(char*) __attribute__ ((noreturn));
+extern bool hashed(any,long,any*);
+extern void heapAlloc(void);
+extern any idx(any,any,int);
+extern unsigned long ihash(any);
+extern inFile *initInFile(int,char*);
+extern outFile *initOutFile(int);
+extern void initSymbols(void);
+extern any intern(char*);
+extern bool isBlank(any);
+extern bool isLife(any);
+extern void lstError(any,any) __attribute__ ((noreturn));
+extern any load(any,int,any);
+extern any loadAll(any);
+extern any method(any);
+extern any mkChar(int);
+extern any mkDat(int,int,int);
+extern any mkName(char*);
+extern any mkStr(char*);
+extern any mkTime(int,int,int);
+extern any name(any);
+extern any new64(adr,any);
+extern any newId(any,int);
+extern int nonblocking(int);
+extern int numBytes(any);
+extern void numError(any,any) __attribute__ ((noreturn));
+extern double numToDouble(any);
+extern any numToSym(any,int,int,int);
+extern void outName(any);
+extern void outNum(any);
+extern void outString(char*);
+extern void outWord(word);
+extern void pack(any,int*,any*,cell*);
+extern int pathSize(any);
+extern void pathString(any,char*);
+extern void pipeError(any,char*);
+extern void popCtlFiles(void);
+extern void popInFiles(void);
+extern void popOutFiles(void);
+extern void pr(int,any);
+extern void prin(any);
+extern void prin1(any);
+extern void print(any);
+extern void print1(any);
+extern void prn(long);
+extern void protError(any,any) __attribute__ ((noreturn));
+extern void pushInFiles(inFrame*);
+extern void pushOutFiles(outFrame*);
+extern void pushCtlFiles(ctlFrame*);
+extern void put(any,any,any);
+extern void putStdout(int);
+extern void rdOpen(any,any,inFrame*);
+extern any read1(int);
+extern int rdBytes(int,byte*,int,bool);
+extern int secondByte(any);
+extern void setCooked(void);
+extern void setRaw(void);
+extern bool sharedLib(any);
+extern void sighandler(any);
+extern int slow(inFile*,bool);
+extern void space(void);
+extern bool subStr(any,any);
+extern int symByte(any);
+extern int symChar(any);
+extern void symError(any,any) __attribute__ ((noreturn));
+extern any symToNum(any,int,int,int);
+extern word2 unBoxWord2(any);
+extern void undefined(any,any);
+extern void unwind (catchFrame*);
+extern void varError(any,any) __attribute__ ((noreturn));
+extern long waitFd(any,int,long);
+extern bool wrBytes(int,byte*,int);
+extern void wrOpen(any,any,outFrame*);
+extern long xCnt(any,any);
+extern any xSym(any);
+extern void zapZero(any);
+extern any doAbs(any);
+extern any doAccept(any);
+extern any doAdd(any);
+extern any doAlarm(any);
+extern any doAll(any);
+extern any doAnd(any);
+extern any doAny(any);
+extern any doAppend(any);
+extern any doApply(any);
+extern any doArg(any);
+extern any doArgs(any);
+extern any doArgv(any);
+extern any doArrow(any);
+extern any doAsoq(any);
+extern any doAs(any);
+extern any doAssoc(any);
+extern any doAt(any);
+extern any doAtom(any);
+extern any doBind(any);
+extern any doBitAnd(any);
+extern any doBitOr(any);
+extern any doBitQ(any);
+extern any doBitXor(any);
+extern any doBool(any);
+extern any doBox(any);
+extern any doBoxQ(any);
+extern any doBreak(any);
+extern any doBy(any);
+extern any doBye(any) __attribute__ ((noreturn));
+extern any doCaaaar(any);
+extern any doCaaadr(any);
+extern any doCaaar(any);
+extern any doCaadar(any);
+extern any doCaaddr(any);
+extern any doCaadr(any);
+extern any doCaar(any);
+extern any doCadaar(any);
+extern any doCadadr(any);
+extern any doCadar(any);
+extern any doCaddar(any);
+extern any doCadddr(any);
+extern any doCaddr(any);
+extern any doCadr(any);
+extern any doCall(any);
+extern any doCar(any);
+extern any doCase(any);
+extern any doCatch(any);
+extern any doCdaaar(any);
+extern any doCdaadr(any);
+extern any doCdaar(any);
+extern any doCdadar(any);
+extern any doCdaddr(any);
+extern any doCdadr(any);
+extern any doCd(any);
+extern any doCdar(any);
+extern any doCddaar(any);
+extern any doCddadr(any);
+extern any doCddar(any);
+extern any doCdddar(any);
+extern any doCddddr(any);
+extern any doCdddr(any);
+extern any doCddr(any);
+extern any doCdr(any);
+extern any doChain(any);
+extern any doChar(any);
+extern any doChop(any);
+extern any doCirc(any);
+extern any doClip(any);
+extern any doClose(any);
+extern any doCmd(any);
+extern any doCnt(any);
+extern any doCol(any);
+extern any doCommit(any);
+extern any doCon(any);
+extern any doConc(any);
+extern any doCond(any);
+extern any doConnect(any);
+extern any doCons(any);
+extern any doCopy(any);
+extern any doCtl(any);
+extern any doCtty(any);
+extern any doCut(any);
+extern any doDate(any);
+extern any doDbck(any);
+extern any doDe(any);
+extern any doDec(any);
+extern any doDef(any);
+extern any doDefault(any);
+extern any doDel(any);
+extern any doDelete(any);
+extern any doDelq(any);
+extern any doDiff(any);
+extern any doDir(any);
+extern any doDiv(any);
+extern any doDm(any);
+extern any doDo(any);
+extern any doE(any);
+extern any doEcho(any);
+extern any doEnv(any);
+extern any doEof(any);
+extern any doEol(any);
+extern any doEq(any);
+extern any doEq0(any);
+extern any doEqT(any);
+extern any doEqual(any);
+extern any doEval(any);
+extern any doExt(any);
+extern any doExtern(any);
+extern any doExtQ(any);
+extern any doExtra(any);
+extern any doExtract(any);
+extern any doFifo(any);
+extern any doFile(any);
+extern any doFill(any);
+extern any doFilter(any);
+extern any doFin(any);
+extern any doFinally(any);
+extern any doFind(any);
+extern any doFish(any);
+extern any doFlgQ(any);
+extern any doFlip(any);
+extern any doFlush(any);
+extern any doFold(any);
+extern any doFor(any);
+extern any doFork(any);
+extern any doFormat(any);
+extern any doFree(any);
+extern any doFrom(any);
+extern any doFull(any);
+extern any doFunQ(any);
+extern any doGc(any);
+extern any doGe(any);
+extern any doGe0(any);
+extern any doGet(any);
+extern any doGetd(any);
+extern any doGetl(any);
+extern any doGlue(any);
+extern any doGt(any);
+extern any doGt0(any);
+extern any doHead(any);
+extern any doHeap(any);
+extern any doHear(any);
+extern any doHide(any);
+extern any doHost(any);
+extern any doId(any);
+extern any doIdx(any);
+extern any doIf(any);
+extern any doIf2(any);
+extern any doIfn(any);
+extern any doIn(any);
+extern any doInc(any);
+extern any doIndex(any);
+extern any doInfo(any);
+extern any doIntern(any);
+extern any doIpid(any);
+extern any doIsa(any);
+extern any doJob(any);
+extern any doJournal(any);
+extern any doKey(any);
+extern any doKill(any);
+extern any doLast(any);
+extern any doLe(any);
+extern any doLength(any);
+extern any doLet(any);
+extern any doLetQ(any);
+extern any doLieu(any);
+extern any doLine(any);
+extern any doLines(any);
+extern any doLink(any);
+extern any doList(any);
+extern any doListen(any);
+extern any doLit(any);
+extern any doLstQ(any);
+extern any doLoad(any);
+extern any doLock(any);
+extern any doLoop(any);
+extern any doLowQ(any);
+extern any doLowc(any);
+extern any doLt(any);
+extern any doLt0(any);
+extern any doLup(any);
+extern any doMade(any);
+extern any doMake(any);
+extern any doMap(any);
+extern any doMapc(any);
+extern any doMapcan(any);
+extern any doMapcar(any);
+extern any doMapcon(any);
+extern any doMaplist(any);
+extern any doMaps(any);
+extern any doMark(any);
+extern any doMatch(any);
+extern any doMax(any);
+extern any doMaxi(any);
+extern any doMember(any);
+extern any doMemq(any);
+extern any doMeta(any);
+extern any doMeth(any);
+extern any doMethod(any);
+extern any doMin(any);
+extern any doMini(any);
+extern any doMix(any);
+extern any doMmeq(any);
+extern any doMul(any);
+extern any doMulDiv(any);
+extern any doName(any);
+extern any doNand(any);
+extern any doNEq(any);
+extern any doNEq0(any);
+extern any doNEqT(any);
+extern any doNEqual(any);
+extern any doNeed(any);
+extern any doNew(any);
+extern any doNext(any);
+extern any doNil(any);
+extern any doNond(any);
+extern any doNor(any);
+extern any doNot(any);
+extern any doNth(any);
+extern any doNumQ(any);
+extern any doOff(any);
+extern any doOffset(any);
+extern any doOn(any);
+extern any doOne(any);
+extern any doOnOff(any);
+extern any doOpen(any);
+extern any doOpid(any);
+extern any doOpt(any);
+extern any doOr(any);
+extern any doOut(any);
+extern any doPack(any);
+extern any doPair(any);
+extern any doPass(any);
+extern any doPath(any);
+extern any doPatQ(any);
+extern any doPeek(any);
+extern any doPick(any);
+extern any doPid(any);
+extern any doPipe(any);
+extern any doPoll(any);
+extern any doPool(any);
+extern any doPop(any);
+extern any doPort(any);
+extern any doPr(any);
+extern any doPreQ(any);
+extern any doPrin(any);
+extern any doPrinl(any);
+extern any doPrint(any);
+extern any doPrintln(any);
+extern any doPrintsp(any);
+extern any doProg(any);
+extern any doProg1(any);
+extern any doProg2(any);
+extern any doProp(any);
+extern any doPropCol(any);
+extern any doProtect(any);
+extern any doProve(any);
+extern any doPush(any);
+extern any doPush1(any);
+extern any doPut(any);
+extern any doPutl(any);
+extern any doPwd(any);
+extern any doQueue(any);
+extern any doQuit(any);
+extern any doQuote(any);
+extern any doRand(any);
+extern any doRange(any);
+extern any doRank(any);
+extern any doRaw(any);
+extern any doRd(any);
+extern any doRead(any);
+extern any doRem(any);
+extern any doReplace(any);
+extern any doRest(any);
+extern any doReverse(any);
+extern any doRewind(any);
+extern any doRollback(any);
+extern any doRot(any);
+extern any doRpc(any);
+extern any doRun(any);
+extern any doSect(any);
+extern any doSeed(any);
+extern any doSeek(any);
+extern any doSemicol(any);
+extern any doSend(any);
+extern any doSeq(any);
+extern any doSet(any);
+extern any doSetCol(any);
+extern any doSetq(any);
+extern any doShift(any);
+extern any doSize(any);
+extern any doSkip(any);
+extern any doSort(any);
+extern any doSpace(any);
+extern any doSplit(any);
+extern any doSpQ(any);
+extern any doState(any);
+extern any doStem(any);
+extern any doStr(any);
+extern any doStrip(any);
+extern any doStrQ(any);
+extern any doSub(any);
+extern any doSubQ(any);
+extern any doSum(any);
+extern any doSuper(any);
+extern any doSym(any);
+extern any doSymQ(any);
+extern any doSync(any);
+extern any doSys(any);
+extern any doT(any);
+extern any doTail(any);
+extern any doTell(any);
+extern any doText(any);
+extern any doThrow(any);
+extern any doTick(any);
+extern any doTill(any);
+extern any doTime(any);
+extern any doTouch(any);
+extern any doTrace(any);
+extern any doTrim(any);
+extern any doTry(any);
+extern any doType(any);
+extern any doUdp(any);
+extern any doUnify(any);
+extern any doUnless(any);
+extern any doUntil(any);
+extern any doUp(any);
+extern any doUppQ(any);
+extern any doUppc(any);
+extern any doUse(any);
+extern any doUsec(any);
+extern any doVal(any);
+extern any doWait(any);
+extern any doWhen(any);
+extern any doWhile(any);
+extern any doWipe(any);
+extern any doWith(any);
+extern any doWr(any);
+extern any doXchg(any);
+extern any doXor(any);
+extern any doYoke(any);
+extern any doZap(any);
+extern any doZero(any);
 static inline long unBox(any x) {
    long n = unDig(x) / 2;
    return unDig(x) & 1? -n : n;

Index: test/lib.l
--- test/lib.l
+++ test/lib.l
@@ -3,12 +3,12 @@
 ### task ###
 (test (3 . 4)
    (let (*Run NIL  *A NIL  *B NIL)
       (task -10 0 (setq *A 3))
-      (task (port T 4444) (eval (udp @)))
-      (udp "localhost" 4444 '(setq *B 4))
+      (task (port T 4445) (eval (udp @)))
+      (udp "localhost" 4445 '(setq *B 4))
       (wait NIL (and *A *B))
       (cons *A *B) ) )
 ### timeout ###

Reply via email to