|
DataMuseum.dkPresents historical artifacts from the history of: Regnecentalen RC-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Regnecentalen RC-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 8952 (0x22f8) Types: TextFile Notes: UNIX file Names: »README«
└─⟦5d210af82⟧ Bits:30004156 SW95754I Green Hill Pascal └─⟦5d210af82⟧ UNIX Filesystem └─⟦this⟧ »gp/new/usr/ghs/README« └─⟦bbefdb7d7⟧ Bits:30004157 SW95755I Green Hill C-386 └─⟦bbefdb7d7⟧ UNIX Filesystem └─⟦this⟧ »gc/new/usr/ghs/README«
Dear Customer: Thank you for purchasing a Green Hills Software compiler. The compilers are delivered to you by RC Computer A/S. This file will tell you how to install your C-386, Fortran-386, and Pascal-386 compilers from floppy disks into Unix System V.3 Release 1.00 for the Intel 386. Installation Notes YOU MUST BE LOGGED IN AS 'sysadm' TO INSTALL THE COMPILERS. The installation procedure is changed by RC Computer, to use the sysadm-procedure. The description covers the SW products: - SW95753I Green Hill Fortran-386 - SW95754I Green Hill Pascal-386 - SW95755I Green Hill C-386 1. Verify that the C-386 compiler was installed correctly, by the commands: cd /usr/ghs gcc t.c After a few seconds, there should be a new a.out file in the current directory. Type: ./a.out to verify that the C program has compiled and linked successfully. You should now be able to compile and link C programs of your own. 2. Verify that the Fortran-386 compiler was installed correctly. Type: cd /usr/ghs gf77 t.f After a few seconds, there should be a new a.out file in the current directory. Type: ./a.out to verify that the Fortran program has compiled and linked successfully. You should now be able to compile and link Fortran programs of your own. 3. Verify that the Pascal-386 compiler was installed correctly. Type: cd /usr/ghs gpc t.p After a few seconds, there should be a new a.out file in the current directory. Type: ./a.out to verify that the Pascal program has compiled and linked successfully. You should now be able to compile and link Pascal programs of your own. 4. If Fortran-386 is installed, you may run the Whetstone benchmark on the Intel 387. Type: gf77 -f387x -O2 whetstone.f etime_.c After a few seconds, there should be a new a.out file in the current directory. Type: ./a.out You should get a performance of about 1500000 whetstones per second (1.5 MegaWhetstones) on a 16MHz Intel 386/20 system. 5. If C-386 is installed, you may run the Dhrystone benchmark. Type: gcc -DREG=register dhrystone.c After a few seconds, there should be a new a.out file in the current directory. Type: ./a.out You should get a performance of about 7050 dhrystones/second on a 16MHz Intel 386/20 system. Advanced Topics. ============================================================= The libraries used here have been created from Green Hills own library sources, not from a UNIX base. You may encounter minor differences in their behaviour. The calling conventions etc. are compatible with Interactive Systems UNIX, except as noted below. The 'gcc', 'gf77', and 'gpc' commands all use the Green Hills libraries, including the Green Hills C library rather than the Unix libraries. The compiler does not yet use the Intel standard structure return mechanism. Programs which return structs may not be compatible with programs compiled with the UNIX cc. The compiler does follow the current conventions on 80387 register saving. 80387 specific instructions can be obtained with the "-f387" switch to the driver, or the "-X226" switch to the compiler. 'Library interception' means that the compiler recognizes certain functions as builtin functions which it expands inline, rather than calling the library. Library interception is on by default. To disable string library intercepts, use -X211. To disable 80287/80387 floating point intercepts, use -Z129. Code explosion is enabled by default. Usually this only costs about 5%, but if you are concerned about space, use -Z214 to suppress it. You might also want to use -X80 -X39 in that case. Memory optimizations are enabled by default; if you are compiling kernel code or device drivers, use -Z54. For compiling Unix kernels, use (at least) -Z54 -Z214 -X18 -X23 -ga. GREEN HILL NOTES ON 386 ENVIROMENT =============================================================== 386 Release Notes Fri Oct 9 14:35:38 PDT 1987 Version 1.8.3A There are 3 environments supported with this release; 1 )80387/80287 with the new floating point conventions (8-deep stack); 2 )Weitek 1167; 3 ) 80387/80287 with an experimental floating point convention, using 4 as "registers" and a 4-deep stack. The normal mode is to presume the existence of an 80287. Specifying "-f387" on the command line will compile for the 80387, using the new 80387 functions where possible, but still linking with the 80287 libraries. Specifying "-f1167" on the command line will compile for the Weitek 1167 chip set, and link with a different set of libraries. The Weitek high-speed libraries are used by default, with Green Hills libraries for other functions. Specifying "-f387x" on the command line will compile for the 80387 with the 4+4 conventions, and link with the experimental libraries. These conventions are subject to change at any time, and we reserve the right to terminate support for this option at any time. The code seems to run somewhat faster on most benchmarks. Differences from 1.8.2E: The new 80387 conventions have been adopted. The new Weitek transcendental library is being used. There is a new distribution layout, and a new 'compile.c'. Green Hills libraries are used, even for libc.a. The UNIX libraries are sometimes more reliable, but they do not exist in a form which follows the new calling conventions. A few small bugs have been fixed, and a few minor improvements to code quality have been made. The convention of having a 'wcc' for Weitek code and a 'gcc' for 80x87 code has changed; now there is only the 'gcc' command, optionally with the '-f1167' switch for Weitek code. This must be used both when compiling and linking. KNOWN OR SUSPECTED BUGS: Preliminary testing indicates that some of the Weitek libraries, in double precision mode, are not returning full precision results. The initial libraries we received returned double values in fp1/fp2; the Green Hills convention is fp2/fp3. The code was changed, but on some routines the precision still seems to be questionable. In some cases, such as 'cos' on large negative numbers, the results are clearly wrong. Copying a Green Hills library, such as BIN/386/lib/libwm.a, on top of BIN/386/lib/wtl1167.a, will cause the Green Hills libraries to be used instead. These are believed to be substantially correct. The new 80387 conventions imply that functions MUST be of known type; the following program is certain to crash the system, and it seems that very little can be done about it. /*do not include math.h, which would define sin as double*/ main(){sin();sin();sin();sin();sin();sin();sin();sin();sin();} -X302 Switch The compiler will now align static doubles, complex, and double complex variables on an 8 byte boundary with this switch. Or at least it will try; we have no way of testing this. There is an alternate method of calculating variable subscript indices in Fortran which is activated by this switch; in the future it will be the only method. Briefly, it generates much less code, and requires much less compile-time memory. RC COMPUTER NOTES ON GREEN HILL COMPILERS rel.1.8.3A ======================================================================== - The -O2 option does not work. Only use -O. - The -p and -pg options are not implemented yet. Causes "internal compiler error" - The -g option (generate debug inf) depends on the "libg.a", that should be present in directory /usr/ghs/BIN/386/lib. You have to copy libg.a from the directory /usr/lib - Optimization is done by default. Therefore, remove all -O switches in your make-files. Only use -O on selected object modules. - Always use the -f387 switch in compiler call. This generates 387-instructions. - Note the incompatibity with cc on returning structures from procedure calls. All modules doing so have to be recompiled (i.e. dont use old libaries containing such modules, without recompiling them). - Private libraries: The compilers call 'ld' for linking, and most of the linker options are handled as 'cc' does. Use the -v switch to examine ld call. The -l option is handled differently: the parameter is passed to ld, after adding the path for green hill libraries. This will ensure that you dont unintentionally mix programs and non-GreenHill libraries (they might be incompatible). Example: - my library is /usr/lib/libchd.a - cc works with the call: cc prog.c -lchd - gcc complains on the command: gcc prog.c -lchd as it looks for the library /usr/ghs/BIN/lib/libchd.a - my library may be linked with gcc by: gcc prog.c /usr/lib/libchd.a - Common files: The 3 compilers share some common files, found in /usr/ghs and /usr/ghs/BIN/386/lib When a compiler is "UN-INSTALLED" these files are NOT removed.