DataMuseum.dk

Presents historical artifacts from the history of:

Regnecentalen RC-900

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Regnecentalen RC-900

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦94f0edbff⟧ TextFile

    Length: 8952 (0x22f8)
    Types: TextFile
    Notes: UNIX file
    Names: »README«

Derivation

└─⟦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« 

TextFile


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.