From f828e80e5627aefb639f63ff7d02f580ca83df54 Mon Sep 17 00:00:00 2001 From: David Brown Date: Sat, 18 Jun 2016 12:05:23 +0100 Subject: [PATCH 01/52] Start organising documentation. --- ReadMe.md | 98 ++++++++++++++++++++++++++++++++++ triage/hints => doc/Porting.md | 0 2 files changed, 98 insertions(+) create mode 100644 ReadMe.md rename triage/hints => doc/Porting.md (100%) diff --git a/ReadMe.md b/ReadMe.md new file mode 100644 index 00000000..cd2b6e04 --- /dev/null +++ b/ReadMe.md @@ -0,0 +1,98 @@ +### Vishap Oberon + +[ⱱishap Oberon Compiler](http://oberon.vishap.am) (voc) is a free (GPLv3) professional oberon-2 compiler. + + + +### Ѵishap Oberon + +[Ѵishap Oberon Compiler](http://oberon.vishap.am) (voc) is a free (GPLv3) professional oberon-2 compiler. + + + +### Ꮙishap Oberon + +[Ꮙishap Oberon Compiler](http://oberon.vishap.am) (voc) is a free (GPLv3) professional oberon-2 compiler. + + + +### 𝓥ishap Oberon + +[𝓥ishap Oberon Compiler](http://oberon.vishap.am) (voc) is a free (GPLv3) professional oberon-2 compiler. + + + +##### Licensing + +Vishap Oberon's frontend and C backend engine is a fork of Josef Templ’s Ofront, which has been released +under the FreeBSD License. Unlike Ofront, Vishap Oberon does not include the Oberon v4 environment. + +The Ulm Oberon Library is distributed under GPL. + +The Ooc library is distributed under GPL. + +Voc tools are distributed under GPLv3. + +Most of the runtime in libVishapOberon is distributed under GPLv3 with runtime exception. + +Proprietry code using the Ulm or Ooc libraries may not be statically linked as they are +distributed under the GPL. + + +##### Platform support + +Vishap Oberon supports 32 and 64 bit little-endian architectures including Intel x86 and x64, arm and ppc. + +It compiles under gcc, clang and Microsoft Visual C. + +Installation supports GNU/Linux, MAC OSX, BSD and Windows (native and cygwin). + +##### Language support + +Vishap Oberon supports the Oberon 2 programming language, including type-bound procedures. + +It can also compile programs written to the Oberon07 report. + + +##### Libraries + +Vishap Oberon comes with libraries easing the porting of code from the major +Oberon systems: + + - Oberon V4 and S3 compatible library set. + + - ooc (optimizing oberon-2 compiler) library port. + + - Ulm’s Oberon system library port. + +Some other freely redistributable libraries are available as a part of voc distribution. + + +##### Features + +See [Features](/doc/Features.md). + +##### Installing + +See [Installing](/doc/Installing.md). + +##### Compiling Oberon modules + +See [Compiling](/doc/Compiling.md). + +##### Porting to new platforms + +See [Porting](/doc/Porting.md). + +##### Roadmap + +See [Roadmap](/doc/Roadmap.md). + +##### Contributors + +##### Origin of the name Vishap + +##### To be left out? + +Work on other compatibility layers is in progress. +voc team also works on bindings to existing C/Pascal libraries. diff --git a/triage/hints b/doc/Porting.md similarity index 100% rename from triage/hints rename to doc/Porting.md From 342d883d110cbd90b0fa27a73ab7c44fdf15e8df Mon Sep 17 00:00:00 2001 From: David Brown Date: Sat, 18 Jun 2016 16:38:42 +0100 Subject: [PATCH 02/52] Update version to 1.95. Add more early version documentation. --- ReadMe.md | 37 +++++--- doc/Features.md | 9 ++ doc/History.md | 108 +++++++++++++++++++++ doc/Installation.md | 188 +++++++++++++++++++++++++++++++++++++ doc/Roadmap.md | 84 +++++++++++++++++ makefile | 11 +-- src/tools/make/configure.c | 2 +- src/tools/make/vishap.make | 15 ++- triage/hints | 39 ++++++++ 9 files changed, 467 insertions(+), 26 deletions(-) create mode 100644 doc/Features.md create mode 100644 doc/History.md create mode 100644 doc/Installation.md create mode 100644 doc/Roadmap.md create mode 100644 triage/hints diff --git a/ReadMe.md b/ReadMe.md index cd2b6e04..d15b111f 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -22,7 +22,7 @@ -##### Licensing +#### Licensing Vishap Oberon's frontend and C backend engine is a fork of Josef Templ’s Ofront, which has been released under the FreeBSD License. Unlike Ofront, Vishap Oberon does not include the Oberon v4 environment. @@ -39,7 +39,7 @@ Proprietry code using the Ulm or Ooc libraries may not be statically linked as t distributed under the GPL. -##### Platform support +#### Platform support Vishap Oberon supports 32 and 64 bit little-endian architectures including Intel x86 and x64, arm and ppc. @@ -47,14 +47,14 @@ It compiles under gcc, clang and Microsoft Visual C. Installation supports GNU/Linux, MAC OSX, BSD and Windows (native and cygwin). -##### Language support +#### Language support Vishap Oberon supports the Oberon 2 programming language, including type-bound procedures. It can also compile programs written to the Oberon07 report. -##### Libraries +#### Libraries Vishap Oberon comes with libraries easing the porting of code from the major Oberon systems: @@ -68,31 +68,44 @@ Oberon systems: Some other freely redistributable libraries are available as a part of voc distribution. -##### Features +#### Features See [Features](/doc/Features.md). -##### Installing +#### Installing See [Installing](/doc/Installing.md). -##### Compiling Oberon modules +#### Compiling Oberon modules See [Compiling](/doc/Compiling.md). -##### Porting to new platforms +#### Porting to new platforms See [Porting](/doc/Porting.md). -##### Roadmap +#### History + +See [History](/doc/History.md). + +#### Roadmap See [Roadmap](/doc/Roadmap.md). -##### Contributors +#### Contributors -##### Origin of the name Vishap +Originally developed as a cross platform implementation of the +Oberon system by Joseph Templ. -##### To be left out? +Updated for 64 bit support, refactored as a standalone compiler and brought +to new platforms by Norayr Chilingarian. + +Build process simplified for more platform support and bugs fixed by David +C W Brown. + +#### Origin of the name Vishap + +#### To be left out? Work on other compatibility layers is in progress. voc team also works on bindings to existing C/Pascal libraries. diff --git a/doc/Features.md b/doc/Features.md new file mode 100644 index 00000000..4548c77f --- /dev/null +++ b/doc/Features.md @@ -0,0 +1,9 @@ +HALT/exit code has been simplified. Exit now just calls the system exit API rather than calling the kill API and passing our own process ID. For runtime errors it now displayes the appropriate error message (e.g. Index out of range). + +Compilation errors now include the line number at the start of the displayed source line. The pos (character offset) is still displayed on the error message line. The error handling code was already doing some walking of the source file to find start and end of line - I changed this to walk through the source file from the start identifying line end positions, counting lines and caching the position at the start of the last error line. The resultant code is simpler, and displays the line number without losing the pos. The performance cost of walking the source file is not an issue. + + + - In his latest specs (around 2013) Wirth removed the 'COPY(a, b)' character array copy procedure, replacing it with 'b := a'. I have accordingly enabled 'b := a' in voc as an alternative to 'COPY(a, b)' (COPY is still supported.). + + - Oberon code often writes to Oberon.Log expecting the text to appear on the screen. While voc has an Oberon.DumpLog procedure, I looked into making the behaviour automatic. Interestingly the voc source declares the Text notifier constants replace, insert and delete, but omits implementation of the notifier calls. The implementation turned out to be very little code, and I have used it to echo all text written to Oberon.Log to the console. This has the advantage over DumpLog that text is written immediately rather than only when DumpLog is called, and allows existing program source to work unchanged. + diff --git a/doc/History.md b/doc/History.md new file mode 100644 index 00000000..c5793673 --- /dev/null +++ b/doc/History.md @@ -0,0 +1,108 @@ +#### Changes from 1.2 to 2.0 + +The biggest changes relative to Vishap Oberon 1.2 are in the build system and in the implementation of platform specific support. Where possible platform specific code has removed or replaced by platform agnostic code. + + - The same make commands are used for all platforms, Linux, BSD, Darwin and Windows. In particular 'make full' +builds the compiler, library and tools, installs the compiler and tools, and runs a couple of confidence tests. + + - The C program 'configure.c', a much expanded version of vocparam.c, generates all the platform specific make variables, and the configuration constants compiled into the compiler. Configure.c is compiled and executed at the start of every make command. + + - Both makefiles are platform independent, compatible with both BSD make and GNU make. (For Visual C builds on Windows a separate make.cmd contains the equivalent functionality expressed as a Windows .cmd file.) + + - All duplicate files required to build Linux/BSD/Darwin variants have been removed by refactoring them to be platform independent: + - Rather than accessing Linux structures through Oberon RECORDs intended to match their memory layout, code procedures are used to reference C constants and struct fields directly. (This resolves a number of complexities with structure field order and layout variations across operating systems.) + - Size dependent code is abstracted into simple definitions in SYSTEM.h and referenced from code procedures. + - Files.Mod is extended with a file search path feature removing the need for Files0.Mod, Text0.Mod and Kernel0.Mod. Instead OPM.cmdln.Mod calls the new Files.SetSearchPath. + - Kernel.Mod, Unix.Mod and SYSTEM.Mod are refactored into Heap.Mod and PlatformUnix.Mod. An alternate Platform module implementation PlatformWindows.Mod is used for Microsoft C based builds, using the Win32 API directly. + - All use of the LONGINT type in C source, including in code procedures, now explicitly specify 'LONGINT'. Previously the code often used 'long' instead, assuming it was interchangeable with 'LONGINT', but for some platforms LONGINT is 'long long', not 'long'. + + - The enlistment no longer includes compiled binaries. Instead it includes pre-translated sets of C source covering both platforms and the three C data model variants. (See directory 'bootstrap'.) + + - The bootstrap sources are used on any fresh enlistment or clean build ('make full' is always a clean build). These sources, combined with the platform independence improvements outlined above, have built correctly from a fresh enlistment on all Linux, BSD and cygwin platforms that I have tried, including the raspberry pi under raspbian, and in the termux terminal emulator on android. + +The result is that there is now a single version of earch Oberon source file, with the exceptions only of PlatformUnix.Mod/PlatformWindows.Mod in the compiler, and oocCILP32.Mod/oocCLP64.Mod/oocCLLP64.Mod in the ooc library. + +The full build is now free of warnings: + + - Missing ELSE warnings solved by adding ELSE. + + - C code conversion between integer and pointer of different size solved by casting with with uintptr_t as an intermediate type. + + - C code conversion between signed and unsigned char types solved by explicitly casting 'CHAR's passed to system APIs in code procedures to 'char'. + +The full build now includes a few confidence tests to make sure that the basics work OK. + +HALT/exit code has been simplified. Exit now just calls the system exit API rather than calling the kill API and passing our own process ID. For runtime errors it now displayes the appropriate error message (e.g. Index out of range). + +The jump buffer was not used by any code and has been removed. (It seems from a comment to have been intended for use during some termination code, but the termination code does not use it.) + +Compilation errors now include the line number at the start of the displayed source line. The pos (character offset) is still displayed on the error message line. The error handling code was already doing some walking of the source file to find start and end of line - I changed this to walk through the source file from the start identifying line end positions, counting lines and caching the position at the start of the last error line. The resultant code is simpler, and displays the line number without losing the pos. The performance cost of walking the source file is not an issue. + +##### A few bug fix details: + + - There was a problem with the dynamic array size parameter passed to NEW when expressed as a literal on 64 bit builds. This happens a number of times in the compiler and library. Now in theory it is not necessary to specify the size of numeric literals on parameters to ANSI C functions as the compiler should know the size from the declaration of the called function. (i.e. it shouldn't matter whether one passes '1', '1l', or '1ll'.) +Therefore while OPM.PromoteIntConstToLInt was coded to generate 'l' at the end of long literal parameters on K&R C, it intentionally omitted the 'l' when the compiler was known to be ANSI - and all currently supported compilers are ANSI. +**But** it is not safe to omit the 'l' in literal parameters to C vararg functions: the C compiler cannot get the vararg parameter size from the declaration, and so uses the literal size. Thus only 32 bits are pushed to the stack where 64 bits are required. On a 64 bit Oberon, the implementation of SYSTEM\_NEWARR then reads a full 64 bits. Often the uninitialised 32 bits are zero, and everything works correctly. Rarely they are a very small integer and the system thrashes a while allocating page tables and then continues normally. Other times a segmentation fault or out of memery error is generated. +Removing the test for ANSI and thus always generating the trailing 'l' for LONGINTs is a sufficient fix for the data models supported by the previous versions of Vishap Oberon. +However there is a further complication - this is not sufficient for the LLP64 C data model used by 64 bit Windows. In LLP64, 'long' is only 32 bit. The 64 bit integer type is 'long long' and literal numerics of this type would require an 'll' suffix. +The simple solution was to generate a (LONGINT)(n) typecast, which forces n to the correct size in all cases. + + - SYSTEM.H __VAL(t, x) was defined as (\*(t\*)&(x)) which maps the new type onto the memory of the old. This produces the wrong result if the new type is larger than the old type, because it includes memory that does not belong to the variable into the result. This has been corrected to the simpler ((t)(x)) which will do the appropriate signed or unsigned extension. + + - There was a serious issue with accessing free'd memory in RETURN expressions. Oberon generates code to create local copies of dynamic strings passed by value (so that code is free to change the value parameter without affecting the original string). +The copy is not allocated from the Oberon Heap, but direct from the OS (e.g. via malloc on Linux/Unix). At function return the compiler inserts a call to C's free before the return statement. +The problem comes when the expression on the Oberon RETURN statement references the local string copy. This gets compiled to a C 'return' statement that references the free'd memory. Sometimes the C free will not have modified the string copy, and no error is seen. However all bets are off - the OS or C runtime could have done anything to this memory as part of heap management (e.g. used it for free chain linkage), and with pre-emptive multitasking it may have been reallocated and used for another purpose before the return expression refers to it. This bug hit me occasionally and took a while to find. +The solution I have implemented is to generate declaration of a return value variable at the entry of every function, and to generate code to evaluate the return expression into the variable *before* generating the code to free the local string copy. +In theory the Oberon compiler could inspect the return value for reference to a local copy and only generate the result variable when necessary, however this considerably complicate the Oberon compiler source code for procedure entry and would be of questionalble value, as the C compiler should be able to optimize code with a result variable much the same as code without it. + + - Texts.WriteInt corrected to work with both 4 and 8 byte LONGINTs. Previously values with more than 11 digits caused an index out of range error. + + - Between voc.Translate and extTools.Mod, the main program was being compiled twice by the C compiler. It is now compiled once. + +#### Other changes: + + - In his latest specs (around 2013) Wirth removed the 'COPY(a, b)' character array copy procedure, replacing it with 'b := a'. I have accordingly enabled 'b := a' in voc as an alternative to 'COPY(a, b)' (COPY is still supported.). + + - Oberon code often writes to Oberon.Log expecting the text to appear on the screen. While voc has an Oberon.DumpLog procedure, I looked into making the behaviour automatic. Interestingly the voc source declares the Text notifier constants replace, insert and delete, but omits implementation of the notifier calls. The implementation turned out to be very little code, and I have used it to echo all text written to Oberon.Log to the console. This has the advantage over DumpLog that text is written immediately rather than only when DumpLog is called, and allows existing program source to work unchanged. + + - While working on Vishap Oberon I have been using the name 'olang' rather than 'voc', partly to avoid mixing up binary files, and partly because I had not (re)reached compatability with voc. Since I reckon I'm close to complete, I have now parameterised the code to allow any file name for the compiler and install dir, and switched it back to 'voc' by default. src/tools/make/configure.c line 12 specifies the name that will be built. + + - I experimented with making INTEGER always 32 bit and LONGINT always 64 bit (i.e. even on 32 bit platfroms), but soon found that the libraries assume 16 bit INTEGER and 32 bit LONGINT all over the place. This experimental behaviour is still available by uncommenting the '#define LARGE' in src/tools/make/configure.c line 14. + +#### Norayr/voc issues addressed + +The following issues are taken from https://github.com/norayr/voc/issues. + +##### Issue 7 - 'silence ccomp warnings'. +This has been done. + +##### Issue 9 - 'oberon.par arguments'. +Done for all supported platforms including Ubuntu, FreeBSD, OpenBSD, Raspbian, Darwin, Cygwin and MS C, on a mixture of 32 and 64 bit architectures. + +The vast majority of info in the .par file is redundant. For example the size and alignment of char, unsigned char, int and float is independent of platform. + +A single value is sufficient to specify alignment: above this size this value is the alignment, below this size, the alignment is the same as the type size. (Actually the latter is the type size rounded up to the enclosing power of two, but as all the Oberon type sizes are powers of two this step is unecessary.) + +The only platform differences come around the meaning of 'long' vs 'long long', pointer size and alignment of 64 bit values. These are just 3 possible combinations: + +| Pointer size | Alignment | Used on | Bootstrap directories | +| ------------ | --------- | ---------------- | --------------------- | +| 32 bit | 32 bit | Unix | unix-44 | +| 32 bit | 64 bit | Unix and Windows | unix-48, windows-48 | +| 64 bit | 64 bit | Unix and Windows | unix-88, windows-88 | + +The various C data models are named using common C compiler terminology as follows: + +| Name | 'int' size | 'long' size | 'long long' size | pointer size | +| ----- | ---------- | ----------- | ---------------- | ------------ | +| ILP32 | 32 | 32 | 64 | 32 | +| LLP64 | 32 | 32 | 64 | 64 | +| LP64 | 32 | 64 | 64 | 64 | + +##### Issue 13 - 'prepare Linux/x86asm target'. +Linux is currently compiled using PlatfromUnix.Mod, but the integration of Windows support has made the Platform interface reasonably OS independent, so implementing a PlatformLinux.Mod using Linux kernel calls directly should be straightforward. + +##### Issue 14 - 'separate rtl from SYSTEM?'. +OS specific code is now all in Platformxxx.Mod. Memory management (including the loaded module list) is now in Heap.Mod. SYSTEM.h is platform independent, with minimal ifdefs to allow compiling on all platforms. For example, when SYSTEM.h/SYSTEM.c need to allocate memory, or to halt, they call into Platform.Mod. + + diff --git a/doc/Installation.md b/doc/Installation.md new file mode 100644 index 00000000..e53ad28f --- /dev/null +++ b/doc/Installation.md @@ -0,0 +1,188 @@ +## TODO + - Organise into summary and per-platfrom sections + - with subsections for linux and BSD variants + - Add pre-requisites. E.g. static library support. + +#### Building and installation summary + +1. git clone https://github.com/dcwbrown/olang +2. cd olang +3. make full + +Since 'make full' will install the compiler and libraries, it needs root (unix) or administrator (windows) privileges. + +| System | Install dir | Access required | +| ----------------------- | -------------------------------------- | ------------------------------ | +| Linux | /opt/voc | Needs root except under cygwin | +| BSD | /usr/local/share/voc | Needs root | +| Windows (mingw or Visual C) | %ProgramFiles[(X86)]% | Needs administrator | +| Termux (android) | /data/data/com.termux/files/opt/voc | | + + +#### 32 and 64 bit + +The size of compiler built is determined by the C compiler that runs, which is in turn determined by +the shell or command prompt configuration you are running under. + +The following Oberon types are independent of compiler size: + +| Types | Size | +| ----- | -------| +| CHAR, SHORTINT | 8 bit | +| REAL | 32 bit | +| LONGREAL | 64 bit | + +The following type sizes follow the built compiler size: + +| Types | 32 bit builds | 64 bit builds | +| ----- | ------------- | ------------- | +| INTEGER | 16 bit | 32 bit | +| LONGINT, SET | 32 bit | 16 bit | + +Note that many library modules have been written with the assumption that INTEGER +is 16 bit and LONGINT 32 bit, therefore they will only work in 32 bit builds. + +#### Which compiler? (gcc vs clang) + +By default make uses the compiler defined in variable CC. This can be overriden by running 'export CC=gcc' or 'export CC=clang' from the command line before running make. + +*Note*: be sure to run 'make clean' any time you change the value of CC. Otherwise directories will be mixed up. + +*Note*: Darwin (MAC OS/X) redirects gcc to clang, so specifying CC=gcc still builds clang binaries under Darwin. + + +#### Building on Windows + +There are three ways to build on Windows: + +| Type | How to build | Compiled binary uses: | +| ----------- | ------- | --------------------- | +| cygwin | Use 'make' from cygwin bash shell. | cygwin.dll | +| mingw under cygwin | Set CC for mingw then use 'make' from cygwin bash shell. | Win32 API | +| Visual C | Use 'make.cmd' from Visual C command prompt. | Win32 API | + +##### mingw on cygwin + +To use mingw, install the correct sized package and export CC= the compiler name: + + - For 32 bit cygwin + + - use setup-x86.exe to add the package mingw64-i686-gcc-core. + - run 'export CC=i686-w64-mingw32-gcc' then 'make full' + + - For 64 bit cygwin + + - use setup-x86\_64.exe to add the package mingw64-x86\_64-gcc-core. + - run 'export CC=x86_64-w64-mingw32-gcc' then 'make full' + +(*Note*: Don't be put off by the name 'mingw64' in the 32 bit package.) + +##### Microsoft Visual C compiler + +Use the free command line Visual C++ compiler. At the time of writing it can be +downloaded here: + + http://landinghub.visualstudio.com/visual-cpp-build-tools + +For example (Windows 10): + +Start an adminstrator command prompt from the start button as follows: + + Start / All apps / Visual C++ Build Tools + +Right click on + + Visual C++ 2015 x86 Native Build Tools Command Prompt + +or + + Visual C++ 2015 x64 Native Build Tools Command Prompt + +And select + + More / Administrative Command Prompt + +#### A 'Hello' application + +Anything appended to Oberon.Log is automatically displayed on the console, so the +following conventional Oberon program will display 'Hello.': + + MODULE hello; + IMPORT Oberon, Texts; + VAR W: Texts.Writer; + BEGIN + Texts.OpenWriter(W); + Texts.WriteString(W, "Hello."); Texts.WriteLn(W); + Texts.Append(Oberon.Log, W.buf) + END hello. + +Alternatively the Console may be accessed directly as follows: + + MODULE hello; + IMPORT Console; + BEGIN + Console.String("Hello."); Console.Ln; + END hello. + +Compile as follows: + + voc hello.mod -m + +The -m parameter tells voc that this is a main module, and to generate an +executable binary. + +Execute as usual on Linux ('./hello') or Windows ('hello'). + +#### How make adapts to each platform + +On all platforms other than Visual C on Windows, make runs from a bash shell, +using makefile in the enlistment root, and vishap.make in the src/tools/make +directory. + +For Visual C only, there is a slightly cut down implementation of the same +functionality in the file 'make.cmd' in the enlistment root. + +In all cases src/tools/make/configure.c is executed to determine all +platform dependent parameters: it generates two files: + + - Configuration.Make: a set of environment variables included by the makefile + - Configuration.Mod: An Oberon MODULE containing just configuraton constants. + +The following examples correspond to a 32 bit Ubuntu build using GCC: + +Configuration.Make: + + OLANGDIR=/home/dave/projects/oberon/olang + COMPILER=gcc + OS=ubuntu + VERSION=1.2 + ONAME=voc + DATAMODEL=ILP32 + INTSIZE=2 + ADRSIZE=4 + ALIGNMENT=4 + INSTALLDIR=/opt/voc + PLATFORM=unix + BINEXT= + COMPILE=gcc -fPIC -g + STATICLINK=-static + LDCONFIG=if echo "/opt/voc/lib" >/etc/ld.so.conf.d/libvoc.conf; then ldconfig; fi + +Configuration.Mod: + + MODULE Configuration; + CONST + name* = 'voc'; + versionLong* = '1.2 [2016/06/11] for gcc ILP32 on ubuntu'; + intsize* = 2; + addressSize* = 4; + alignment* = 4; + objext* = '.o'; + objflag* = ' -o '; + linkflags* = ' -L"'; + libspec* = ' -l voc'; + compile* = 'gcc -fPIC -g'; + dataModel* = 'ILP32'; + installdir* = '/opt/voc'; + staticLink* = '-static'; + END Configuration. diff --git a/doc/Roadmap.md b/doc/Roadmap.md new file mode 100644 index 00000000..460e5f51 --- /dev/null +++ b/doc/Roadmap.md @@ -0,0 +1,84 @@ + +#### Machine size issues + +I don't see any really good solutions to different machine sizes. Existing code, +such as the libraries, assumes that INTEGER is 16 bit and LONGINT is 32 bit and +so is broken on 64 bit builds of voc. + +Could the implementation of INTnn types help? It would not solve (for example) +the need for a type that always matches address size. Nor would it provide +unsigned types. Implementation of low level memory management needs both. + +Wirth's latest spec includes a BYTE type (not SYSTEM.BYTE, just BYTE) that +behaves as an unsigned 8 bit integer, for use in low level code. BYTE thus +avoids the need for SYSTEM.VAL when manipulating 8 bit unsigned numeric values, +making code easier to write and, more importantly, easier to read. A BYTE type +would be useful for microcontroller C support. So I believe it makes sense to +add Wirths's BYTE to voc. + +Linux/Unix specifies many API datatypes and structure fields in terms of named C +numeric types, with the result that they vary in size between implementations. +This is perhaps the strongest driving force for adding support for various +numeric types to voc - but they would better match the C types than be of fixed +size. + +So maybe one could provide Platform.int, Platform.long, Platform.longlong, +Platform.unsignedint, Platform.unsignedlong, Platform.unsignedlonglong and, +importantly for memory management, Platform.uintptr. + +Personally I miss Pascal and Modula's subrange variables. As well as being great +for error detection (assuming value checking code is generated), they can also +be used to imply variables of arbitrary sizes (e.g. 'VAR mybyte = 0..255;'). +With these one could remove the Platform.int* types and replace them with +constants Platform.MaxInt, Platform.MaxLong etc. I think this would be a cleaner +more generalised option - but maybe, probably, it is a step too far. Always +beware of over-generalising. Wirth found that most programmers did not use, or +very rarely used, subrange types. + +#### More thoughts about 64 bit support and what INTEGER and LONGINT mean + +Arguably, because Oberon says LONGINT is big enough for addresses, +it seems that LONGINT has to be 64 bits on a 64 bit system. + +But I'm having second thoughts. + +There's a lot of code out there that assumes the size of INTEGER and LONGINT +and is broken if they are not 16 and 32 bits respectively. Frustratingly a +lot of the broken code doesn't go wrong until it encounters values outside the +16 and 32 bit ranges - like Texts.WriteInt which handles values up 2**32 fine, +and then aborts the program with an index out of range error when the number +is more than 11 characters long. + +I suggest use of LONGINT for addresses is a small subset of use cases of LONGINT. + +Instead I propose we + - keep INTEGER at 16 bits and LONGINT at 32 bits. + - Add LONG64 for 64 bit signed integers, to be available on both 32 and 64 + bit systems, (quite possible as C has an int64_t on both systems). + - add a SYSTEM.ADDRESS type for address manipulation + - an unsigned type that always matches the machine address size (32, 64 or even 16 bit). + - is compatible with SHORTINT, INTEGER, LONGINT and LONG64. + +It means changing the memory management and platform interface code, but it +means client code does not need changing. + +This fixes the current 16 bit hole in the range of INTEGER types on 64 bit systems. + + +#### A feature I'd really like to see + +We should report .Mod file name and line number at fault when exiting abnormally, +e.g. due to index out of range. Followed by a stack trace. + +Wirth's original Pascal (Pascal 6000 on the CDC mainframe at ETHZ) had this at +least by 1975. This could be achieved by including a table of .Mod file line +number vs code address, and having the runtime seach this table for the failure +address. It would be quite a lot of work! + +#### Oberon 07/15 mode + + - Add standard BYTE type being an unsigned integer between 0 and 255. + - Structured value parameters become read-only and get passed the same way as + VAR parameters - i.e. no copying. + - CASE statements only support INTEGER (with low positive values) and CHAR. + - Reject LOOP statements. diff --git a/makefile b/makefile index 2cc4da4e..a9185517 100644 --- a/makefile +++ b/makefile @@ -131,6 +131,7 @@ clean: configuration # full: Full build of compiler and libarary. full: configuration + @make -f src/tools/make/vishap.make -s installable @make -f src/tools/make/vishap.make -s clean @make -f src/tools/make/vishap.make -s translate @make -f src/tools/make/vishap.make -s assemble @@ -166,9 +167,11 @@ library: configuration # install: Copy built files to install directory install: configuration + @make -f src/tools/make/vishap.make -s installable @make -f src/tools/make/vishap.make -s install uninstall: configuration + @make -f src/tools/make/vishap.make -s installable @make -f src/tools/make/vishap.make -s uninstall @@ -237,11 +240,3 @@ autobuild: configuration # autostop: Tell test clients to exit their wait loop. autostop: configuration ./testclient -c "exit" - - - - - - - - diff --git a/src/tools/make/configure.c b/src/tools/make/configure.c index 7eb7123b..1117962f 100644 --- a/src/tools/make/configure.c +++ b/src/tools/make/configure.c @@ -8,7 +8,7 @@ // Derived from vocparam.c originally by J. Templ 23.6.95 -#define O_VER 1.2 // Version number to be reported by compiler. +#define O_VER 1.95 // Version number to be reported by compiler. #define O_NAME voc // Compiler name used for binary, install dir and references in text. // #define LARGE // Define this to get 32 bit INTEGER and 64 bit longints even on 32 bit platforms. diff --git a/src/tools/make/vishap.make b/src/tools/make/vishap.make index d7fdbe23..c2fd9015 100644 --- a/src/tools/make/vishap.make +++ b/src/tools/make/vishap.make @@ -150,6 +150,16 @@ testtools: +# installable: Check for access to the installation directory + +installable: + @rm -rf "S(INSTALLDIR)/test-access-qqq" + @if ! mkdir -p "$(INSTALLDIR)/test-access-qqq";then echo Cannot write to install directory, please use sudo or run as root/administrator; exit 1;fi + @rm -rf "S(INSTALLDIR)/test-access-qqq" + + + + # install: Use only after a successful full build. Installs the compiler # and libraries in /opt/$(ONAME). # May require root access. @@ -365,8 +375,3 @@ auto: @make -f src/tools/make/vishap.make -s assemble @make -f src/tools/make/vishap.make -s testtools while cmd=$$(./testclient -w "$(FLAVOUR)"); do $$cmd 2>&1 | ./testclient -s "$(FLAVOUR)"; done - - - - - diff --git a/triage/hints b/triage/hints new file mode 100644 index 00000000..2722e294 --- /dev/null +++ b/triage/hints @@ -0,0 +1,39 @@ +==how to port to a new platform== +0) generate voc.par file for the target platform(if it does not exist in src/par). + you can do it by compiling vocparam, and running it as "./vocparam > voc.par" +1) generate voc, ocat, showdef source for target platform by running + make -f makefile.gcc. port0 + (or copy corresponding voc.par to the source directory yourself, remove stage2 from port0 section of the makefile, and run make port0) +2) transfer source to a target platform and write + make port1 + (or use a crosscompiler) + now you have voc, showdef, and ocat binaries for your target platform +3) cp voc vocstatic + make -f makefile for your target. +that's how I've done x86 port. +voc was originally run on x86_64. + +notes** in practice everything is not always simple, because you may need to edit Unix.Mod, Args.Mod and SYSTEM.h, and put them to src/lib/system/gcc/, and create new makefile for your target. + + +==how to add a new option== + +define it in OPM as a constant before defopt is defined. +define a BOOLEAN variable in OPM which will describe if setting is set. +add handling of a new option in OPM.ScanOptions +set your BOOLEAN value in OPM.OpenPari (or in ScanOptions, after the CASE) so you can check it later. +check your boolean when necessary, (see useParFile in OPM.GetOptions) +add it in OPC.GenHeaderMsg function. + +==known bugs== + +when using SYSTEM.LSH(s, n) where s is SET, +c compiler generates an error like +"error: duplicate 'unsigned'", +that's because SET is defined as unsigned in SYSTEM.h, +while LSH is defined in SYSTEM.h as ((t)((unsigned t)(x)<<(n))), +and it makes not possible to make SYSTEM.LSH with type SET. +I don't want to prohibit it at the parser level +because C backend is only one of possible backends. +The solution currently is to cast set type to longint before lsh-ing it. +And then casting it back to set if necessary. From f050fc2fe42d0d5c945d7ab9d6f94beb2da9c0d5 Mon Sep 17 00:00:00 2001 From: David Date: Sat, 18 Jun 2016 17:44:02 +0100 Subject: [PATCH 03/52] Nice error message when install dir inaccessible. --- src/tools/make/vishap.make | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tools/make/vishap.make b/src/tools/make/vishap.make index c2fd9015..87015b71 100644 --- a/src/tools/make/vishap.make +++ b/src/tools/make/vishap.make @@ -154,7 +154,7 @@ testtools: installable: @rm -rf "S(INSTALLDIR)/test-access-qqq" - @if ! mkdir -p "$(INSTALLDIR)/test-access-qqq";then echo Cannot write to install directory, please use sudo or run as root/administrator; exit 1;fi + @if ! mkdir -p "$(INSTALLDIR)/test-access-qqq";then echo "\\n\\n Cannot write to install directory.\\n Please use sudo or run as root/administrator.\\n\\n"; exit 1;fi @rm -rf "S(INSTALLDIR)/test-access-qqq" From 739a94313b45d9e9da21ac6a0dce2eabf18b9baf Mon Sep 17 00:00:00 2001 From: David Brown Date: Mon, 20 Jun 2016 18:36:44 +0100 Subject: [PATCH 04/52] Slight doc changes, new multi-machine build approach. --- ReadMe.md | 4 +-- doc/Roadmap.md | 1 + src/tools/make/vishap.make | 2 +- src/tools/testcoordinator/buildall.sh | 39 +++++++++++++++++++++++++++ 4 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 src/tools/testcoordinator/buildall.sh diff --git a/ReadMe.md b/ReadMe.md index d15b111f..4407c569 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -72,9 +72,9 @@ Some other freely redistributable libraries are available as a part of voc distr See [Features](/doc/Features.md). -#### Installing +#### Installation -See [Installing](/doc/Installing.md). +See [Installation](/doc/Installation.md). #### Compiling Oberon modules diff --git a/doc/Roadmap.md b/doc/Roadmap.md index 460e5f51..593f9e6f 100644 --- a/doc/Roadmap.md +++ b/doc/Roadmap.md @@ -82,3 +82,4 @@ address. It would be quite a lot of work! VAR parameters - i.e. no copying. - CASE statements only support INTEGER (with low positive values) and CHAR. - Reject LOOP statements. + - All imported variables are read-only. diff --git a/src/tools/make/vishap.make b/src/tools/make/vishap.make index 87015b71..43986b73 100644 --- a/src/tools/make/vishap.make +++ b/src/tools/make/vishap.make @@ -364,7 +364,7 @@ confidence: if [ "$(PLATFORM)" != "windows" ] ; then cd src/test/confidence/signal; ./test.sh "$(INSTALLDIR)"; fi cd src/test/confidence/lola; ./test.sh "$(INSTALLDIR)" cd src/test/confidence/arrayassignment; ./test.sh "$(INSTALLDIR)" - @printf "\n\n--- Confidence tests passed ---\n\n" + @printf "\n\n--- Branch $$(git rev-parse --abbrev-ref HEAD) $(OS) $(COMPILER) $(DATAMODEL) confidence tests passed ---\n\n" diff --git a/src/tools/testcoordinator/buildall.sh b/src/tools/testcoordinator/buildall.sh new file mode 100644 index 00000000..ad420253 --- /dev/null +++ b/src/tools/testcoordinator/buildall.sh @@ -0,0 +1,39 @@ +#branch=v2docs +#ssh pi@pie "cd projects/oberon/vishap/voc && sudo git checkout $branch && sudo make clean" & +#ssh dave@dcb "cd projects/oberon/vishap/voc && sudo git checkout $branch && sudo make clean" & +#ssh dave@nas-ub64 "cd vishap/voc && sudo git checkout $branch && sudo make clean" & +#ssh dave@lub32 "cd vishap/voc && sudo git checkout $branch && sudo make clean" & +#ssh root@nas-ob32 "cd vishap/voc && git checkout $branch && make clean" & +#ssh root@oberon "cd vishap/voc && git checkout $branch && make clean" & + +declare -A VOCLOGIN +VOCLOGIN[pi]=pi@pie +VOCLOGIN[darwin]=dave@dcb +VOCLOGIN[ub64]=dave@nas-ub64 +VOCLOGIN[lub32]=dave@lub32 +VOCLOGIN[ob32]=root@nas-ob32 +VOCLOGIN[fb64]=root@oberon + +declare -A VOCDIR +VOCDIR[pi]=projects/oberon/vishap/voc +VOCDIR[darwin]=projects/oberon/vishap/voc +VOCDIR[ub64]=vishap/voc +VOCDIR[lub32]=vishap/voc +VOCDIR[ob32]=vishap/voc +VOCDIR[fb64]=vishap/voc + +declare -A VOCSUDO +VOCSUDO[pi]="sudo " +VOCSUDO[darwin]="sudo " +VOCSUDO[ub64]="sudo " +VOCSUDO[lub32]="sudo " +VOCSUDO[ob32]="" +VOCSUDO[fb64]="" + +for MACHINE in "${!VOCLOGIN[@]}" +do +SETBRANCH="${VOCSUDO[$MACHINE]} git checkout $branch" +PULL="${VOCSUDO[$MACHINE]} git pull" +MAKE="${VOCSUDO[$MACHINE]} make full" +ssh ${VOCLOGIN[$MACHINE]} "cd ${VOCDIR[$MACHINE]} && $SETBRANCH && $PULL && $MAKE" | perl -pe "use POSIX strftime; print strftime \"%H:%M:%S $MACHINE: \", localtime" | tee log/$MACHINE.log & +done From 119365d4a9ee910de98f8087da8a6e8414443357 Mon Sep 17 00:00:00 2001 From: David Brown Date: Wed, 22 Jun 2016 14:12:14 +0100 Subject: [PATCH 05/52] Add buildall perl script --- src/compiler/OPM.cmdln.Mod | 2 +- src/tools/testcoordinator/buildall.pl | 71 +++++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 src/tools/testcoordinator/buildall.pl diff --git a/src/compiler/OPM.cmdln.Mod b/src/compiler/OPM.cmdln.Mod index 6a02cc91..32b95689 100644 --- a/src/compiler/OPM.cmdln.Mod +++ b/src/compiler/OPM.cmdln.Mod @@ -181,7 +181,7 @@ MODULE OPM; (* RC 6.3.89 / 28.6.89, J.Templ 10.7.89 / 22.7.96 *) (* Undocumented options used by the build system: - The following two parameter overrides the integer size, pointer size and alignment + The following parameter overrides the integer size, pointer size and alignment settings compiled into the binary. They are used when bootstrapping to generate the C source for a compiler with different sizes to the current compiler. diff --git a/src/tools/testcoordinator/buildall.pl b/src/tools/testcoordinator/buildall.pl new file mode 100644 index 00000000..7f0360f4 --- /dev/null +++ b/src/tools/testcoordinator/buildall.pl @@ -0,0 +1,71 @@ +#!perl -w +use strict; +use warnings; +use POSIX "strftime"; + +my $branch = "v2docs"; + +my %machines = ( + "pi" => ['pi@pie', "projects/oberon/vishap/voc", "sudo"], + "darwin" => ['dave@dcb', "projects/oberon/vishap/voc", "sudo"], + "lub32" => ['dave@lub32', "vishap/voc", "sudo"], + "ob32" => ['root@nas-ob32', "vishap/voc", "" ], + "fb64" => ['root@oberon', "vishap/voc", "" ], + "ub64" => ['dave@nas-ub64', "vishap/voc", "sudo"] +); + + +sub logged { + my ($cmd, $id) = @_; + my $child = fork; + if (not defined $child) {die "Fork failed.";} + if ($child) { + # parent process + print "Started $id, pid = $child\n"; + } else { + # child process + open(my $log, ">log/$id.log") // die "Could not create log file log/$id.log"; + print $log strftime("%Y/%m/%d %H.%M.%S ", localtime), "$id.log\n"; + print $log strftime("%H.%M.%S", localtime), "> $cmd\n"; + print $id, " ", strftime("%H.%M.%S", localtime), "> $cmd\n"; + open(my $pipe, "$cmd 2>&1 |") // die "Could not open pipe from command $cmd."; + while (<$pipe>) { + my $line = $_; + print $id, " ", strftime("%H.%M.%S", localtime), " ", $line; + print $log strftime("%H.%M.%S", localtime), " ", $line; + } + close($pipe); + close($log); + exit; + } +} + + + +for my $machine (sort keys %machines) { + my ($login, $dir, $sudo) = @{$machines{$machine}}; + my $cmd = "ssh $login \"cd $dir && $sudo git checkout $branch && $sudo git pull && $sudo make full\" "; + logged($cmd, $machine); +} + +while ((my $pid = wait) > 0) {print "Child pid $pid completed.\n";} +print "Buildall complete.\n"; +exit; + + + +#branch=v2docs +#ssh pi@pie "cd projects/oberon/vishap/voc && sudo git checkout $branch && sudo make clean" & +#ssh dave@dcb "cd projects/oberon/vishap/voc && sudo git checkout $branch && sudo make clean" & +#ssh dave@nas-ub64 "cd vishap/voc && sudo git checkout $branch && sudo make clean" & +#ssh dave@lub32 "cd vishap/voc && sudo git checkout $branch && sudo make clean" & +#ssh root@nas-ob32 "cd vishap/voc && git checkout $branch && make clean" & +#ssh root@oberon "cd vishap/voc && git checkout $branch && make clean" & + +#for MACHINE in "${!VOCLOGIN[@]}" +#do +#SETBRANCH="${VOCSUDO[$MACHINE]} git checkout $branch" +#PULL="${VOCSUDO[$MACHINE]} git pull" +#MAKE="${VOCSUDO[$MACHINE]} make full" +#ssh ${VOCLOGIN[$MACHINE]} "cd ${VOCDIR[$MACHINE]} && $SETBRANCH && $PULL && $MAKE" | perl -pe "use POSIX strftime; print strftime \"%H:%M:%S $MACHINE: \", localtime" | tee log/$MACHINE.log & +#done From f2c55cc4de16be573e57f42efd5862a084773cb4 Mon Sep 17 00:00:00 2001 From: David C W Brown Date: Thu, 23 Jun 2016 14:25:31 +0100 Subject: [PATCH 06/52] Simple readme change (to test web hook). --- ReadMe.md | 8 ++----- src/compiler/OPB.Mod | 56 ++++++++++++++++++++++---------------------- 2 files changed, 30 insertions(+), 34 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index 4407c569..5fc6881e 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -27,17 +27,13 @@ Vishap Oberon's frontend and C backend engine is a fork of Josef Templ’s Ofront, which has been released under the FreeBSD License. Unlike Ofront, Vishap Oberon does not include the Oberon v4 environment. -The Ulm Oberon Library is distributed under GPL. - -The Ooc library is distributed under GPL. +The Ulm Oberon Library and the Ooc libraries are distributed under GPL. Proprietry code +using these libraries may not be statically linked. Voc tools are distributed under GPLv3. Most of the runtime in libVishapOberon is distributed under GPLv3 with runtime exception. -Proprietry code using the Ulm or Ooc libraries may not be statically linked as they are -distributed under the GPL. - #### Platform support diff --git a/src/compiler/OPB.Mod b/src/compiler/OPB.Mod index 8b7468c1..a06b1cfc 100644 --- a/src/compiler/OPB.Mod +++ b/src/compiler/OPB.Mod @@ -409,9 +409,9 @@ MODULE OPB; (* RC 6.3.89 / 21.2.94 *) (* object model 17.1.93 *) END ; z^.typ := OPT.booltyp | adr: (*SYSTEM.ADR*) - IF (z^.class = Nconst) & (f = Char) & (z^.conval^.intval >= 20H) THEN - CharToString(z); f := String - END; + IF (z^.class = Nconst) & (f = Char) & (z^.conval^.intval >= 20H) THEN + CharToString(z); f := String + END; IF (z^.class < Nconst) OR (f = String) THEN z := NewOp(op, typ, z) ELSE err(127) END ; @@ -906,8 +906,8 @@ MODULE OPB; (* RC 6.3.89 / 21.2.94 *) (* object model 17.1.93 *) | lss, leq, gtr, geq: IF (f IN {Undef, Char..LReal(*, Int8..Int64*)}) OR strings(z, y) THEN typ := OPT.booltyp ELSE - OPM.LogWLn; OPM.LogWStr("ELSE in Op()"); OPM.LogWLn; - err(108); typ := OPT.undftyp + OPM.LogWLn; OPM.LogWStr("ELSE in Op()"); OPM.LogWLn; + err(108); typ := OPT.undftyp END ; NewOp(op, typ, z, y) ELSE @@ -977,24 +977,24 @@ MODULE OPB; (* RC 6.3.89 / 21.2.94 *) (* object model 17.1.93 *) Undef, String: (* | Int8: IF (ynode.typ.size > OPM.Int8Size) THEN - IF OPM.Verbose THEN OPM.LogWStr("f of int8"); OPM.LogWLn END; - err(113) - END + IF OPM.Verbose THEN OPM.LogWStr("f of int8"); OPM.LogWLn END; + err(113) + END | Int16: IF (ynode.typ.size > OPM.Int16Size) THEN - IF OPM.Verbose THEN OPM.LogWStr("f of int16"); OPM.LogWLn END; - err(113) - END + IF OPM.Verbose THEN OPM.LogWStr("f of int16"); OPM.LogWLn END; + err(113) + END | Int32: IF (ynode.typ.size > OPM.Int32Size) THEN - IF OPM.Verbose THEN OPM.LogWStr("f of int32"); OPM.LogWLn END; - err(113) - END + IF OPM.Verbose THEN OPM.LogWStr("f of int32"); OPM.LogWLn END; + err(113) + END | Int64: IF ynode.typ.size > OPM.Int64Size THEN - IF OPM.Verbose THEN OPM.LogWStr("f of int64"); OPM.LogWLn END; - err(113) - END*) + IF OPM.Verbose THEN OPM.LogWStr("f of int64"); OPM.LogWLn END; + err(113) + END*) | Byte: IF ~(g IN {Byte, Char, SInt}) THEN err(113) END | Bool, Char, SInt, Set: @@ -1003,10 +1003,10 @@ MODULE OPB; (* RC 6.3.89 / 21.2.94 *) (* object model 17.1.93 *) IF ~(g IN {SInt, Int}) THEN err(113) END | LInt: IF OPM.LIntSize = 4 THEN - IF ~(g IN {SInt, Int, LInt(*, Int8, Int16, Int32*)}) THEN err(113) END - ELSE (* assume OPM.LIntSize = 8 *) + IF ~(g IN {SInt, Int, LInt(*, Int8, Int16, Int32*)}) THEN err(113) END + ELSE (* assume OPM.LIntSize = 8 *) IF ~(g IN {SInt, Int, LInt(*, Int8, Int16, Int32, Int64*)}) THEN err(113) END - END; + END; | Real: IF ~(g IN {SInt..Real}) THEN err(113) END | LReal: @@ -1131,10 +1131,10 @@ avoid unnecessary intermediate variables in voc | SInt: x := NewIntConst(OPM.MinSInt) | Int: x := NewIntConst(OPM.MinInt) | LInt: x := NewIntConst(OPM.MinLInt) - (* | Int8: x := NewIntConst(OPM.MinInt8) - | Int16: x := NewIntConst(OPM.MinInt16) - | Int32: x := NewIntConst(OPM.MinInt32) - | Int64: err(111)(*x := NewIntConst(OPM.MinInt64)*) (* int64 constants not implemented yet *)*) + (* | Int8: x := NewIntConst(OPM.MinInt8) + | Int16: x := NewIntConst(OPM.MinInt16) + | Int32: x := NewIntConst(OPM.MinInt32) + | Int64: err(111)(*x := NewIntConst(OPM.MinInt64)*) (* int64 constants not implemented yet *)*) | Set: x := NewIntConst(0); x^.typ := OPT.inttyp | Real: x := NewRealConst(OPM.MinReal, OPT.realtyp) | LReal: x := NewRealConst(OPM.MinLReal, OPT.lrltyp) @@ -1150,10 +1150,10 @@ avoid unnecessary intermediate variables in voc | SInt: x := NewIntConst(OPM.MaxSInt) | Int: x := NewIntConst(OPM.MaxInt) | LInt: x := NewIntConst(OPM.MaxLInt) - (* | Int8: x := NewIntConst(OPM.MaxInt8) - | Int16: x := NewIntConst(OPM.MaxInt16) - | Int32: x := NewIntConst(OPM.MaxInt32) - | Int64: err(111); (*x := NewIntConst(OPM.MaxInt64)*) (* int64 contstants not implemented yet *)*) + (* | Int8: x := NewIntConst(OPM.MaxInt8) + | Int16: x := NewIntConst(OPM.MaxInt16) + | Int32: x := NewIntConst(OPM.MaxInt32) + | Int64: err(111); (*x := NewIntConst(OPM.MaxInt64)*) (* int64 contstants not implemented yet *)*) | Set: x := NewIntConst(OPM.MaxSet); x^.typ := OPT.inttyp | Real: x := NewRealConst(OPM.MaxReal, OPT.realtyp) | LReal: x := NewRealConst(OPM.MaxLReal, OPT.lrltyp) From 03805e5fdb7821ea93c7df5ec5e0a21c852363a1 Mon Sep 17 00:00:00 2001 From: David C W Brown Date: Thu, 23 Jun 2016 14:29:27 +0100 Subject: [PATCH 07/52] Simple readme change (to ttry json web hook). --- ReadMe.md | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index 5fc6881e..4435c195 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -3,22 +3,19 @@ [ⱱishap Oberon Compiler](http://oberon.vishap.am) (voc) is a free (GPLv3) professional oberon-2 compiler. +-- or -- -### Ѵishap Oberon - -[Ѵishap Oberon Compiler](http://oberon.vishap.am) (voc) is a free (GPLv3) professional oberon-2 compiler. - - +### Ѵishap Oberon ### Ꮙishap Oberon -[Ꮙishap Oberon Compiler](http://oberon.vishap.am) (voc) is a free (GPLv3) professional oberon-2 compiler. - - - ### 𝓥ishap Oberon -[𝓥ishap Oberon Compiler](http://oberon.vishap.am) (voc) is a free (GPLv3) professional oberon-2 compiler. +[ Ѵishap Oberon Compiler](http://oberon.vishap.am) + +[Ꮙishap Oberon Compiler](http://oberon.vishap.am) + +[𝓥ishap Oberon Compiler](http://oberon.vishap.am) From d8e26c635e5193e021bd0d4681d05d9660fab774 Mon Sep 17 00:00:00 2001 From: David Brown Date: Fri, 24 Jun 2016 00:30:27 +0100 Subject: [PATCH 08/52] Another readme twiddle to generate a github hook. --- ReadMe.md | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index 4435c195..333942dd 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -5,18 +5,9 @@ -- or -- -### Ѵishap Oberon - -### Ꮙishap Oberon - -### 𝓥ishap Oberon - -[ Ѵishap Oberon Compiler](http://oberon.vishap.am) - -[Ꮙishap Oberon Compiler](http://oberon.vishap.am) - -[𝓥ishap Oberon Compiler](http://oberon.vishap.am) +### Ѵishap -- Ꮙishap -- 𝓥ishap +Ѵishap -- Ꮙishap -- 𝓥ishap #### Licensing From a5a8809b91f147d4b54c11a7a3c88eb3c6c64401 Mon Sep 17 00:00:00 2001 From: David Brown Date: Sun, 26 Jun 2016 17:07:40 +0100 Subject: [PATCH 09/52] Git push webhook script beginning to work. Fiddle with readme. --- ReadMe.md | 21 ++++++++++----- src/tools/testcoordinator/buildall.pl | 18 ------------- src/tools/testcoordinator/buildall.sh | 39 --------------------------- src/tools/testcoordinator/postpush.pl | 31 +++++++++++++++++++++ 4 files changed, 46 insertions(+), 63 deletions(-) delete mode 100644 src/tools/testcoordinator/buildall.sh create mode 100644 src/tools/testcoordinator/postpush.pl diff --git a/ReadMe.md b/ReadMe.md index 333942dd..549bf4aa 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -1,14 +1,23 @@ -### Vishap Oberon +### 𝓥ishap Ѵishap Ꮙishap Oberon -[ⱱishap Oberon Compiler](http://oberon.vishap.am) (voc) is a free (GPLv3) professional oberon-2 compiler. +Oberon is both a computer language, an operating system and a graphical +user interface. Originally designed and implemented by by Niklaus Wirth and +Jürg Gutknecht at ETH Zürich in the late 1980s, it demonstrates that the +fundamentals of a modern OS and GUI can be implemented in clean and simple code +orders of magnitude smaller than found in contemporary systems. +[𝓥ishap ⱱishap Ꮙishap Oberon](http://oberon.vishap.am) is a free and open source (GPLv3) +implementation of the Oberon-2 language compiler and libraries for use on +current operating systems such as Linux, BSD, Android, Mac and Windows. --- or -- +The Oberon language is the logical evolution of the Pascal and Modula languages, +following the principals of Einstein and Antoine de Saint-Exupéry: -### Ѵishap -- Ꮙishap -- 𝓥ishap - -Ѵishap -- Ꮙishap -- 𝓥ishap +> Make it as simple as possible, but not simpler. (A. Einstein) +> Perfection is finally attained not when there is no longer anything to add, but +> when there is no longer anything to take away. (Antoine de Saint-Exupéry, +> Terre des Hommes, 1939, translated by Lewis Galantière.) #### Licensing diff --git a/src/tools/testcoordinator/buildall.pl b/src/tools/testcoordinator/buildall.pl index 7f0360f4..2aedc2c2 100644 --- a/src/tools/testcoordinator/buildall.pl +++ b/src/tools/testcoordinator/buildall.pl @@ -51,21 +51,3 @@ for my $machine (sort keys %machines) { while ((my $pid = wait) > 0) {print "Child pid $pid completed.\n";} print "Buildall complete.\n"; exit; - - - -#branch=v2docs -#ssh pi@pie "cd projects/oberon/vishap/voc && sudo git checkout $branch && sudo make clean" & -#ssh dave@dcb "cd projects/oberon/vishap/voc && sudo git checkout $branch && sudo make clean" & -#ssh dave@nas-ub64 "cd vishap/voc && sudo git checkout $branch && sudo make clean" & -#ssh dave@lub32 "cd vishap/voc && sudo git checkout $branch && sudo make clean" & -#ssh root@nas-ob32 "cd vishap/voc && git checkout $branch && make clean" & -#ssh root@oberon "cd vishap/voc && git checkout $branch && make clean" & - -#for MACHINE in "${!VOCLOGIN[@]}" -#do -#SETBRANCH="${VOCSUDO[$MACHINE]} git checkout $branch" -#PULL="${VOCSUDO[$MACHINE]} git pull" -#MAKE="${VOCSUDO[$MACHINE]} make full" -#ssh ${VOCLOGIN[$MACHINE]} "cd ${VOCDIR[$MACHINE]} && $SETBRANCH && $PULL && $MAKE" | perl -pe "use POSIX strftime; print strftime \"%H:%M:%S $MACHINE: \", localtime" | tee log/$MACHINE.log & -#done diff --git a/src/tools/testcoordinator/buildall.sh b/src/tools/testcoordinator/buildall.sh deleted file mode 100644 index ad420253..00000000 --- a/src/tools/testcoordinator/buildall.sh +++ /dev/null @@ -1,39 +0,0 @@ -#branch=v2docs -#ssh pi@pie "cd projects/oberon/vishap/voc && sudo git checkout $branch && sudo make clean" & -#ssh dave@dcb "cd projects/oberon/vishap/voc && sudo git checkout $branch && sudo make clean" & -#ssh dave@nas-ub64 "cd vishap/voc && sudo git checkout $branch && sudo make clean" & -#ssh dave@lub32 "cd vishap/voc && sudo git checkout $branch && sudo make clean" & -#ssh root@nas-ob32 "cd vishap/voc && git checkout $branch && make clean" & -#ssh root@oberon "cd vishap/voc && git checkout $branch && make clean" & - -declare -A VOCLOGIN -VOCLOGIN[pi]=pi@pie -VOCLOGIN[darwin]=dave@dcb -VOCLOGIN[ub64]=dave@nas-ub64 -VOCLOGIN[lub32]=dave@lub32 -VOCLOGIN[ob32]=root@nas-ob32 -VOCLOGIN[fb64]=root@oberon - -declare -A VOCDIR -VOCDIR[pi]=projects/oberon/vishap/voc -VOCDIR[darwin]=projects/oberon/vishap/voc -VOCDIR[ub64]=vishap/voc -VOCDIR[lub32]=vishap/voc -VOCDIR[ob32]=vishap/voc -VOCDIR[fb64]=vishap/voc - -declare -A VOCSUDO -VOCSUDO[pi]="sudo " -VOCSUDO[darwin]="sudo " -VOCSUDO[ub64]="sudo " -VOCSUDO[lub32]="sudo " -VOCSUDO[ob32]="" -VOCSUDO[fb64]="" - -for MACHINE in "${!VOCLOGIN[@]}" -do -SETBRANCH="${VOCSUDO[$MACHINE]} git checkout $branch" -PULL="${VOCSUDO[$MACHINE]} git pull" -MAKE="${VOCSUDO[$MACHINE]} make full" -ssh ${VOCLOGIN[$MACHINE]} "cd ${VOCDIR[$MACHINE]} && $SETBRANCH && $PULL && $MAKE" | perl -pe "use POSIX strftime; print strftime \"%H:%M:%S $MACHINE: \", localtime" | tee log/$MACHINE.log & -done diff --git a/src/tools/testcoordinator/postpush.pl b/src/tools/testcoordinator/postpush.pl new file mode 100644 index 00000000..9a7dcf5e --- /dev/null +++ b/src/tools/testcoordinator/postpush.pl @@ -0,0 +1,31 @@ +#!/usr/bin/perl -w + + +use strict; +use warnings; + + +use CGI qw(:standard escapeHTML); +use JSON; + + +my $postdata = from_json(param('POSTDATA')); + +my $url = $postdata->{'repository'}->{'url'}; +my $ref = $postdata->{'ref'}; +my $name = $postdata->{'head_commit'}->{'author'}->{'name'}; + +my $branch = $ref; $branch =~ s'^.*\/''; +my $repo = $url; $repo =~ s'^.*\/''; + + +print header(), + start_html("Vishap Oberon github post push web hook."), + p("Repository $repo, branch $branch, name $name."), + end_html(); + + +open(LOG, ">>/tmp/postpush.log") or die "Could not create postpush.log"; +flock(LOG, 2) or die "Could not lock postpush.log"; +printf LOG "Repository $repo, branch $branch, name $name."; +close(LOG); From 44889a1b2f49d51731d2653bbcb17f7892092149 Mon Sep 17 00:00:00 2001 From: David Brown Date: Sun, 26 Jun 2016 17:12:47 +0100 Subject: [PATCH 10/52] Add newline to postpush script --- src/tools/testcoordinator/postpush.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tools/testcoordinator/postpush.pl b/src/tools/testcoordinator/postpush.pl index 9a7dcf5e..e98e94cd 100644 --- a/src/tools/testcoordinator/postpush.pl +++ b/src/tools/testcoordinator/postpush.pl @@ -27,5 +27,5 @@ print header(), open(LOG, ">>/tmp/postpush.log") or die "Could not create postpush.log"; flock(LOG, 2) or die "Could not lock postpush.log"; -printf LOG "Repository $repo, branch $branch, name $name."; +printf LOG "Repository $repo, branch $branch, name $name.\n"; close(LOG); From a359e16ae901cbef47fda724cc1fa74631fd3b93 Mon Sep 17 00:00:00 2001 From: David Brown Date: Mon, 27 Jun 2016 12:31:00 +0100 Subject: [PATCH 11/52] webhook progress --- ReadMe.md | 8 ++++---- src/tools/testcoordinator/postpush.pl | 5 ++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index 549bf4aa..81c82cf3 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -1,6 +1,6 @@ ### 𝓥ishap Ѵishap Ꮙishap Oberon -Oberon is both a computer language, an operating system and a graphical +Oberon is a programming language, an operating system and a graphical user interface. Originally designed and implemented by by Niklaus Wirth and Jürg Gutknecht at ETH Zürich in the late 1980s, it demonstrates that the fundamentals of a modern OS and GUI can be implemented in clean and simple code @@ -10,8 +10,8 @@ orders of magnitude smaller than found in contemporary systems. implementation of the Oberon-2 language compiler and libraries for use on current operating systems such as Linux, BSD, Android, Mac and Windows. -The Oberon language is the logical evolution of the Pascal and Modula languages, -following the principals of Einstein and Antoine de Saint-Exupéry: +The language is an evolution of the Pascal and Modula languages, following the +principals of Einstein and Antoine de Saint-Exupéry: > Make it as simple as possible, but not simpler. (A. Einstein) @@ -44,7 +44,7 @@ Installation supports GNU/Linux, MAC OSX, BSD and Windows (native and cygwin). Vishap Oberon supports the Oberon 2 programming language, including type-bound procedures. -It can also compile programs written to the Oberon07 report. +It also supports some features of Oberon-07. #### Libraries diff --git a/src/tools/testcoordinator/postpush.pl b/src/tools/testcoordinator/postpush.pl index e98e94cd..3eb07825 100644 --- a/src/tools/testcoordinator/postpush.pl +++ b/src/tools/testcoordinator/postpush.pl @@ -3,6 +3,7 @@ use strict; use warnings; +use POSIX "strftime"; use CGI qw(:standard escapeHTML); @@ -27,5 +28,7 @@ print header(), open(LOG, ">>/tmp/postpush.log") or die "Could not create postpush.log"; flock(LOG, 2) or die "Could not lock postpush.log"; -printf LOG "Repository $repo, branch $branch, name $name.\n"; +printf LOG strftime("%Y/%m/%d %H.%M.%S", localtime), " Repository $repo, branch $branch, name $name.\n"; close(LOG); + +system "ssh root@oberon perl vishap/voc/src/tools/testcoordinator/buildall.pl >/tmp/buildall.log &"; From b495b2725c6c6d39bc9bbc14d307739e6c361ed4 Mon Sep 17 00:00:00 2001 From: David C W Brown Date: Mon, 27 Jun 2016 15:53:36 +0100 Subject: [PATCH 12/52] Some more significant ReadMe work. --- ReadMe.md | 69 +++++- doc/Features.md | 16 +- doc/History.md | 5 +- doc/Installation.md | 45 +--- doc/Porting.md | 95 +++++--- triage/V2CHANGES.md | 132 ---------- triage/makefile.darwin.clang.x86_64 | 310 ------------------------ triage/makefile.freebsd.clang.x86_64 | 309 ----------------------- triage/makefile.linux.clang.powerpc | 309 ----------------------- triage/makefile.linux.clang.x86_64 | 309 ----------------------- triage/makefile.linux.gcc.armv6j_hardfp | 309 ----------------------- triage/makefile.linux.gcc.powerpc | 309 ----------------------- triage/makefile.linux.gcc.x86 | 309 ----------------------- triage/makefile.linux.gcc.x86_64 | 309 ----------------------- triage/makefile.openbsd.gcc.x86_64 | 310 ------------------------ 15 files changed, 148 insertions(+), 2997 deletions(-) delete mode 100644 triage/makefile.darwin.clang.x86_64 delete mode 100644 triage/makefile.freebsd.clang.x86_64 delete mode 100644 triage/makefile.linux.clang.powerpc delete mode 100644 triage/makefile.linux.clang.x86_64 delete mode 100644 triage/makefile.linux.gcc.armv6j_hardfp delete mode 100644 triage/makefile.linux.gcc.powerpc delete mode 100644 triage/makefile.linux.gcc.x86 delete mode 100644 triage/makefile.linux.gcc.x86_64 delete mode 100644 triage/makefile.openbsd.gcc.x86_64 diff --git a/ReadMe.md b/ReadMe.md index 81c82cf3..46738ec7 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -10,7 +10,12 @@ orders of magnitude smaller than found in contemporary systems. implementation of the Oberon-2 language compiler and libraries for use on current operating systems such as Linux, BSD, Android, Mac and Windows. -The language is an evolution of the Pascal and Modula languages, following the +Vishap's Oberon Compiler (voc) uses a C backend to compile +Oberon programs under Unix or Windows. Vishap Oberon includes +libraries from the Ulm, oo2c and Ofront Oberon compilers, as well as +default libraries complying with the Oakwood Guidelines for Oberon-2 compilers. + +The Oberon language is an evolution of the Pascal and Modula languages, following the principals of Einstein and Antoine de Saint-Exupéry: > Make it as simple as possible, but not simpler. (A. Einstein) @@ -19,6 +24,60 @@ principals of Einstein and Antoine de Saint-Exupéry: > when there is no longer anything to take away. (Antoine de Saint-Exupéry, > Terre des Hommes, 1939, translated by Lewis Galantière.) +#### Installation + +1. `git clone https://github.com/vishaps/voc` +2. `cd voc` +3. `[sudo] make full` + +Since 'make full' will install the compiler and libraries, it needs root (unix) or administrator (windows) privileges. + +Then set your path to the installed compiler binary location as reported +by make full, e.g. + +| System | Set path | +| --------- | -------------------------------------- | +| Linux | `export PATH="/opt/voc/bin:$PATH"` | +| BSD | `export PATH="/usr/local/share/voc/bin:$PATH"` | +| Windows | See [Installation](/doc/Installation.md) | +| Termux | `export PATH="/data/data/com.termux/files/opt/voc/bin:$PATH"` | + +Also see [Installation](/doc/Installation.md). + +#### A 'Hello' application + +Anything appended to Oberon.Log is automatically displayed on the console, so the +following conventional Oberon program will display 'Hello.': + + MODULE hello; + IMPORT Oberon, Texts; + VAR W: Texts.Writer; + BEGIN + Texts.OpenWriter(W); + Texts.WriteString(W, "Hello."); Texts.WriteLn(W); + Texts.Append(Oberon.Log, W.buf) + END hello. + +Alternatively the Console may be accessed directly as follows: + + MODULE hello; + IMPORT Console; + BEGIN + Console.String("Hello."); Console.Ln; + END hello. + +Compile as follows: + + voc hello.mod -m + +The -m parameter tells voc that this is a main module, and to generate an +executable binary. + +Execute as usual on Linux ('./hello') or Windows ('hello'). + + +Also see [Compiling](/doc/Compiling.md). + #### Licensing Vishap Oberon's frontend and C backend engine is a fork of Josef Templ’s Ofront, which has been released @@ -65,14 +124,6 @@ Some other freely redistributable libraries are available as a part of voc distr See [Features](/doc/Features.md). -#### Installation - -See [Installation](/doc/Installation.md). - -#### Compiling Oberon modules - -See [Compiling](/doc/Compiling.md). - #### Porting to new platforms See [Porting](/doc/Porting.md). diff --git a/doc/Features.md b/doc/Features.md index 4548c77f..64d19e68 100644 --- a/doc/Features.md +++ b/doc/Features.md @@ -1,3 +1,18 @@ +The following Oberon types are independent of compiler size: + +| Types | Size | +| ----- | -------| +| CHAR, SHORTINT | 8 bit | +| REAL | 32 bit | +| LONGREAL | 64 bit | + +The following type sizes follow the built compiler size: + +| Types | 32 bit builds | 64 bit builds | +| ----- | ------------- | ------------- | +| INTEGER | 16 bit | 32 bit | +| LONGINT, SET | 32 bit | 16 bit | + HALT/exit code has been simplified. Exit now just calls the system exit API rather than calling the kill API and passing our own process ID. For runtime errors it now displayes the appropriate error message (e.g. Index out of range). Compilation errors now include the line number at the start of the displayed source line. The pos (character offset) is still displayed on the error message line. The error handling code was already doing some walking of the source file to find start and end of line - I changed this to walk through the source file from the start identifying line end positions, counting lines and caching the position at the start of the last error line. The resultant code is simpler, and displays the line number without losing the pos. The performance cost of walking the source file is not an issue. @@ -6,4 +21,3 @@ Compilation errors now include the line number at the start of the displayed sou - In his latest specs (around 2013) Wirth removed the 'COPY(a, b)' character array copy procedure, replacing it with 'b := a'. I have accordingly enabled 'b := a' in voc as an alternative to 'COPY(a, b)' (COPY is still supported.). - Oberon code often writes to Oberon.Log expecting the text to appear on the screen. While voc has an Oberon.DumpLog procedure, I looked into making the behaviour automatic. Interestingly the voc source declares the Text notifier constants replace, insert and delete, but omits implementation of the notifier calls. The implementation turned out to be very little code, and I have used it to echo all text written to Oberon.Log to the console. This has the advantage over DumpLog that text is written immediately rather than only when DumpLog is called, and allows existing program source to work unchanged. - diff --git a/doc/History.md b/doc/History.md index c5793673..3bfe2a27 100644 --- a/doc/History.md +++ b/doc/History.md @@ -1,3 +1,6 @@ +### History + + #### Changes from 1.2 to 2.0 The biggest changes relative to Vishap Oberon 1.2 are in the build system and in the implementation of platform specific support. Where possible platform specific code has removed or replaced by platform agnostic code. @@ -104,5 +107,3 @@ Linux is currently compiled using PlatfromUnix.Mod, but the integration of Windo ##### Issue 14 - 'separate rtl from SYSTEM?'. OS specific code is now all in Platformxxx.Mod. Memory management (including the loaded module list) is now in Heap.Mod. SYSTEM.h is platform independent, with minimal ifdefs to allow compiling on all platforms. For example, when SYSTEM.h/SYSTEM.c need to allocate memory, or to halt, they call into Platform.Mod. - - diff --git a/doc/Installation.md b/doc/Installation.md index e53ad28f..fe08aa3d 100644 --- a/doc/Installation.md +++ b/doc/Installation.md @@ -5,9 +5,9 @@ #### Building and installation summary -1. git clone https://github.com/dcwbrown/olang -2. cd olang -3. make full +1. git clone https://github.com/vishaps/voc +2. cd voc +3. [sudo] make full Since 'make full' will install the compiler and libraries, it needs root (unix) or administrator (windows) privileges. @@ -24,14 +24,6 @@ Since 'make full' will install the compiler and libraries, it needs root (unix) The size of compiler built is determined by the C compiler that runs, which is in turn determined by the shell or command prompt configuration you are running under. -The following Oberon types are independent of compiler size: - -| Types | Size | -| ----- | -------| -| CHAR, SHORTINT | 8 bit | -| REAL | 32 bit | -| LONGREAL | 64 bit | - The following type sizes follow the built compiler size: | Types | 32 bit builds | 64 bit builds | @@ -102,37 +94,6 @@ And select More / Administrative Command Prompt -#### A 'Hello' application - -Anything appended to Oberon.Log is automatically displayed on the console, so the -following conventional Oberon program will display 'Hello.': - - MODULE hello; - IMPORT Oberon, Texts; - VAR W: Texts.Writer; - BEGIN - Texts.OpenWriter(W); - Texts.WriteString(W, "Hello."); Texts.WriteLn(W); - Texts.Append(Oberon.Log, W.buf) - END hello. - -Alternatively the Console may be accessed directly as follows: - - MODULE hello; - IMPORT Console; - BEGIN - Console.String("Hello."); Console.Ln; - END hello. - -Compile as follows: - - voc hello.mod -m - -The -m parameter tells voc that this is a main module, and to generate an -executable binary. - -Execute as usual on Linux ('./hello') or Windows ('hello'). - #### How make adapts to each platform On all platforms other than Visual C on Windows, make runs from a bash shell, diff --git a/doc/Porting.md b/doc/Porting.md index 29585f90..5145e7b9 100644 --- a/doc/Porting.md +++ b/doc/Porting.md @@ -1,39 +1,78 @@ -==how to port to a new platform== -0) generate voc.par file for the target platform(if it does not exist in src/par). - you can do it by compiling vocparam, and running it as "./vocparam > voc.par" -1) generate voc, ocat, showdef source for target platform by running - make -f makefile.gcc. port0 - (or copy corresponding voc.par to the source directory yourself, remove stage2 from port0 section of the makefile, and run make port0) -2) transfer source to a target platform and write - make port1 - (or use a crosscompiler) - now you have voc, showdef, and ocat binaries for your target platform -3) cp voc vocstatic - make -f makefile for your target. -that's how I've done x86 port. -voc was originally run on x86_64. +### Porting to a new platform -notes** in practice everything is not always simple, because you may need to edit Unix.Mod, Args.Mod and SYSTEM.h, and put them to src/lib/system/gcc/, and create new makefile for your target. +Porting to a new 32 or 64 bits platform is usually automatically handled +by `make full`: + + - The makefile compiles `src/tools/make/configure.c` with the + platform's default C compiler. + - `configure.c` determines which types to use for 32 and 64 bit + variables, and their alignment. + - `configure.c` uses a number of strategies to determine the + operating system it is running on and what the appropriate + installation directory will be. + - `configure.c` sets makefile variables that are used to select + which of 5 sets of preprepared C source files to build to create + the bootstrap compiler. + +On most systems this will be sufficient for `make full` to build +and install the compiler and libraries. + +`make full` will terminate with a message such as: + +`--- Branch v2docs freebsd gcc LP64 confidence tests passed ---` + +#### Updating configure.c + +It should only be necessary to change `configure.c` if it +cannot determine the correct install directory. + +In this case add code to `src/tools/make/configure.c`'s +function `determineOS()` to set the `os` variable to the name +of the new OS platform. + +The following variables are also set by `determineOS()` to the +followind defaults: + +variable | set to | example +-------- | ------ | ------- +`platform` | Base platform | `"unix"` +`binext` | Binary file extension | `""` +`staticlink` | Static linking option | `"-static"` + +If your new platform does not support static removing, set the +`staticlink` variable to `""`. + +Then modify `determineInstallDirectory()` to select the correct +instalation root based on the changes you have made to `determineOS()`. + +The `platform` variable selects which variety of the Platform +module is compiled. Vishap provides two varieties, one specific +to the Windows API (`Platformwindows.Mod`), and one suitable for +Unix-like systems including Linux, BSD, Android and cygwin +(`Platformunix.Mod`). -==how to add a new option== +#### How to add a new compiler option -define it in OPM as a constant before defopt is defined. -define a BOOLEAN variable in OPM which will describe if setting is set. -add handling of a new option in OPM.ScanOptions -set your BOOLEAN value in OPM.OpenPari (or in ScanOptions, after the CASE) so you can check it later. -check your boolean when necessary, (see useParFile in OPM.GetOptions) -add it in OPC.GenHeaderMsg function. + - Define it in OPM as a constant before defopt is defined. + - Define a BOOLEAN variable in OPM which will describe if setting is set. + - Add handling of a new option in OPM.ScanOptions + - Set your BOOLEAN value in OPM.OpenPari (or in ScanOptions, after the + CASE) so you can check it later. + - Check your boolean when necessary, (see useParFile in OPM.GetOptions) + - Add it in OPC.GenHeaderMsg function. -==known bugs== +#### Known bugs -when using SYSTEM.LSH(s, n) where s is SET, -c compiler generates an error like -"error: duplicate 'unsigned'", +When using SYSTEM.LSH(s, n) where s is SET, +the C compiler generates an error like +`error: duplicate 'unsigned'`, that's because SET is defined as unsigned in SYSTEM.h, -while LSH is defined in SYSTEM.h as ((t)((unsigned t)(x)<<(n))), +while LSH is defined in SYSTEM.h as ((t)((unsigned t)(x)<<(n))), and it makes not possible to make SYSTEM.LSH with type SET. -I don't want to prohibit it at the parser level + +I don't want to prohibit it at the parser level because C backend is only one of possible backends. + The solution currently is to cast set type to longint before lsh-ing it. And then casting it back to set if necessary. diff --git a/triage/V2CHANGES.md b/triage/V2CHANGES.md index 652e93b7..65c9de8e 100644 --- a/triage/V2CHANGES.md +++ b/triage/V2CHANGES.md @@ -2,136 +2,6 @@ This is Norayr Chilingarian's Vishap Oberon adapted to build a little more easily on a wider variety of modern platforms, including Linuxes, BSDs, MAC OSx Darwin, Cygwin on Windows, Mingw on Cygwin on Windows, Microsoft Visual C++ and even Android under Termux. See 'Changes relative to Vishap Oberon' below. -#### Building and installation summary - -1. git clone https://github.com/dcwbrown/olang -2. cd olang -3. make full - -Since 'make full' will install the compiler and libraries, it needs root (unix) or administrator (windows) privileges. - -| System | Install dir | Access required | -| ----------------------- | -------------------------------------- | ------------------------------ | -| Linux | /opt/voc | Needs root except under cygwin | -| BSD | /usr/local/share/voc | Needs root | -| Windows (mingw or Visual C) | %ProgramFiles[(X86)]% | Needs administrator | -| Termux (android) | /data/data/com.termux/files/opt/voc | | - - -#### 32 and 64 bit - -The size of compiler built is determined by the C compiler that runs, which is in turn determined by -the shell or command prompt configuration you are running under. - -The following Oberon types are independent of compiler size: - -| Types | Size | -| ----- | -------| -| CHAR, SHORTINT | 8 bit | -| REAL | 32 bit | -| LONGREAL | 64 bit | - -The following type sizes follow the built compiler size: - -| Types | 32 bit builds | 64 bit builds | -| ----- | ------------- | ------------- | -| INTEGER | 16 bit | 32 bit | -| LONGINT, SET | 32 bit | 16 bit | - -Note that many library modules have been written with the assumption that INTEGER -is 16 bit and LONGINT 32 bit, therefore they will only work in 32 bit builds. - -#### Which compiler? (gcc vs clang) - -By default make uses the compiler defined in variable CC. This can be overriden by running 'export CC=gcc' or 'export CC=clang' from the command line before running make. - -*Note*: be sure to run 'make clean' any time you change the value of CC. Otherwise directories will be mixed up. - -*Note*: Darwin (MAC OS/X) redirects gcc to clang, so specifying CC=gcc still builds clang binaries under Darwin. - - -#### Building on Windows - -There are three ways to build on Windows: - -| Type | How to build | Compiled binary uses: | -| ----------- | ------- | --------------------- | -| cygwin | Use 'make' from cygwin bash shell. | cygwin.dll | -| mingw under cygwin | Set CC for mingw then use 'make' from cygwin bash shell. | Win32 API | -| Visual C | Use 'make.cmd' from Visual C command prompt. | Win32 API | - -##### mingw on cygwin - -To use mingw, install the correct sized package and export CC= the compiler name: - - - For 32 bit cygwin - - - use setup-x86.exe to add the package mingw64-i686-gcc-core. - - run 'export CC=i686-w64-mingw32-gcc' then 'make full' - - - For 64 bit cygwin - - - use setup-x86\_64.exe to add the package mingw64-x86\_64-gcc-core. - - run 'export CC=x86_64-w64-mingw32-gcc' then 'make full' - -(*Note*: Don't be put off by the name 'mingw64' in the 32 bit package.) - -##### Microsoft Visual C compiler - -Use the free command line Visual C++ compiler. At the time of writing it can be -downloaded here: - - http://landinghub.visualstudio.com/visual-cpp-build-tools - -For example (Windows 10): - -Start an adminstrator command prompt from the start button as follows: - - Start / All apps / Visual C++ Build Tools - -Right click on - - Visual C++ 2015 x86 Native Build Tools Command Prompt - -or - - Visual C++ 2015 x64 Native Build Tools Command Prompt - -And select - - More / Administrative Command Prompt - -#### A 'Hello' application - -Anything appended to Oberon.Log is automatically displayed on the console, so the -following conventional Oberon program will display 'Hello.': - - MODULE hello; - IMPORT Oberon, Texts; - VAR W: Texts.Writer; - BEGIN - Texts.OpenWriter(W); - Texts.WriteString(W, "Hello."); Texts.WriteLn(W); - Texts.Append(Oberon.Log, W.buf) - END hello. - -Alternatively the Console may be accessed directly as follows: - - MODULE hello; - IMPORT Console; - BEGIN - Console.String("Hello."); Console.Ln; - END hello. - -Compile as follows: - - voc hello.mod -m - -The -m parameter tells voc that this is a main module, and to generate an -executable binary. - -Execute as usual on Linux ('./hello') or Windows ('hello'). - #### How make adapts to each platform On all platforms other than Visual C on Windows, make runs from a bash shell, @@ -313,5 +183,3 @@ Linux is currently compiled using PlatfromUnix.Mod, but the integration of Windo ##### Issue 14 - 'separate rtl from SYSTEM?'. OS specific code is now all in Platformxxx.Mod. Memory management (including the loaded module list) is now in Heap.Mod. SYSTEM.h is platform independent, with minimal ifdefs to allow compiling on all platforms. For example, when SYSTEM.h/SYSTEM.c need to allocate memory, or to halt, they call into Platform.Mod. - - diff --git a/triage/makefile.darwin.clang.x86_64 b/triage/makefile.darwin.clang.x86_64 deleted file mode 100644 index 10309ead..00000000 --- a/triage/makefile.darwin.clang.x86_64 +++ /dev/null @@ -1,310 +0,0 @@ -#SHELL := /bin/bash -BUILDID=$(shell date +%Y/%m/%d) -TOS = darwin -TARCH = x86_64 -#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc -CCOMP = clang -RELEASE = 1.1 - - -INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH) - -SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat:src/lib/system/$(TOS)/$(CCOMP):src/lib/system/$(TOS)/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(TOS)/$(CCOMP):src/lib/ooc:src/lib/ooc/$(TOS)/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/lib/s3/$(TARCH):src/voc:src/voc/$(TOS)/$(CCOMP):src/voc/$(TOS)/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test - -VOC = voc -VERSION = $(TOS).$(CCOMP).$(TARCH) -VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH) -VOCSTATIC = $(SETPATH) ./voc -VOCPARAM = $(shell ./vocparam > voc.par) -LIBNAME = VishapOberon -LIBRARY = lib$(LIBNAME) - -ifndef PRF -PRF = "/opt" -#PRF = "/Users/noch/local" -endif -PREFIX = $(PRF)/voc-$(RELEASE) -PREFIXLN = $(PRF)/voc - -CCOPT = -fPIC $(INCLUDEPATH) -g -SHRLIBEXT = dylib -CC = $(CCOMP) $(CCOPT) -c -CL = $(CCOMP) $(CCOPT) -LD = libtool -dynamic -lSystem -compatibility_version $(RELEASE) -current_version $(RELEASE) -install_name $(PREFIX)/lib/$(LIBRARY).$(SHRLIBEXT) -o $(LIBRARY).$(SHRLIBEXT) -# s is necessary to create index inside a archive -ARCHIVE = ar rcs $(LIBRARY).a - -#%.c: %.Mod -#%.o: %.c -# $(CC) $(input) - -all: stage2 stage3 stage4 stage5 stage6 stage7 - -# when porting to new platform: -# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1) -# * run make port0 - this will generate C source files for the target architecture -# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1) -port0: stage2 stage3 stage4 - -# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler) -port1: stage5 -# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled - -# this builds binary which generates voc.par -stage0: src/tools/vocparam/vocparam.c - $(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c - -# this creates voc.par for a host architecture. -# comment this out if you need to build a compiler for a different architecture. -stage1: - #rm voc.par - #$(shell "./vocparam > voc.par") - #./vocparam > voc.par - $(VOCPARAM) - -# this copies necessary voc.par to the current directory. -# skip this if you are building compiler for the host architecture. -stage2: - cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par -# cp src/par/voc.par.gnu.x86_64 voc.par -# cp src/par/voc.par.gnu.x86 voc.par -# cp src/par/voc.par.gnu.armv6 voc.par -# cp src/par/voc.par.gnu.armv7 voc.par - cp src/voc/prf.Mod_default src/voc/prf.Mod - -# this prepares modules necessary to build the compiler itself -stage3: - - $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod - sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.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) -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 - -#this is to build the compiler from C sources. -#this is a way to create a bootstrap binary. -stage5: - $(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \ - Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \ - extTools.c \ - OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c - - $(CL) voc.c -o voc \ - SYSTEM.o Args.o Console.o Modules.o Unix.o \ - Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - extTools.o \ - OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - $(CL) BrowserCmd.c -o showdef \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - OPM.o OPS.o OPT.o OPV.o OPC.o errors.o - - $(CL) OCatCmd.c -o ocat \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o - -# build all library files -stage6: - #v4 libs - $(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) -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 -# $(CC) oocMsg.c - - - #ooc2 libs - $(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) -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) -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) -sPF powStrings.Mod - - #misc libs - $(VOCSTATIC) -sPF MultiArrays.Mod - $(VOCSTATIC) -sPF MultiArrayRiders.Mod - $(VOCSTATIC) -sPF MersenneTwister.Mod - $(VOCSTATIC) -sPF Listen.Mod - - #s3 libs - $(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) -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 - - - -stage7: - #remove non library objects - rm -f Kernel0.o Files0.o Texts0.o architecture.o prf.o version.o extTools.o OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - #objects := $(wildcard *.o) - #$(LD) objects - $(ARCHIVE) *.o - #$(ARCHIVE) objects - $(LD) *.o - echo "$(PREFIX)/lib" > 05vishap.conf - -clean: -# rm_objects := rm $(wildcard *.o) -# objects - rm *.h - rm *.c - rm *.sym - rm *.o - rm *.a - rm *.$(SHRLIBEXT) - -install: - test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin - cp voc $(PREFIX)/bin/ - cp showdef $(PREFIX)/bin/ - cp ocat $(PREFIX)/bin/ - #cp vmake $(PREFIX)/bin/ - cp -a src $(PREFIX)/ - - test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/obj | mkdir -p $(PREFIX)/lib/voc/obj - test -d $(PREFIX)/lib/voc/sym | mkdir -p $(PREFIX)/lib/voc/sym - - cp $(LIBRARY).$(SHRLIBEXT) $(PREFIX)/lib - cp $(LIBRARY).a $(PREFIX)/lib - cp *.c $(PREFIX)/lib/voc/obj/ - cp *.h $(PREFIX)/lib/voc/obj/ - cp *.sym $(PREFIX)/lib/voc/sym/ - - #cp 05vishap.conf /etc/ld.so.conf.d/ - #ldconfig - ln -s $(PREFIX) $(PREFIXLN) - -# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/ -uninstall: - rm -rf $(PREFIX) - rm -rf $(PREFIXLN) diff --git a/triage/makefile.freebsd.clang.x86_64 b/triage/makefile.freebsd.clang.x86_64 deleted file mode 100644 index 57b44287..00000000 --- a/triage/makefile.freebsd.clang.x86_64 +++ /dev/null @@ -1,309 +0,0 @@ -#SHELL := /bin/bash -BUILDID=$(shell date +%Y/%m/%d) -TOS = freebsd -TARCH = x86_64 -#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc -CCOMP = clang -RELEASE = 1.1 - - -INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH) - -SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat:src/lib/system/$(TOS)/$(CCOMP):src/lib/system/$(TOS)/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(TOS)/$(CCOMP):src/lib/ooc:src/lib/ooc/$(TOS)/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/lib/s3/$(TARCH):src/voc:src/voc/$(TOS)/$(CCOMP):src/voc/$(TOS)/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test - -VOC = voc -VERSION = $(TOS).$(CCOMP).$(TARCH) -VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH) -VOCSTATIC = $(SETPATH) ./voc -VOCPARAM = $(shell ./vocparam > voc.par) -LIBNAME = VishapOberon -LIBRARY = lib$(LIBNAME) - -ifndef PRF -PRF = "/opt" -endif -PREFIX = $(PRF)/voc-$(RELEASE) -PREFIXLN = $(PRF)/voc - -CCOPT = -fPIC $(INCLUDEPATH) -g -SHRLIBEXT = so -CC = $(CCOMP) $(CCOPT) -c -CL = $(CCOMP) $(CCOPT) -LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT) -# s is necessary to create index inside a archive -ARCHIVE = ar rcs $(LIBRARY).a - -#%.c: %.Mod -#%.o: %.c -# $(CC) $(input) - -all: stage2 stage3 stage4 stage5 stage6 stage7 - -# when porting to new platform: -# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1) -# * run make port0 - this will generate C source files for the target architecture -# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1) -port0: stage2 stage3 stage4 - -# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler) -port1: stage5 -# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled - -# this builds binary which generates voc.par -stage0: src/tools/vocparam/vocparam.c - $(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c - -# this creates voc.par for a host architecture. -# comment this out if you need to build a compiler for a different architecture. -stage1: - #rm voc.par - #$(shell "./vocparam > voc.par") - #./vocparam > voc.par - $(VOCPARAM) - -# this copies necessary voc.par to the current directory. -# skip this if you are building compiler for the host architecture. -stage2: - cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par -# cp src/par/voc.par.gnu.x86_64 voc.par -# cp src/par/voc.par.gnu.x86 voc.par -# cp src/par/voc.par.gnu.armv6 voc.par -# cp src/par/voc.par.gnu.armv7 voc.par - cp src/voc/prf.Mod_default src/voc/prf.Mod - -# this prepares modules necessary to build the compiler itself -stage3: - - $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod - sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.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) -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 - -#this is to build the compiler from C sources. -#this is a way to create a bootstrap binary. -stage5: - $(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \ - Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \ - extTools.c \ - OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c - - $(CL) -static voc.c -o voc \ - SYSTEM.o Args.o Console.o Modules.o Unix.o \ - Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - extTools.o \ - OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - $(CL) BrowserCmd.c -o showdef \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - OPM.o OPS.o OPT.o OPV.o OPC.o errors.o - - $(CL) OCatCmd.c -o ocat \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o - -# build all library files -stage6: - #v4 libs - $(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) -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 -# $(CC) oocMsg.c - - - #ooc2 libs - $(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) -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) -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) -sPF powStrings.Mod - - #misc libs - $(VOCSTATIC) -sPF MultiArrays.Mod - $(VOCSTATIC) -sPF MultiArrayRiders.Mod - $(VOCSTATIC) -sPF MersenneTwister.Mod - $(VOCSTATIC) -sPF Listen.Mod - - #s3 libs - $(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) -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 - - - -stage7: - #remove non library objects - rm -f Kernel0.o Files0.o Texts0.o architecture.o prf.o version.o extTools.o OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - #objects := $(wildcard *.o) - #$(LD) objects - $(ARCHIVE) *.o - #$(ARCHIVE) objects - $(LD) *.o - echo "$(PREFIX)/lib" > 05vishap.conf - -clean: -# rm_objects := rm $(wildcard *.o) -# objects - rm *.h - rm *.c - rm *.sym - rm *.o - rm *.a - rm *.$(SHRLIBEXT) - -install: - test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin - cp voc $(PREFIX)/bin/ - cp showdef $(PREFIX)/bin/ - cp ocat $(PREFIX)/bin/ - #cp vmake $(PREFIX)/bin/ - cp -a src $(PREFIX)/ - - test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/obj | mkdir -p $(PREFIX)/lib/voc/obj - test -d $(PREFIX)/lib/voc/sym | mkdir -p $(PREFIX)/lib/voc/sym - - cp $(LIBRARY).$(SHRLIBEXT) $(PREFIX)/lib - cp $(LIBRARY).a $(PREFIX)/lib - cp *.c $(PREFIX)/lib/voc/obj/ - cp *.h $(PREFIX)/lib/voc/obj/ - cp *.sym $(PREFIX)/lib/voc/sym/ - - #cp 05vishap.conf /etc/ld.so.conf.d/ - ldconfig -m $(PREFIX)/lib - ln -s $(PREFIX) $(PREFIXLN) - -# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/ -uninstall: - rm -rf $(PREFIX) - rm -rf $(PREFIXLN) diff --git a/triage/makefile.linux.clang.powerpc b/triage/makefile.linux.clang.powerpc deleted file mode 100644 index 787e0ca5..00000000 --- a/triage/makefile.linux.clang.powerpc +++ /dev/null @@ -1,309 +0,0 @@ -#SHELL := /bin/bash -BUILDID=$(shell date +%Y/%m/%d) -TOS = linux -TARCH = powerpc -#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc -CCOMP = clang -RELEASE = 1.1 - - -INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH) - -SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat:src/lib/system/$(TOS)/$(CCOMP):src/lib/system/$(TOS)/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(TOS)/$(CCOMP):src/lib/ooc:src/lib/ooc/$(TOS)/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/lib/s3/$(TARCH):src/voc:src/voc/$(TOS)/$(CCOMP):src/voc/$(TOS)/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test - -VOC = voc -VERSION = $(TOS).$(CCOMP).$(TARCH) -VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH) -VOCSTATIC = $(SETPATH) ./voc -VOCPARAM = $(shell ./vocparam > voc.par) -LIBNAME = VishapOberon -LIBRARY = lib$(LIBNAME) - -ifndef PRF -PRF = "/opt" -endif -PREFIX = $(PRF)/voc-$(RELEASE) -PREFIXLN = $(PRF)/voc - -CCOPT = -fPIC $(INCLUDEPATH) -g -SHRLIBEXT = so -CC = $(CCOMP) $(CCOPT) -c -CL = $(CCOMP) $(CCOPT) -LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT) -# s is necessary to create index inside a archive -ARCHIVE = ar rcs $(LIBRARY).a - -#%.c: %.Mod -#%.o: %.c -# $(CC) $(input) - -all: stage2 stage3 stage4 stage5 stage6 stage7 - -# when porting to new platform: -# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1) -# * run make port0 - this will generate C source files for the target architecture -# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1) -port0: stage2 stage3 stage4 - -# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler) -port1: stage5 -# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled - -# this builds binary which generates voc.par -stage0: src/tools/vocparam/vocparam.c - $(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c - -# this creates voc.par for a host architecture. -# comment this out if you need to build a compiler for a different architecture. -stage1: - #rm voc.par - #$(shell "./vocparam > voc.par") - #./vocparam > voc.par - $(VOCPARAM) - -# this copies necessary voc.par to the current directory. -# skip this if you are building compiler for the host architecture. -stage2: - cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par -# cp src/par/voc.par.gnu.x86_64 voc.par -# cp src/par/voc.par.gnu.x86 voc.par -# cp src/par/voc.par.gnu.armv6 voc.par -# cp src/par/voc.par.gnu.armv7 voc.par - cp src/voc/prf.Mod_default src/voc/prf.Mod - -# this prepares modules necessary to build the compiler itself -stage3: - - $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod - sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.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) -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 - -#this is to build the compiler from C sources. -#this is a way to create a bootstrap binary. -stage5: - $(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \ - Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \ - extTools.c \ - OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c - - $(CL) -static voc.c -o voc \ - SYSTEM.o Args.o Console.o Modules.o Unix.o \ - Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - extTools.o \ - OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - $(CL) BrowserCmd.c -o showdef \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - OPM.o OPS.o OPT.o OPV.o OPC.o errors.o - - $(CL) OCatCmd.c -o ocat \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o - -# build all library files -stage6: - #v4 libs - $(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) -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 -# $(CC) oocMsg.c - - - #ooc2 libs - $(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) -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) -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) -sPF powStrings.Mod - - #misc libs - $(VOCSTATIC) -sPF MultiArrays.Mod - $(VOCSTATIC) -sPF MultiArrayRiders.Mod - $(VOCSTATIC) -sPF MersenneTwister.Mod - $(VOCSTATIC) -sPF Listen.Mod - - #s3 libs - $(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) -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 - - - -stage7: - #remove non library objects - rm -f Kernel0.o Files0.o Texts0.o architecture.o prf.o version.o extTools.o OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - #objects := $(wildcard *.o) - #$(LD) objects - $(ARCHIVE) *.o - #$(ARCHIVE) objects - $(LD) *.o - echo "$(PREFIX)/lib" > 05vishap.conf - -clean: -# rm_objects := rm $(wildcard *.o) -# objects - rm *.h - rm *.c - rm *.sym - rm *.o - rm *.a - rm *.$(SHRLIBEXT) - -install: - test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin - cp voc $(PREFIX)/bin/ - cp showdef $(PREFIX)/bin/ - cp ocat $(PREFIX)/bin/ - #cp vmake $(PREFIX)/bin/ - cp -a src $(PREFIX)/ - - test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/obj | mkdir -p $(PREFIX)/lib/voc/obj - test -d $(PREFIX)/lib/voc/sym | mkdir -p $(PREFIX)/lib/voc/sym - - cp $(LIBRARY).$(SHRLIBEXT) $(PREFIX)/lib - cp $(LIBRARY).a $(PREFIX)/lib - cp *.c $(PREFIX)/lib/voc/obj/ - cp *.h $(PREFIX)/lib/voc/obj/ - cp *.sym $(PREFIX)/lib/voc/sym/ - - cp 05vishap.conf /etc/ld.so.conf.d/ - ldconfig - ln -s $(PREFIX) $(PREFIXLN) - -# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/ -uninstall: - rm -rf $(PREFIX) - rm -rf $(PREFIXLN) diff --git a/triage/makefile.linux.clang.x86_64 b/triage/makefile.linux.clang.x86_64 deleted file mode 100644 index 377d7e53..00000000 --- a/triage/makefile.linux.clang.x86_64 +++ /dev/null @@ -1,309 +0,0 @@ -#SHELL := /bin/bash -BUILDID=$(shell date +%Y/%m/%d) -TOS = linux -TARCH = x86_64 -#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc -CCOMP = clang -RELEASE = 1.1 - - -INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH) - -SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat:src/lib/system/$(TOS)/$(CCOMP):src/lib/system/$(TOS)/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(TOS)/$(CCOMP):src/lib/ooc:src/lib/ooc/$(TOS)/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/lib/s3/$(TARCH):src/voc:src/voc/$(TOS)/$(CCOMP):src/voc/$(TOS)/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test - -VOC = voc -VERSION = $(TOS).$(CCOMP).$(TARCH) -VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH) -VOCSTATIC = $(SETPATH) ./voc -VOCPARAM = $(shell ./vocparam > voc.par) -LIBNAME = VishapOberon -LIBRARY = lib$(LIBNAME) - -ifndef PRF -PRF = "/opt" -endif -PREFIX = $(PRF)/voc-$(RELEASE) -PREFIXLN = $(PRF)/voc - -CCOPT = -fPIC $(INCLUDEPATH) -g -SHRLIBEXT = so -CC = $(CCOMP) $(CCOPT) -c -CL = $(CCOMP) $(CCOPT) -LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT) -# s is necessary to create index inside a archive -ARCHIVE = ar rcs $(LIBRARY).a - -#%.c: %.Mod -#%.o: %.c -# $(CC) $(input) - -all: stage2 stage3 stage4 stage5 stage6 stage7 - -# when porting to new platform: -# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1) -# * run make port0 - this will generate C source files for the target architecture -# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1) -port0: stage2 stage3 stage4 - -# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler) -port1: stage5 -# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled - -# this builds binary which generates voc.par -stage0: src/tools/vocparam/vocparam.c - $(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c - -# this creates voc.par for a host architecture. -# comment this out if you need to build a compiler for a different architecture. -stage1: - #rm voc.par - #$(shell "./vocparam > voc.par") - #./vocparam > voc.par - $(VOCPARAM) - -# this copies necessary voc.par to the current directory. -# skip this if you are building compiler for the host architecture. -stage2: - cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par -# cp src/par/voc.par.gnu.x86_64 voc.par -# cp src/par/voc.par.gnu.x86 voc.par -# cp src/par/voc.par.gnu.armv6 voc.par -# cp src/par/voc.par.gnu.armv7 voc.par - cp src/voc/prf.Mod_default src/voc/prf.Mod - -# this prepares modules necessary to build the compiler itself -stage3: - - $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod - sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.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) -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 - -#this is to build the compiler from C sources. -#this is a way to create a bootstrap binary. -stage5: - $(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \ - Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \ - extTools.c \ - OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c - - $(CL) -static voc.c -o voc \ - SYSTEM.o Args.o Console.o Modules.o Unix.o \ - Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - extTools.o \ - OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - $(CL) BrowserCmd.c -o showdef \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - OPM.o OPS.o OPT.o OPV.o OPC.o errors.o - - $(CL) OCatCmd.c -o ocat \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o - -# build all library files -stage6: - #v4 libs - $(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) -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 -# $(CC) oocMsg.c - - - #ooc2 libs - $(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) -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) -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) -sPF powStrings.Mod - - #misc libs - $(VOCSTATIC) -sPF MultiArrays.Mod - $(VOCSTATIC) -sPF MultiArrayRiders.Mod - $(VOCSTATIC) -sPF MersenneTwister.Mod - $(VOCSTATIC) -sPF Listen.Mod - - #s3 libs - $(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) -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 - - - -stage7: - #remove non library objects - rm -f Kernel0.o Files0.o Texts0.o architecture.o prf.o version.o extTools.o OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - #objects := $(wildcard *.o) - #$(LD) objects - $(ARCHIVE) *.o - #$(ARCHIVE) objects - $(LD) *.o - echo "$(PREFIX)/lib" > 05vishap.conf - -clean: -# rm_objects := rm $(wildcard *.o) -# objects - rm *.h - rm *.c - rm *.sym - rm *.o - rm *.a - rm *.$(SHRLIBEXT) - -install: - test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin - cp voc $(PREFIX)/bin/ - cp showdef $(PREFIX)/bin/ - cp ocat $(PREFIX)/bin/ - #cp vmake $(PREFIX)/bin/ - cp -a src $(PREFIX)/ - - test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/obj | mkdir -p $(PREFIX)/lib/voc/obj - test -d $(PREFIX)/lib/voc/sym | mkdir -p $(PREFIX)/lib/voc/sym - - cp $(LIBRARY).$(SHRLIBEXT) $(PREFIX)/lib - cp $(LIBRARY).a $(PREFIX)/lib - cp *.c $(PREFIX)/lib/voc/obj/ - cp *.h $(PREFIX)/lib/voc/obj/ - cp *.sym $(PREFIX)/lib/voc/sym/ - - cp 05vishap.conf /etc/ld.so.conf.d/ - ldconfig - ln -s $(PREFIX) $(PREFIXLN) - -# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/ -uninstall: - rm -rf $(PREFIX) - rm -rf $(PREFIXLN) diff --git a/triage/makefile.linux.gcc.armv6j_hardfp b/triage/makefile.linux.gcc.armv6j_hardfp deleted file mode 100644 index 10d6cc29..00000000 --- a/triage/makefile.linux.gcc.armv6j_hardfp +++ /dev/null @@ -1,309 +0,0 @@ -#SHELL := /bin/bash -BUILDID=$(shell date +%Y/%m/%d) -TOS = linux -TARCH = armv6j_hardfp -#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc -CCOMP = gcc -RELEASE = 1.1 - - -INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH) - -SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat:src/lib/system/$(TOS)/$(CCOMP):src/lib/system/$(TOS)/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(TOS)/$(CCOMP):src/lib/ooc:src/lib/ooc/$(TOS)/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/lib/s3/$(TARCH):src/voc:src/voc/$(TOS)/$(CCOMP):src/voc/$(TOS)/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test - -VOC = voc -VERSION = $(TOS).$(CCOMP).$(TARCH) -VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH) -VOCSTATIC = $(SETPATH) ./voc -VOCPARAM = $(shell ./vocparam > voc.par) -LIBNAME = VishapOberon -LIBRARY = lib$(LIBNAME) - -ifndef PRF -PRF = "/opt" -endif -PREFIX = $(PRF)/voc-$(RELEASE) -PREFIXLN = $(PRF)/voc - -CCOPT = -fPIC $(INCLUDEPATH) -g -fno-stack-protector -SHRLIBEXT = so -CC = $(CCOMP) $(CCOPT) -c -CL = $(CCOMP) $(CCOPT) -LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT) -# s is necessary to create index inside a archive -ARCHIVE = ar rcs $(LIBRARY).a - -#%.c: %.Mod -#%.o: %.c -# $(CC) $(input) - -all: stage2 stage3 stage4 stage5 stage6 stage7 - -# when porting to new platform: -# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1) -# * run make port0 - this will generate C source files for the target architecture -# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1) -port0: stage2 stage3 stage4 - -# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler) -port1: stage5 -# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled - -# this builds binary which generates voc.par -stage0: src/tools/vocparam/vocparam.c - $(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c - -# this creates voc.par for a host architecture. -# comment this out if you need to build a compiler for a different architecture. -stage1: - #rm voc.par - #$(shell "./vocparam > voc.par") - #./vocparam > voc.par - $(VOCPARAM) - -# this copies necessary voc.par to the current directory. -# skip this if you are building compiler for the host architecture. -stage2: - cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par -# cp src/par/voc.par.gnu.x86_64 voc.par -# cp src/par/voc.par.gnu.x86 voc.par -# cp src/par/voc.par.gnu.armv6 voc.par -# cp src/par/voc.par.gnu.armv7 voc.par - cp src/voc/prf.Mod_default src/voc/prf.Mod - -# this prepares modules necessary to build the compiler itself -stage3: - - $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod - sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.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) -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 - -#this is to build the compiler from C sources. -#this is a way to create a bootstrap binary. -stage5: - $(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \ - Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \ - extTools.c \ - OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c - - $(CL) -static voc.c -o voc \ - SYSTEM.o Args.o Console.o Modules.o Unix.o \ - Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - extTools.o \ - OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - $(CL) BrowserCmd.c -o showdef \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - OPM.o OPS.o OPT.o OPV.o OPC.o errors.o - - $(CL) OCatCmd.c -o ocat \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o - -# build all library files -stage6: - #v4 libs - $(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) -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 -# $(CC) oocMsg.c - - - #ooc2 libs - $(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) -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) -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) -sPF powStrings.Mod - - #misc libs - $(VOCSTATIC) -sPF MultiArrays.Mod - $(VOCSTATIC) -sPF MultiArrayRiders.Mod - $(VOCSTATIC) -sPF MersenneTwister.Mod - $(VOCSTATIC) -sPF Listen.Mod - - #s3 libs - $(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) -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 - - - -stage7: - #remove non library objects - rm -f Kernel0.o Files0.o Texts0.o architecture.o prf.o version.o extTools.o OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - #objects := $(wildcard *.o) - #$(LD) objects - $(ARCHIVE) *.o - #$(ARCHIVE) objects - $(LD) *.o - echo "$(PREFIX)/lib" > 05vishap.conf - -clean: -# rm_objects := rm $(wildcard *.o) -# objects - rm *.h - rm *.c - rm *.sym - rm *.o - rm *.a - rm *.$(SHRLIBEXT) - -install: - test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin - cp voc $(PREFIX)/bin/ - cp showdef $(PREFIX)/bin/ - cp ocat $(PREFIX)/bin/ - #cp vmake $(PREFIX)/bin/ - cp -a src $(PREFIX)/ - - test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/obj | mkdir -p $(PREFIX)/lib/voc/obj - test -d $(PREFIX)/lib/voc/sym | mkdir -p $(PREFIX)/lib/voc/sym - - cp $(LIBRARY).$(SHRLIBEXT) $(PREFIX)/lib - cp $(LIBRARY).a $(PREFIX)/lib - cp *.c $(PREFIX)/lib/voc/obj/ - cp *.h $(PREFIX)/lib/voc/obj/ - cp *.sym $(PREFIX)/lib/voc/sym/ - - cp 05vishap.conf /etc/ld.so.conf.d/ - ldconfig - ln -s $(PREFIX) $(PREFIXLN) - -# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/ -uninstall: - rm -rf $(PREFIX) - rm -rf $(PREFIXLN) diff --git a/triage/makefile.linux.gcc.powerpc b/triage/makefile.linux.gcc.powerpc deleted file mode 100644 index 547ba913..00000000 --- a/triage/makefile.linux.gcc.powerpc +++ /dev/null @@ -1,309 +0,0 @@ -#SHELL := /bin/bash -BUILDID=$(shell date +%Y/%m/%d) -TOS = linux -TARCH = powerpc -#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc -CCOMP = gcc -RELEASE = 1.1 - - -INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH) - -SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat:src/lib/system/$(TOS)/$(CCOMP):src/lib/system/$(TOS)/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(TOS)/$(CCOMP):src/lib/ooc:src/lib/ooc/$(TOS)/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/lib/s3/$(TARCH):src/voc:src/voc/$(TOS)/$(CCOMP):src/voc/$(TOS)/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test - -VOC = voc -VERSION = $(TOS).$(CCOMP).$(TARCH) -VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH) -VOCSTATIC = $(SETPATH) ./voc -VOCPARAM = $(shell ./vocparam > voc.par) -LIBNAME = VishapOberon -LIBRARY = lib$(LIBNAME) - -ifndef PRF -PRF = "/opt" -endif -PREFIX = $(PRF)/voc-$(RELEASE) -PREFIXLN = $(PRF)/voc - -CCOPT = -fPIC $(INCLUDEPATH) -g -fno-stack-protector -SHRLIBEXT = so -CC = $(CCOMP) $(CCOPT) -c -CL = $(CCOMP) $(CCOPT) -LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT) -# s is necessary to create index inside a archive -ARCHIVE = ar rcs $(LIBRARY).a - -#%.c: %.Mod -#%.o: %.c -# $(CC) $(input) - -all: stage2 stage3 stage4 stage5 stage6 stage7 - -# when porting to new platform: -# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1) -# * run make port0 - this will generate C source files for the target architecture -# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1) -port0: stage2 stage3 stage4 - -# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler) -port1: stage5 -# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled - -# this builds binary which generates voc.par -stage0: src/tools/vocparam/vocparam.c - $(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c - -# this creates voc.par for a host architecture. -# comment this out if you need to build a compiler for a different architecture. -stage1: - #rm voc.par - #$(shell "./vocparam > voc.par") - #./vocparam > voc.par - $(VOCPARAM) - -# this copies necessary voc.par to the current directory. -# skip this if you are building compiler for the host architecture. -stage2: - cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par -# cp src/par/voc.par.gnu.x86_64 voc.par -# cp src/par/voc.par.gnu.x86 voc.par -# cp src/par/voc.par.gnu.armv6 voc.par -# cp src/par/voc.par.gnu.armv7 voc.par - cp src/voc/prf.Mod_default src/voc/prf.Mod - -# this prepares modules necessary to build the compiler itself -stage3: - - $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod - sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.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) -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 - -#this is to build the compiler from C sources. -#this is a way to create a bootstrap binary. -stage5: - $(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \ - Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \ - extTools.c \ - OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c - - $(CL) -static voc.c -o voc \ - SYSTEM.o Args.o Console.o Modules.o Unix.o \ - Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - extTools.o \ - OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - $(CL) BrowserCmd.c -o showdef \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - OPM.o OPS.o OPT.o OPV.o OPC.o errors.o - - $(CL) OCatCmd.c -o ocat \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o - -# build all library files -stage6: - #v4 libs - $(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) -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 -# $(CC) oocMsg.c - - - #ooc2 libs - $(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) -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) -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) -sPF powStrings.Mod - - #misc libs - $(VOCSTATIC) -sPF MultiArrays.Mod - $(VOCSTATIC) -sPF MultiArrayRiders.Mod - $(VOCSTATIC) -sPF MersenneTwister.Mod - $(VOCSTATIC) -sPF Listen.Mod - - #s3 libs - $(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) -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 - - - -stage7: - #remove non library objects - rm -f Kernel0.o Files0.o Texts0.o architecture.o prf.o version.o extTools.o OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - #objects := $(wildcard *.o) - #$(LD) objects - $(ARCHIVE) *.o - #$(ARCHIVE) objects - $(LD) *.o - echo "$(PREFIX)/lib" > 05vishap.conf - -clean: -# rm_objects := rm $(wildcard *.o) -# objects - rm *.h - rm *.c - rm *.sym - rm *.o - rm *.a - rm *.$(SHRLIBEXT) - -install: - test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin - cp voc $(PREFIX)/bin/ - cp showdef $(PREFIX)/bin/ - cp ocat $(PREFIX)/bin/ - #cp vmake $(PREFIX)/bin/ - cp -a src $(PREFIX)/ - - test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/obj | mkdir -p $(PREFIX)/lib/voc/obj - test -d $(PREFIX)/lib/voc/sym | mkdir -p $(PREFIX)/lib/voc/sym - - cp $(LIBRARY).$(SHRLIBEXT) $(PREFIX)/lib - cp $(LIBRARY).a $(PREFIX)/lib - cp *.c $(PREFIX)/lib/voc/obj/ - cp *.h $(PREFIX)/lib/voc/obj/ - cp *.sym $(PREFIX)/lib/voc/sym/ - - cp 05vishap.conf /etc/ld.so.conf.d/ - ldconfig - ln -s $(PREFIX) $(PREFIXLN) - -# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/ -uninstall: - rm -rf $(PREFIX) - rm -rf $(PREFIXLN) diff --git a/triage/makefile.linux.gcc.x86 b/triage/makefile.linux.gcc.x86 deleted file mode 100644 index f283a0dc..00000000 --- a/triage/makefile.linux.gcc.x86 +++ /dev/null @@ -1,309 +0,0 @@ -#SHELL := /bin/bash -BUILDID=$(shell date +%Y/%m/%d) -TOS = linux -TARCH = x86 -#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc -CCOMP = gcc -RELEASE = 1.1 - - -INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH) - -SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat:src/lib/system/$(TOS)/$(CCOMP):src/lib/system/$(TOS)/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(TOS)/$(CCOMP):src/lib/ooc:src/lib/ooc/$(TOS)/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/lib/s3/$(TARCH):src/voc:src/voc/$(TOS)/$(CCOMP):src/voc/$(TOS)/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test - -VOC = voc -VERSION = $(TOS).$(CCOMP).$(TARCH) -VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH) -VOCSTATIC = $(SETPATH) ./voc -VOCPARAM = $(shell ./vocparam > voc.par) -LIBNAME = VishapOberon -LIBRARY = lib$(LIBNAME) - -ifndef PRF -PRF = "/opt" -endif -PREFIX = $(PRF)/voc-$(RELEASE) -PREFIXLN = $(PRF)/voc - -CCOPT = -fPIC $(INCLUDEPATH) -g -fno-stack-protector -SHRLIBEXT = so -CC = $(CCOMP) $(CCOPT) -c -CL = $(CCOMP) $(CCOPT) -LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT) -# s is necessary to create index inside a archive -ARCHIVE = ar rcs $(LIBRARY).a - -#%.c: %.Mod -#%.o: %.c -# $(CC) $(input) - -all: stage2 stage3 stage4 stage5 stage6 stage7 - -# when porting to new platform: -# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1) -# * run make port0 - this will generate C source files for the target architecture -# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1) -port0: stage2 stage3 stage4 - -# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler) -port1: stage5 -# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled - -# this builds binary which generates voc.par -stage0: src/tools/vocparam/vocparam.c - $(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c - -# this creates voc.par for a host architecture. -# comment this out if you need to build a compiler for a different architecture. -stage1: - #rm voc.par - #$(shell "./vocparam > voc.par") - #./vocparam > voc.par - $(VOCPARAM) - -# this copies necessary voc.par to the current directory. -# skip this if you are building compiler for the host architecture. -stage2: - cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par -# cp src/par/voc.par.gnu.x86_64 voc.par -# cp src/par/voc.par.gnu.x86 voc.par -# cp src/par/voc.par.gnu.armv6 voc.par -# cp src/par/voc.par.gnu.armv7 voc.par - cp src/voc/prf.Mod_default src/voc/prf.Mod - -# this prepares modules necessary to build the compiler itself -stage3: - - $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod - sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.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) -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 - -#this is to build the compiler from C sources. -#this is a way to create a bootstrap binary. -stage5: - $(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \ - Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \ - extTools.c \ - OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c - - $(CL) -static voc.c -o voc \ - SYSTEM.o Args.o Console.o Modules.o Unix.o \ - Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - extTools.o \ - OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - $(CL) BrowserCmd.c -o showdef \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - OPM.o OPS.o OPT.o OPV.o OPC.o errors.o - - $(CL) OCatCmd.c -o ocat \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o - -# build all library files -stage6: - #v4 libs - $(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) -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 -# $(CC) oocMsg.c - - - #ooc2 libs - $(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) -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) -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) -sPF powStrings.Mod - - #misc libs - $(VOCSTATIC) -sPF MultiArrays.Mod - $(VOCSTATIC) -sPF MultiArrayRiders.Mod - $(VOCSTATIC) -sPF MersenneTwister.Mod - $(VOCSTATIC) -sPF Listen.Mod - - #s3 libs - $(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) -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 - - - -stage7: - #remove non library objects - rm -f Kernel0.o Files0.o Texts0.o architecture.o prf.o version.o extTools.o OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - #objects := $(wildcard *.o) - #$(LD) objects - $(ARCHIVE) *.o - #$(ARCHIVE) objects - $(LD) *.o - echo "$(PREFIX)/lib" > 05vishap.conf - -clean: -# rm_objects := rm $(wildcard *.o) -# objects - rm *.h - rm *.c - rm *.sym - rm *.o - rm *.a - rm *.$(SHRLIBEXT) - -install: - test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin - cp voc $(PREFIX)/bin/ - cp showdef $(PREFIX)/bin/ - cp ocat $(PREFIX)/bin/ - #cp vmake $(PREFIX)/bin/ - cp -a src $(PREFIX)/ - - test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/obj | mkdir -p $(PREFIX)/lib/voc/obj - test -d $(PREFIX)/lib/voc/sym | mkdir -p $(PREFIX)/lib/voc/sym - - cp $(LIBRARY).$(SHRLIBEXT) $(PREFIX)/lib - cp $(LIBRARY).a $(PREFIX)/lib - cp *.c $(PREFIX)/lib/voc/obj/ - cp *.h $(PREFIX)/lib/voc/obj/ - cp *.sym $(PREFIX)/lib/voc/sym/ - - cp 05vishap.conf /etc/ld.so.conf.d/ - ldconfig - ln -s $(PREFIX) $(PREFIXLN) - -# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/ -uninstall: - rm -rf $(PREFIX) - rm -rf $(PREFIXLN) diff --git a/triage/makefile.linux.gcc.x86_64 b/triage/makefile.linux.gcc.x86_64 deleted file mode 100644 index e0513400..00000000 --- a/triage/makefile.linux.gcc.x86_64 +++ /dev/null @@ -1,309 +0,0 @@ -#SHELL := /bin/bash -BUILDID=$(shell date +%Y/%m/%d) -TOS = linux -TARCH = x86_64 -#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc -CCOMP = gcc -RELEASE = 1.1 - - -INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH) - -SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat:src/lib/system/$(TOS)/$(CCOMP):src/lib/system/$(TOS)/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(TOS)/$(CCOMP):src/lib/ooc:src/lib/ooc/$(TOS)/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/lib/s3/$(TARCH):src/voc:src/voc/$(TOS)/$(CCOMP):src/voc/$(TOS)/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test - -VOC = voc -VERSION = $(TOS).$(CCOMP).$(TARCH) -VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH) -VOCSTATIC = $(SETPATH) ./voc -VOCPARAM = $(shell ./vocparam > voc.par) -LIBNAME = VishapOberon -LIBRARY = lib$(LIBNAME) - -ifndef PRF -PRF = "/opt" -endif -PREFIX = $(PRF)/voc-$(RELEASE) -PREFIXLN = $(PRF)/voc - -CCOPT = -fPIC $(INCLUDEPATH) -g -fno-stack-protector -SHRLIBEXT = so -CC = $(CCOMP) $(CCOPT) -c -CL = $(CCOMP) $(CCOPT) -LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT) -# s is necessary to create index inside a archive -ARCHIVE = ar rcs $(LIBRARY).a - -#%.c: %.Mod -#%.o: %.c -# $(CC) $(input) - -all: stage2 stage3 stage4 stage5 stage6 stage7 - -# when porting to new platform: -# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1) -# * run make port0 - this will generate C source files for the target architecture -# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1) -port0: stage2 stage3 stage4 - -# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler) -port1: stage5 -# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled - -# this builds binary which generates voc.par -stage0: src/tools/vocparam/vocparam.c - $(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c - -# this creates voc.par for a host architecture. -# comment this out if you need to build a compiler for a different architecture. -stage1: - #rm voc.par - #$(shell "./vocparam > voc.par") - #./vocparam > voc.par - $(VOCPARAM) - -# this copies necessary voc.par to the current directory. -# skip this if you are building compiler for the host architecture. -stage2: - cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par -# cp src/par/voc.par.gnu.x86_64 voc.par -# cp src/par/voc.par.gnu.x86 voc.par -# cp src/par/voc.par.gnu.armv6 voc.par -# cp src/par/voc.par.gnu.armv7 voc.par - cp src/voc/prf.Mod_default src/voc/prf.Mod - -# this prepares modules necessary to build the compiler itself -stage3: - - $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod - sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.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) -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 - -#this is to build the compiler from C sources. -#this is a way to create a bootstrap binary. -stage5: - $(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \ - Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \ - extTools.c \ - OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c - - $(CL) -static voc.c -o voc \ - SYSTEM.o Args.o Console.o Modules.o Unix.o \ - Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - extTools.o \ - OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - $(CL) BrowserCmd.c -o showdef \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - OPM.o OPS.o OPT.o OPV.o OPC.o errors.o - - $(CL) OCatCmd.c -o ocat \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o - -# build all library files -stage6: - #v4 libs - $(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) -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 -# $(CC) oocMsg.c - - - #ooc2 libs - $(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) -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) -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) -sPF powStrings.Mod - - #misc libs - $(VOCSTATIC) -sPF MultiArrays.Mod - $(VOCSTATIC) -sPF MultiArrayRiders.Mod - $(VOCSTATIC) -sPF MersenneTwister.Mod - $(VOCSTATIC) -sPF Listen.Mod - - #s3 libs - $(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) -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 - - - -stage7: - #remove non library objects - rm -f Kernel0.o Files0.o Texts0.o architecture.o prf.o version.o extTools.o OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - #objects := $(wildcard *.o) - #$(LD) objects - $(ARCHIVE) *.o - #$(ARCHIVE) objects - $(LD) *.o - echo "$(PREFIX)/lib" > 05vishap.conf - -clean: -# rm_objects := rm $(wildcard *.o) -# objects - rm *.h - rm *.c - rm *.sym - rm *.o - rm *.a - rm *.$(SHRLIBEXT) - -install: - test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin - cp voc $(PREFIX)/bin/ - cp showdef $(PREFIX)/bin/ - cp ocat $(PREFIX)/bin/ - #cp vmake $(PREFIX)/bin/ - cp -a src $(PREFIX)/ - - test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/obj | mkdir -p $(PREFIX)/lib/voc/obj - test -d $(PREFIX)/lib/voc/sym | mkdir -p $(PREFIX)/lib/voc/sym - - cp $(LIBRARY).$(SHRLIBEXT) $(PREFIX)/lib - cp $(LIBRARY).a $(PREFIX)/lib - cp *.c $(PREFIX)/lib/voc/obj/ - cp *.h $(PREFIX)/lib/voc/obj/ - cp *.sym $(PREFIX)/lib/voc/sym/ - - cp 05vishap.conf /etc/ld.so.conf.d/ - ldconfig - ln -s $(PREFIX) $(PREFIXLN) - -# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/ -uninstall: - rm -rf $(PREFIX) - rm -rf $(PREFIXLN) diff --git a/triage/makefile.openbsd.gcc.x86_64 b/triage/makefile.openbsd.gcc.x86_64 deleted file mode 100644 index 801e1c18..00000000 --- a/triage/makefile.openbsd.gcc.x86_64 +++ /dev/null @@ -1,310 +0,0 @@ -#SHELL := /bin/bash -BUILDID=$(shell date +%Y/%m/%d) -TOS = openbsd -TARCH = x86_64 -#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc -CCOMP = gcc -RELEASE = 1.1 - - -INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH) - -SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat:src/lib/system/$(TOS)/$(CCOMP):src/lib/system/$(TOS)/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(TOS)/$(CCOMP):src/lib/ooc:src/lib/ooc/$(TOS)/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/lib/s3/$(TARCH):src/voc:src/voc/$(TOS)/$(CCOMP):src/voc/$(TOS)/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test - -VOC = voc -VERSION = $(TOS).$(CCOMP).$(TARCH) -VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH) -VOCSTATIC = $(SETPATH) ./voc -VOCPARAM = $(shell ./vocparam > voc.par) -LIBNAME = VishapOberon -LIBRARY = lib$(LIBNAME) - -ifndef PRF -PRF = "/opt" -endif -PREFIX = $(PRF)/voc-$(RELEASE) -PREFIXLN = $(PRF)/voc - -CCOPT = -fPIC $(INCLUDEPATH) -g -SHRLIBEXT = so -CC = $(CCOMP) $(CCOPT) -c -CL = $(CCOMP) $(CCOPT) -LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT) -# s is necessary to create index inside a archive -ARCHIVE = ar rcs $(LIBRARY).a - -#%.c: %.Mod -#%.o: %.c -# $(CC) $(input) - -all: stage2 stage3 stage4 stage5 stage6 stage7 - -# when porting to new platform: -# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1) -# * run make port0 - this will generate C source files for the target architecture -# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1) -port0: stage2 stage3 stage4 - -# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler) -port1: stage5 -# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled - -# this builds binary which generates voc.par -stage0: src/tools/vocparam/vocparam.c - $(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c - -# this creates voc.par for a host architecture. -# comment this out if you need to build a compiler for a different architecture. -stage1: - #rm voc.par - #$(shell "./vocparam > voc.par") - #./vocparam > voc.par - $(VOCPARAM) - -# this copies necessary voc.par to the current directory. -# skip this if you are building compiler for the host architecture. -stage2: - cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par -# cp src/par/voc.par.gnu.x86_64 voc.par -# cp src/par/voc.par.gnu.x86 voc.par -# cp src/par/voc.par.gnu.armv6 voc.par -# cp src/par/voc.par.gnu.armv7 voc.par - cp src/voc/prf.Mod_default src/voc/prf.Mod - -# this prepares modules necessary to build the compiler itself -stage3: - - $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod - sed "s#/opt#$(PRF)#g" src/voc/prf.Mod > tmp.Mod - mv tmp.Mod src/voc/prf.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) -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 - -#this is to build the compiler from C sources. -#this is a way to create a bootstrap binary. -stage5: - $(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \ - Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \ - extTools.c \ - OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c - - $(CL) -static voc.c -o voc \ - SYSTEM.o Args.o Console.o Modules.o Unix.o \ - Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - extTools.o \ - OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - $(CL) BrowserCmd.c -o showdef \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - OPM.o OPS.o OPT.o OPV.o OPC.o errors.o - - $(CL) OCatCmd.c -o ocat \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o - -# build all library files -stage6: - #v4 libs - $(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) -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 -# $(CC) oocMsg.c - - - #ooc2 libs - $(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) -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) -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) -sPF powStrings.Mod - - #misc libs - $(VOCSTATIC) -sPF MultiArrays.Mod - $(VOCSTATIC) -sPF MultiArrayRiders.Mod - $(VOCSTATIC) -sPF MersenneTwister.Mod - $(VOCSTATIC) -sPF Listen.Mod - - #s3 libs - $(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) -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 - - - -stage7: - #remove non library objects - rm -f Kernel0.o Files0.o Texts0.o architecture.o prf.o version.o extTools.o OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - #objects := $(wildcard *.o) - #$(LD) objects - $(ARCHIVE) *.o - #$(ARCHIVE) objects - $(LD) *.o - echo "$(PREFIX)/lib" > 05vishap.conf - -clean: -# rm_objects := rm $(wildcard *.o) -# objects - rm *.h - rm *.c - rm *.sym - rm *.o - rm *.a - rm *.$(SHRLIBEXT) - -install: - test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin - cp voc $(PREFIX)/bin/ - cp showdef $(PREFIX)/bin/ - cp ocat $(PREFIX)/bin/ - #cp vmake $(PREFIX)/bin/ - cp -RPp src $(PREFIX)/ - - test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/obj | mkdir -p $(PREFIX)/lib/voc/obj - test -d $(PREFIX)/lib/voc/sym | mkdir -p $(PREFIX)/lib/voc/sym - - cp $(LIBRARY).$(SHRLIBEXT) $(PREFIX)/lib - cp $(LIBRARY).a $(PREFIX)/lib - cp *.c $(PREFIX)/lib/voc/obj/ - cp *.h $(PREFIX)/lib/voc/obj/ - cp *.sym $(PREFIX)/lib/voc/sym/ - - #cp 05vishap.conf /etc/ld.so.conf.d/ - ldconfig -m $(PREFIX)/lib - ln -s $(PREFIX) $(PREFIXLN) - -# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/ -uninstall: - rm -rf $(PREFIX) - rm -rf $(PREFIXLN) From 88dd4e4d13c49317029a7f5a3def9a95afb76ebb Mon Sep 17 00:00:00 2001 From: David Brown Date: Mon, 27 Jun 2016 17:07:54 +0100 Subject: [PATCH 13/52] Emit 'now set path' message at end of 'make full'. --- makefile | 2 ++ src/tools/make/vishap.make | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/makefile b/makefile index a9185517..4f2dfc60 100644 --- a/makefile +++ b/makefile @@ -139,6 +139,7 @@ full: configuration @make -f src/tools/make/vishap.make -s library @make -f src/tools/make/vishap.make -s install @make -f src/tools/make/vishap.make -s confidence + @make -f src/tools/make/vishap.make -s showpath @@ -169,6 +170,7 @@ library: configuration install: configuration @make -f src/tools/make/vishap.make -s installable @make -f src/tools/make/vishap.make -s install + @make -f src/tools/make/vishap.make -s showpath uninstall: configuration @make -f src/tools/make/vishap.make -s installable diff --git a/src/tools/make/vishap.make b/src/tools/make/vishap.make index 43986b73..cd88c04e 100644 --- a/src/tools/make/vishap.make +++ b/src/tools/make/vishap.make @@ -173,6 +173,10 @@ install: @-cp $(BUILDDIR)/showdef$(BINEXT) "$(INSTALLDIR)/bin" @cp $(BUILDDIR)/lib$(ONAME).* "$(INSTALLDIR)/lib/" @if which ldconfig >/dev/null 2>&1; then $(LDCONFIG); fi + + +# showpath: Describe how to set the PATH variable +showpath: @printf "\nNow add $(INSTALLDIR)/bin to your path, for example with the command:\n" @printf "export PATH=\"$(INSTALLDIR)/bin:\$$PATH\"\n" @printf "\n" From f383a6c0329f5f58ac8627aaa54547e7a7f6bb20 Mon Sep 17 00:00:00 2001 From: David Brown Date: Mon, 27 Jun 2016 17:23:18 +0100 Subject: [PATCH 14/52] Correct quoting in postpush.pl. --- src/tools/testcoordinator/postpush.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tools/testcoordinator/postpush.pl b/src/tools/testcoordinator/postpush.pl index 3eb07825..079f9e56 100644 --- a/src/tools/testcoordinator/postpush.pl +++ b/src/tools/testcoordinator/postpush.pl @@ -31,4 +31,4 @@ flock(LOG, 2) or die "Could not lock postpush.log"; printf LOG strftime("%Y/%m/%d %H.%M.%S", localtime), " Repository $repo, branch $branch, name $name.\n"; close(LOG); -system "ssh root@oberon perl vishap/voc/src/tools/testcoordinator/buildall.pl >/tmp/buildall.log &"; +system 'ssh root@oberon perl vishap/voc/src/tools/testcoordinator/buildall.pl >/tmp/buildall.log &'; From 71e5e38d89ffd5fa80fe49a747ec0ab9a77ae7a8 Mon Sep 17 00:00:00 2001 From: David Brown Date: Mon, 27 Jun 2016 17:43:49 +0100 Subject: [PATCH 15/52] Debugging postpush.pl --- src/tools/testcoordinator/postpush.pl | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/tools/testcoordinator/postpush.pl b/src/tools/testcoordinator/postpush.pl index 079f9e56..de0eb616 100644 --- a/src/tools/testcoordinator/postpush.pl +++ b/src/tools/testcoordinator/postpush.pl @@ -9,6 +9,16 @@ use POSIX "strftime"; use CGI qw(:standard escapeHTML); use JSON; +sub writelog { + my ($msg) = @_; + + open(LOG, ">>/tmp/postpush.log") or die "Could not create postpush.log"; + flock(LOG, 2) or die "Could not lock postpush.log"; + print LOG sprintf("%s %s\n", strftime("%Y/%m/%d %H.%M.%S", localtime), $msg); + close(LOG); +} + +writelog "Postpush."; my $postdata = from_json(param('POSTDATA')); @@ -19,16 +29,15 @@ my $name = $postdata->{'head_commit'}->{'author'}->{'name'}; my $branch = $ref; $branch =~ s'^.*\/''; my $repo = $url; $repo =~ s'^.*\/''; +#my $repo="repo"; my $branch="branch"; my $name="name"; + +writelog "Repository $repo, branch $branch, name $name."; print header(), start_html("Vishap Oberon github post push web hook."), p("Repository $repo, branch $branch, name $name."), end_html(); - -open(LOG, ">>/tmp/postpush.log") or die "Could not create postpush.log"; -flock(LOG, 2) or die "Could not lock postpush.log"; -printf LOG strftime("%Y/%m/%d %H.%M.%S", localtime), " Repository $repo, branch $branch, name $name.\n"; -close(LOG); - system 'ssh root@oberon perl vishap/voc/src/tools/testcoordinator/buildall.pl >/tmp/buildall.log &'; + +writelog "Buildall triggered." From dff410e5b58b7997cce5f58cac8bebcaec88639d Mon Sep 17 00:00:00 2001 From: David Brown Date: Mon, 27 Jun 2016 17:49:22 +0100 Subject: [PATCH 16/52] Debugging postpush.pl --- src/tools/testcoordinator/postpush.pl | 42 +++++++++++++-------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/tools/testcoordinator/postpush.pl b/src/tools/testcoordinator/postpush.pl index de0eb616..a3c0c6de 100644 --- a/src/tools/testcoordinator/postpush.pl +++ b/src/tools/testcoordinator/postpush.pl @@ -20,24 +20,24 @@ sub writelog { writelog "Postpush."; -my $postdata = from_json(param('POSTDATA')); - -my $url = $postdata->{'repository'}->{'url'}; -my $ref = $postdata->{'ref'}; -my $name = $postdata->{'head_commit'}->{'author'}->{'name'}; - -my $branch = $ref; $branch =~ s'^.*\/''; -my $repo = $url; $repo =~ s'^.*\/''; - -#my $repo="repo"; my $branch="branch"; my $name="name"; - -writelog "Repository $repo, branch $branch, name $name."; - -print header(), - start_html("Vishap Oberon github post push web hook."), - p("Repository $repo, branch $branch, name $name."), - end_html(); - -system 'ssh root@oberon perl vishap/voc/src/tools/testcoordinator/buildall.pl >/tmp/buildall.log &'; - -writelog "Buildall triggered." +# my $postdata = from_json(param('POSTDATA')); +# +# my $url = $postdata->{'repository'}->{'url'}; +# my $ref = $postdata->{'ref'}; +# my $name = $postdata->{'head_commit'}->{'author'}->{'name'}; +# +# my $branch = $ref; $branch =~ s'^.*\/''; +# my $repo = $url; $repo =~ s'^.*\/''; +# +# #my $repo="repo"; my $branch="branch"; my $name="name"; +# +# writelog "Repository $repo, branch $branch, name $name."; +# +# print header(), +# start_html("Vishap Oberon github post push web hook."), +# p("Repository $repo, branch $branch, name $name."), +# end_html(); +# +# system 'ssh root@oberon perl vishap/voc/src/tools/testcoordinator/buildall.pl >/tmp/buildall.log &'; +# +# writelog "Buildall triggered." From 61c9790edc0b97fc1b44b1ce5c0ef1fa86f4838f Mon Sep 17 00:00:00 2001 From: David Brown Date: Mon, 27 Jun 2016 17:53:20 +0100 Subject: [PATCH 17/52] Debugging postpush.pl --- src/tools/testcoordinator/postpush.pl | 42 +++++++++++++-------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/tools/testcoordinator/postpush.pl b/src/tools/testcoordinator/postpush.pl index a3c0c6de..de0eb616 100644 --- a/src/tools/testcoordinator/postpush.pl +++ b/src/tools/testcoordinator/postpush.pl @@ -20,24 +20,24 @@ sub writelog { writelog "Postpush."; -# my $postdata = from_json(param('POSTDATA')); -# -# my $url = $postdata->{'repository'}->{'url'}; -# my $ref = $postdata->{'ref'}; -# my $name = $postdata->{'head_commit'}->{'author'}->{'name'}; -# -# my $branch = $ref; $branch =~ s'^.*\/''; -# my $repo = $url; $repo =~ s'^.*\/''; -# -# #my $repo="repo"; my $branch="branch"; my $name="name"; -# -# writelog "Repository $repo, branch $branch, name $name."; -# -# print header(), -# start_html("Vishap Oberon github post push web hook."), -# p("Repository $repo, branch $branch, name $name."), -# end_html(); -# -# system 'ssh root@oberon perl vishap/voc/src/tools/testcoordinator/buildall.pl >/tmp/buildall.log &'; -# -# writelog "Buildall triggered." +my $postdata = from_json(param('POSTDATA')); + +my $url = $postdata->{'repository'}->{'url'}; +my $ref = $postdata->{'ref'}; +my $name = $postdata->{'head_commit'}->{'author'}->{'name'}; + +my $branch = $ref; $branch =~ s'^.*\/''; +my $repo = $url; $repo =~ s'^.*\/''; + +#my $repo="repo"; my $branch="branch"; my $name="name"; + +writelog "Repository $repo, branch $branch, name $name."; + +print header(), + start_html("Vishap Oberon github post push web hook."), + p("Repository $repo, branch $branch, name $name."), + end_html(); + +system 'ssh root@oberon perl vishap/voc/src/tools/testcoordinator/buildall.pl >/tmp/buildall.log &'; + +writelog "Buildall triggered." From 3a17e1a65685db28158fd65fff295e93a1bec31f Mon Sep 17 00:00:00 2001 From: David Brown Date: Mon, 27 Jun 2016 17:56:19 +0100 Subject: [PATCH 18/52] Debugging postpush.pl --- src/tools/testcoordinator/postpush.pl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tools/testcoordinator/postpush.pl b/src/tools/testcoordinator/postpush.pl index de0eb616..947ef1d5 100644 --- a/src/tools/testcoordinator/postpush.pl +++ b/src/tools/testcoordinator/postpush.pl @@ -9,6 +9,7 @@ use POSIX "strftime"; use CGI qw(:standard escapeHTML); use JSON; + sub writelog { my ($msg) = @_; From 77f6fa772ceb6b348ec062fa1aeb0884a11b152f Mon Sep 17 00:00:00 2001 From: David C W Brown Date: Mon, 27 Jun 2016 20:41:49 +0100 Subject: [PATCH 19/52] Working post push hook now? --- src/tools/testcoordinator/postpush.pl | 30 ++++++++++++++++++++------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/tools/testcoordinator/postpush.pl b/src/tools/testcoordinator/postpush.pl index 3eb07825..f0edcec7 100644 --- a/src/tools/testcoordinator/postpush.pl +++ b/src/tools/testcoordinator/postpush.pl @@ -9,6 +9,14 @@ use POSIX "strftime"; use CGI qw(:standard escapeHTML); use JSON; +sub writelog { + my ($msg) = @_; + + open(LOG, ">>/tmp/postpush.log") or die "Could not create postpush.log"; + flock(LOG, 2) or die "Could not lock postpush.log"; + print LOG sprintf("%s %s\n", strftime("%Y/%m/%d %H.%M.%S", localtime), $msg); + close(LOG); +} my $postdata = from_json(param('POSTDATA')); @@ -19,16 +27,22 @@ my $name = $postdata->{'head_commit'}->{'author'}->{'name'}; my $branch = $ref; $branch =~ s'^.*\/''; my $repo = $url; $repo =~ s'^.*\/''; +#my $repo="repo"; my $branch="branch"; my $name="name"; + +writelog "Post push github web hook for repository $repo, branch $branch, name $name."; + +my $child = fork; +if (not defined $child) {die "Fork failed.";} +if ($child) { + # parent process + writelog "Started ssh, pid = $child."; +} else { + # child process + exec 'ssh root@oberon "perl vishap/voc/src/tools/testcoordinator/buildall.pl >/tmp/buildall.log &"'; + exit; +} print header(), start_html("Vishap Oberon github post push web hook."), p("Repository $repo, branch $branch, name $name."), end_html(); - - -open(LOG, ">>/tmp/postpush.log") or die "Could not create postpush.log"; -flock(LOG, 2) or die "Could not lock postpush.log"; -printf LOG strftime("%Y/%m/%d %H.%M.%S", localtime), " Repository $repo, branch $branch, name $name.\n"; -close(LOG); - -system "ssh root@oberon perl vishap/voc/src/tools/testcoordinator/buildall.pl >/tmp/buildall.log &"; From 99bd3b3105fb6d8d2817ea87166ba9b6e7694632 Mon Sep 17 00:00:00 2001 From: David C W Brown Date: Mon, 27 Jun 2016 20:46:43 +0100 Subject: [PATCH 20/52] Checkin real (not merged) postpush.pl --- src/tools/testcoordinator/postpush.pl | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/src/tools/testcoordinator/postpush.pl b/src/tools/testcoordinator/postpush.pl index 67be27ab..25bb2a89 100644 --- a/src/tools/testcoordinator/postpush.pl +++ b/src/tools/testcoordinator/postpush.pl @@ -18,17 +18,6 @@ sub writelog { close(LOG); } -sub writelog { - my ($msg) = @_; - - open(LOG, ">>/tmp/postpush.log") or die "Could not create postpush.log"; - flock(LOG, 2) or die "Could not lock postpush.log"; - print LOG sprintf("%s %s\n", strftime("%Y/%m/%d %H.%M.%S", localtime), $msg); - close(LOG); -} - -writelog "Postpush."; - my $postdata = from_json(param('POSTDATA')); my $url = $postdata->{'repository'}->{'url'}; @@ -40,9 +29,9 @@ my $repo = $url; $repo =~ s'^.*\/''; #my $repo="repo"; my $branch="branch"; my $name="name"; -<<<<<<< HEAD writelog "Post push github web hook for repository $repo, branch $branch, name $name."; + my $child = fork; if (not defined $child) {die "Fork failed.";} if ($child) { @@ -53,18 +42,8 @@ if ($child) { exec 'ssh root@oberon "perl vishap/voc/src/tools/testcoordinator/buildall.pl >/tmp/buildall.log &"'; exit; } -======= -writelog "Repository $repo, branch $branch, name $name."; ->>>>>>> 3a17e1a65685db28158fd65fff295e93a1bec31f print header(), start_html("Vishap Oberon github post push web hook."), p("Repository $repo, branch $branch, name $name."), end_html(); -<<<<<<< HEAD -======= - -system 'ssh root@oberon perl vishap/voc/src/tools/testcoordinator/buildall.pl >/tmp/buildall.log &'; - -writelog "Buildall triggered." ->>>>>>> 3a17e1a65685db28158fd65fff295e93a1bec31f From 92365d501cc5309477b03b4b3b62eabfb302125e Mon Sep 17 00:00:00 2001 From: David C W Brown Date: Mon, 27 Jun 2016 21:01:56 +0100 Subject: [PATCH 21/52] Add passing build extraction script. --- src/tools/testcoordinator/buildall.pl | 0 src/tools/testcoordinator/passes.pl | 17 +++++++++++++++++ src/tools/testcoordinator/postpush.pl | 0 3 files changed, 17 insertions(+) mode change 100644 => 100755 src/tools/testcoordinator/buildall.pl create mode 100755 src/tools/testcoordinator/passes.pl mode change 100644 => 100755 src/tools/testcoordinator/postpush.pl diff --git a/src/tools/testcoordinator/buildall.pl b/src/tools/testcoordinator/buildall.pl old mode 100644 new mode 100755 diff --git a/src/tools/testcoordinator/passes.pl b/src/tools/testcoordinator/passes.pl new file mode 100755 index 00000000..c7ca9bde --- /dev/null +++ b/src/tools/testcoordinator/passes.pl @@ -0,0 +1,17 @@ +#!perl -w +use strict; +use warnings; +use POSIX "strftime"; + +# Now parse the combined logs extracting build pass messages +# lub32 20.47.55 --- Branch v2docs ubuntu gcc ILP32 confidence tests passed --- + +open(my $buildlog, "log/buildpasses.log") // die "Could not create buildpasses.log."; +while (<$buildlog>) { + if (/ --- Branch .* confidence tests passed ---/) { + print $passes $_; + } +} +close($buildlog); +close($passes); diff --git a/src/tools/testcoordinator/postpush.pl b/src/tools/testcoordinator/postpush.pl old mode 100644 new mode 100755 From f9ced032af7d24a5ee78ad1ec055f5e00cb4633f Mon Sep 17 00:00:00 2001 From: David Brown Date: Wed, 29 Jun 2016 12:48:35 +0100 Subject: [PATCH 22/52] Can github access my SVG? --- ReadMe.md | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index 46738ec7..07fbbf6c 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -1,11 +1,5 @@ ### 𝓥ishap Ѵishap Ꮙishap Oberon -Oberon is a programming language, an operating system and a graphical -user interface. Originally designed and implemented by by Niklaus Wirth and -Jürg Gutknecht at ETH Zürich in the late 1980s, it demonstrates that the -fundamentals of a modern OS and GUI can be implemented in clean and simple code -orders of magnitude smaller than found in contemporary systems. - [𝓥ishap ⱱishap Ꮙishap Oberon](http://oberon.vishap.am) is a free and open source (GPLv3) implementation of the Oberon-2 language compiler and libraries for use on current operating systems such as Linux, BSD, Android, Mac and Windows. @@ -15,24 +9,42 @@ Oberon programs under Unix or Windows. Vishap Oberon includes libraries from the Ulm, oo2c and Ofront Oberon compilers, as well as default libraries complying with the Oakwood Guidelines for Oberon-2 compilers. -The Oberon language is an evolution of the Pascal and Modula languages, following the -principals of Einstein and Antoine de Saint-Exupéry: +##### Oberon - System and Programming Language -> Make it as simple as possible, but not simpler. (A. Einstein) +Oberon is a programming language, an operating system and a graphical +user interface. Originally designed and implemented by by Niklaus Wirth and +Jürg Gutknecht at ETH Zürich in the late 1980s, it demonstrates that the +fundamentals of a modern OS and GUI can be implemented in clean and simple code +orders of magnitude smaller than found in contemporary systems. + +The Oberon programming language is an evolution of the Pascal and Modula +languages, following the principals of Einstein and Antoine de Saint-Exupéry: + +> Make it as simple as possible, but not simpler. (Albert Einstein) > Perfection is finally attained not when there is no longer anything to add, but > when there is no longer anything to take away. (Antoine de Saint-Exupéry, -> Terre des Hommes, 1939, translated by Lewis Galantière.) +> translated by Lewis Galantière.) + +##### Build status + +![Build status](https://www.brownsmeet.com/githubhook/passes.svg) #### Installation +##### Prerequisites + +##### Build and install + 1. `git clone https://github.com/vishaps/voc` 2. `cd voc` 3. `[sudo] make full` Since 'make full' will install the compiler and libraries, it needs root (unix) or administrator (windows) privileges. -Then set your path to the installed compiler binary location as reported +##### PATH environment variable + +Set your path to the installed compiler binary location as reported by make full, e.g. | System | Set path | From fe0803e6be34ed53d91b8980d3b64a61f2df151a Mon Sep 17 00:00:00 2001 From: David Brown Date: Wed, 29 Jun 2016 16:16:38 +0000 Subject: [PATCH 23/52] Try another way to get passing status image into readme. --- ReadMe.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index 07fbbf6c..4e1040c3 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -1,6 +1,6 @@ -### 𝓥ishap Ѵishap Ꮙishap Oberon +### Ѵishap Oberon -[𝓥ishap ⱱishap Ꮙishap Oberon](http://oberon.vishap.am) is a free and open source (GPLv3) +[Ѵishap Oberon](http://oberon.vishap.am) is a free and open source (GPLv3) implementation of the Oberon-2 language compiler and libraries for use on current operating systems such as Linux, BSD, Android, Mac and Windows. @@ -28,7 +28,7 @@ languages, following the principals of Einstein and Antoine de Saint-Exupéry: ##### Build status -![Build status](https://www.brownsmeet.com/githubhook/passes.svg) +![Build status](https://www.brownsmeet.com/githubhook/passes.png?raw=true) #### Installation @@ -161,6 +161,8 @@ C W Brown. #### Origin of the name Vishap +𝓥ishap Ꮙishap ⱱishap + #### To be left out? Work on other compatibility layers is in progress. From 15ee11b2aad82c53a3017f116938b5dc9166d186 Mon Sep 17 00:00:00 2001 From: David Brown Date: Wed, 29 Jun 2016 17:31:15 +0100 Subject: [PATCH 24/52] Aother attempt to get the readme to display the passing status image from brownsmeet.com. --- ReadMe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReadMe.md b/ReadMe.md index 4e1040c3..e96d6867 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -28,7 +28,7 @@ languages, following the principals of Einstein and Antoine de Saint-Exupéry: ##### Build status -![Build status](https://www.brownsmeet.com/githubhook/passes.png?raw=true) +![Build status](http://brownsmeet.com/passes.png?raw=true) #### Installation From 5c93ec0bcd03e321bf26d6b71da03c28de14f7f8 Mon Sep 17 00:00:00 2001 From: David Brown Date: Wed, 29 Jun 2016 22:44:25 +0100 Subject: [PATCH 25/52] Try without the raw=true. --- ReadMe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReadMe.md b/ReadMe.md index e96d6867..117339d8 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -28,7 +28,7 @@ languages, following the principals of Einstein and Antoine de Saint-Exupéry: ##### Build status -![Build status](http://brownsmeet.com/passes.png?raw=true) +![Build status](http://brownsmeet.com/passes.png) #### Installation From 5aabb5a95578133bf260e45c8d8d2b8d3dae4d4a Mon Sep 17 00:00:00 2001 From: David Brown Date: Wed, 29 Jun 2016 23:53:15 +0100 Subject: [PATCH 26/52] Another checkin to see if no-cache fixes it. --- ReadMe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReadMe.md b/ReadMe.md index 117339d8..a5a27562 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -2,7 +2,7 @@ [Ѵishap Oberon](http://oberon.vishap.am) is a free and open source (GPLv3) implementation of the Oberon-2 language compiler and libraries for use on -current operating systems such as Linux, BSD, Android, Mac and Windows. +conventional operating systems such as Linux, BSD, Android, Mac and Windows. Vishap's Oberon Compiler (voc) uses a C backend to compile Oberon programs under Unix or Windows. Vishap Oberon includes From 3ac00d55359cf269023a1c7e3b5b80a1673e3122 Mon Sep 17 00:00:00 2001 From: David Brown Date: Thu, 30 Jun 2016 11:39:10 +0100 Subject: [PATCH 27/52] Avoid htaccess. Try svg directly again. --- ReadMe.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index a5a27562..432f97e7 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -26,9 +26,13 @@ languages, following the principals of Einstein and Antoine de Saint-Exupéry: > when there is no longer anything to take away. (Antoine de Saint-Exupéry, > translated by Lewis Galantière.) -##### Build status +##### Build status (png) -![Build status](http://brownsmeet.com/passes.png) +![Build status (png)](http://brownsmeet.com/build-staus.png) + +##### Build status (svg) + +![Build status (svg)](http://brownsmeet.com/build-staus.svg) #### Installation From 54757d336cc79e1a3f4c82f238b7f6612740c3b0 Mon Sep 17 00:00:00 2001 From: David Brown Date: Thu, 30 Jun 2016 11:41:12 +0100 Subject: [PATCH 28/52] Phew, just a typo. build-staus. --- ReadMe.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index 432f97e7..308c9c56 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -28,11 +28,11 @@ languages, following the principals of Einstein and Antoine de Saint-Exupéry: ##### Build status (png) -![Build status (png)](http://brownsmeet.com/build-staus.png) +![Build status (png)](http://brownsmeet.com/build-status.png) ##### Build status (svg) -![Build status (svg)](http://brownsmeet.com/build-staus.svg) +![Build status (svg)](http://brownsmeet.com/build-status.svg) #### Installation From d24d436808ae22d8a760b55cd2046f8b57f7ef47 Mon Sep 17 00:00:00 2001 From: David Brown Date: Thu, 30 Jun 2016 12:07:54 +0100 Subject: [PATCH 29/52] Wow, svg is working fine. --- ReadMe.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index 308c9c56..c6e75b4f 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -26,13 +26,9 @@ languages, following the principals of Einstein and Antoine de Saint-Exupéry: > when there is no longer anything to take away. (Antoine de Saint-Exupéry, > translated by Lewis Galantière.) -##### Build status (png) +##### Build status -![Build status (png)](http://brownsmeet.com/build-status.png) - -##### Build status (svg) - -![Build status (svg)](http://brownsmeet.com/build-status.svg) +![Build status](http://brownsmeet.com/build-status.svg) #### Installation From d97668a20912d43d7314c86d01c665cdbfdc2e3d Mon Sep 17 00:00:00 2001 From: David Brown Date: Thu, 30 Jun 2016 18:36:17 +0100 Subject: [PATCH 30/52] Initial checksum support in build. --- bootstrap/unix-44/Configuration.c | 2 +- bootstrap/unix-44/Configuration.h | 2 +- bootstrap/unix-44/Console.c | 2 +- bootstrap/unix-44/Console.h | 2 +- bootstrap/unix-44/Files.c | 2 +- bootstrap/unix-44/Files.h | 2 +- bootstrap/unix-44/Heap.c | 2 +- bootstrap/unix-44/Heap.h | 2 +- bootstrap/unix-44/Modules.c | 2 +- bootstrap/unix-44/Modules.h | 2 +- bootstrap/unix-44/OPB.c | 2 +- bootstrap/unix-44/OPB.h | 2 +- bootstrap/unix-44/OPC.c | 4 ++-- bootstrap/unix-44/OPC.h | 2 +- bootstrap/unix-44/OPM.c | 4 ++-- bootstrap/unix-44/OPM.h | 2 +- bootstrap/unix-44/OPP.c | 2 +- bootstrap/unix-44/OPP.h | 2 +- bootstrap/unix-44/OPS.c | 2 +- bootstrap/unix-44/OPS.h | 2 +- bootstrap/unix-44/OPT.c | 2 +- bootstrap/unix-44/OPT.h | 2 +- bootstrap/unix-44/OPV.c | 2 +- bootstrap/unix-44/OPV.h | 2 +- bootstrap/unix-44/Platform.c | 2 +- bootstrap/unix-44/Platform.h | 2 +- bootstrap/unix-44/Reals.c | 2 +- bootstrap/unix-44/Reals.h | 2 +- bootstrap/unix-44/Strings.c | 2 +- bootstrap/unix-44/Strings.h | 2 +- bootstrap/unix-44/Texts.c | 2 +- bootstrap/unix-44/Texts.h | 2 +- bootstrap/unix-44/Vishap.c | 2 +- bootstrap/unix-44/errors.c | 2 +- bootstrap/unix-44/errors.h | 2 +- bootstrap/unix-44/extTools.c | 2 +- bootstrap/unix-44/extTools.h | 2 +- bootstrap/unix-44/vt100.c | 2 +- bootstrap/unix-44/vt100.h | 2 +- bootstrap/unix-48/Configuration.c | 2 +- bootstrap/unix-48/Configuration.h | 2 +- bootstrap/unix-48/Console.c | 2 +- bootstrap/unix-48/Console.h | 2 +- bootstrap/unix-48/Files.c | 2 +- bootstrap/unix-48/Files.h | 2 +- bootstrap/unix-48/Heap.c | 2 +- bootstrap/unix-48/Heap.h | 2 +- bootstrap/unix-48/Modules.c | 2 +- bootstrap/unix-48/Modules.h | 2 +- bootstrap/unix-48/OPB.c | 2 +- bootstrap/unix-48/OPB.h | 2 +- bootstrap/unix-48/OPC.c | 4 ++-- bootstrap/unix-48/OPC.h | 2 +- bootstrap/unix-48/OPM.c | 4 ++-- bootstrap/unix-48/OPM.h | 2 +- bootstrap/unix-48/OPP.c | 2 +- bootstrap/unix-48/OPP.h | 2 +- bootstrap/unix-48/OPS.c | 2 +- bootstrap/unix-48/OPS.h | 2 +- bootstrap/unix-48/OPT.c | 2 +- bootstrap/unix-48/OPT.h | 2 +- bootstrap/unix-48/OPV.c | 2 +- bootstrap/unix-48/OPV.h | 2 +- bootstrap/unix-48/Platform.c | 2 +- bootstrap/unix-48/Platform.h | 2 +- bootstrap/unix-48/Reals.c | 2 +- bootstrap/unix-48/Reals.h | 2 +- bootstrap/unix-48/Strings.c | 2 +- bootstrap/unix-48/Strings.h | 2 +- bootstrap/unix-48/Texts.c | 2 +- bootstrap/unix-48/Texts.h | 2 +- bootstrap/unix-48/Vishap.c | 2 +- bootstrap/unix-48/errors.c | 2 +- bootstrap/unix-48/errors.h | 2 +- bootstrap/unix-48/extTools.c | 2 +- bootstrap/unix-48/extTools.h | 2 +- bootstrap/unix-48/vt100.c | 2 +- bootstrap/unix-48/vt100.h | 2 +- bootstrap/unix-88/Configuration.c | 2 +- bootstrap/unix-88/Configuration.h | 2 +- bootstrap/unix-88/Console.c | 2 +- bootstrap/unix-88/Console.h | 2 +- bootstrap/unix-88/Files.c | 2 +- bootstrap/unix-88/Files.h | 2 +- bootstrap/unix-88/Heap.c | 2 +- bootstrap/unix-88/Heap.h | 2 +- bootstrap/unix-88/Modules.c | 2 +- bootstrap/unix-88/Modules.h | 2 +- bootstrap/unix-88/OPB.c | 2 +- bootstrap/unix-88/OPB.h | 2 +- bootstrap/unix-88/OPC.c | 4 ++-- bootstrap/unix-88/OPC.h | 2 +- bootstrap/unix-88/OPM.c | 4 ++-- bootstrap/unix-88/OPM.h | 2 +- bootstrap/unix-88/OPP.c | 2 +- bootstrap/unix-88/OPP.h | 2 +- bootstrap/unix-88/OPS.c | 2 +- bootstrap/unix-88/OPS.h | 2 +- bootstrap/unix-88/OPT.c | 2 +- bootstrap/unix-88/OPT.h | 2 +- bootstrap/unix-88/OPV.c | 2 +- bootstrap/unix-88/OPV.h | 2 +- bootstrap/unix-88/Platform.c | 2 +- bootstrap/unix-88/Platform.h | 2 +- bootstrap/unix-88/Reals.c | 2 +- bootstrap/unix-88/Reals.h | 2 +- bootstrap/unix-88/Strings.c | 2 +- bootstrap/unix-88/Strings.h | 2 +- bootstrap/unix-88/Texts.c | 2 +- bootstrap/unix-88/Texts.h | 2 +- bootstrap/unix-88/Vishap.c | 2 +- bootstrap/unix-88/errors.c | 2 +- bootstrap/unix-88/errors.h | 2 +- bootstrap/unix-88/extTools.c | 2 +- bootstrap/unix-88/extTools.h | 2 +- bootstrap/unix-88/vt100.c | 2 +- bootstrap/unix-88/vt100.h | 2 +- bootstrap/windows-48/Configuration.c | 2 +- bootstrap/windows-48/Configuration.h | 2 +- bootstrap/windows-48/Console.c | 2 +- bootstrap/windows-48/Console.h | 2 +- bootstrap/windows-48/Files.c | 2 +- bootstrap/windows-48/Files.h | 2 +- bootstrap/windows-48/Heap.c | 2 +- bootstrap/windows-48/Heap.h | 2 +- bootstrap/windows-48/Modules.c | 2 +- bootstrap/windows-48/Modules.h | 2 +- bootstrap/windows-48/OPB.c | 2 +- bootstrap/windows-48/OPB.h | 2 +- bootstrap/windows-48/OPC.c | 4 ++-- bootstrap/windows-48/OPC.h | 2 +- bootstrap/windows-48/OPM.c | 4 ++-- bootstrap/windows-48/OPM.h | 2 +- bootstrap/windows-48/OPP.c | 2 +- bootstrap/windows-48/OPP.h | 2 +- bootstrap/windows-48/OPS.c | 2 +- bootstrap/windows-48/OPS.h | 2 +- bootstrap/windows-48/OPT.c | 2 +- bootstrap/windows-48/OPT.h | 2 +- bootstrap/windows-48/OPV.c | 2 +- bootstrap/windows-48/OPV.h | 2 +- bootstrap/windows-48/Platform.c | 2 +- bootstrap/windows-48/Platform.h | 2 +- bootstrap/windows-48/Reals.c | 2 +- bootstrap/windows-48/Reals.h | 2 +- bootstrap/windows-48/Strings.c | 2 +- bootstrap/windows-48/Strings.h | 2 +- bootstrap/windows-48/Texts.c | 2 +- bootstrap/windows-48/Texts.h | 2 +- bootstrap/windows-48/Vishap.c | 2 +- bootstrap/windows-48/errors.c | 2 +- bootstrap/windows-48/errors.h | 2 +- bootstrap/windows-48/extTools.c | 2 +- bootstrap/windows-48/extTools.h | 2 +- bootstrap/windows-48/vt100.c | 2 +- bootstrap/windows-48/vt100.h | 2 +- bootstrap/windows-88/Configuration.c | 2 +- bootstrap/windows-88/Configuration.h | 2 +- bootstrap/windows-88/Console.c | 2 +- bootstrap/windows-88/Console.h | 2 +- bootstrap/windows-88/Files.c | 2 +- bootstrap/windows-88/Files.h | 2 +- bootstrap/windows-88/Heap.c | 2 +- bootstrap/windows-88/Heap.h | 2 +- bootstrap/windows-88/Modules.c | 2 +- bootstrap/windows-88/Modules.h | 2 +- bootstrap/windows-88/OPB.c | 2 +- bootstrap/windows-88/OPB.h | 2 +- bootstrap/windows-88/OPC.c | 4 ++-- bootstrap/windows-88/OPC.h | 2 +- bootstrap/windows-88/OPM.c | 4 ++-- bootstrap/windows-88/OPM.h | 2 +- bootstrap/windows-88/OPP.c | 2 +- bootstrap/windows-88/OPP.h | 2 +- bootstrap/windows-88/OPS.c | 2 +- bootstrap/windows-88/OPS.h | 2 +- bootstrap/windows-88/OPT.c | 2 +- bootstrap/windows-88/OPT.h | 2 +- bootstrap/windows-88/OPV.c | 2 +- bootstrap/windows-88/OPV.h | 2 +- bootstrap/windows-88/Platform.c | 2 +- bootstrap/windows-88/Platform.h | 2 +- bootstrap/windows-88/Reals.c | 2 +- bootstrap/windows-88/Reals.h | 2 +- bootstrap/windows-88/Strings.c | 2 +- bootstrap/windows-88/Strings.h | 2 +- bootstrap/windows-88/Texts.c | 2 +- bootstrap/windows-88/Texts.h | 2 +- bootstrap/windows-88/Vishap.c | 2 +- bootstrap/windows-88/errors.c | 2 +- bootstrap/windows-88/errors.h | 2 +- bootstrap/windows-88/extTools.c | 2 +- bootstrap/windows-88/extTools.h | 2 +- bootstrap/windows-88/vt100.c | 2 +- bootstrap/windows-88/vt100.h | 2 +- makefile | 14 ++++++++++++++ src/tools/make/vishap.make | 6 ++++++ src/tools/testcoordinator/buildall.pl | 15 ++++++++------- 198 files changed, 233 insertions(+), 212 deletions(-) diff --git a/bootstrap/unix-44/Configuration.c b/bootstrap/unix-44/Configuration.c index a1992033..aef0c6c0 100644 --- a/bootstrap/unix-44/Configuration.c +++ b/bootstrap/unix-44/Configuration.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" diff --git a/bootstrap/unix-44/Configuration.h b/bootstrap/unix-44/Configuration.h index e7aed50a..4c931710 100644 --- a/bootstrap/unix-44/Configuration.h +++ b/bootstrap/unix-44/Configuration.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Configuration__h #define Configuration__h diff --git a/bootstrap/unix-44/Console.c b/bootstrap/unix-44/Console.c index 7f8fd8c0..1d3fe81f 100644 --- a/bootstrap/unix-44/Console.c +++ b/bootstrap/unix-44/Console.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Platform.h" diff --git a/bootstrap/unix-44/Console.h b/bootstrap/unix-44/Console.h index 316e7e46..8e12fc26 100644 --- a/bootstrap/unix-44/Console.h +++ b/bootstrap/unix-44/Console.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Console__h #define Console__h diff --git a/bootstrap/unix-44/Files.c b/bootstrap/unix-44/Files.c index f3b9b280..14bf860b 100644 --- a/bootstrap/unix-44/Files.c +++ b/bootstrap/unix-44/Files.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "Console.h" diff --git a/bootstrap/unix-44/Files.h b/bootstrap/unix-44/Files.h index 002d2dc5..2461434a 100644 --- a/bootstrap/unix-44/Files.h +++ b/bootstrap/unix-44/Files.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #ifndef Files__h #define Files__h diff --git a/bootstrap/unix-44/Heap.c b/bootstrap/unix-44/Heap.c index cbb21626..4158550b 100644 --- a/bootstrap/unix-44/Heap.c +++ b/bootstrap/unix-44/Heap.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tskSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tskSfF */ #include "SYSTEM.h" struct Heap__1 { diff --git a/bootstrap/unix-44/Heap.h b/bootstrap/unix-44/Heap.h index d270a455..33b7f49f 100644 --- a/bootstrap/unix-44/Heap.h +++ b/bootstrap/unix-44/Heap.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tskSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tskSfF */ #ifndef Heap__h #define Heap__h diff --git a/bootstrap/unix-44/Modules.c b/bootstrap/unix-44/Modules.c index 6c0f5e0b..c2c2920a 100644 --- a/bootstrap/unix-44/Modules.c +++ b/bootstrap/unix-44/Modules.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Console.h" #include "Heap.h" diff --git a/bootstrap/unix-44/Modules.h b/bootstrap/unix-44/Modules.h index 5968d1aa..d3b57a01 100644 --- a/bootstrap/unix-44/Modules.h +++ b/bootstrap/unix-44/Modules.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Modules__h #define Modules__h diff --git a/bootstrap/unix-44/OPB.c b/bootstrap/unix-44/OPB.c index 0c22a7a7..7a1ae82b 100644 --- a/bootstrap/unix-44/OPB.c +++ b/bootstrap/unix-44/OPB.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPM.h" #include "OPS.h" diff --git a/bootstrap/unix-44/OPB.h b/bootstrap/unix-44/OPB.h index 8cd47ee6..8e98db79 100644 --- a/bootstrap/unix-44/OPB.h +++ b/bootstrap/unix-44/OPB.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPB__h #define OPB__h diff --git a/bootstrap/unix-44/OPC.c b/bootstrap/unix-44/OPC.c index 32a1496f..1d2d84d1 100644 --- a/bootstrap/unix-44/OPC.c +++ b/bootstrap/unix-44/OPC.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "OPM.h" @@ -1241,7 +1241,7 @@ static void OPC_GenHeaderMsg (void) OPM_WriteString((CHAR*)"/*", (LONGINT)3); OPM_WriteString((CHAR*)" voc ", (LONGINT)6); OPM_Write(' '); - OPM_WriteString((CHAR*)"1.2 [2016/06/15] for gcc LP64 on cygwin", (LONGINT)40); + OPM_WriteString((CHAR*)"1.95 [2016/06/30] for gcc LP64 on cygwin", (LONGINT)41); OPM_Write(' '); i = 0; while (i <= 31) { diff --git a/bootstrap/unix-44/OPC.h b/bootstrap/unix-44/OPC.h index 713ea3b2..467de9eb 100644 --- a/bootstrap/unix-44/OPC.h +++ b/bootstrap/unix-44/OPC.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPC__h #define OPC__h diff --git a/bootstrap/unix-44/OPM.c b/bootstrap/unix-44/OPM.c index 3d68d2be..3ad30ae3 100644 --- a/bootstrap/unix-44/OPM.c +++ b/bootstrap/unix-44/OPM.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "Console.h" @@ -198,7 +198,7 @@ BOOLEAN OPM_OpenPar (void) if (Platform_ArgCount == 1) { OPM_LogWLn(); OPM_LogWStr((CHAR*)"Vishap Oberon-2 compiler v", (LONGINT)27); - OPM_LogWStr((CHAR*)"1.2 [2016/06/15] for gcc LP64 on cygwin", (LONGINT)40); + OPM_LogWStr((CHAR*)"1.95 [2016/06/30] for gcc LP64 on cygwin", (LONGINT)41); OPM_LogW('.'); OPM_LogWLn(); OPM_LogWStr((CHAR*)"Based on Ofront by Software Templ OEG, continued by Norayr Chilingarian and others.", (LONGINT)84); diff --git a/bootstrap/unix-44/OPM.h b/bootstrap/unix-44/OPM.h index 68bf3af0..8f0040f4 100644 --- a/bootstrap/unix-44/OPM.h +++ b/bootstrap/unix-44/OPM.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPM__h #define OPM__h diff --git a/bootstrap/unix-44/OPP.c b/bootstrap/unix-44/OPP.c index f0530bb4..845635b3 100644 --- a/bootstrap/unix-44/OPP.c +++ b/bootstrap/unix-44/OPP.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPB.h" #include "OPM.h" diff --git a/bootstrap/unix-44/OPP.h b/bootstrap/unix-44/OPP.h index 1e0a1809..ddacbb19 100644 --- a/bootstrap/unix-44/OPP.h +++ b/bootstrap/unix-44/OPP.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPP__h #define OPP__h diff --git a/bootstrap/unix-44/OPS.c b/bootstrap/unix-44/OPS.c index 88944148..071a1dc0 100644 --- a/bootstrap/unix-44/OPS.c +++ b/bootstrap/unix-44/OPS.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #include "SYSTEM.h" #include "OPM.h" diff --git a/bootstrap/unix-44/OPS.h b/bootstrap/unix-44/OPS.h index 87a614f4..afca4213 100644 --- a/bootstrap/unix-44/OPS.h +++ b/bootstrap/unix-44/OPS.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #ifndef OPS__h #define OPS__h diff --git a/bootstrap/unix-44/OPT.c b/bootstrap/unix-44/OPT.c index fc80ce02..16157fca 100644 --- a/bootstrap/unix-44/OPT.c +++ b/bootstrap/unix-44/OPT.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPM.h" #include "OPS.h" diff --git a/bootstrap/unix-44/OPT.h b/bootstrap/unix-44/OPT.h index 1a22d0df..826b5123 100644 --- a/bootstrap/unix-44/OPT.h +++ b/bootstrap/unix-44/OPT.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPT__h #define OPT__h diff --git a/bootstrap/unix-44/OPV.c b/bootstrap/unix-44/OPV.c index 572285dc..2223918b 100644 --- a/bootstrap/unix-44/OPV.c +++ b/bootstrap/unix-44/OPV.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPC.h" #include "OPM.h" diff --git a/bootstrap/unix-44/OPV.h b/bootstrap/unix-44/OPV.h index 9907a1ef..ecacbf6f 100644 --- a/bootstrap/unix-44/OPV.h +++ b/bootstrap/unix-44/OPV.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPV__h #define OPV__h diff --git a/bootstrap/unix-44/Platform.c b/bootstrap/unix-44/Platform.c index 013e6f9c..864918a3 100644 --- a/bootstrap/unix-44/Platform.c +++ b/bootstrap/unix-44/Platform.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" typedef diff --git a/bootstrap/unix-44/Platform.h b/bootstrap/unix-44/Platform.h index 8b47d1c9..1d2eb565 100644 --- a/bootstrap/unix-44/Platform.h +++ b/bootstrap/unix-44/Platform.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Platform__h #define Platform__h diff --git a/bootstrap/unix-44/Reals.c b/bootstrap/unix-44/Reals.c index 65dad750..3f43d082 100644 --- a/bootstrap/unix-44/Reals.c +++ b/bootstrap/unix-44/Reals.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" diff --git a/bootstrap/unix-44/Reals.h b/bootstrap/unix-44/Reals.h index 166e977b..d6dbab1c 100644 --- a/bootstrap/unix-44/Reals.h +++ b/bootstrap/unix-44/Reals.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Reals__h #define Reals__h diff --git a/bootstrap/unix-44/Strings.c b/bootstrap/unix-44/Strings.c index 5038ca68..02a8124d 100644 --- a/bootstrap/unix-44/Strings.c +++ b/bootstrap/unix-44/Strings.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" diff --git a/bootstrap/unix-44/Strings.h b/bootstrap/unix-44/Strings.h index a8d8d207..809d6efe 100644 --- a/bootstrap/unix-44/Strings.h +++ b/bootstrap/unix-44/Strings.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Strings__h #define Strings__h diff --git a/bootstrap/unix-44/Texts.c b/bootstrap/unix-44/Texts.c index 1e81c3df..569e31bb 100644 --- a/bootstrap/unix-44/Texts.c +++ b/bootstrap/unix-44/Texts.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Files.h" #include "Modules.h" diff --git a/bootstrap/unix-44/Texts.h b/bootstrap/unix-44/Texts.h index 354c7ce7..eee6ba91 100644 --- a/bootstrap/unix-44/Texts.h +++ b/bootstrap/unix-44/Texts.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Texts__h #define Texts__h diff --git a/bootstrap/unix-44/Vishap.c b/bootstrap/unix-44/Vishap.c index 2b9c3901..96510cf9 100644 --- a/bootstrap/unix-44/Vishap.c +++ b/bootstrap/unix-44/Vishap.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkamSf */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkamSf */ #include "SYSTEM.h" #include "Configuration.h" #include "Heap.h" diff --git a/bootstrap/unix-44/errors.c b/bootstrap/unix-44/errors.c index 25a074a9..987f1c5e 100644 --- a/bootstrap/unix-44/errors.c +++ b/bootstrap/unix-44/errors.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" typedef diff --git a/bootstrap/unix-44/errors.h b/bootstrap/unix-44/errors.h index c4fe8850..cf182e80 100644 --- a/bootstrap/unix-44/errors.h +++ b/bootstrap/unix-44/errors.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef errors__h #define errors__h diff --git a/bootstrap/unix-44/extTools.c b/bootstrap/unix-44/extTools.c index 6f1a6654..a362ee65 100644 --- a/bootstrap/unix-44/extTools.c +++ b/bootstrap/unix-44/extTools.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "Console.h" diff --git a/bootstrap/unix-44/extTools.h b/bootstrap/unix-44/extTools.h index 95d07ddd..e064ef01 100644 --- a/bootstrap/unix-44/extTools.h +++ b/bootstrap/unix-44/extTools.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef extTools__h #define extTools__h diff --git a/bootstrap/unix-44/vt100.c b/bootstrap/unix-44/vt100.c index 649ea068..93a59097 100644 --- a/bootstrap/unix-44/vt100.c +++ b/bootstrap/unix-44/vt100.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Console.h" #include "Strings.h" diff --git a/bootstrap/unix-44/vt100.h b/bootstrap/unix-44/vt100.h index 6d210ec9..db19e2a6 100644 --- a/bootstrap/unix-44/vt100.h +++ b/bootstrap/unix-44/vt100.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef vt100__h #define vt100__h diff --git a/bootstrap/unix-48/Configuration.c b/bootstrap/unix-48/Configuration.c index a1992033..aef0c6c0 100644 --- a/bootstrap/unix-48/Configuration.c +++ b/bootstrap/unix-48/Configuration.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" diff --git a/bootstrap/unix-48/Configuration.h b/bootstrap/unix-48/Configuration.h index e7aed50a..4c931710 100644 --- a/bootstrap/unix-48/Configuration.h +++ b/bootstrap/unix-48/Configuration.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Configuration__h #define Configuration__h diff --git a/bootstrap/unix-48/Console.c b/bootstrap/unix-48/Console.c index 7f8fd8c0..1d3fe81f 100644 --- a/bootstrap/unix-48/Console.c +++ b/bootstrap/unix-48/Console.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Platform.h" diff --git a/bootstrap/unix-48/Console.h b/bootstrap/unix-48/Console.h index 316e7e46..8e12fc26 100644 --- a/bootstrap/unix-48/Console.h +++ b/bootstrap/unix-48/Console.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Console__h #define Console__h diff --git a/bootstrap/unix-48/Files.c b/bootstrap/unix-48/Files.c index f3b9b280..14bf860b 100644 --- a/bootstrap/unix-48/Files.c +++ b/bootstrap/unix-48/Files.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "Console.h" diff --git a/bootstrap/unix-48/Files.h b/bootstrap/unix-48/Files.h index 002d2dc5..2461434a 100644 --- a/bootstrap/unix-48/Files.h +++ b/bootstrap/unix-48/Files.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #ifndef Files__h #define Files__h diff --git a/bootstrap/unix-48/Heap.c b/bootstrap/unix-48/Heap.c index cbb21626..4158550b 100644 --- a/bootstrap/unix-48/Heap.c +++ b/bootstrap/unix-48/Heap.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tskSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tskSfF */ #include "SYSTEM.h" struct Heap__1 { diff --git a/bootstrap/unix-48/Heap.h b/bootstrap/unix-48/Heap.h index d270a455..33b7f49f 100644 --- a/bootstrap/unix-48/Heap.h +++ b/bootstrap/unix-48/Heap.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tskSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tskSfF */ #ifndef Heap__h #define Heap__h diff --git a/bootstrap/unix-48/Modules.c b/bootstrap/unix-48/Modules.c index 6c0f5e0b..c2c2920a 100644 --- a/bootstrap/unix-48/Modules.c +++ b/bootstrap/unix-48/Modules.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Console.h" #include "Heap.h" diff --git a/bootstrap/unix-48/Modules.h b/bootstrap/unix-48/Modules.h index 5968d1aa..d3b57a01 100644 --- a/bootstrap/unix-48/Modules.h +++ b/bootstrap/unix-48/Modules.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Modules__h #define Modules__h diff --git a/bootstrap/unix-48/OPB.c b/bootstrap/unix-48/OPB.c index 0c22a7a7..7a1ae82b 100644 --- a/bootstrap/unix-48/OPB.c +++ b/bootstrap/unix-48/OPB.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPM.h" #include "OPS.h" diff --git a/bootstrap/unix-48/OPB.h b/bootstrap/unix-48/OPB.h index 8cd47ee6..8e98db79 100644 --- a/bootstrap/unix-48/OPB.h +++ b/bootstrap/unix-48/OPB.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPB__h #define OPB__h diff --git a/bootstrap/unix-48/OPC.c b/bootstrap/unix-48/OPC.c index 32a1496f..1d2d84d1 100644 --- a/bootstrap/unix-48/OPC.c +++ b/bootstrap/unix-48/OPC.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "OPM.h" @@ -1241,7 +1241,7 @@ static void OPC_GenHeaderMsg (void) OPM_WriteString((CHAR*)"/*", (LONGINT)3); OPM_WriteString((CHAR*)" voc ", (LONGINT)6); OPM_Write(' '); - OPM_WriteString((CHAR*)"1.2 [2016/06/15] for gcc LP64 on cygwin", (LONGINT)40); + OPM_WriteString((CHAR*)"1.95 [2016/06/30] for gcc LP64 on cygwin", (LONGINT)41); OPM_Write(' '); i = 0; while (i <= 31) { diff --git a/bootstrap/unix-48/OPC.h b/bootstrap/unix-48/OPC.h index 713ea3b2..467de9eb 100644 --- a/bootstrap/unix-48/OPC.h +++ b/bootstrap/unix-48/OPC.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPC__h #define OPC__h diff --git a/bootstrap/unix-48/OPM.c b/bootstrap/unix-48/OPM.c index 3d68d2be..3ad30ae3 100644 --- a/bootstrap/unix-48/OPM.c +++ b/bootstrap/unix-48/OPM.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "Console.h" @@ -198,7 +198,7 @@ BOOLEAN OPM_OpenPar (void) if (Platform_ArgCount == 1) { OPM_LogWLn(); OPM_LogWStr((CHAR*)"Vishap Oberon-2 compiler v", (LONGINT)27); - OPM_LogWStr((CHAR*)"1.2 [2016/06/15] for gcc LP64 on cygwin", (LONGINT)40); + OPM_LogWStr((CHAR*)"1.95 [2016/06/30] for gcc LP64 on cygwin", (LONGINT)41); OPM_LogW('.'); OPM_LogWLn(); OPM_LogWStr((CHAR*)"Based on Ofront by Software Templ OEG, continued by Norayr Chilingarian and others.", (LONGINT)84); diff --git a/bootstrap/unix-48/OPM.h b/bootstrap/unix-48/OPM.h index 68bf3af0..8f0040f4 100644 --- a/bootstrap/unix-48/OPM.h +++ b/bootstrap/unix-48/OPM.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPM__h #define OPM__h diff --git a/bootstrap/unix-48/OPP.c b/bootstrap/unix-48/OPP.c index f0530bb4..845635b3 100644 --- a/bootstrap/unix-48/OPP.c +++ b/bootstrap/unix-48/OPP.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPB.h" #include "OPM.h" diff --git a/bootstrap/unix-48/OPP.h b/bootstrap/unix-48/OPP.h index 1e0a1809..ddacbb19 100644 --- a/bootstrap/unix-48/OPP.h +++ b/bootstrap/unix-48/OPP.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPP__h #define OPP__h diff --git a/bootstrap/unix-48/OPS.c b/bootstrap/unix-48/OPS.c index 88944148..071a1dc0 100644 --- a/bootstrap/unix-48/OPS.c +++ b/bootstrap/unix-48/OPS.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #include "SYSTEM.h" #include "OPM.h" diff --git a/bootstrap/unix-48/OPS.h b/bootstrap/unix-48/OPS.h index 87a614f4..afca4213 100644 --- a/bootstrap/unix-48/OPS.h +++ b/bootstrap/unix-48/OPS.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #ifndef OPS__h #define OPS__h diff --git a/bootstrap/unix-48/OPT.c b/bootstrap/unix-48/OPT.c index fc80ce02..16157fca 100644 --- a/bootstrap/unix-48/OPT.c +++ b/bootstrap/unix-48/OPT.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPM.h" #include "OPS.h" diff --git a/bootstrap/unix-48/OPT.h b/bootstrap/unix-48/OPT.h index 1a22d0df..826b5123 100644 --- a/bootstrap/unix-48/OPT.h +++ b/bootstrap/unix-48/OPT.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPT__h #define OPT__h diff --git a/bootstrap/unix-48/OPV.c b/bootstrap/unix-48/OPV.c index 572285dc..2223918b 100644 --- a/bootstrap/unix-48/OPV.c +++ b/bootstrap/unix-48/OPV.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPC.h" #include "OPM.h" diff --git a/bootstrap/unix-48/OPV.h b/bootstrap/unix-48/OPV.h index 9907a1ef..ecacbf6f 100644 --- a/bootstrap/unix-48/OPV.h +++ b/bootstrap/unix-48/OPV.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPV__h #define OPV__h diff --git a/bootstrap/unix-48/Platform.c b/bootstrap/unix-48/Platform.c index 013e6f9c..864918a3 100644 --- a/bootstrap/unix-48/Platform.c +++ b/bootstrap/unix-48/Platform.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" typedef diff --git a/bootstrap/unix-48/Platform.h b/bootstrap/unix-48/Platform.h index 8b47d1c9..1d2eb565 100644 --- a/bootstrap/unix-48/Platform.h +++ b/bootstrap/unix-48/Platform.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Platform__h #define Platform__h diff --git a/bootstrap/unix-48/Reals.c b/bootstrap/unix-48/Reals.c index 65dad750..3f43d082 100644 --- a/bootstrap/unix-48/Reals.c +++ b/bootstrap/unix-48/Reals.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" diff --git a/bootstrap/unix-48/Reals.h b/bootstrap/unix-48/Reals.h index 166e977b..d6dbab1c 100644 --- a/bootstrap/unix-48/Reals.h +++ b/bootstrap/unix-48/Reals.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Reals__h #define Reals__h diff --git a/bootstrap/unix-48/Strings.c b/bootstrap/unix-48/Strings.c index 5038ca68..02a8124d 100644 --- a/bootstrap/unix-48/Strings.c +++ b/bootstrap/unix-48/Strings.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" diff --git a/bootstrap/unix-48/Strings.h b/bootstrap/unix-48/Strings.h index a8d8d207..809d6efe 100644 --- a/bootstrap/unix-48/Strings.h +++ b/bootstrap/unix-48/Strings.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Strings__h #define Strings__h diff --git a/bootstrap/unix-48/Texts.c b/bootstrap/unix-48/Texts.c index 8c2cc3b2..5888e0b3 100644 --- a/bootstrap/unix-48/Texts.c +++ b/bootstrap/unix-48/Texts.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Files.h" #include "Modules.h" diff --git a/bootstrap/unix-48/Texts.h b/bootstrap/unix-48/Texts.h index 7b66d3ce..a6e717f6 100644 --- a/bootstrap/unix-48/Texts.h +++ b/bootstrap/unix-48/Texts.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Texts__h #define Texts__h diff --git a/bootstrap/unix-48/Vishap.c b/bootstrap/unix-48/Vishap.c index 2b9c3901..96510cf9 100644 --- a/bootstrap/unix-48/Vishap.c +++ b/bootstrap/unix-48/Vishap.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkamSf */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkamSf */ #include "SYSTEM.h" #include "Configuration.h" #include "Heap.h" diff --git a/bootstrap/unix-48/errors.c b/bootstrap/unix-48/errors.c index 25a074a9..987f1c5e 100644 --- a/bootstrap/unix-48/errors.c +++ b/bootstrap/unix-48/errors.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" typedef diff --git a/bootstrap/unix-48/errors.h b/bootstrap/unix-48/errors.h index c4fe8850..cf182e80 100644 --- a/bootstrap/unix-48/errors.h +++ b/bootstrap/unix-48/errors.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef errors__h #define errors__h diff --git a/bootstrap/unix-48/extTools.c b/bootstrap/unix-48/extTools.c index 6f1a6654..a362ee65 100644 --- a/bootstrap/unix-48/extTools.c +++ b/bootstrap/unix-48/extTools.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "Console.h" diff --git a/bootstrap/unix-48/extTools.h b/bootstrap/unix-48/extTools.h index 95d07ddd..e064ef01 100644 --- a/bootstrap/unix-48/extTools.h +++ b/bootstrap/unix-48/extTools.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef extTools__h #define extTools__h diff --git a/bootstrap/unix-48/vt100.c b/bootstrap/unix-48/vt100.c index 649ea068..93a59097 100644 --- a/bootstrap/unix-48/vt100.c +++ b/bootstrap/unix-48/vt100.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Console.h" #include "Strings.h" diff --git a/bootstrap/unix-48/vt100.h b/bootstrap/unix-48/vt100.h index 6d210ec9..db19e2a6 100644 --- a/bootstrap/unix-48/vt100.h +++ b/bootstrap/unix-48/vt100.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef vt100__h #define vt100__h diff --git a/bootstrap/unix-88/Configuration.c b/bootstrap/unix-88/Configuration.c index c4d62d40..bbdc22b6 100644 --- a/bootstrap/unix-88/Configuration.c +++ b/bootstrap/unix-88/Configuration.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/unix-88/Configuration.h b/bootstrap/unix-88/Configuration.h index b076eaee..70939b4f 100644 --- a/bootstrap/unix-88/Configuration.h +++ b/bootstrap/unix-88/Configuration.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Configuration__h #define Configuration__h diff --git a/bootstrap/unix-88/Console.c b/bootstrap/unix-88/Console.c index 5946cb5d..8a185970 100644 --- a/bootstrap/unix-88/Console.c +++ b/bootstrap/unix-88/Console.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Platform.h" diff --git a/bootstrap/unix-88/Console.h b/bootstrap/unix-88/Console.h index d8a9b11e..fb5f7f79 100644 --- a/bootstrap/unix-88/Console.h +++ b/bootstrap/unix-88/Console.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Console__h #define Console__h diff --git a/bootstrap/unix-88/Files.c b/bootstrap/unix-88/Files.c index b48620b0..aac48dc7 100644 --- a/bootstrap/unix-88/Files.c +++ b/bootstrap/unix-88/Files.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Configuration.h" diff --git a/bootstrap/unix-88/Files.h b/bootstrap/unix-88/Files.h index 01c37212..4690dbf8 100644 --- a/bootstrap/unix-88/Files.h +++ b/bootstrap/unix-88/Files.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #ifndef Files__h #define Files__h diff --git a/bootstrap/unix-88/Heap.c b/bootstrap/unix-88/Heap.c index 929a8283..28826f74 100644 --- a/bootstrap/unix-88/Heap.c +++ b/bootstrap/unix-88/Heap.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tskSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tskSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/unix-88/Heap.h b/bootstrap/unix-88/Heap.h index 1b23ddb3..5b65ee7d 100644 --- a/bootstrap/unix-88/Heap.h +++ b/bootstrap/unix-88/Heap.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tskSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tskSfF */ #ifndef Heap__h #define Heap__h diff --git a/bootstrap/unix-88/Modules.c b/bootstrap/unix-88/Modules.c index 77278391..b59eaa3b 100644 --- a/bootstrap/unix-88/Modules.c +++ b/bootstrap/unix-88/Modules.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Console.h" diff --git a/bootstrap/unix-88/Modules.h b/bootstrap/unix-88/Modules.h index 88bb46e1..77f3c9a7 100644 --- a/bootstrap/unix-88/Modules.h +++ b/bootstrap/unix-88/Modules.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Modules__h #define Modules__h diff --git a/bootstrap/unix-88/OPB.c b/bootstrap/unix-88/OPB.c index 428d0881..25c048b7 100644 --- a/bootstrap/unix-88/OPB.c +++ b/bootstrap/unix-88/OPB.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "OPM.h" diff --git a/bootstrap/unix-88/OPB.h b/bootstrap/unix-88/OPB.h index c8165f54..50e1e1f3 100644 --- a/bootstrap/unix-88/OPB.h +++ b/bootstrap/unix-88/OPB.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPB__h #define OPB__h diff --git a/bootstrap/unix-88/OPC.c b/bootstrap/unix-88/OPC.c index 10468b9e..9e4a4560 100644 --- a/bootstrap/unix-88/OPC.c +++ b/bootstrap/unix-88/OPC.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Configuration.h" @@ -1242,7 +1242,7 @@ static void OPC_GenHeaderMsg (void) OPM_WriteString((CHAR*)"/*", (LONGINT)3); OPM_WriteString((CHAR*)" voc ", (LONGINT)6); OPM_Write(' '); - OPM_WriteString((CHAR*)"1.2 [2016/06/15] for gcc LP64 on cygwin", (LONGINT)40); + OPM_WriteString((CHAR*)"1.95 [2016/06/30] for gcc LP64 on cygwin", (LONGINT)41); OPM_Write(' '); i = 0; while (i <= 63) { diff --git a/bootstrap/unix-88/OPC.h b/bootstrap/unix-88/OPC.h index a91a3810..14f92cf9 100644 --- a/bootstrap/unix-88/OPC.h +++ b/bootstrap/unix-88/OPC.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPC__h #define OPC__h diff --git a/bootstrap/unix-88/OPM.c b/bootstrap/unix-88/OPM.c index 798fb492..05ccbb11 100644 --- a/bootstrap/unix-88/OPM.c +++ b/bootstrap/unix-88/OPM.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Configuration.h" @@ -199,7 +199,7 @@ BOOLEAN OPM_OpenPar (void) if (Platform_ArgCount == 1) { OPM_LogWLn(); OPM_LogWStr((CHAR*)"Vishap Oberon-2 compiler v", (LONGINT)27); - OPM_LogWStr((CHAR*)"1.2 [2016/06/15] for gcc LP64 on cygwin", (LONGINT)40); + OPM_LogWStr((CHAR*)"1.95 [2016/06/30] for gcc LP64 on cygwin", (LONGINT)41); OPM_LogW('.'); OPM_LogWLn(); OPM_LogWStr((CHAR*)"Based on Ofront by Software Templ OEG, continued by Norayr Chilingarian and others.", (LONGINT)84); diff --git a/bootstrap/unix-88/OPM.h b/bootstrap/unix-88/OPM.h index e09dbf82..72cb3858 100644 --- a/bootstrap/unix-88/OPM.h +++ b/bootstrap/unix-88/OPM.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPM__h #define OPM__h diff --git a/bootstrap/unix-88/OPP.c b/bootstrap/unix-88/OPP.c index 3bc74ce6..5c5c5010 100644 --- a/bootstrap/unix-88/OPP.c +++ b/bootstrap/unix-88/OPP.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "OPB.h" diff --git a/bootstrap/unix-88/OPP.h b/bootstrap/unix-88/OPP.h index 30cf0643..6c46f388 100644 --- a/bootstrap/unix-88/OPP.h +++ b/bootstrap/unix-88/OPP.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPP__h #define OPP__h diff --git a/bootstrap/unix-88/OPS.c b/bootstrap/unix-88/OPS.c index bb08e1f5..6fbbdde1 100644 --- a/bootstrap/unix-88/OPS.c +++ b/bootstrap/unix-88/OPS.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #define LARGE #include "SYSTEM.h" #include "OPM.h" diff --git a/bootstrap/unix-88/OPS.h b/bootstrap/unix-88/OPS.h index eab85912..62358186 100644 --- a/bootstrap/unix-88/OPS.h +++ b/bootstrap/unix-88/OPS.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #ifndef OPS__h #define OPS__h diff --git a/bootstrap/unix-88/OPT.c b/bootstrap/unix-88/OPT.c index 5f8854a1..9a1045af 100644 --- a/bootstrap/unix-88/OPT.c +++ b/bootstrap/unix-88/OPT.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "OPM.h" diff --git a/bootstrap/unix-88/OPT.h b/bootstrap/unix-88/OPT.h index 4c3442b5..99ba8c8a 100644 --- a/bootstrap/unix-88/OPT.h +++ b/bootstrap/unix-88/OPT.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPT__h #define OPT__h diff --git a/bootstrap/unix-88/OPV.c b/bootstrap/unix-88/OPV.c index 627e325b..2a83cc64 100644 --- a/bootstrap/unix-88/OPV.c +++ b/bootstrap/unix-88/OPV.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "OPC.h" diff --git a/bootstrap/unix-88/OPV.h b/bootstrap/unix-88/OPV.h index 7f0a5b8a..23d69e2d 100644 --- a/bootstrap/unix-88/OPV.h +++ b/bootstrap/unix-88/OPV.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPV__h #define OPV__h diff --git a/bootstrap/unix-88/Platform.c b/bootstrap/unix-88/Platform.c index 9a892174..52f8d7bf 100644 --- a/bootstrap/unix-88/Platform.c +++ b/bootstrap/unix-88/Platform.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/unix-88/Platform.h b/bootstrap/unix-88/Platform.h index 7dca4035..88defee9 100644 --- a/bootstrap/unix-88/Platform.h +++ b/bootstrap/unix-88/Platform.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Platform__h #define Platform__h diff --git a/bootstrap/unix-88/Reals.c b/bootstrap/unix-88/Reals.c index edf27d40..152db07b 100644 --- a/bootstrap/unix-88/Reals.c +++ b/bootstrap/unix-88/Reals.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/unix-88/Reals.h b/bootstrap/unix-88/Reals.h index 5febc0f1..bdc8e2a5 100644 --- a/bootstrap/unix-88/Reals.h +++ b/bootstrap/unix-88/Reals.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Reals__h #define Reals__h diff --git a/bootstrap/unix-88/Strings.c b/bootstrap/unix-88/Strings.c index 98eef9eb..c8d54be5 100644 --- a/bootstrap/unix-88/Strings.c +++ b/bootstrap/unix-88/Strings.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/unix-88/Strings.h b/bootstrap/unix-88/Strings.h index 05e86973..256941f4 100644 --- a/bootstrap/unix-88/Strings.h +++ b/bootstrap/unix-88/Strings.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Strings__h #define Strings__h diff --git a/bootstrap/unix-88/Texts.c b/bootstrap/unix-88/Texts.c index 307bec01..077da855 100644 --- a/bootstrap/unix-88/Texts.c +++ b/bootstrap/unix-88/Texts.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Files.h" diff --git a/bootstrap/unix-88/Texts.h b/bootstrap/unix-88/Texts.h index d1805878..2d4eb745 100644 --- a/bootstrap/unix-88/Texts.h +++ b/bootstrap/unix-88/Texts.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Texts__h #define Texts__h diff --git a/bootstrap/unix-88/Vishap.c b/bootstrap/unix-88/Vishap.c index d084e34a..ac122892 100644 --- a/bootstrap/unix-88/Vishap.c +++ b/bootstrap/unix-88/Vishap.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkamSf */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkamSf */ #define LARGE #include "SYSTEM.h" #include "Configuration.h" diff --git a/bootstrap/unix-88/errors.c b/bootstrap/unix-88/errors.c index 879f5cf7..6a733b09 100644 --- a/bootstrap/unix-88/errors.c +++ b/bootstrap/unix-88/errors.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/unix-88/errors.h b/bootstrap/unix-88/errors.h index 43cd79a9..72bdc98e 100644 --- a/bootstrap/unix-88/errors.h +++ b/bootstrap/unix-88/errors.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef errors__h #define errors__h diff --git a/bootstrap/unix-88/extTools.c b/bootstrap/unix-88/extTools.c index 7d1a2da9..2fd5ccd0 100644 --- a/bootstrap/unix-88/extTools.c +++ b/bootstrap/unix-88/extTools.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Configuration.h" diff --git a/bootstrap/unix-88/extTools.h b/bootstrap/unix-88/extTools.h index 61ca56e4..81db5d3b 100644 --- a/bootstrap/unix-88/extTools.h +++ b/bootstrap/unix-88/extTools.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef extTools__h #define extTools__h diff --git a/bootstrap/unix-88/vt100.c b/bootstrap/unix-88/vt100.c index 88c386a8..c584b083 100644 --- a/bootstrap/unix-88/vt100.c +++ b/bootstrap/unix-88/vt100.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Console.h" diff --git a/bootstrap/unix-88/vt100.h b/bootstrap/unix-88/vt100.h index b124915f..d981ba62 100644 --- a/bootstrap/unix-88/vt100.h +++ b/bootstrap/unix-88/vt100.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef vt100__h #define vt100__h diff --git a/bootstrap/windows-48/Configuration.c b/bootstrap/windows-48/Configuration.c index a1992033..aef0c6c0 100644 --- a/bootstrap/windows-48/Configuration.c +++ b/bootstrap/windows-48/Configuration.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" diff --git a/bootstrap/windows-48/Configuration.h b/bootstrap/windows-48/Configuration.h index e7aed50a..4c931710 100644 --- a/bootstrap/windows-48/Configuration.h +++ b/bootstrap/windows-48/Configuration.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Configuration__h #define Configuration__h diff --git a/bootstrap/windows-48/Console.c b/bootstrap/windows-48/Console.c index 2f8e5f21..ba50baa8 100644 --- a/bootstrap/windows-48/Console.c +++ b/bootstrap/windows-48/Console.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Platform.h" diff --git a/bootstrap/windows-48/Console.h b/bootstrap/windows-48/Console.h index 316e7e46..8e12fc26 100644 --- a/bootstrap/windows-48/Console.h +++ b/bootstrap/windows-48/Console.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Console__h #define Console__h diff --git a/bootstrap/windows-48/Files.c b/bootstrap/windows-48/Files.c index 25fa879e..0e1ffba8 100644 --- a/bootstrap/windows-48/Files.c +++ b/bootstrap/windows-48/Files.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "Console.h" diff --git a/bootstrap/windows-48/Files.h b/bootstrap/windows-48/Files.h index 226e2815..b6b7879e 100644 --- a/bootstrap/windows-48/Files.h +++ b/bootstrap/windows-48/Files.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #ifndef Files__h #define Files__h diff --git a/bootstrap/windows-48/Heap.c b/bootstrap/windows-48/Heap.c index cbb21626..4158550b 100644 --- a/bootstrap/windows-48/Heap.c +++ b/bootstrap/windows-48/Heap.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tskSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tskSfF */ #include "SYSTEM.h" struct Heap__1 { diff --git a/bootstrap/windows-48/Heap.h b/bootstrap/windows-48/Heap.h index d270a455..33b7f49f 100644 --- a/bootstrap/windows-48/Heap.h +++ b/bootstrap/windows-48/Heap.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tskSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tskSfF */ #ifndef Heap__h #define Heap__h diff --git a/bootstrap/windows-48/Modules.c b/bootstrap/windows-48/Modules.c index 6c0f5e0b..c2c2920a 100644 --- a/bootstrap/windows-48/Modules.c +++ b/bootstrap/windows-48/Modules.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Console.h" #include "Heap.h" diff --git a/bootstrap/windows-48/Modules.h b/bootstrap/windows-48/Modules.h index 5968d1aa..d3b57a01 100644 --- a/bootstrap/windows-48/Modules.h +++ b/bootstrap/windows-48/Modules.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Modules__h #define Modules__h diff --git a/bootstrap/windows-48/OPB.c b/bootstrap/windows-48/OPB.c index 0c22a7a7..7a1ae82b 100644 --- a/bootstrap/windows-48/OPB.c +++ b/bootstrap/windows-48/OPB.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPM.h" #include "OPS.h" diff --git a/bootstrap/windows-48/OPB.h b/bootstrap/windows-48/OPB.h index 8cd47ee6..8e98db79 100644 --- a/bootstrap/windows-48/OPB.h +++ b/bootstrap/windows-48/OPB.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPB__h #define OPB__h diff --git a/bootstrap/windows-48/OPC.c b/bootstrap/windows-48/OPC.c index 32a1496f..1d2d84d1 100644 --- a/bootstrap/windows-48/OPC.c +++ b/bootstrap/windows-48/OPC.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "OPM.h" @@ -1241,7 +1241,7 @@ static void OPC_GenHeaderMsg (void) OPM_WriteString((CHAR*)"/*", (LONGINT)3); OPM_WriteString((CHAR*)" voc ", (LONGINT)6); OPM_Write(' '); - OPM_WriteString((CHAR*)"1.2 [2016/06/15] for gcc LP64 on cygwin", (LONGINT)40); + OPM_WriteString((CHAR*)"1.95 [2016/06/30] for gcc LP64 on cygwin", (LONGINT)41); OPM_Write(' '); i = 0; while (i <= 31) { diff --git a/bootstrap/windows-48/OPC.h b/bootstrap/windows-48/OPC.h index 713ea3b2..467de9eb 100644 --- a/bootstrap/windows-48/OPC.h +++ b/bootstrap/windows-48/OPC.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPC__h #define OPC__h diff --git a/bootstrap/windows-48/OPM.c b/bootstrap/windows-48/OPM.c index 3d68d2be..3ad30ae3 100644 --- a/bootstrap/windows-48/OPM.c +++ b/bootstrap/windows-48/OPM.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "Console.h" @@ -198,7 +198,7 @@ BOOLEAN OPM_OpenPar (void) if (Platform_ArgCount == 1) { OPM_LogWLn(); OPM_LogWStr((CHAR*)"Vishap Oberon-2 compiler v", (LONGINT)27); - OPM_LogWStr((CHAR*)"1.2 [2016/06/15] for gcc LP64 on cygwin", (LONGINT)40); + OPM_LogWStr((CHAR*)"1.95 [2016/06/30] for gcc LP64 on cygwin", (LONGINT)41); OPM_LogW('.'); OPM_LogWLn(); OPM_LogWStr((CHAR*)"Based on Ofront by Software Templ OEG, continued by Norayr Chilingarian and others.", (LONGINT)84); diff --git a/bootstrap/windows-48/OPM.h b/bootstrap/windows-48/OPM.h index 68bf3af0..8f0040f4 100644 --- a/bootstrap/windows-48/OPM.h +++ b/bootstrap/windows-48/OPM.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPM__h #define OPM__h diff --git a/bootstrap/windows-48/OPP.c b/bootstrap/windows-48/OPP.c index f0530bb4..845635b3 100644 --- a/bootstrap/windows-48/OPP.c +++ b/bootstrap/windows-48/OPP.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPB.h" #include "OPM.h" diff --git a/bootstrap/windows-48/OPP.h b/bootstrap/windows-48/OPP.h index 1e0a1809..ddacbb19 100644 --- a/bootstrap/windows-48/OPP.h +++ b/bootstrap/windows-48/OPP.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPP__h #define OPP__h diff --git a/bootstrap/windows-48/OPS.c b/bootstrap/windows-48/OPS.c index 88944148..071a1dc0 100644 --- a/bootstrap/windows-48/OPS.c +++ b/bootstrap/windows-48/OPS.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #include "SYSTEM.h" #include "OPM.h" diff --git a/bootstrap/windows-48/OPS.h b/bootstrap/windows-48/OPS.h index 87a614f4..afca4213 100644 --- a/bootstrap/windows-48/OPS.h +++ b/bootstrap/windows-48/OPS.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #ifndef OPS__h #define OPS__h diff --git a/bootstrap/windows-48/OPT.c b/bootstrap/windows-48/OPT.c index fc80ce02..16157fca 100644 --- a/bootstrap/windows-48/OPT.c +++ b/bootstrap/windows-48/OPT.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPM.h" #include "OPS.h" diff --git a/bootstrap/windows-48/OPT.h b/bootstrap/windows-48/OPT.h index 1a22d0df..826b5123 100644 --- a/bootstrap/windows-48/OPT.h +++ b/bootstrap/windows-48/OPT.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPT__h #define OPT__h diff --git a/bootstrap/windows-48/OPV.c b/bootstrap/windows-48/OPV.c index 572285dc..2223918b 100644 --- a/bootstrap/windows-48/OPV.c +++ b/bootstrap/windows-48/OPV.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPC.h" #include "OPM.h" diff --git a/bootstrap/windows-48/OPV.h b/bootstrap/windows-48/OPV.h index 9907a1ef..ecacbf6f 100644 --- a/bootstrap/windows-48/OPV.h +++ b/bootstrap/windows-48/OPV.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPV__h #define OPV__h diff --git a/bootstrap/windows-48/Platform.c b/bootstrap/windows-48/Platform.c index d097f9db..b5310405 100644 --- a/bootstrap/windows-48/Platform.c +++ b/bootstrap/windows-48/Platform.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" typedef diff --git a/bootstrap/windows-48/Platform.h b/bootstrap/windows-48/Platform.h index e912678e..11bd3410 100644 --- a/bootstrap/windows-48/Platform.h +++ b/bootstrap/windows-48/Platform.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Platform__h #define Platform__h diff --git a/bootstrap/windows-48/Reals.c b/bootstrap/windows-48/Reals.c index 65dad750..3f43d082 100644 --- a/bootstrap/windows-48/Reals.c +++ b/bootstrap/windows-48/Reals.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" diff --git a/bootstrap/windows-48/Reals.h b/bootstrap/windows-48/Reals.h index 166e977b..d6dbab1c 100644 --- a/bootstrap/windows-48/Reals.h +++ b/bootstrap/windows-48/Reals.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Reals__h #define Reals__h diff --git a/bootstrap/windows-48/Strings.c b/bootstrap/windows-48/Strings.c index 5038ca68..02a8124d 100644 --- a/bootstrap/windows-48/Strings.c +++ b/bootstrap/windows-48/Strings.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" diff --git a/bootstrap/windows-48/Strings.h b/bootstrap/windows-48/Strings.h index a8d8d207..809d6efe 100644 --- a/bootstrap/windows-48/Strings.h +++ b/bootstrap/windows-48/Strings.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Strings__h #define Strings__h diff --git a/bootstrap/windows-48/Texts.c b/bootstrap/windows-48/Texts.c index 8c2cc3b2..5888e0b3 100644 --- a/bootstrap/windows-48/Texts.c +++ b/bootstrap/windows-48/Texts.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Files.h" #include "Modules.h" diff --git a/bootstrap/windows-48/Texts.h b/bootstrap/windows-48/Texts.h index 7b66d3ce..a6e717f6 100644 --- a/bootstrap/windows-48/Texts.h +++ b/bootstrap/windows-48/Texts.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Texts__h #define Texts__h diff --git a/bootstrap/windows-48/Vishap.c b/bootstrap/windows-48/Vishap.c index 2b9c3901..96510cf9 100644 --- a/bootstrap/windows-48/Vishap.c +++ b/bootstrap/windows-48/Vishap.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkamSf */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkamSf */ #include "SYSTEM.h" #include "Configuration.h" #include "Heap.h" diff --git a/bootstrap/windows-48/errors.c b/bootstrap/windows-48/errors.c index 25a074a9..987f1c5e 100644 --- a/bootstrap/windows-48/errors.c +++ b/bootstrap/windows-48/errors.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" typedef diff --git a/bootstrap/windows-48/errors.h b/bootstrap/windows-48/errors.h index c4fe8850..cf182e80 100644 --- a/bootstrap/windows-48/errors.h +++ b/bootstrap/windows-48/errors.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef errors__h #define errors__h diff --git a/bootstrap/windows-48/extTools.c b/bootstrap/windows-48/extTools.c index 6f1a6654..a362ee65 100644 --- a/bootstrap/windows-48/extTools.c +++ b/bootstrap/windows-48/extTools.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "Console.h" diff --git a/bootstrap/windows-48/extTools.h b/bootstrap/windows-48/extTools.h index 95d07ddd..e064ef01 100644 --- a/bootstrap/windows-48/extTools.h +++ b/bootstrap/windows-48/extTools.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef extTools__h #define extTools__h diff --git a/bootstrap/windows-48/vt100.c b/bootstrap/windows-48/vt100.c index 649ea068..93a59097 100644 --- a/bootstrap/windows-48/vt100.c +++ b/bootstrap/windows-48/vt100.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Console.h" #include "Strings.h" diff --git a/bootstrap/windows-48/vt100.h b/bootstrap/windows-48/vt100.h index 6d210ec9..db19e2a6 100644 --- a/bootstrap/windows-48/vt100.h +++ b/bootstrap/windows-48/vt100.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef vt100__h #define vt100__h diff --git a/bootstrap/windows-88/Configuration.c b/bootstrap/windows-88/Configuration.c index c4d62d40..bbdc22b6 100644 --- a/bootstrap/windows-88/Configuration.c +++ b/bootstrap/windows-88/Configuration.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/windows-88/Configuration.h b/bootstrap/windows-88/Configuration.h index b076eaee..70939b4f 100644 --- a/bootstrap/windows-88/Configuration.h +++ b/bootstrap/windows-88/Configuration.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Configuration__h #define Configuration__h diff --git a/bootstrap/windows-88/Console.c b/bootstrap/windows-88/Console.c index e4c5285c..3c4d2c36 100644 --- a/bootstrap/windows-88/Console.c +++ b/bootstrap/windows-88/Console.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Platform.h" diff --git a/bootstrap/windows-88/Console.h b/bootstrap/windows-88/Console.h index d8a9b11e..fb5f7f79 100644 --- a/bootstrap/windows-88/Console.h +++ b/bootstrap/windows-88/Console.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Console__h #define Console__h diff --git a/bootstrap/windows-88/Files.c b/bootstrap/windows-88/Files.c index f5f4a2aa..38a8e591 100644 --- a/bootstrap/windows-88/Files.c +++ b/bootstrap/windows-88/Files.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Configuration.h" diff --git a/bootstrap/windows-88/Files.h b/bootstrap/windows-88/Files.h index 565ac5ff..dc789b69 100644 --- a/bootstrap/windows-88/Files.h +++ b/bootstrap/windows-88/Files.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #ifndef Files__h #define Files__h diff --git a/bootstrap/windows-88/Heap.c b/bootstrap/windows-88/Heap.c index 929a8283..28826f74 100644 --- a/bootstrap/windows-88/Heap.c +++ b/bootstrap/windows-88/Heap.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tskSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tskSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/windows-88/Heap.h b/bootstrap/windows-88/Heap.h index 1b23ddb3..5b65ee7d 100644 --- a/bootstrap/windows-88/Heap.h +++ b/bootstrap/windows-88/Heap.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tskSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tskSfF */ #ifndef Heap__h #define Heap__h diff --git a/bootstrap/windows-88/Modules.c b/bootstrap/windows-88/Modules.c index 77278391..b59eaa3b 100644 --- a/bootstrap/windows-88/Modules.c +++ b/bootstrap/windows-88/Modules.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Console.h" diff --git a/bootstrap/windows-88/Modules.h b/bootstrap/windows-88/Modules.h index 88bb46e1..77f3c9a7 100644 --- a/bootstrap/windows-88/Modules.h +++ b/bootstrap/windows-88/Modules.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Modules__h #define Modules__h diff --git a/bootstrap/windows-88/OPB.c b/bootstrap/windows-88/OPB.c index 428d0881..25c048b7 100644 --- a/bootstrap/windows-88/OPB.c +++ b/bootstrap/windows-88/OPB.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "OPM.h" diff --git a/bootstrap/windows-88/OPB.h b/bootstrap/windows-88/OPB.h index c8165f54..50e1e1f3 100644 --- a/bootstrap/windows-88/OPB.h +++ b/bootstrap/windows-88/OPB.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPB__h #define OPB__h diff --git a/bootstrap/windows-88/OPC.c b/bootstrap/windows-88/OPC.c index 10468b9e..9e4a4560 100644 --- a/bootstrap/windows-88/OPC.c +++ b/bootstrap/windows-88/OPC.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Configuration.h" @@ -1242,7 +1242,7 @@ static void OPC_GenHeaderMsg (void) OPM_WriteString((CHAR*)"/*", (LONGINT)3); OPM_WriteString((CHAR*)" voc ", (LONGINT)6); OPM_Write(' '); - OPM_WriteString((CHAR*)"1.2 [2016/06/15] for gcc LP64 on cygwin", (LONGINT)40); + OPM_WriteString((CHAR*)"1.95 [2016/06/30] for gcc LP64 on cygwin", (LONGINT)41); OPM_Write(' '); i = 0; while (i <= 63) { diff --git a/bootstrap/windows-88/OPC.h b/bootstrap/windows-88/OPC.h index a91a3810..14f92cf9 100644 --- a/bootstrap/windows-88/OPC.h +++ b/bootstrap/windows-88/OPC.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPC__h #define OPC__h diff --git a/bootstrap/windows-88/OPM.c b/bootstrap/windows-88/OPM.c index 798fb492..05ccbb11 100644 --- a/bootstrap/windows-88/OPM.c +++ b/bootstrap/windows-88/OPM.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Configuration.h" @@ -199,7 +199,7 @@ BOOLEAN OPM_OpenPar (void) if (Platform_ArgCount == 1) { OPM_LogWLn(); OPM_LogWStr((CHAR*)"Vishap Oberon-2 compiler v", (LONGINT)27); - OPM_LogWStr((CHAR*)"1.2 [2016/06/15] for gcc LP64 on cygwin", (LONGINT)40); + OPM_LogWStr((CHAR*)"1.95 [2016/06/30] for gcc LP64 on cygwin", (LONGINT)41); OPM_LogW('.'); OPM_LogWLn(); OPM_LogWStr((CHAR*)"Based on Ofront by Software Templ OEG, continued by Norayr Chilingarian and others.", (LONGINT)84); diff --git a/bootstrap/windows-88/OPM.h b/bootstrap/windows-88/OPM.h index e09dbf82..72cb3858 100644 --- a/bootstrap/windows-88/OPM.h +++ b/bootstrap/windows-88/OPM.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPM__h #define OPM__h diff --git a/bootstrap/windows-88/OPP.c b/bootstrap/windows-88/OPP.c index 3bc74ce6..5c5c5010 100644 --- a/bootstrap/windows-88/OPP.c +++ b/bootstrap/windows-88/OPP.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "OPB.h" diff --git a/bootstrap/windows-88/OPP.h b/bootstrap/windows-88/OPP.h index 30cf0643..6c46f388 100644 --- a/bootstrap/windows-88/OPP.h +++ b/bootstrap/windows-88/OPP.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPP__h #define OPP__h diff --git a/bootstrap/windows-88/OPS.c b/bootstrap/windows-88/OPS.c index bb08e1f5..6fbbdde1 100644 --- a/bootstrap/windows-88/OPS.c +++ b/bootstrap/windows-88/OPS.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #define LARGE #include "SYSTEM.h" #include "OPM.h" diff --git a/bootstrap/windows-88/OPS.h b/bootstrap/windows-88/OPS.h index eab85912..62358186 100644 --- a/bootstrap/windows-88/OPS.h +++ b/bootstrap/windows-88/OPS.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #ifndef OPS__h #define OPS__h diff --git a/bootstrap/windows-88/OPT.c b/bootstrap/windows-88/OPT.c index 5f8854a1..9a1045af 100644 --- a/bootstrap/windows-88/OPT.c +++ b/bootstrap/windows-88/OPT.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "OPM.h" diff --git a/bootstrap/windows-88/OPT.h b/bootstrap/windows-88/OPT.h index 4c3442b5..99ba8c8a 100644 --- a/bootstrap/windows-88/OPT.h +++ b/bootstrap/windows-88/OPT.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPT__h #define OPT__h diff --git a/bootstrap/windows-88/OPV.c b/bootstrap/windows-88/OPV.c index 627e325b..2a83cc64 100644 --- a/bootstrap/windows-88/OPV.c +++ b/bootstrap/windows-88/OPV.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "OPC.h" diff --git a/bootstrap/windows-88/OPV.h b/bootstrap/windows-88/OPV.h index 7f0a5b8a..23d69e2d 100644 --- a/bootstrap/windows-88/OPV.h +++ b/bootstrap/windows-88/OPV.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPV__h #define OPV__h diff --git a/bootstrap/windows-88/Platform.c b/bootstrap/windows-88/Platform.c index 78274e99..1079f225 100644 --- a/bootstrap/windows-88/Platform.c +++ b/bootstrap/windows-88/Platform.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/windows-88/Platform.h b/bootstrap/windows-88/Platform.h index c3b2dd2d..90e32ce3 100644 --- a/bootstrap/windows-88/Platform.h +++ b/bootstrap/windows-88/Platform.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Platform__h #define Platform__h diff --git a/bootstrap/windows-88/Reals.c b/bootstrap/windows-88/Reals.c index edf27d40..152db07b 100644 --- a/bootstrap/windows-88/Reals.c +++ b/bootstrap/windows-88/Reals.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/windows-88/Reals.h b/bootstrap/windows-88/Reals.h index 5febc0f1..bdc8e2a5 100644 --- a/bootstrap/windows-88/Reals.h +++ b/bootstrap/windows-88/Reals.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Reals__h #define Reals__h diff --git a/bootstrap/windows-88/Strings.c b/bootstrap/windows-88/Strings.c index 98eef9eb..c8d54be5 100644 --- a/bootstrap/windows-88/Strings.c +++ b/bootstrap/windows-88/Strings.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/windows-88/Strings.h b/bootstrap/windows-88/Strings.h index 05e86973..256941f4 100644 --- a/bootstrap/windows-88/Strings.h +++ b/bootstrap/windows-88/Strings.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Strings__h #define Strings__h diff --git a/bootstrap/windows-88/Texts.c b/bootstrap/windows-88/Texts.c index 307bec01..077da855 100644 --- a/bootstrap/windows-88/Texts.c +++ b/bootstrap/windows-88/Texts.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Files.h" diff --git a/bootstrap/windows-88/Texts.h b/bootstrap/windows-88/Texts.h index d1805878..2d4eb745 100644 --- a/bootstrap/windows-88/Texts.h +++ b/bootstrap/windows-88/Texts.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Texts__h #define Texts__h diff --git a/bootstrap/windows-88/Vishap.c b/bootstrap/windows-88/Vishap.c index d084e34a..ac122892 100644 --- a/bootstrap/windows-88/Vishap.c +++ b/bootstrap/windows-88/Vishap.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkamSf */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkamSf */ #define LARGE #include "SYSTEM.h" #include "Configuration.h" diff --git a/bootstrap/windows-88/errors.c b/bootstrap/windows-88/errors.c index 879f5cf7..6a733b09 100644 --- a/bootstrap/windows-88/errors.c +++ b/bootstrap/windows-88/errors.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/windows-88/errors.h b/bootstrap/windows-88/errors.h index 43cd79a9..72bdc98e 100644 --- a/bootstrap/windows-88/errors.h +++ b/bootstrap/windows-88/errors.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef errors__h #define errors__h diff --git a/bootstrap/windows-88/extTools.c b/bootstrap/windows-88/extTools.c index 7d1a2da9..2fd5ccd0 100644 --- a/bootstrap/windows-88/extTools.c +++ b/bootstrap/windows-88/extTools.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Configuration.h" diff --git a/bootstrap/windows-88/extTools.h b/bootstrap/windows-88/extTools.h index 61ca56e4..81db5d3b 100644 --- a/bootstrap/windows-88/extTools.h +++ b/bootstrap/windows-88/extTools.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef extTools__h #define extTools__h diff --git a/bootstrap/windows-88/vt100.c b/bootstrap/windows-88/vt100.c index 88c386a8..c584b083 100644 --- a/bootstrap/windows-88/vt100.c +++ b/bootstrap/windows-88/vt100.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Console.h" diff --git a/bootstrap/windows-88/vt100.h b/bootstrap/windows-88/vt100.h index b124915f..d981ba62 100644 --- a/bootstrap/windows-88/vt100.h +++ b/bootstrap/windows-88/vt100.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef vt100__h #define vt100__h diff --git a/makefile b/makefile index 4f2dfc60..777da4a7 100644 --- a/makefile +++ b/makefile @@ -133,10 +133,19 @@ clean: configuration full: configuration @make -f src/tools/make/vishap.make -s installable @make -f src/tools/make/vishap.make -s clean +# Make bootstrap compiler from source suitable for current data model + @make -f src/tools/make/vishap.make -s compilerfromsavedsource +# Use bootstrap compiler to make compiler binary from latest compiler sources @make -f src/tools/make/vishap.make -s translate @make -f src/tools/make/vishap.make -s assemble +# Use latest compiler to make compiler binary from latest compiler sources + @make -f src/tools/make/vishap.make -s translate + @make -f src/tools/make/vishap.make -s assemble + @printf "\n\n--- Compiler build successfull ---\n\n" @make -f src/tools/make/vishap.make -s browsercmd @make -f src/tools/make/vishap.make -s library + @printf "\n\n--- Library build successfull ---\n\n" + @make -f src/tools/make/vishap.make -s checksum @make -f src/tools/make/vishap.make -s install @make -f src/tools/make/vishap.make -s confidence @make -f src/tools/make/vishap.make -s showpath @@ -183,7 +192,12 @@ uninstall: configuration # bootstrap: Rebuild the bootstrap directories +# If the bootstrap directories are broken or only partially +# built then run 'make revertbootstrap' first. bootstrap: configuration + @make -f src/tools/make/vishap.make -s clean + @make -f src/tools/make/vishap.make -s translate + @make -f src/tools/make/vishap.make -s assemble rm -rf bootstrap/* make -f src/tools/make/vishap.make -s translate INTSIZE=2 ADRSIZE=4 ALIGNMENT=4 PLATFORM=unix BUILDDIR=bootstrap/unix-44 && rm bootstrap/unix-44/*.sym make -f src/tools/make/vishap.make -s translate INTSIZE=2 ADRSIZE=4 ALIGNMENT=8 PLATFORM=unix BUILDDIR=bootstrap/unix-48 && rm bootstrap/unix-48/*.sym diff --git a/src/tools/make/vishap.make b/src/tools/make/vishap.make index cd88c04e..54ee3289 100644 --- a/src/tools/make/vishap.make +++ b/src/tools/make/vishap.make @@ -362,6 +362,12 @@ library: v4 ooc2 ooc ulm pow32 misc s3 librarybinary +checksum: + @cd $(BUILDDIR) && sh $(ROOTDIR)/src/tools/make/checksumtest.sh $(ROOTDIR)/$(BUILDDIR).md5 + + + + confidence: @printf "\n\n--- Confidence tests ---\n\n" cd src/test/confidence/hello; ./test.sh "$(INSTALLDIR)" diff --git a/src/tools/testcoordinator/buildall.pl b/src/tools/testcoordinator/buildall.pl index 2aedc2c2..bbc77e8b 100755 --- a/src/tools/testcoordinator/buildall.pl +++ b/src/tools/testcoordinator/buildall.pl @@ -6,12 +6,13 @@ use POSIX "strftime"; my $branch = "v2docs"; my %machines = ( - "pi" => ['pi@pie', "projects/oberon/vishap/voc", "sudo"], - "darwin" => ['dave@dcb', "projects/oberon/vishap/voc", "sudo"], - "lub32" => ['dave@lub32', "vishap/voc", "sudo"], - "ob32" => ['root@nas-ob32', "vishap/voc", "" ], - "fb64" => ['root@oberon', "vishap/voc", "" ], - "ub64" => ['dave@nas-ub64', "vishap/voc", "sudo"] + "pi" => ['pi@pie', "sudo", "projects/oberon/vishap/voc"], + "darwin" => ['dave@dcb', "sudo", "projects/oberon/vishap/voc"], + "lub32" => ['dave@lub32', "sudo", "vishap/voc"], + "ob32" => ['root@nas-ob32', "", "vishap/voc"], + "fb64" => ['root@oberon', "", "vishap/voc"], + "ub64" => ['dave@nas-ub64', "sudo", "vishap/voc"], + "ce64" => ['-p5922 obe@www', "sudo", "vishap/voc"] ); @@ -43,7 +44,7 @@ sub logged { for my $machine (sort keys %machines) { - my ($login, $dir, $sudo) = @{$machines{$machine}}; + my ($login, $sudo, $dir) = @{$machines{$machine}}; my $cmd = "ssh $login \"cd $dir && $sudo git checkout $branch && $sudo git pull && $sudo make full\" "; logged($cmd, $machine); } From 3cd3376139d6689b93ca93b24f22257e7db8a83c Mon Sep 17 00:00:00 2001 From: David Brown Date: Thu, 30 Jun 2016 19:41:14 +0100 Subject: [PATCH 31/52] Test build progress --- src/tools/testcoordinator/buildall.pl | 34 ++++++++++++- src/tools/testcoordinator/postpush.pl | 9 ++-- src/tools/testcoordinator/pt.pl | 70 +++++++++++++++++++++++++++ 3 files changed, 107 insertions(+), 6 deletions(-) create mode 100755 src/tools/testcoordinator/pt.pl diff --git a/src/tools/testcoordinator/buildall.pl b/src/tools/testcoordinator/buildall.pl index bbc77e8b..49b90800 100755 --- a/src/tools/testcoordinator/buildall.pl +++ b/src/tools/testcoordinator/buildall.pl @@ -50,5 +50,35 @@ for my $machine (sort keys %machines) { } while ((my $pid = wait) > 0) {print "Child pid $pid completed.\n";} -print "Buildall complete.\n"; -exit; + + +# # All builds have completed. Now scan the logs for pass/fail and build the passing report. +# +# my %status = (); +# open(my $logs, "/tmp/buildall.log") // die "Couldn't open combined build log."; +# while (<$logs>) { +# if (/^([^ ]+) ([^ ]+) --- Branch ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) confidence tests passed ---/) { +# $status{$1} = [$2, $3, $4, $5, $6]; +# } +# } +# close(my $logs); +# +# +# sub svgtext { +# my ($f, $x, $y, $msg) = @_; +# print($f ""; +# print($f $msg); +# print($f "\n"); +# } +# +# +# open(my $svg, ">passing.svg") // dir "Could not create passing.svg."); +# print $svg '\n'; +# +# my $i=1; +# for my $host (sort keys %status) { +# svgtext($svg, 10, $i*20, $host); +# $i++; +# } +# +# print $svg '\n'; diff --git a/src/tools/testcoordinator/postpush.pl b/src/tools/testcoordinator/postpush.pl index 25bb2a89..4db1e46b 100755 --- a/src/tools/testcoordinator/postpush.pl +++ b/src/tools/testcoordinator/postpush.pl @@ -11,7 +11,7 @@ use JSON; sub writelog { my ($msg) = @_; - + open(LOG, ">>/tmp/postpush.log") or die "Could not create postpush.log"; flock(LOG, 2) or die "Could not lock postpush.log"; print LOG sprintf("%s %s\n", strftime("%Y/%m/%d %H.%M.%S", localtime), $msg); @@ -36,12 +36,13 @@ my $child = fork; if (not defined $child) {die "Fork failed.";} if ($child) { # parent process - writelog "Started ssh, pid = $child."; + writelog "Started buildall, pid = $child."; } else { # child process - exec 'ssh root@oberon "perl vishap/voc/src/tools/testcoordinator/buildall.pl >/tmp/buildall.log &"'; + close(STDIN); close(STDOUT); close(STDERR); + exec 'perl /var/lib/nethserver/ibay/githubhook/buildall.pl >/tmp/buildall.log'; exit; -} +} print header(), start_html("Vishap Oberon github post push web hook."), diff --git a/src/tools/testcoordinator/pt.pl b/src/tools/testcoordinator/pt.pl new file mode 100755 index 00000000..a39618d4 --- /dev/null +++ b/src/tools/testcoordinator/pt.pl @@ -0,0 +1,70 @@ +#!perl -w +use strict; +use warnings; +use POSIX "strftime"; + + + +my %status = (); +open(my $logs, "/tmp/buildall.log") // die "Couldn't open combined build log."; +while (<$logs>) { + if (/^([^ ]+) ([^ ]+) --- Branch ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) confidence tests passed ---/) { + my $key = "$4-$6-$5"; + $status{$key} = [$1, $2, $3, $4, $5, $6]; + } +} +close($logs); + +my $emsperline = 1.2; + +sub svgtext { + my ($f, $x, $y, $colour, $msg) = @_; + print $f ''; + print $f $msg; + print $f "\n"; +} + +my $rows = keys %status; + +open(my $svg, ">build-status.svg") // die "Could not create build-status.svg."; +print $svg '', "\n"; +print $svg '', "\n"; + +my $col1 = 20; +my $col2 = 110; +my $col3 = 200; +my $col4 = 310; +my $col5 = 400; +my $col6 = 490; +my $col7 = 580; + +svgtext($svg, $col1, 0, "#e0e0e0", "OS"); +svgtext($svg, $col2, 0, "#e0e0e0", "Compiler"); +svgtext($svg, $col3, 0, "#e0e0e0", "Data model"); +svgtext($svg, $col4, 0, "#e0e0e0", "Compiler"); +svgtext($svg, $col5, 0, "#e0e0e0", "Library"); +svgtext($svg, $col6, 0, "#e0e0e0", "Cksum"); +svgtext($svg, $col7, 0, "#e0e0e0", "Tests"); + +my $i=1; +for my $key (sort keys %status) { + my ($host, $time, $branch, $os, $compiler, $datamodel) = @{$status{$key}}; + svgtext($svg, $col1, $i, "#c0c0c0", $os); + svgtext($svg, $col2, $i, "#c0c0c0", $compiler); + svgtext($svg, $col3, $i, "#c0c0c0", $datamodel); + svgtext($svg, $col4, $i, "#60ff60", "Pass"); + svgtext($svg, $col5, $i, "#60ff60", "Pass"); +# svgtext($svg, $col6, $i, "#60ff60", "Pass"); + svgtext($svg, $col7, $i, "#60ff60", "Pass"); + $i++; +} + +print $svg "\n"; + +system 'scp -p build-status.svg dave@hub:/var/www'; From c45c1112377c5de6d4d29bfe0a6eefa63a116537 Mon Sep 17 00:00:00 2001 From: David Brown Date: Thu, 30 Jun 2016 20:11:09 +0100 Subject: [PATCH 32/52] Add brnachname to checksum fileneame. --- makefile | 3 ++- src/tools/make/vishap.make | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/makefile b/makefile index 777da4a7..1b18dec3 100644 --- a/makefile +++ b/makefile @@ -98,13 +98,14 @@ usage: -# Generate config files Configuration.Make and Configuartion.Mod +# Generate config files Configuration.Make and Configuration.Mod FORCE: configuration: FORCE @$(CC) -I src/system -o a.o src/tools/make/configure.c @./a.o @rm a.o + @echo BRANCH=$$(git rev-parse --abbrev-ref HEAD)>>Configuration.Make diff --git a/src/tools/make/vishap.make b/src/tools/make/vishap.make index 54ee3289..c9edfa55 100644 --- a/src/tools/make/vishap.make +++ b/src/tools/make/vishap.make @@ -363,7 +363,7 @@ library: v4 ooc2 ooc ulm pow32 misc s3 librarybinary checksum: - @cd $(BUILDDIR) && sh $(ROOTDIR)/src/tools/make/checksumtest.sh $(ROOTDIR)/$(BUILDDIR).md5 + @cd $(BUILDDIR) && sh $(ROOTDIR)/src/tools/make/checksumtest.sh $(ROOTDIR)/$(BUILDDIR).$(BRANCH).md5 From 6470000cff6d233d8ed1167c5306738283040f28 Mon Sep 17 00:00:00 2001 From: David Brown Date: Thu, 30 Jun 2016 21:02:06 +0100 Subject: [PATCH 33/52] Parse logs for build and test status. --- src/tools/make/checksumtest.sh | 14 ++++++++ src/tools/make/vishap.make | 3 +- src/tools/testcoordinator/pt.pl | 59 ++++++++++++++++++++++++++------- 3 files changed, 63 insertions(+), 13 deletions(-) create mode 100644 src/tools/make/checksumtest.sh diff --git a/src/tools/make/checksumtest.sh b/src/tools/make/checksumtest.sh new file mode 100644 index 00000000..a4d4262f --- /dev/null +++ b/src/tools/make/checksumtest.sh @@ -0,0 +1,14 @@ +# Checksum tests + +md5=$((which md5;which md5sum)2>/dev/null) +if [ -f $1 ] +then + $md5 *.o >newsums + if diff -b $1 newsums + then printf "\n--- Object file checksums match ---\n"; rm newsums +else printf "\n--- Object file checksum mismatch ---\n"; rm newsums; exit 1 + fi +else + $md5 *.o >$1 + printf "\n--- Object files checksummed ---\n" +fi diff --git a/src/tools/make/vishap.make b/src/tools/make/vishap.make index c9edfa55..ca4daefa 100644 --- a/src/tools/make/vishap.make +++ b/src/tools/make/vishap.make @@ -28,6 +28,7 @@ usage: clean: + @printf "\n\n--- Cleaning branch $$(BRANCH) $(OS) $(COMPILER) $(DATAMODEL) ---\n\n" rm -rf $(BUILDDIR) rm -f $(VISHAP) @@ -374,7 +375,7 @@ confidence: if [ "$(PLATFORM)" != "windows" ] ; then cd src/test/confidence/signal; ./test.sh "$(INSTALLDIR)"; fi cd src/test/confidence/lola; ./test.sh "$(INSTALLDIR)" cd src/test/confidence/arrayassignment; ./test.sh "$(INSTALLDIR)" - @printf "\n\n--- Branch $$(git rev-parse --abbrev-ref HEAD) $(OS) $(COMPILER) $(DATAMODEL) confidence tests passed ---\n\n" + @printf "\n\n--- Confidence tests passed ---\n\n" diff --git a/src/tools/testcoordinator/pt.pl b/src/tools/testcoordinator/pt.pl index a39618d4..0d5058f8 100755 --- a/src/tools/testcoordinator/pt.pl +++ b/src/tools/testcoordinator/pt.pl @@ -5,15 +5,49 @@ use POSIX "strftime"; + my %status = (); -open(my $logs, "/tmp/buildall.log") // die "Couldn't open combined build log."; -while (<$logs>) { - if (/^([^ ]+) ([^ ]+) --- Branch ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) confidence tests passed ---/) { - my $key = "$4-$6-$5"; - $status{$key} = [$1, $2, $3, $4, $5, $6]; + + +sub parselog { + my ($fn) = @_; + my $date = ""; + my $time = ""; + my $branch = ""; + my $os = ""; + my $compiler = ""; + my $datamodel = ""; + my $compilerok = ""; + my $libraryok = ""; + my $checksum = ""; + my $tests = ""; + open(my $log, $fn) // die "Couldn't open build log $fn."; + while (<$log>) { + if (/^([0-9/]+) [0-9.]+ [^ ]+\.log$/) {$date = $1;} + if (/^[^ ]+ --- Cleaning branch ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ---$/) { + ($branch, $os, $compiler, $datamodel) = ($1, $2, $3, $4, $5); + } + if (/^--- Compiler build successfull ---$/) {$compilerok = "Built";} + if (/^--- Library build successfull ---$/) {$libraryok = "Built";} + if (/^--- Confidence tests passed ---$/) {$tests = "Passed";} + if (/^--- Object file checksums match ---$/) {$checksum = "Match";} + if (/^--- Object file checksum mismatch ---$/) {$checksum = "Changed";} + if (/^--- Object files checksummed ---$/) {$checksum = "New";} + } + close($log); + my $key = "$os-$compiler-$datamodel"; + if ($key ne "") { + status{$key} = [$date, $time, $os, %compiler, $datamodel, $branch, $compilerok, $libraryok, $checksum, $tests]; } } -close($logs); + +opendir DIR, "log" // die "Could not openlog directory."; +my @logs = readdir DIR; +closedir DIR; + +for my $logname (sort @logs) { + if (-f $logname) {parselog($logname);} +} my $emsperline = 1.2; @@ -49,19 +83,20 @@ svgtext($svg, $col2, 0, "#e0e0e0", "Compiler"); svgtext($svg, $col3, 0, "#e0e0e0", "Data model"); svgtext($svg, $col4, 0, "#e0e0e0", "Compiler"); svgtext($svg, $col5, 0, "#e0e0e0", "Library"); -svgtext($svg, $col6, 0, "#e0e0e0", "Cksum"); +svgtext($svg, $col6, 0, "#e0e0e0", "Checksum"); svgtext($svg, $col7, 0, "#e0e0e0", "Tests"); my $i=1; for my $key (sort keys %status) { - my ($host, $time, $branch, $os, $compiler, $datamodel) = @{$status{$key}}; + my ($date, $time, $os, %compiler, $datamodel, + $branch, $compilerok, $libraryok, $checksum, $tests) = @{$status{$key}}; svgtext($svg, $col1, $i, "#c0c0c0", $os); svgtext($svg, $col2, $i, "#c0c0c0", $compiler); svgtext($svg, $col3, $i, "#c0c0c0", $datamodel); - svgtext($svg, $col4, $i, "#60ff60", "Pass"); - svgtext($svg, $col5, $i, "#60ff60", "Pass"); -# svgtext($svg, $col6, $i, "#60ff60", "Pass"); - svgtext($svg, $col7, $i, "#60ff60", "Pass"); + svgtext($svg, $col4, $i, "#60ff60", $compilerok); + svgtext($svg, $col5, $i, "#60ff60", $libraryok); + svgtext($svg, $col6, $i, "#60ff60", $checksum); + svgtext($svg, $col7, $i, "#60ff60", $tests); $i++; } From b2e446d352578574205da7ed563df07e28f60852 Mon Sep 17 00:00:00 2001 From: David Brown Date: Fri, 1 Jul 2016 14:17:26 +0100 Subject: [PATCH 34/52] Typo in vishap.make --- src/tools/make/vishap.make | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tools/make/vishap.make b/src/tools/make/vishap.make index ca4daefa..4cbbf52e 100644 --- a/src/tools/make/vishap.make +++ b/src/tools/make/vishap.make @@ -28,7 +28,7 @@ usage: clean: - @printf "\n\n--- Cleaning branch $$(BRANCH) $(OS) $(COMPILER) $(DATAMODEL) ---\n\n" + @printf "\n\n--- Cleaning branch $(BRANCH) $(OS) $(COMPILER) $(DATAMODEL) ---\n\n" rm -rf $(BUILDDIR) rm -f $(VISHAP) From 78540bcaba28531d260edd705ff56560d6c51563 Mon Sep 17 00:00:00 2001 From: David Brown Date: Fri, 1 Jul 2016 14:50:05 +0100 Subject: [PATCH 35/52] Move test build scripts. --- src/tools/{testcoordinator => make}/buildall.pl | 0 src/tools/{testcoordinator => make}/postpush.pl | 0 src/tools/{testcoordinator => make}/pt.pl | 0 src/tools/testcoordinator/passes.pl | 17 ----------------- 4 files changed, 17 deletions(-) rename src/tools/{testcoordinator => make}/buildall.pl (100%) rename src/tools/{testcoordinator => make}/postpush.pl (100%) rename src/tools/{testcoordinator => make}/pt.pl (100%) delete mode 100755 src/tools/testcoordinator/passes.pl diff --git a/src/tools/testcoordinator/buildall.pl b/src/tools/make/buildall.pl similarity index 100% rename from src/tools/testcoordinator/buildall.pl rename to src/tools/make/buildall.pl diff --git a/src/tools/testcoordinator/postpush.pl b/src/tools/make/postpush.pl similarity index 100% rename from src/tools/testcoordinator/postpush.pl rename to src/tools/make/postpush.pl diff --git a/src/tools/testcoordinator/pt.pl b/src/tools/make/pt.pl similarity index 100% rename from src/tools/testcoordinator/pt.pl rename to src/tools/make/pt.pl diff --git a/src/tools/testcoordinator/passes.pl b/src/tools/testcoordinator/passes.pl deleted file mode 100755 index c7ca9bde..00000000 --- a/src/tools/testcoordinator/passes.pl +++ /dev/null @@ -1,17 +0,0 @@ -#!perl -w -use strict; -use warnings; -use POSIX "strftime"; - -# Now parse the combined logs extracting build pass messages -# lub32 20.47.55 --- Branch v2docs ubuntu gcc ILP32 confidence tests passed --- - -open(my $buildlog, "log/buildpasses.log") // die "Could not create buildpasses.log."; -while (<$buildlog>) { - if (/ --- Branch .* confidence tests passed ---/) { - print $passes $_; - } -} -close($buildlog); -close($passes); From ec7888859c405129d24d1afd95f765ba33340a68 Mon Sep 17 00:00:00 2001 From: David Brown Date: Fri, 1 Jul 2016 15:16:11 +0100 Subject: [PATCH 36/52] Omit OPC and OPM from checksums as they contain the build date. --- src/tools/make/checksumtest.sh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/tools/make/checksumtest.sh b/src/tools/make/checksumtest.sh index a4d4262f..84a333d5 100644 --- a/src/tools/make/checksumtest.sh +++ b/src/tools/make/checksumtest.sh @@ -1,14 +1,16 @@ # Checksum tests -md5=$((which md5;which md5sum)2>/dev/null) +md5=md5 +if which md5sum >/dev/null 2>&1; then md5=md5sum; fi if [ -f $1 ] then - $md5 *.o >newsums + $md5 *.o | egrep -v "OP[CM]\\.o" >newsums if diff -b $1 newsums - then printf "\n--- Object file checksums match ---\n"; rm newsums -else printf "\n--- Object file checksum mismatch ---\n"; rm newsums; exit 1 + then printf "\n--- Object file checksums match ---\n" + else printf "\n--- Object file checksum mismatch ---\n" fi + rm newsums else - $md5 *.o >$1 + $md5 *.o | egrep -v "OP[CM]\\.o" >$1 printf "\n--- Object files checksummed ---\n" fi From c7984ffdac5fef8712102d2f1bb0c96b891ca065 Mon Sep 17 00:00:00 2001 From: David Brown Date: Fri, 1 Jul 2016 15:32:18 +0100 Subject: [PATCH 37/52] Build machine to pick up latest buildall.pl every time. --- src/tools/make/buildall.pl | 15 ++++++++------- src/tools/make/postpush.pl | 7 ++++--- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/tools/make/buildall.pl b/src/tools/make/buildall.pl index 49b90800..7ac0a819 100755 --- a/src/tools/make/buildall.pl +++ b/src/tools/make/buildall.pl @@ -42,6 +42,7 @@ sub logged { } +unlink glob "log/*"; for my $machine (sort keys %machines) { my ($login, $sudo, $dir) = @{$machines{$machine}}; @@ -53,7 +54,7 @@ while ((my $pid = wait) > 0) {print "Child pid $pid completed.\n";} # # All builds have completed. Now scan the logs for pass/fail and build the passing report. -# +# # my %status = (); # open(my $logs, "/tmp/buildall.log") // die "Couldn't open combined build log."; # while (<$logs>) { @@ -62,23 +63,23 @@ while ((my $pid = wait) > 0) {print "Child pid $pid completed.\n";} # } # } # close(my $logs); -# -# +# +# # sub svgtext { # my ($f, $x, $y, $msg) = @_; # print($f ""; # print($f $msg); # print($f "\n"); # } -# -# +# +# # open(my $svg, ">passing.svg") // dir "Could not create passing.svg."); # print $svg '\n'; -# +# # my $i=1; # for my $host (sort keys %status) { # svgtext($svg, 10, $i*20, $host); # $i++; # } -# +# # print $svg '\n'; diff --git a/src/tools/make/postpush.pl b/src/tools/make/postpush.pl index 4db1e46b..94a4394b 100755 --- a/src/tools/make/postpush.pl +++ b/src/tools/make/postpush.pl @@ -11,7 +11,7 @@ use JSON; sub writelog { my ($msg) = @_; - + open(LOG, ">>/tmp/postpush.log") or die "Could not create postpush.log"; flock(LOG, 2) or die "Could not lock postpush.log"; print LOG sprintf("%s %s\n", strftime("%Y/%m/%d %H.%M.%S", localtime), $msg); @@ -40,9 +40,10 @@ if ($child) { } else { # child process close(STDIN); close(STDOUT); close(STDERR); - exec 'perl /var/lib/nethserver/ibay/githubhook/buildall.pl >/tmp/buildall.log'; + system 'wget https://raw.githubusercontent.com/vishaps/voc/v2docs/src/tools/make/buildall.pl'; + exec 'perl buildall.pl >/tmp/buildall.log'; exit; -} +} print header(), start_html("Vishap Oberon github post push web hook."), From 3c8a347d331b8b315957fa7281edcb9c5643d7e7 Mon Sep 17 00:00:00 2001 From: David Brown Date: Fri, 1 Jul 2016 15:44:06 +0100 Subject: [PATCH 38/52] Need to remove prior buildall.pl as wget won't overwrite. --- src/tools/make/postpush.pl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tools/make/postpush.pl b/src/tools/make/postpush.pl index 94a4394b..fdbe8829 100755 --- a/src/tools/make/postpush.pl +++ b/src/tools/make/postpush.pl @@ -40,6 +40,7 @@ if ($child) { } else { # child process close(STDIN); close(STDOUT); close(STDERR); + unlink "buildall.pl"; system 'wget https://raw.githubusercontent.com/vishaps/voc/v2docs/src/tools/make/buildall.pl'; exec 'perl buildall.pl >/tmp/buildall.log'; exit; From e68743eadc25f065389690cf2e2892766a075ecc Mon Sep 17 00:00:00 2001 From: David Brown Date: Fri, 1 Jul 2016 15:53:29 +0100 Subject: [PATCH 39/52] Make sure buildall starts in the cirrect directory. --- src/tools/make/buildall.pl | 2 ++ src/tools/make/postpush.pl | 1 + 2 files changed, 3 insertions(+) diff --git a/src/tools/make/buildall.pl b/src/tools/make/buildall.pl index 7ac0a819..c67642e8 100755 --- a/src/tools/make/buildall.pl +++ b/src/tools/make/buildall.pl @@ -2,6 +2,7 @@ use strict; use warnings; use POSIX "strftime"; +use Cwd; my $branch = "v2docs"; @@ -41,6 +42,7 @@ sub logged { } } +print "Buildall starting in ", getcwd, "\n"; unlink glob "log/*"; diff --git a/src/tools/make/postpush.pl b/src/tools/make/postpush.pl index fdbe8829..954d604e 100755 --- a/src/tools/make/postpush.pl +++ b/src/tools/make/postpush.pl @@ -40,6 +40,7 @@ if ($child) { } else { # child process close(STDIN); close(STDOUT); close(STDERR); + chdir "/var/lib/nethserver/ibay/githubhook"; unlink "buildall.pl"; system 'wget https://raw.githubusercontent.com/vishaps/voc/v2docs/src/tools/make/buildall.pl'; exec 'perl buildall.pl >/tmp/buildall.log'; From 4981afd55adae4c3fb36d2c4dfc5341a632dcc11 Mon Sep 17 00:00:00 2001 From: David Brown Date: Fri, 1 Jul 2016 18:19:55 +0100 Subject: [PATCH 40/52] Pickup of latest buildall.pl working. --- src/tools/make/checksumtest.sh | 7 +++++++ src/tools/make/postpush.pl | 10 +++------- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/tools/make/checksumtest.sh b/src/tools/make/checksumtest.sh index 84a333d5..47926771 100644 --- a/src/tools/make/checksumtest.sh +++ b/src/tools/make/checksumtest.sh @@ -1,4 +1,11 @@ # Checksum tests +# +# Checksums object binaries (*.o) and compares with previous +# checksum for this branch. +# +# Note: OPC.o and OPM.o are omitted as they both have text string constants +# that include the build date. + md5=md5 if which md5sum >/dev/null 2>&1; then md5=md5sum; fi diff --git a/src/tools/make/postpush.pl b/src/tools/make/postpush.pl index 954d604e..e2c275d9 100755 --- a/src/tools/make/postpush.pl +++ b/src/tools/make/postpush.pl @@ -9,6 +9,7 @@ use POSIX "strftime"; use CGI qw(:standard escapeHTML); use JSON; + sub writelog { my ($msg) = @_; @@ -27,20 +28,15 @@ my $name = $postdata->{'head_commit'}->{'author'}->{'name'}; my $branch = $ref; $branch =~ s'^.*\/''; my $repo = $url; $repo =~ s'^.*\/''; -#my $repo="repo"; my $branch="branch"; my $name="name"; - writelog "Post push github web hook for repository $repo, branch $branch, name $name."; my $child = fork; if (not defined $child) {die "Fork failed.";} if ($child) { - # parent process - writelog "Started buildall, pid = $child."; + writelog "Started buildall, pid = $child."; # parent process } else { - # child process - close(STDIN); close(STDOUT); close(STDERR); - chdir "/var/lib/nethserver/ibay/githubhook"; + close(STDIN); close(STDOUT); close(STDERR); # child process unlink "buildall.pl"; system 'wget https://raw.githubusercontent.com/vishaps/voc/v2docs/src/tools/make/buildall.pl'; exec 'perl buildall.pl >/tmp/buildall.log'; From 43d120814c64e564a82f37842df8b21d78f28914 Mon Sep 17 00:00:00 2001 From: David Brown Date: Fri, 1 Jul 2016 19:40:19 +0100 Subject: [PATCH 41/52] Log scanner beginning to work. --- ReadMe.md | 6 +- src/tools/make/buildall.pl | 131 +++++++++++++++++++++++++++++-------- src/tools/make/pt.pl | 23 ++++--- 3 files changed, 117 insertions(+), 43 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index c6e75b4f..d80ed5eb 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -1,3 +1,5 @@ +![Build status](http://brownsmeet.com/build-status.svg) + ### Ѵishap Oberon [Ѵishap Oberon](http://oberon.vishap.am) is a free and open source (GPLv3) @@ -26,10 +28,6 @@ languages, following the principals of Einstein and Antoine de Saint-Exupéry: > when there is no longer anything to take away. (Antoine de Saint-Exupéry, > translated by Lewis Galantière.) -##### Build status - -![Build status](http://brownsmeet.com/build-status.svg) - #### Installation ##### Prerequisites diff --git a/src/tools/make/buildall.pl b/src/tools/make/buildall.pl index c67642e8..35a19045 100755 --- a/src/tools/make/buildall.pl +++ b/src/tools/make/buildall.pl @@ -56,32 +56,105 @@ while ((my $pid = wait) > 0) {print "Child pid $pid completed.\n";} # # All builds have completed. Now scan the logs for pass/fail and build the passing report. -# -# my %status = (); -# open(my $logs, "/tmp/buildall.log") // die "Couldn't open combined build log."; -# while (<$logs>) { -# if (/^([^ ]+) ([^ ]+) --- Branch ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) confidence tests passed ---/) { -# $status{$1} = [$2, $3, $4, $5, $6]; -# } -# } -# close(my $logs); -# -# -# sub svgtext { -# my ($f, $x, $y, $msg) = @_; -# print($f ""; -# print($f $msg); -# print($f "\n"); -# } -# -# -# open(my $svg, ">passing.svg") // dir "Could not create passing.svg."); -# print $svg '\n'; -# -# my $i=1; -# for my $host (sort keys %status) { -# svgtext($svg, 10, $i*20, $host); -# $i++; -# } -# -# print $svg '\n'; + + +my %status = (); + + +sub parselog { + my ($fn) = @_; + #print "Parsing log $fn\n"; + my $date = ""; + my $time = ""; + my $branch = ""; + my $os = ""; + my $compiler = ""; + my $datamodel = ""; + my $compilerok = ""; + my $libraryok = ""; + my $checksum = ""; + my $tests = ""; + open(my $log, $fn) // die "Couldn't open build log $fn."; + while (<$log>) { + if (/^([0-9\/]+) [0-9.]+ [^ ]+\.log$/) {$date = $1;} + if (/^[^ ]+ --- Cleaning branch ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ---$/) { + ($branch, $os, $compiler, $datamodel) = ($1, $2, $3, $4, $5); + } + if (/^([0-9.]+) --- Compiler build successfull ---$/) {$compilerok = "Built";} + if (/^([0-9.]+) --- Library build successfull ---$/) {$libraryok = "Built";} + if (/^([0-9.]+) --- Confidence tests passed ---$/) {$tests = "Passed";} + if (/^([0-9.]+) --- Object file checksums match ---$/) {$checksum = "Match";} + if (/^([0-9.]+) --- Object file checksum mismatch ---$/) {$checksum = "Changed";} + if (/^([0-9.]+) --- Object files checksummed ---$/) {$checksum = "New";} + } + close($log); + my $key = "$os-$compiler-$datamodel"; + if ($key ne "") { + $status{$key} = [$date, $time, $os, $compiler, $datamodel, $branch, $compilerok, $libraryok, $checksum, $tests]; + } +} + +opendir DIR, "log" // die "Could not open log directory."; +my @logs = readdir DIR; +closedir DIR; + +for my $logname (sort @logs) { + $logname = "log/" . $logname; + #print "Consider $logname\n"; + if (-f $logname) {parselog($logname);} +} + +my $emsperline = 1.2; + +sub svgtext { + my ($f, $x, $y, $colour, $msg) = @_; + print $f ''; + print $f $msg; + print $f "\n"; +} + +my $rows = keys %status; + +open(my $svg, ">build-status.svg") // die "Could not create build-status.svg."; +print $svg '', "\n"; +print $svg '', "\n"; + +my $col1 = 20; +my $col2 = 110; +my $col3 = 200; +my $col4 = 310; +my $col5 = 400; +my $col6 = 490; +my $col7 = 580; + +svgtext($svg, $col1, 0, "#e0e0e0", "OS"); +svgtext($svg, $col2, 0, "#e0e0e0", "Compiler"); +svgtext($svg, $col3, 0, "#e0e0e0", "Data model"); +svgtext($svg, $col4, 0, "#e0e0e0", "Compiler"); +svgtext($svg, $col5, 0, "#e0e0e0", "Library"); +svgtext($svg, $col6, 0, "#e0e0e0", "Checksum"); +svgtext($svg, $col7, 0, "#e0e0e0", "Tests"); + +my $i=1; +for my $key (sort keys %status) { + my ($date, $time, $os, $compiler, $datamodel, + $branch, $compilerok, $libraryok, $checksum, $tests) = @{$status{$key}}; + svgtext($svg, $col1, $i, "#c0c0c0", $os); + svgtext($svg, $col2, $i, "#c0c0c0", $compiler); + svgtext($svg, $col3, $i, "#c0c0c0", $datamodel); + svgtext($svg, $col4, $i, "#60ff60", $compilerok); + svgtext($svg, $col5, $i, "#60ff60", $libraryok); + svgtext($svg, $col6, $i, "#60ff60", $checksum); + svgtext($svg, $col7, $i, "#60ff60", $tests); + $i++; +} + +print $svg "\n"; + +system 'scp -p build-status.svg dave@hub:/var/www'; diff --git a/src/tools/make/pt.pl b/src/tools/make/pt.pl index 0d5058f8..0c3243c1 100755 --- a/src/tools/make/pt.pl +++ b/src/tools/make/pt.pl @@ -11,6 +11,7 @@ my %status = (); sub parselog { my ($fn) = @_; + #print "Parsing log $fn\n"; my $date = ""; my $time = ""; my $branch = ""; @@ -23,29 +24,31 @@ sub parselog { my $tests = ""; open(my $log, $fn) // die "Couldn't open build log $fn."; while (<$log>) { - if (/^([0-9/]+) [0-9.]+ [^ ]+\.log$/) {$date = $1;} + if (/^([0-9\/]+) [0-9.]+ [^ ]+\.log$/) {$date = $1;} if (/^[^ ]+ --- Cleaning branch ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ---$/) { ($branch, $os, $compiler, $datamodel) = ($1, $2, $3, $4, $5); } - if (/^--- Compiler build successfull ---$/) {$compilerok = "Built";} - if (/^--- Library build successfull ---$/) {$libraryok = "Built";} - if (/^--- Confidence tests passed ---$/) {$tests = "Passed";} - if (/^--- Object file checksums match ---$/) {$checksum = "Match";} - if (/^--- Object file checksum mismatch ---$/) {$checksum = "Changed";} - if (/^--- Object files checksummed ---$/) {$checksum = "New";} + if (/^([0-9.]+) --- Compiler build successfull ---$/) {$compilerok = "Built";} + if (/^([0-9.]+) --- Library build successfull ---$/) {$libraryok = "Built";} + if (/^([0-9.]+) --- Confidence tests passed ---$/) {$tests = "Passed";} + if (/^([0-9.]+) --- Object file checksums match ---$/) {$checksum = "Match";} + if (/^([0-9.]+) --- Object file checksum mismatch ---$/) {$checksum = "Changed";} + if (/^([0-9.]+) --- Object files checksummed ---$/) {$checksum = "New";} } close($log); my $key = "$os-$compiler-$datamodel"; if ($key ne "") { - status{$key} = [$date, $time, $os, %compiler, $datamodel, $branch, $compilerok, $libraryok, $checksum, $tests]; + $status{$key} = [$date, $time, $os, $compiler, $datamodel, $branch, $compilerok, $libraryok, $checksum, $tests]; } } -opendir DIR, "log" // die "Could not openlog directory."; +opendir DIR, "log" // die "Could not open log directory."; my @logs = readdir DIR; closedir DIR; for my $logname (sort @logs) { + $logname = "log/" . $logname; + #print "Consider $logname\n"; if (-f $logname) {parselog($logname);} } @@ -88,7 +91,7 @@ svgtext($svg, $col7, 0, "#e0e0e0", "Tests"); my $i=1; for my $key (sort keys %status) { - my ($date, $time, $os, %compiler, $datamodel, + my ($date, $time, $os, $compiler, $datamodel, $branch, $compilerok, $libraryok, $checksum, $tests) = @{$status{$key}}; svgtext($svg, $col1, $i, "#c0c0c0", $os); svgtext($svg, $col2, $i, "#c0c0c0", $compiler); From feff10c22c4f9ed7b0a4c2be418ce31497175917 Mon Sep 17 00:00:00 2001 From: David Brown Date: Fri, 1 Jul 2016 19:52:04 +0100 Subject: [PATCH 42/52] Tweak build report --- src/tools/make/buildall.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tools/make/buildall.pl b/src/tools/make/buildall.pl index 35a19045..cc3492a7 100755 --- a/src/tools/make/buildall.pl +++ b/src/tools/make/buildall.pl @@ -83,7 +83,7 @@ sub parselog { if (/^([0-9.]+) --- Compiler build successfull ---$/) {$compilerok = "Built";} if (/^([0-9.]+) --- Library build successfull ---$/) {$libraryok = "Built";} if (/^([0-9.]+) --- Confidence tests passed ---$/) {$tests = "Passed";} - if (/^([0-9.]+) --- Object file checksums match ---$/) {$checksum = "Match";} + if (/^([0-9.]+) --- Object file checksums match ---$/) {$checksum = "Unchanged";} if (/^([0-9.]+) --- Object file checksum mismatch ---$/) {$checksum = "Changed";} if (/^([0-9.]+) --- Object files checksummed ---$/) {$checksum = "New";} } @@ -130,7 +130,7 @@ my $col2 = 110; my $col3 = 200; my $col4 = 310; my $col5 = 400; -my $col6 = 490; +my $col6 = 480; my $col7 = 580; svgtext($svg, $col1, 0, "#e0e0e0", "OS"); From 96f84b3937722fb5df443f8db3e27324bd82c0e7 Mon Sep 17 00:00:00 2001 From: David Brown Date: Fri, 1 Jul 2016 19:58:55 +0100 Subject: [PATCH 43/52] Tweak build report --- src/tools/make/buildall.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tools/make/buildall.pl b/src/tools/make/buildall.pl index cc3492a7..f6a731d4 100755 --- a/src/tools/make/buildall.pl +++ b/src/tools/make/buildall.pl @@ -123,7 +123,7 @@ open(my $svg, ">build-status.svg") // die "Could not create build-status.svg."; print $svg '', "\n"; -print $svg '', "\n"; +print $svg '', "\n"; my $col1 = 20; my $col2 = 110; @@ -157,4 +157,4 @@ for my $key (sort keys %status) { print $svg "\n"; -system 'scp -p build-status.svg dave@hub:/var/www'; +system 'scp build-status.svg dave@hub:/var/www'; From e16f1c13b6fe3bb142e66e2c4cbc2732c3a78451 Mon Sep 17 00:00:00 2001 From: David Brown Date: Fri, 1 Jul 2016 20:15:53 +0100 Subject: [PATCH 44/52] Prettify build report --- src/tools/make/buildall.pl | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/tools/make/buildall.pl b/src/tools/make/buildall.pl index f6a731d4..3b8b2805 100755 --- a/src/tools/make/buildall.pl +++ b/src/tools/make/buildall.pl @@ -119,18 +119,20 @@ sub svgtext { my $rows = keys %status; +my $width = 680; +my $height = ($rows+2) * $emsperline; + open(my $svg, ">build-status.svg") // die "Could not create build-status.svg."; -print $svg '', "\n"; -print $svg '', "\n"; +print $svg '', "\n"; +print $svg '', "\n"; my $col1 = 20; my $col2 = 110; my $col3 = 200; my $col4 = 310; my $col5 = 400; -my $col6 = 480; +my $col6 = 475; my $col7 = 580; svgtext($svg, $col1, 0, "#e0e0e0", "OS"); From 8f7e25fe2f263874e768f1c51cc7f2b072e15571 Mon Sep 17 00:00:00 2001 From: David Brown Date: Fri, 1 Jul 2016 20:35:11 +0100 Subject: [PATCH 45/52] Begin to add logs to build report --- src/tools/make/buildall.pl | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/tools/make/buildall.pl b/src/tools/make/buildall.pl index 3b8b2805..94da86a7 100755 --- a/src/tools/make/buildall.pl +++ b/src/tools/make/buildall.pl @@ -7,12 +7,12 @@ use Cwd; my $branch = "v2docs"; my %machines = ( - "pi" => ['pi@pie', "sudo", "projects/oberon/vishap/voc"], - "darwin" => ['dave@dcb', "sudo", "projects/oberon/vishap/voc"], - "lub32" => ['dave@lub32', "sudo", "vishap/voc"], - "ob32" => ['root@nas-ob32', "", "vishap/voc"], +# "pi" => ['pi@pie', "sudo", "projects/oberon/vishap/voc"], +# "darwin" => ['dave@dcb', "sudo", "projects/oberon/vishap/voc"], +# "lub32" => ['dave@lub32', "sudo", "vishap/voc"], +# "ob32" => ['root@nas-ob32', "", "vishap/voc"], "fb64" => ['root@oberon', "", "vishap/voc"], - "ub64" => ['dave@nas-ub64', "sudo", "vishap/voc"], +# "ub64" => ['dave@nas-ub64', "sudo", "vishap/voc"], "ce64" => ['-p5922 obe@www', "sudo", "vishap/voc"] ); @@ -42,8 +42,6 @@ sub logged { } } -print "Buildall starting in ", getcwd, "\n"; - unlink glob "log/*"; for my $machine (sort keys %machines) { @@ -90,7 +88,7 @@ sub parselog { close($log); my $key = "$os-$compiler-$datamodel"; if ($key ne "") { - $status{$key} = [$date, $time, $os, $compiler, $datamodel, $branch, $compilerok, $libraryok, $checksum, $tests]; + $status{$key} = [$fn, $date, $time, $os, $compiler, $datamodel, $branch, $compilerok, $libraryok, $checksum, $tests]; } } @@ -123,9 +121,11 @@ my $width = 680; my $height = ($rows+2) * $emsperline; open(my $svg, ">build-status.svg") // die "Could not create build-status.svg."; -print $svg '', "\n"; -print $svg '', "\n"; +print $svg '\n"; +print $svg '', "\n"; my $col1 = 20; my $col2 = 110; @@ -145,8 +145,9 @@ svgtext($svg, $col7, 0, "#e0e0e0", "Tests"); my $i=1; for my $key (sort keys %status) { - my ($date, $time, $os, $compiler, $datamodel, - $branch, $compilerok, $libraryok, $checksum, $tests) = @{$status{$key}}; + my ($fn, $date, $time, $os, $compiler, $datamodel, $branch, + $compilerok, $libraryok, $checksum, $tests) = @{$status{$key}}; + print $svg ''; svgtext($svg, $col1, $i, "#c0c0c0", $os); svgtext($svg, $col2, $i, "#c0c0c0", $compiler); svgtext($svg, $col3, $i, "#c0c0c0", $datamodel); @@ -154,9 +155,11 @@ for my $key (sort keys %status) { svgtext($svg, $col5, $i, "#60ff60", $libraryok); svgtext($svg, $col6, $i, "#60ff60", $checksum); svgtext($svg, $col7, $i, "#60ff60", $tests); + print $svg ''; $i++; } print $svg "\n"; system 'scp build-status.svg dave@hub:/var/www'; +system 'scp log/* dave@hub:/var/www/log'; From 2d531ad8d6838d9841b5fde5ba28fe930894ce47 Mon Sep 17 00:00:00 2001 From: David Brown Date: Fri, 1 Jul 2016 20:50:17 +0100 Subject: [PATCH 46/52] Tweak build report border --- src/tools/make/buildall.pl | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/tools/make/buildall.pl b/src/tools/make/buildall.pl index 94da86a7..4539cf9c 100755 --- a/src/tools/make/buildall.pl +++ b/src/tools/make/buildall.pl @@ -11,9 +11,9 @@ my %machines = ( # "darwin" => ['dave@dcb', "sudo", "projects/oberon/vishap/voc"], # "lub32" => ['dave@lub32', "sudo", "vishap/voc"], # "ob32" => ['root@nas-ob32', "", "vishap/voc"], - "fb64" => ['root@oberon', "", "vishap/voc"], +# "ce64" => ['-p5922 obe@www', "sudo", "vishap/voc"], # "ub64" => ['dave@nas-ub64', "sudo", "vishap/voc"], - "ce64" => ['-p5922 obe@www', "sudo", "vishap/voc"] + "fb64" => ['root@oberon', "", "vishap/voc"] ); @@ -102,13 +102,14 @@ for my $logname (sort @logs) { if (-f $logname) {parselog($logname);} } -my $emsperline = 1.2; +my $fontheight = 10; +my $lineheight = 13; sub svgtext { my ($f, $x, $y, $colour, $msg) = @_; print $f ''; print $f $msg; @@ -118,14 +119,15 @@ sub svgtext { my $rows = keys %status; my $width = 680; -my $height = ($rows+2) * $emsperline; +my $height = ($rows+2) * $lineheight; open(my $svg, ">build-status.svg") // die "Could not create build-status.svg."; -print $svg '\n"; -print $svg '', "\n"; +print $svg '', "\n"; my $col1 = 20; my $col2 = 110; From 0c5d71dc197270e9b863a0e6cdecc8454fcaa55a Mon Sep 17 00:00:00 2001 From: David Brown Date: Fri, 1 Jul 2016 20:52:12 +0100 Subject: [PATCH 47/52] buildall.pl typo --- src/tools/make/buildall.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tools/make/buildall.pl b/src/tools/make/buildall.pl index 4539cf9c..d5486e69 100755 --- a/src/tools/make/buildall.pl +++ b/src/tools/make/buildall.pl @@ -125,7 +125,7 @@ open(my $svg, ">build-status.svg") // die "Could not create build-status.svg."; print $svg '\n"; -print $svg '', "\n"; From b7871e1927dbab1f78a65776bbc1f0b531d42290 Mon Sep 17 00:00:00 2001 From: David Brown Date: Fri, 1 Jul 2016 21:02:26 +0100 Subject: [PATCH 48/52] move text down very slightly. --- src/tools/make/buildall.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tools/make/buildall.pl b/src/tools/make/buildall.pl index d5486e69..c9d95b4b 100755 --- a/src/tools/make/buildall.pl +++ b/src/tools/make/buildall.pl @@ -108,7 +108,7 @@ my $lineheight = 13; sub svgtext { my ($f, $x, $y, $colour, $msg) = @_; print $f ''; From bb519dc27a061fbba360f83e64230aa83c0ab4d1 Mon Sep 17 00:00:00 2001 From: David Brown Date: Fri, 1 Jul 2016 21:08:45 +0100 Subject: [PATCH 49/52] Reenable most builds. --- src/tools/make/buildall.pl | 14 +++++++------- src/tools/make/postpush.pl | 1 + 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/tools/make/buildall.pl b/src/tools/make/buildall.pl index c9d95b4b..495fdc2b 100755 --- a/src/tools/make/buildall.pl +++ b/src/tools/make/buildall.pl @@ -7,13 +7,13 @@ use Cwd; my $branch = "v2docs"; my %machines = ( -# "pi" => ['pi@pie', "sudo", "projects/oberon/vishap/voc"], -# "darwin" => ['dave@dcb', "sudo", "projects/oberon/vishap/voc"], -# "lub32" => ['dave@lub32', "sudo", "vishap/voc"], -# "ob32" => ['root@nas-ob32', "", "vishap/voc"], -# "ce64" => ['-p5922 obe@www', "sudo", "vishap/voc"], -# "ub64" => ['dave@nas-ub64', "sudo", "vishap/voc"], - "fb64" => ['root@oberon', "", "vishap/voc"] + "pi" => ['pi@pie', "sudo", "projects/oberon/vishap/voc"], + "darwin" => ['dave@dcb', "sudo", "projects/oberon/vishap/voc"], + "lub32" => ['dave@lub32', "sudo", "vishap/voc"], + "ob32" => ['root@nas-ob32', "", "vishap/voc"], + "ce64" => ['-p5922 obe@www', "sudo", "vishap/voc"], + "ub64" => ['dave@nas-ub64', "sudo", "vishap/voc"], + "fb64" => ['root@oberon', "", "vishap/voc"] ); diff --git a/src/tools/make/postpush.pl b/src/tools/make/postpush.pl index e2c275d9..8916e0d1 100755 --- a/src/tools/make/postpush.pl +++ b/src/tools/make/postpush.pl @@ -38,6 +38,7 @@ if ($child) { } else { close(STDIN); close(STDOUT); close(STDERR); # child process unlink "buildall.pl"; + sleep 5; # Leave time for the push to complete. (Yuk!) system 'wget https://raw.githubusercontent.com/vishaps/voc/v2docs/src/tools/make/buildall.pl'; exec 'perl buildall.pl >/tmp/buildall.log'; exit; From f780a801f4832f48adba78820c343b84d2a3694f Mon Sep 17 00:00:00 2001 From: David Brown Date: Fri, 1 Jul 2016 21:24:44 +0100 Subject: [PATCH 50/52] 10% increase of build status font height. --- src/tools/make/buildall.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tools/make/buildall.pl b/src/tools/make/buildall.pl index 495fdc2b..5b9df6fd 100755 --- a/src/tools/make/buildall.pl +++ b/src/tools/make/buildall.pl @@ -102,13 +102,13 @@ for my $logname (sort @logs) { if (-f $logname) {parselog($logname);} } -my $fontheight = 10; +my $fontheight = 11; my $lineheight = 13; sub svgtext { my ($f, $x, $y, $colour, $msg) = @_; print $f ''; From 1f73ab6856fe3fdd782605cd3678db835fc36ad6 Mon Sep 17 00:00:00 2001 From: David Brown Date: Fri, 1 Jul 2016 22:45:40 +0100 Subject: [PATCH 51/52] Just a bit more font height. --- src/tools/make/buildall.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tools/make/buildall.pl b/src/tools/make/buildall.pl index 5b9df6fd..c290b942 100755 --- a/src/tools/make/buildall.pl +++ b/src/tools/make/buildall.pl @@ -102,8 +102,8 @@ for my $logname (sort @logs) { if (-f $logname) {parselog($logname);} } -my $fontheight = 11; -my $lineheight = 13; +my $fontheight = 12; +my $lineheight = 15; sub svgtext { my ($f, $x, $y, $colour, $msg) = @_; From 8e4367e5c9246374534ff4b217d9655eee2834b4 Mon Sep 17 00:00:00 2001 From: David Brown Date: Wed, 6 Jul 2016 17:20:12 +0100 Subject: [PATCH 52/52] ReadMe tweaking. Simplify. Add References and links. --- ReadMe.md | 132 +++++++++++++++++++++++++++++--------------- doc/Features.md | 2 + doc/History.md | 4 ++ doc/Installation.md | 3 + doc/Porting.md | 2 + doc/Roadmap.md | 7 +++ src/system/SYSTEM.h | 20 +++---- 7 files changed, 115 insertions(+), 55 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index d80ed5eb..d28b2796 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -1,37 +1,30 @@ ![Build status](http://brownsmeet.com/build-status.svg) -### Ѵishap Oberon +## Ѵishap Oberon [Ѵishap Oberon](http://oberon.vishap.am) is a free and open source (GPLv3) -implementation of the Oberon-2 language compiler and libraries for use on +implementation of the Oberon-2 language and libraries for use on conventional operating systems such as Linux, BSD, Android, Mac and Windows. -Vishap's Oberon Compiler (voc) uses a C backend to compile -Oberon programs under Unix or Windows. Vishap Oberon includes +Vishap's Oberon Compiler (voc) uses a C backend (gcc, clang or msc) to compile +Oberon programs under Unix, Mac or Windows. Vishap Oberon includes libraries from the Ulm, oo2c and Ofront Oberon compilers, as well as default libraries complying with the Oakwood Guidelines for Oberon-2 compilers. -##### Oberon - System and Programming Language - -Oberon is a programming language, an operating system and a graphical -user interface. Originally designed and implemented by by Niklaus Wirth and -Jürg Gutknecht at ETH Zürich in the late 1980s, it demonstrates that the -fundamentals of a modern OS and GUI can be implemented in clean and simple code -orders of magnitude smaller than found in contemporary systems. - -The Oberon programming language is an evolution of the Pascal and Modula -languages, following the principals of Einstein and Antoine de Saint-Exupéry: - -> Make it as simple as possible, but not simpler. (Albert Einstein) - -> Perfection is finally attained not when there is no longer anything to add, but -> when there is no longer anything to take away. (Antoine de Saint-Exupéry, -> translated by Lewis Galantière.) - -#### Installation +### Installation ##### Prerequisites +| Platform | Packages | +| --------- | ------------ | +| Debian/Ubuntu/Mint ... | apt-get install git | +| Fedora/RHEL/CentOS ... | yum install git gcc glibc-static | +| FreeBSD/OpenBSD/NetBSD | pkg install git | +| Cygwin | use setup-x86[_x64] to add packages git, make and gcc-core | +| Darwin | run 'git' at the command line and accept the prompt to install it. | + +More details, including for MingW and MS C, in [Installation](/doc/Installation.md). + ##### Build and install 1. `git clone https://github.com/vishaps/voc` @@ -54,7 +47,7 @@ by make full, e.g. Also see [Installation](/doc/Installation.md). -#### A 'Hello' application +### A 'Hello' application Anything appended to Oberon.Log is automatically displayed on the console, so the following conventional Oberon program will display 'Hello.': @@ -88,7 +81,7 @@ Execute as usual on Linux ('./hello') or Windows ('hello'). Also see [Compiling](/doc/Compiling.md). -#### Licensing +### Licensing Vishap Oberon's frontend and C backend engine is a fork of Josef Templ’s Ofront, which has been released under the FreeBSD License. Unlike Ofront, Vishap Oberon does not include the Oberon v4 environment. @@ -101,7 +94,7 @@ Voc tools are distributed under GPLv3. Most of the runtime in libVishapOberon is distributed under GPLv3 with runtime exception. -#### Platform support +### Platform support and porting Vishap Oberon supports 32 and 64 bit little-endian architectures including Intel x86 and x64, arm and ppc. @@ -109,15 +102,28 @@ It compiles under gcc, clang and Microsoft Visual C. Installation supports GNU/Linux, MAC OSX, BSD and Windows (native and cygwin). -#### Language support +A C program (src/tools/make/configure.c) detects the details of the C compiler +and operating system on which it is running. In most cases it will automatically +determine all that is needed for the port to a new platform. and 'make full' +will just work. + +In some cases manual work will be required: + + - If configure.c cannot recognise the operating system on which it is running + a few lines will need to be added to detect and set the make variables + correctly. + - If porting to a system that does not provide a Unix style API, it will be + necessary to implement a new variant of Platform.Mod providing the same + interface as Platformunix.Mod and Platform Windows.Mod. + +For details, see [Porting](/doc/Porting.md). + +### Language support and libraries Vishap Oberon supports the Oberon 2 programming language, including type-bound procedures. It also supports some features of Oberon-07. - -#### Libraries - Vishap Oberon comes with libraries easing the porting of code from the major Oberon systems: @@ -129,24 +135,17 @@ Oberon systems: Some other freely redistributable libraries are available as a part of voc distribution. +See also [Features](/doc/Features.md). -#### Features - -See [Features](/doc/Features.md). - -#### Porting to new platforms - -See [Porting](/doc/Porting.md). - -#### History +### History See [History](/doc/History.md). -#### Roadmap +### Roadmap See [Roadmap](/doc/Roadmap.md). -#### Contributors +### Contributors Originally developed as a cross platform implementation of the Oberon system by Joseph Templ. @@ -157,11 +156,54 @@ to new platforms by Norayr Chilingarian. Build process simplified for more platform support and bugs fixed by David C W Brown. -#### Origin of the name Vishap +### Origin of the name "Ѵishap Oberon" -𝓥ishap Ꮙishap ⱱishap +##### Ѵishap -#### To be left out? +Vishaps are dragons inhabiting the Armenian Highlands. +We decided to name the project “Vishap” because ties between compilers and dragons have ancient traditions. -Work on other compatibility layers is in progress. -voc team also works on bindings to existing C/Pascal libraries. +Also, Vishaps are known in tales, fiction. [This page](http://blog.fogus.me/2015/04/27/six-works-of-computer-science-fiction/) refers to some technologies as “computer science fiction”. Among them to Oberon. This brings another meaning, Oberon is like aliens, ghosts. And Vishaps. + +##### Oberon - System and Programming Language + +Oberon is a programming language, an operating system and a graphical +user interface. Originally designed and implemented by by Niklaus Wirth and +Jürg Gutknecht at ETH Zürich in the late 1980s, it demonstrates that the +fundamentals of a modern OS and GUI can be implemented in clean and simple code +orders of magnitude smaller than found in contemporary systems. + +The Oberon programming language is an evolution of the Pascal and Modula +languages. While it adds garbage collection, extensible types and (in +Oberon-2) type-bound procedures, it is also simplified following the principals +of Einstein and Antoine de Saint-Exupéry: + +> Make it as simple as possible, but not simpler. (Albert Einstein) + +> Perfection is finally attained not when there is no longer anything to add, but +> when there is no longer anything to take away. (Antoine de Saint-Exupéry, +> translated by Lewis Galantière.) + +### References + +###### Oberon + - [The History of Modula-2 and Oberon](http://people.inf.ethz.ch/wirth/Articles/Modula-Oberon-June.pdf) + - [The Programming Language Oberon](https://www.inf.ethz.ch/personal/wirth/Oberon/Oberon.Report.pdf) + - [Project Oberon: The Design of an Operating System and Compiler ](http://www.ethoberon.ethz.ch/WirthPubl/ProjectOberon.pdf) + - [Oberon - the Overlooked Jewel](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.90.7173&rep=rep1&type=pdf) + +###### Oberon 2 + - [Differences between Oberon and Oberon-2](http://members.home.nl/jmr272/Oberon/Oberon2.Differences.pdf) + - [The Programming Language Oberon-2](http://www.ssw.uni-linz.ac.at/Research/Papers/Oberon2.pdf) + - [Programming in Oberon. Steps beyond Pascal and Modula](www.ethoberon.ethz.ch/WirthPubl/ProgInOberonWR.pdf) + - [The Oakwood Guidelines for Oberon-2 Compiler Developers](http://www.math.bas.bg/bantchev/place/oberon/oakwood-guidelines.pdf) + +###### Oberon 07 + - [Difference between Oberon-07 and Oberon](https://www.inf.ethz.ch/personal/wirth/Oberon/Oberon07.pdf) + - [The Programming Language Oberon-07](https://www.inf.ethz.ch/personal/wirth/Oberon/Oberon07.Report.pdf) + - [Programming in Oberon - a Tutorial](https://www.inf.ethz.ch/personal/wirth/Oberon/PIO.pdf) + +###### Links + - [Niklaus Wirth's personal page at ETH Zurich](https://www.inf.ethz.ch/personal/wirth/) + - [ETH Zurich's Wirth publications page](http://www.ethoberon.ethz.ch/WirthPubl/) + - [Oberon: Steps beyond Pascal and Modula](http://fruttenboel.verhoeven272.nl/Oberon/) diff --git a/doc/Features.md b/doc/Features.md index 64d19e68..e7e8a39d 100644 --- a/doc/Features.md +++ b/doc/Features.md @@ -1,3 +1,5 @@ +#### (Work in progress) + The following Oberon types are independent of compiler size: | Types | Size | diff --git a/doc/History.md b/doc/History.md index 3bfe2a27..6ff44199 100644 --- a/doc/History.md +++ b/doc/History.md @@ -1,3 +1,7 @@ +#### (Work in progress) + + + ### History diff --git a/doc/Installation.md b/doc/Installation.md index fe08aa3d..cf073524 100644 --- a/doc/Installation.md +++ b/doc/Installation.md @@ -1,3 +1,6 @@ +#### (Work in progress) + + ## TODO - Organise into summary and per-platfrom sections - with subsections for linux and BSD variants diff --git a/doc/Porting.md b/doc/Porting.md index 5145e7b9..94707e04 100644 --- a/doc/Porting.md +++ b/doc/Porting.md @@ -1,3 +1,5 @@ +#### (Work in progress) + ### Porting to a new platform Porting to a new 32 or 64 bits platform is usually automatically handled diff --git a/doc/Roadmap.md b/doc/Roadmap.md index 593f9e6f..e99440bd 100644 --- a/doc/Roadmap.md +++ b/doc/Roadmap.md @@ -1,4 +1,6 @@ +#### (Work in progress) + #### Machine size issues I don't see any really good solutions to different machine sizes. Existing code, @@ -83,3 +85,8 @@ address. It would be quite a lot of work! - CASE statements only support INTEGER (with low positive values) and CHAR. - Reject LOOP statements. - All imported variables are read-only. + +#### To be left out? + +Work on other compatibility layers is in progress. +voc team also works on bindings to existing C/Pascal libraries. diff --git a/src/system/SYSTEM.h b/src/system/SYSTEM.h index f9e2f930..41ef9995 100644 --- a/src/system/SYSTEM.h +++ b/src/system/SYSTEM.h @@ -49,7 +49,7 @@ #define LONGREAL double #define SYSTEM_PTR void* -// For 32 bit builds, the size of LONGINT depends on a make option: +// For 32 bit builds, the size of LONGINT depends on a make option: #if (__SIZEOF_POINTER__ == 8) || defined(LARGE) || defined(_WIN64) #define INTEGER int // INTEGER is 32 bit. @@ -126,21 +126,21 @@ static int __str_cmp(CHAR *x, CHAR *y){ #define __GET(a, x, t) x= *(t*)(uintptr_t)(a) #define __PUT(a, x, t) *(t*)(uintptr_t)(a)=x + #define __LSHL(x, n, t) ((t)((unsigned t)(x)<<(n))) #define __LSHR(x, n, t) ((t)((unsigned t)(x)>>(n))) #define __LSH(x, n, t) ((n)>=0? __LSHL(x, n, t): __LSHR(x, -(n), t)) -#define __ROTL(x, n, t) ((t)((unsigned t)(x)<<(n)|(unsigned t)(x)>>(8*sizeof(t)-(n)))) -#define __ROTR(x, n, t) ((t)((unsigned t)(x)>>(n)|(unsigned t)(x)<<(8*sizeof(t)-(n)))) -#define __LSHR(x, n, t) ((t)((unsigned t)(x)>>(n))) -#define __LSH(x, n, t) ((n)>=0? __LSHL(x, n, t): __LSHR(x, -(n), t)) -#define __ROTL(x, n, t) ((t)((unsigned t)(x)<<(n)|(unsigned t)(x)>>(8*sizeof(t)-(n)))) -#define __ROTR(x, n, t) ((t)((unsigned t)(x)>>(n)|(unsigned t)(x)<<(8*sizeof(t)-(n)))) -#define __ROT(x, n, t) ((n)>=0? __ROTL(x, n, t): __ROTR(x, -(n), t)) -#define __BIT(x, n) (*(unsigned LONGINT*)(x)>>(n)&1) -#define __MOVE(s, d, n) memcpy((char*)(uintptr_t)(d),(char*)(uintptr_t)(s),n) + #define __ASHL(x, n) ((LONGINT)(x)<<(n)) #define __ASHR(x, n) ((LONGINT)(x)>>(n)) #define __ASH(x, n) ((n)>=0?__ASHL(x,n):__ASHR(x,-(n))) + +#define __ROTL(x, n, t) ((t)((unsigned t)(x)<<(n)|(unsigned t)(x)>>(8*sizeof(t)-(n)))) +#define __ROTR(x, n, t) ((t)((unsigned t)(x)>>(n)|(unsigned t)(x)<<(8*sizeof(t)-(n)))) +#define __ROT(x, n, t) ((n)>=0? __ROTL(x, n, t): __ROTR(x, -(n), t)) + +#define __BIT(x, n) (*(unsigned LONGINT*)(x)>>(n)&1) +#define __MOVE(s, d, n) memcpy((char*)(uintptr_t)(d),(char*)(uintptr_t)(s),n) #define __ASHF(x, n) SYSTEM_ASH((LONGINT)(x), (LONGINT)(n)) #define __SHORT(x, y) ((int)((unsigned LONGINT)(x)+(y)<(y)+(y)?(x):(__HALT(-8),0))) #define __SHORTF(x, y) ((int)(__RF((x)+(y),(y)+(y))-(y)))