mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-05 23:22:25 +00:00
new system types on darwin: updated bootstrap binary. -- noch.
Former-commit-id: 63a0f765a7
This commit is contained in:
parent
d4acb76183
commit
73369a589f
6 changed files with 153 additions and 151 deletions
|
|
@ -1 +1 @@
|
|||
/opt/voc-1.1/lib
|
||||
/Users/noch/local/voc-1.1/lib
|
||||
|
|
|
|||
|
|
@ -76,21 +76,21 @@ stage2:
|
|||
stage3:
|
||||
|
||||
$(VOCSTATIC0) -siapxPS SYSTEM.Mod
|
||||
$(VOCSTATIC0) -sPS Args.Mod Console.Mod Unix.Mod
|
||||
$(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod
|
||||
sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod
|
||||
$(VOCSTATIC0) -sPS prf.Mod
|
||||
$(VOCSTATIC0) -sPS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod
|
||||
$(VOCSTATIC0) -sxPS Files0.Mod
|
||||
$(VOCSTATIC0) -sPS Reals.Mod Texts0.Mod
|
||||
$(VOCSTATIC0) -sPS vt100.Mod
|
||||
$(VOCSTATIC0) -sPFS prf.Mod
|
||||
$(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod
|
||||
$(VOCSTATIC0) -sxPFS Files0.Mod
|
||||
$(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod
|
||||
$(VOCSTATIC0) -sPFS vt100.Mod
|
||||
|
||||
# build the compiler
|
||||
stage4:
|
||||
$(VOCSTATIC0) -sPS errors.Mod
|
||||
$(VOCSTATIC0) -sPS extTools.Mod
|
||||
$(VOCSTATIC0) -sPS OPM.cmdln.Mod
|
||||
$(VOCSTATIC0) -sxPS OPS.Mod
|
||||
$(VOCSTATIC0) -sPS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod
|
||||
$(VOCSTATIC0) -sPFS errors.Mod
|
||||
$(VOCSTATIC0) -sPFS extTools.Mod
|
||||
$(VOCSTATIC0) -sPFS OPM.cmdln.Mod
|
||||
$(VOCSTATIC0) -sxPFS OPS.Mod
|
||||
$(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod
|
||||
$(VOCSTATIC0) -smPS voc.Mod
|
||||
$(VOCSTATIC0) -smPS BrowserCmd.Mod
|
||||
$(VOCSTATIC0) -smPS OCatCmd.Mod
|
||||
|
|
@ -118,27 +118,27 @@ stage5:
|
|||
# build all library files
|
||||
stage6:
|
||||
#v4 libs
|
||||
$(VOCSTATIC) -sP Kernel.Mod
|
||||
$(VOCSTATIC) -sP Files.Mod
|
||||
$(VOCSTATIC) -sP Texts.Mod
|
||||
$(VOCSTATIC) -sP Printer.Mod
|
||||
$(VOCSTATIC) -sP Strings.Mod
|
||||
$(VOCSTATIC) -sP Sets.Mod
|
||||
$(VOCSTATIC) -sP Sets0.Mod
|
||||
$(VOCSTATIC) -sP Oberon.Mod
|
||||
$(VOCSTATIC) -sPF Kernel.Mod
|
||||
$(VOCSTATIC) -sPF Files.Mod
|
||||
$(VOCSTATIC) -sPF Texts.Mod
|
||||
$(VOCSTATIC) -sPF Printer.Mod
|
||||
$(VOCSTATIC) -sPF Strings.Mod
|
||||
$(VOCSTATIC) -sPF Sets.Mod
|
||||
$(VOCSTATIC) -sPF Sets0.Mod
|
||||
$(VOCSTATIC) -sPF Oberon.Mod
|
||||
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sP oocAscii.Mod
|
||||
$(VOCSTATIC) -sP oocStrings.Mod
|
||||
$(VOCSTATIC) -sP oocStrings2.Mod
|
||||
$(VOCSTATIC) -sP oocOakStrings.Mod
|
||||
$(VOCSTATIC) -sP oocCharClass.Mod
|
||||
$(VOCSTATIC) -sP oocConvTypes.Mod
|
||||
$(VOCSTATIC) -sP oocIntConv.Mod
|
||||
$(VOCSTATIC) -sP oocIntStr.Mod
|
||||
$(VOCSTATIC) -sP oocSysClock.Mod
|
||||
$(VOCSTATIC) -sP oocTime.Mod
|
||||
$(VOCSTATIC) -sP oocRandomNumbers.Mod
|
||||
$(VOCSTATIC) -sPF oocAscii.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod
|
||||
$(VOCSTATIC) -sPF oocOakStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocCharClass.Mod
|
||||
$(VOCSTATIC) -sPF oocConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF oocIntConv.Mod
|
||||
$(VOCSTATIC) -sPF oocIntStr.Mod
|
||||
$(VOCSTATIC) -sPF oocSysClock.Mod
|
||||
$(VOCSTATIC) -sPF oocTime.Mod
|
||||
$(VOCSTATIC) -sPF oocRandomNumbers.Mod
|
||||
# $(VOCSTATIC) -s oocLongStrings.Mod
|
||||
# $(CC) oocLongStrings.c
|
||||
# $(VOCSTATIC) -s oocMsg.Mod
|
||||
|
|
@ -146,115 +146,115 @@ stage6:
|
|||
|
||||
|
||||
#ooc2 libs
|
||||
$(VOCSTATIC) -sP ooc2Strings.Mod
|
||||
$(VOCSTATIC) -sP ooc2Ascii.Mod
|
||||
$(VOCSTATIC) -sP ooc2CharClass.Mod
|
||||
$(VOCSTATIC) -sP ooc2ConvTypes.Mod
|
||||
$(VOCSTATIC) -sP ooc2IntConv.Mod
|
||||
$(VOCSTATIC) -sP ooc2IntStr.Mod
|
||||
$(VOCSTATIC) -sP ooc2Real0.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Strings.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Ascii.Mod
|
||||
$(VOCSTATIC) -sPF ooc2CharClass.Mod
|
||||
$(VOCSTATIC) -sPF ooc2ConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntConv.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntStr.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Real0.Mod
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sP oocLowReal.Mod oocLowLReal.Mod
|
||||
$(VOCSTATIC) -sP oocRealMath.Mod oocOakMath.Mod
|
||||
$(VOCSTATIC) -sP oocLRealMath.Mod
|
||||
$(VOCSTATIC) -sP oocLongInts.Mod
|
||||
$(VOCSTATIC) -sP oocComplexMath.Mod oocLComplexMath.Mod
|
||||
$(VOCSTATIC) -sP oocLRealConv.Mod oocLRealStr.Mod
|
||||
$(VOCSTATIC) -sP oocRealConv.Mod oocRealStr.Mod
|
||||
$(VOCSTATIC) -sP oocMsg.Mod oocChannel.Mod
|
||||
$(VOCSTATIC) -sP oocStrings2.Mod oocRts.Mod oocFilenames.Mod
|
||||
$(VOCSTATIC) -sP oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod
|
||||
$(VOCSTATIC) -sP oocFilenames.Mod
|
||||
$(VOCSTATIC) -sP oocwrapperlibc.Mod
|
||||
$(VOCSTATIC) -sP oocC.Mod
|
||||
$(VOCSTATIC) -sPF oocLowReal.Mod oocLowLReal.Mod
|
||||
$(VOCSTATIC) -sPF oocRealMath.Mod oocOakMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLongInts.Mod
|
||||
$(VOCSTATIC) -sPF oocComplexMath.Mod oocLComplexMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealConv.Mod oocLRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocRealConv.Mod oocRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocMsg.Mod oocChannel.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod oocRts.Mod oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod
|
||||
$(VOCSTATIC) -sPF oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocwrapperlibc.Mod
|
||||
$(VOCSTATIC) -sPF oocC.Mod
|
||||
|
||||
#Ulm's Oberon system libs
|
||||
$(VOCSTATIC) -sP ulmSys.Mod
|
||||
$(VOCSTATIC) -sP ulmSYSTEM.Mod
|
||||
$(VOCSTATIC) -sP ulmASCII.Mod
|
||||
$(VOCSTATIC) -sP ulmSets.Mod
|
||||
$(VOCSTATIC) -sP ulmObjects.Mod
|
||||
$(VOCSTATIC) -sP ulmDisciplines.Mod
|
||||
$(VOCSTATIC) -sP ulmPriorities.Mod
|
||||
$(VOCSTATIC) -sP ulmServices.Mod
|
||||
$(VOCSTATIC) -sP ulmEvents.Mod
|
||||
$(VOCSTATIC) -sP ulmResources.Mod
|
||||
$(VOCSTATIC) -sP ulmForwarders.Mod
|
||||
$(VOCSTATIC) -sP ulmRelatedEvents.Mod
|
||||
$(VOCSTATIC) -sP ulmIO.Mod
|
||||
$(VOCSTATIC) -sP ulmProcess.Mod
|
||||
$(VOCSTATIC) -sP ulmTypes.Mod
|
||||
$(VOCSTATIC) -sP ulmStreams.Mod
|
||||
$(VOCSTATIC) -sP ulmAssertions.Mod
|
||||
$(VOCSTATIC) -sP ulmIndirectDisciplines.Mod
|
||||
$(VOCSTATIC) -sP ulmStreamDisciplines.Mod
|
||||
$(VOCSTATIC) -sP ulmIEEE.Mod
|
||||
$(VOCSTATIC) -sP ulmMC68881.Mod
|
||||
$(VOCSTATIC) -sP ulmReals.Mod
|
||||
$(VOCSTATIC) -sP ulmPrint.Mod
|
||||
$(VOCSTATIC) -sP ulmWrite.Mod
|
||||
$(VOCSTATIC) -sP ulmTexts.Mod
|
||||
$(VOCSTATIC) -sP ulmStrings.Mod
|
||||
$(VOCSTATIC) -sP ulmConstStrings.Mod
|
||||
$(VOCSTATIC) -sP ulmPlotters.Mod
|
||||
$(VOCSTATIC) -sP ulmSysTypes.Mod
|
||||
$(VOCSTATIC) -sP ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sP ulmErrors.Mod
|
||||
$(VOCSTATIC) -sP ulmSysErrors.Mod
|
||||
$(VOCSTATIC) -sP ulmSysIO.Mod
|
||||
$(VOCSTATIC) -sP ulmLoader.Mod
|
||||
$(VOCSTATIC) -sP ulmNetIO.Mod
|
||||
$(VOCSTATIC) -sP ulmPersistentObjects.Mod
|
||||
$(VOCSTATIC) -sP ulmPersistentDisciplines.Mod
|
||||
$(VOCSTATIC) -sP ulmOperations.Mod
|
||||
$(VOCSTATIC) -sP ulmScales.Mod
|
||||
$(VOCSTATIC) -sP ulmTimes.Mod
|
||||
$(VOCSTATIC) -sP ulmClocks.Mod
|
||||
$(VOCSTATIC) -sP ulmTimers.Mod
|
||||
$(VOCSTATIC) -sP ulmConditions.Mod
|
||||
$(VOCSTATIC) -sP ulmStreamConditions.Mod
|
||||
$(VOCSTATIC) -sP ulmTimeConditions.Mod
|
||||
$(VOCSTATIC) -sP ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sP ulmSysStat.Mod
|
||||
$(VOCSTATIC) -sP ulmCiphers.Mod
|
||||
$(VOCSTATIC) -sP ulmCipherOps.Mod
|
||||
$(VOCSTATIC) -sP ulmBlockCiphers.Mod
|
||||
$(VOCSTATIC) -sP ulmAsymmetricCiphers.Mod
|
||||
$(VOCSTATIC) -sP ulmConclusions.Mod
|
||||
$(VOCSTATIC) -sP ulmRandomGenerators.Mod
|
||||
$(VOCSTATIC) -sP ulmTCrypt.Mod
|
||||
$(VOCSTATIC) -sP ulmIntOperations.Mod
|
||||
$(VOCSTATIC) -sPF ulmSys.Mod
|
||||
$(VOCSTATIC) -sPF ulmSYSTEM.Mod
|
||||
$(VOCSTATIC) -sPF ulmASCII.Mod
|
||||
$(VOCSTATIC) -sPF ulmSets.Mod
|
||||
$(VOCSTATIC) -sPF ulmObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmPriorities.Mod
|
||||
$(VOCSTATIC) -sPF ulmServices.Mod
|
||||
$(VOCSTATIC) -sPF ulmEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmResources.Mod
|
||||
$(VOCSTATIC) -sPF ulmForwarders.Mod
|
||||
$(VOCSTATIC) -sPF ulmRelatedEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmProcess.Mod
|
||||
$(VOCSTATIC) -sPF ulmTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreams.Mod
|
||||
$(VOCSTATIC) -sPF ulmAssertions.Mod
|
||||
$(VOCSTATIC) -sPF ulmIndirectDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmIEEE.Mod
|
||||
$(VOCSTATIC) -sPF ulmMC68881.Mod
|
||||
$(VOCSTATIC) -sPF ulmReals.Mod
|
||||
$(VOCSTATIC) -sPF ulmPrint.Mod
|
||||
$(VOCSTATIC) -sPF ulmWrite.Mod
|
||||
$(VOCSTATIC) -sPF ulmTexts.Mod
|
||||
$(VOCSTATIC) -sPF ulmStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmConstStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmPlotters.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmLoader.Mod
|
||||
$(VOCSTATIC) -sPF ulmNetIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmOperations.Mod
|
||||
$(VOCSTATIC) -sPF ulmScales.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimes.Mod
|
||||
$(VOCSTATIC) -sPF ulmClocks.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimeConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysStat.Mod
|
||||
$(VOCSTATIC) -sPF ulmCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmCipherOps.Mod
|
||||
$(VOCSTATIC) -sPF ulmBlockCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmAsymmetricCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConclusions.Mod
|
||||
$(VOCSTATIC) -sPF ulmRandomGenerators.Mod
|
||||
$(VOCSTATIC) -sPF ulmTCrypt.Mod
|
||||
$(VOCSTATIC) -sPF ulmIntOperations.Mod
|
||||
|
||||
#pow32 libs
|
||||
$(VOCSTATIC) -sP powStrings.Mod
|
||||
$(VOCSTATIC) -sPF powStrings.Mod
|
||||
|
||||
#misc libs
|
||||
$(VOCSTATIC) -sP MultiArrays.Mod
|
||||
$(VOCSTATIC) -sP MultiArrayRiders.Mod
|
||||
$(VOCSTATIC) -sP MersenneTwister.Mod
|
||||
$(VOCSTATIC) -sP Listen.Mod
|
||||
$(VOCSTATIC) -sPF MultiArrays.Mod
|
||||
$(VOCSTATIC) -sPF MultiArrayRiders.Mod
|
||||
$(VOCSTATIC) -sPF MersenneTwister.Mod
|
||||
$(VOCSTATIC) -sPF Listen.Mod
|
||||
|
||||
#s3 libs
|
||||
$(VOCSTATIC) -sP ethBTrees.Mod
|
||||
$(VOCSTATIC) -sP ethMD5.Mod
|
||||
$(VOCSTATIC) -sP ethSets.Mod
|
||||
$(VOCSTATIC) -sP ethZlib.Mod
|
||||
$(VOCSTATIC) -sP ethZlibBuffers.Mod
|
||||
$(VOCSTATIC) -sP ethZlibInflate.Mod
|
||||
$(VOCSTATIC) -sP ethZlibDeflate.Mod
|
||||
$(VOCSTATIC) -sP ethZlibReaders.Mod
|
||||
$(VOCSTATIC) -sP ethZlibWriters.Mod
|
||||
$(VOCSTATIC) -sP ethZip.Mod
|
||||
$(VOCSTATIC) -sP ethRandomNumbers.Mod
|
||||
$(VOCSTATIC) -sP ethGZReaders.Mod
|
||||
$(VOCSTATIC) -sP ethGZWriters.Mod
|
||||
$(VOCSTATIC) -sP ethUnicode.Mod
|
||||
$(VOCSTATIC) -sP ethDates.Mod
|
||||
$(VOCSTATIC) -sP ethReals.Mod
|
||||
$(VOCSTATIC) -sP ethStrings.Mod
|
||||
$(VOCSTATIC) -sPF ethBTrees.Mod
|
||||
$(VOCSTATIC) -sPF ethMD5.Mod
|
||||
$(VOCSTATIC) -sPF ethSets.Mod
|
||||
$(VOCSTATIC) -sPF ethZlib.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibBuffers.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibInflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibDeflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethZip.Mod
|
||||
$(VOCSTATIC) -sPF ethRandomNumbers.Mod
|
||||
$(VOCSTATIC) -sPF ethGZReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethGZWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethUnicode.Mod
|
||||
$(VOCSTATIC) -sPF ethDates.Mod
|
||||
$(VOCSTATIC) -sPF ethReals.Mod
|
||||
$(VOCSTATIC) -sPF ethStrings.Mod
|
||||
|
||||
# build remaining tools
|
||||
# $(VOCSTATIC0) -sPS compatIn.Mod
|
||||
# $(VOCSTATIC0) -sPFS compatIn.Mod
|
||||
# $(VOCSTATIC0) -smPS vmake.Mod
|
||||
# $(CC) compatIn.c
|
||||
# $(CL) vmake.c -o vmake SYSTEM.o Args.o compatIn.o Texts.o Console.o Files.o Reals.o Modules.o Kernel.o Unix.o Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o
|
||||
|
|
|
|||
|
|
@ -33,7 +33,8 @@ MODULE Files; (* J. Templ 1.12. 89/12.4.95 Oberon files mapped onto Unix files
|
|||
workName, registerName: FileName;
|
||||
tempFile: BOOLEAN;
|
||||
dev, ino, mtime: LONGINT;
|
||||
fd-, len, pos: LONGINT;
|
||||
fd-: INTEGER;
|
||||
len, pos: LONGINT;
|
||||
bufs: ARRAY nofbufs OF Buffer;
|
||||
swapper, state: INTEGER
|
||||
END ;
|
||||
|
|
@ -125,12 +126,12 @@ MODULE Files; (* J. Templ 1.12. 89/12.4.95 Oberon files mapped onto Unix files
|
|||
f.workName := f.registerName; f.registerName := ""; f.tempFile := FALSE
|
||||
END ;
|
||||
errno := Unix.Unlink(f.workName); (*unlink first to avoid stale NFS handles and to avoid reuse of inodes*)
|
||||
f.fd := Unix.Open(f.workName, Unix.rdwr + Unix.creat + Unix.trunc, {2, 4,5, 7,8});
|
||||
f.fd := Unix.Open(f.workName, SHORT(SYSTEM.VAL(LONGINT, Unix.rdwr + Unix.creat + Unix.trunc)), SHORT(SYSTEM.VAL(LONGINT, {2, 4,5, 7,8})));
|
||||
done := f.fd >= 0; errno := Unix.errno();
|
||||
IF (~done & ((errno = Unix.ENFILE) OR (errno = Unix.EMFILE))) OR (done & (f.fd >= fileTabSize)) THEN
|
||||
IF done & (f.fd >= fileTabSize) THEN errno := Unix.Close(f.fd) END ;
|
||||
Kernel.GC(TRUE);
|
||||
f.fd := Unix.Open(f.workName, Unix.rdwr + Unix.creat + Unix.trunc, {2, 4,5, 7,8});
|
||||
f.fd := Unix.Open(f.workName, SHORT(SYSTEM.VAL(LONGINT, Unix.rdwr + Unix.creat + Unix.trunc)), SHORT(SYSTEM.VAL(LONGINT, {2, 4,5, 7,8})));
|
||||
done := f.fd >= 0
|
||||
END ;
|
||||
IF done THEN
|
||||
|
|
@ -233,7 +234,7 @@ MODULE Files; (* J. Templ 1.12. 89/12.4.95 Oberon files mapped onto Unix files
|
|||
END CacheEntry;
|
||||
|
||||
PROCEDURE Old* (name: ARRAY OF CHAR): File;
|
||||
VAR f: File; fd, res, errno: LONGINT; pos: INTEGER; done: BOOLEAN;
|
||||
VAR f: File; fd: INTEGER; res, errno: LONGINT; pos: INTEGER; done: BOOLEAN;
|
||||
dir, path: ARRAY 256 OF CHAR;
|
||||
stat: Unix.Status;
|
||||
BEGIN
|
||||
|
|
@ -245,17 +246,17 @@ MODULE Files; (* J. Templ 1.12. 89/12.4.95 Oberon files mapped onto Unix files
|
|||
(*ScanPath(pos, dir);*) (*MakeFileName(dir, name, path);*) (*ScanPath(pos, dir)*)
|
||||
END ;
|
||||
LOOP
|
||||
fd := Unix.Open(path, Unix.rdwr, {}); done := fd >= 0; errno := Unix.errno();
|
||||
fd := Unix.Open(path, SHORT(SYSTEM.VAL(LONGINT, Unix.rdwr)), SHORT(SYSTEM.VAL(LONGINT, {}))); done := fd >= 0; errno := Unix.errno();
|
||||
IF (~done & ((errno = Unix.ENFILE) OR (errno = Unix.EMFILE))) OR (done & (fd >= fileTabSize)) THEN
|
||||
IF done & (fd >= fileTabSize) THEN res := Unix.Close(fd) END ;
|
||||
Kernel.GC(TRUE);
|
||||
fd := Unix.Open(path, Unix.rdwr, {});
|
||||
fd := Unix.Open(path, SHORT(SYSTEM.VAL(LONGINT, Unix.rdwr)), SHORT(SYSTEM.VAL(LONGINT, {})));
|
||||
done := fd >= 0; errno := Unix.errno();
|
||||
IF ~done & ((errno = Unix.ENFILE) OR (errno = Unix.EMFILE)) THEN Err("too many files open", f, errno) END
|
||||
END ;
|
||||
IF ~done & ((errno = Unix.EACCES) OR (errno = Unix.EROFS) OR (errno = Unix.EAGAIN)) THEN
|
||||
(* errno EAGAIN observed on Solaris 2.4 *)
|
||||
fd := Unix.Open(path, Unix.rdonly, {}); done := fd >= 0; errno := Unix.errno()
|
||||
fd := Unix.Open(path, SHORT(SYSTEM.VAL(LONGINT, Unix.rdonly)), SHORT(SYSTEM.VAL(LONGINT, {}))); done := fd >= 0; errno := Unix.errno()
|
||||
END ;
|
||||
IF (~done) & (errno # Unix.ENOENT) THEN
|
||||
Console.String("warning Files.Old "); Console.String(name);
|
||||
|
|
@ -463,7 +464,7 @@ Especially Length would become fairly complex.
|
|||
END Delete;
|
||||
|
||||
PROCEDURE Rename* (old, new: ARRAY OF CHAR; VAR res: INTEGER);
|
||||
VAR fdold, fdnew, n, errno, r: LONGINT;
|
||||
VAR fdold, fdnew: INTEGER; n, errno, r: LONGINT;
|
||||
ostat, nstat: Unix.Status;
|
||||
buf: ARRAY 4096 OF CHAR;
|
||||
BEGIN
|
||||
|
|
@ -476,9 +477,9 @@ Especially Length would become fairly complex.
|
|||
r := Unix.Rename(old, new);
|
||||
IF r < 0 THEN res := SHORT(Unix.errno());
|
||||
IF res = Unix.EXDEV THEN (* cross device link, move the file *)
|
||||
fdold := Unix.Open(old, Unix.rdonly, {});
|
||||
fdold := Unix.Open(old, SHORT(SYSTEM.VAL(LONGINT, Unix.rdonly)), SHORT(SYSTEM.VAL(LONGINT, {})));
|
||||
IF fdold < 0 THEN res := 2; RETURN END ;
|
||||
fdnew := Unix.Open(new, Unix.rdwr + Unix.creat + Unix.trunc, {2, 4,5, 7,8});
|
||||
fdnew := Unix.Open(new, SHORT(SYSTEM.VAL(LONGINT, Unix.rdwr + Unix.creat + Unix.trunc)), SHORT(SYSTEM.VAL(LONGINT, {2, 4,5, 7,8})));
|
||||
IF fdnew < 0 THEN r := Unix.Close(fdold); res := 3; RETURN END ;
|
||||
n := Unix.Read(fdold, SYSTEM.ADR(buf), bufsize);
|
||||
WHILE n > 0 DO
|
||||
|
|
|
|||
|
|
@ -36,7 +36,8 @@ MODULE Files0; (* J. Templ 1.12. 89/12.4.95 Oberon files mapped onto Unix files
|
|||
workName, registerName: FileName;
|
||||
tempFile: BOOLEAN;
|
||||
dev, ino, mtime: LONGINT;
|
||||
fd-, len, pos: LONGINT;
|
||||
fd-: INTEGER;
|
||||
len, pos: LONGINT;
|
||||
bufs: ARRAY nofbufs OF Buffer;
|
||||
swapper, state: INTEGER
|
||||
END ;
|
||||
|
|
@ -128,12 +129,12 @@ MODULE Files0; (* J. Templ 1.12. 89/12.4.95 Oberon files mapped onto Unix files
|
|||
f.workName := f.registerName; f.registerName := ""; f.tempFile := FALSE
|
||||
END ;
|
||||
errno := Unix.Unlink(f.workName); (*unlink first to avoid stale NFS handles and to avoid reuse of inodes*)
|
||||
f.fd := Unix.Open(f.workName, Unix.rdwr + Unix.creat + Unix.trunc, {2, 4,5, 7,8});
|
||||
f.fd := Unix.Open(f.workName, SHORT(SYSTEM.VAL(LONGINT, (Unix.rdwr + Unix.creat + Unix.trunc))), SHORT(SYSTEM.VAL(LONGINT, ({2, 4,5, 7,8}))));
|
||||
done := f.fd >= 0; errno := Unix.errno();
|
||||
IF (~done & ((errno = Unix.ENFILE) OR (errno = Unix.EMFILE))) OR (done & (f.fd >= fileTabSize)) THEN
|
||||
IF done & (f.fd >= fileTabSize) THEN errno := Unix.Close(f.fd) END ;
|
||||
Kernel.GC(TRUE);
|
||||
f.fd := Unix.Open(f.workName, Unix.rdwr + Unix.creat + Unix.trunc, {2, 4,5, 7,8});
|
||||
f.fd := Unix.Open(f.workName, SHORT(SYSTEM.VAL(LONGINT, (Unix.rdwr + Unix.creat + Unix.trunc))), SHORT(SYSTEM.VAL(LONGINT, {2, 4,5, 7,8})));
|
||||
done := f.fd >= 0
|
||||
END ;
|
||||
IF done THEN
|
||||
|
|
@ -236,7 +237,7 @@ MODULE Files0; (* J. Templ 1.12. 89/12.4.95 Oberon files mapped onto Unix files
|
|||
END CacheEntry;
|
||||
|
||||
PROCEDURE Old* (name: ARRAY OF CHAR): File;
|
||||
VAR f: File; fd, res, errno: LONGINT; pos: INTEGER; done: BOOLEAN;
|
||||
VAR f: File; fd: INTEGER; res, errno: LONGINT; pos: INTEGER; done: BOOLEAN;
|
||||
dir, path: ARRAY 256 OF CHAR;
|
||||
stat: Unix.Status;
|
||||
BEGIN
|
||||
|
|
@ -245,17 +246,17 @@ MODULE Files0; (* J. Templ 1.12. 89/12.4.95 Oberon files mapped onto Unix files
|
|||
ELSE pos := 0; ScanPath(pos, dir); MakeFileName(dir, name, path); ScanPath(pos, dir)
|
||||
END ;
|
||||
LOOP
|
||||
fd := Unix.Open(path, Unix.rdwr, {}); done := fd >= 0; errno := Unix.errno();
|
||||
fd := Unix.Open(path, SHORT(SYSTEM.VAL(LONGINT, Unix.rdwr)), SHORT(SYSTEM.VAL(LONGINT, {}))); done := fd >= 0; errno := Unix.errno();
|
||||
IF (~done & ((errno = Unix.ENFILE) OR (errno = Unix.EMFILE))) OR (done & (fd >= fileTabSize)) THEN
|
||||
IF done & (fd >= fileTabSize) THEN res := Unix.Close(fd) END ;
|
||||
Kernel.GC(TRUE);
|
||||
fd := Unix.Open(path, Unix.rdwr, {});
|
||||
fd := Unix.Open(path, SHORT(SYSTEM.VAL(LONGINT, Unix.rdwr)), SHORT(SYSTEM.VAL(LONGINT, {})));
|
||||
done := fd >= 0; errno := Unix.errno();
|
||||
IF ~done & ((errno = Unix.ENFILE) OR (errno = Unix.EMFILE)) THEN Err("too many files open", f, errno) END
|
||||
END ;
|
||||
IF ~done & ((errno = Unix.EACCES) OR (errno = Unix.EROFS) OR (errno = Unix.EAGAIN)) THEN
|
||||
(* errno EAGAIN observed on Solaris 2.4 *)
|
||||
fd := Unix.Open(path, Unix.rdonly, {}); done := fd >= 0; errno := Unix.errno()
|
||||
fd := Unix.Open(path, SHORT(SYSTEM.VAL(LONGINT, Unix.rdonly)), SHORT(SYSTEM.VAL(LONGINT, {}))); done := fd >= 0; errno := Unix.errno()
|
||||
END ;
|
||||
IF (~done) & (errno # Unix.ENOENT) THEN
|
||||
Console.String("warning Files0.Old "); Console.String(name);
|
||||
|
|
@ -456,7 +457,7 @@ Especially Length would become fairly complex.
|
|||
END Delete;
|
||||
|
||||
PROCEDURE Rename* (old, new: ARRAY OF CHAR; VAR res: INTEGER);
|
||||
VAR fdold, fdnew, n, errno, r: LONGINT;
|
||||
VAR fdold, fdnew: INTEGER; n, errno, r: LONGINT;
|
||||
ostat, nstat: Unix.Status;
|
||||
buf: ARRAY 4096 OF CHAR;
|
||||
BEGIN
|
||||
|
|
@ -469,9 +470,9 @@ Especially Length would become fairly complex.
|
|||
r := Unix.Rename(old, new);
|
||||
IF r < 0 THEN res := SHORT(Unix.errno());
|
||||
IF res = Unix.EXDEV THEN (* cross device link, move the file *)
|
||||
fdold := Unix.Open(old, Unix.rdonly, {});
|
||||
fdold := Unix.Open(old, SHORT(SYSTEM.VAL(LONGINT, Unix.rdonly)), SHORT(SYSTEM.VAL(LONGINT, {})));
|
||||
IF fdold < 0 THEN res := 2; RETURN END ;
|
||||
fdnew := Unix.Open(new, Unix.rdwr + Unix.creat + Unix.trunc, {2, 4,5, 7,8});
|
||||
fdnew := Unix.Open(new, SHORT(SYSTEM.VAL(LONGINT, Unix.rdwr + Unix.creat + Unix.trunc)), SHORT(SYSTEM.VAL(LONGINT, {2, 4,5, 7,8})));
|
||||
IF fdnew < 0 THEN r := Unix.Close(fdold); res := 3; RETURN END ;
|
||||
n := Unix.Read(fdold, SYSTEM.ADR(buf), bufsize);
|
||||
WHILE n > 0 DO
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
MODULE prf;
|
||||
|
||||
CONST prefix* = "/opt";
|
||||
CONST prefix* = "/Users/noch/local";
|
||||
|
||||
END prf.
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
05ed701d466aae7ace5d824e431e56edcaf1a3fd
|
||||
116059b9cae6de914cb268caa1ca621c9f794ccb
|
||||
Loading…
Add table
Add a link
Reference in a new issue