mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-06 21:32:26 +00:00
separated Kernel, Files. Texts modules for bootstrapping and general use
This commit is contained in:
parent
e0a915b319
commit
e1f76da278
41 changed files with 3226 additions and 323 deletions
|
|
@ -4,13 +4,12 @@ MODULE Kernel;
|
|||
communication with C-runtime and storage management
|
||||
*)
|
||||
|
||||
IMPORT SYSTEM, Unix, Args, Strings := oocOakStrings, version;
|
||||
IMPORT SYSTEM, Unix, Args;
|
||||
|
||||
TYPE
|
||||
RealTime = POINTER TO TimeDesc;
|
||||
TimeDesc = RECORD
|
||||
sec, min, hour, mday, mon, year, wday, isdst, zone, gmtoff: LONGINT
|
||||
(* sec, min, hour, mday, mon, year, wday, isdst, zone, gmtoff: INTEGER*)
|
||||
END ;
|
||||
|
||||
KeyCmd* = PROCEDURE;
|
||||
|
|
@ -36,20 +35,15 @@ MODULE Kernel;
|
|||
|
||||
LIB*, CWD*: ARRAY 256 OF CHAR;
|
||||
OBERON*: ARRAY 1024 OF CHAR;
|
||||
MODULES-: ARRAY 1024 OF CHAR;
|
||||
|
||||
prefix*, fullprefix* : ARRAY 256 OF CHAR;
|
||||
|
||||
timeStart: LONGINT; (* milliseconds *)
|
||||
|
||||
|
||||
PROCEDURE -includesetjmp()
|
||||
'#include "setjmp.h"';
|
||||
(* for localtime *)
|
||||
PROCEDURE -includetime()
|
||||
'#include "time.h"';
|
||||
(* for getcwd() *)
|
||||
PROCEDURE -includeUnistd()
|
||||
'#include <unistd.h>';
|
||||
|
||||
PROCEDURE -Lock*()
|
||||
"SYSTEM_lock++";
|
||||
|
|
@ -61,13 +55,13 @@ MODULE Kernel;
|
|||
"exit(n)";
|
||||
|
||||
PROCEDURE -sigsetjmp*(VAR env: Unix.JmpBuf; savemask: LONGINT): LONGINT
|
||||
"__sigsetjmp(env, savemask)";
|
||||
"__sigsetjmp(env, savemask)";
|
||||
|
||||
PROCEDURE -siglongjmp*(VAR env:Unix.JmpBuf; val: LONGINT)
|
||||
"siglongjmp(env, val)";
|
||||
PROCEDURE -siglongjmp*(VAR env:Unix. JmpBuf; val: LONGINT)
|
||||
"siglongjmp(env, val)";
|
||||
|
||||
PROCEDURE -heapsize*(): LONGINT
|
||||
"SYSTEM_heapsize";
|
||||
"SYSTEM_heapsize";
|
||||
|
||||
PROCEDURE -allocated*(): LONGINT
|
||||
"SYSTEM_allocated";
|
||||
|
|
@ -166,16 +160,8 @@ BEGIN
|
|||
EndianTest();
|
||||
SetHalt(Halt);
|
||||
CWD := ""; OBERON := "."; LIB := "";
|
||||
MODULES := ""; (* additional modules path which can be specified on commandline and will be added to the OBERON variable; noch *)
|
||||
getcwd(CWD);
|
||||
Args.GetEnv ("MODULES", MODULES);
|
||||
Args.GetEnv("OBERON", OBERON);
|
||||
(* always have current directory in module search path, noch *)
|
||||
Strings.Append(":.:", OBERON);
|
||||
Strings.Append(MODULES, OBERON);
|
||||
Strings.Append(":", OBERON);
|
||||
Strings.Append(version.prefix, OBERON);
|
||||
Strings.Append("/lib/voc/sym:", OBERON);
|
||||
Args.GetEnv("OBERON_LIB", LIB);
|
||||
TimeUnit := 1000; timeStart := 0; timeStart := Time()
|
||||
END Kernel.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue