
Last modified: Mon Dec  6 22:26:41 1993
By: Juki <jtv@hut.fi>

The GPC compiler does not yet implement the whole ISO 7185 Pascal
standard, so please take this into account when you consider
using this for any purpose.

See the file version.c to find out the version number of this GPC
(or run gpc -v)

Problems in this GPC version:

	- type checking is mostly what C does, not what Pascal requires,
	  so GPC does not yet implement a strongly typed language.
	  Although correct programs compile, incorrect ones compile also.

	- run time errors are not checked.

	- the inline set operations have some problems
	  with operations on two sets if the sets do not contain
	  equally many segments.

	  In addition, the set code generated in the alpha causes
	  runtime runtime errors in the generated code.

	  I'm fixing the remaining bugs in setop.c,
	  but I wanted to get this version out so you can play with it.

	- No GPC texinfo file exists yet. See GPC.GUIDE instead.

	- Error recovery on parse errors could still be better.

	- Conformant arrays don't yet work very well.
	  Until they do, this is a LEVEL-0 compiler.

	- On a HP-PA Snake gcc routines generate incorrect
	  label type for non-local gotos. I reported this problem,
	  it will be fixed in the next (or the one after that)
	  release.

	- If you have a SPARC machine, read the INSTALL file, you
	  need to patch the config/sparc/sparc.h file.

Inconveniences:

	- NEW & DISPOSE optional tag field arguments are ignored
	  (warning given, code works)

	- GDB does not yet understand pascal sets, files or subranges.
	  Now GDB allows you to debug these things, even though it does
	  not yet understand some stabs.

	- PACKED does not pack. (This is not a bug, it's implementation
	  dependent)

	- TYPE foo=^foo; is badly implemented, and although it
	  passes the conformance tests it gives a warning.
	  I could disable the warning, but I want to fix the
	  implementation. (You use this construct all the time,
	  don't you :-)

	- cpp is not used for Pascal programs, since cccp does not
	  recognize Pascal comments (a single apostrophe inside a
	  comment prevents compilation). Until I get to fix it,
	  we have to live without macros and includes.

Note for debugging:

	- When debugging, please note that the Initial Letter
	  In Each Identifier Is In Upper Case And The Rest
	  Are In Lower Case. If  you wish to call C-routines
	  declare them with the "C" directive, as follows:

		procedure FooBAR(i:integer);c;

	  This makes the external name to be "_foobar"
	  (replace "_" with you machine prefix.)

		Procedure FooBAR(i:Integer); External;

	  Uses external name "_Foobar".

	  It is done like this to reduce name clashes	
	  with libc.a and other possible libraries.

	  All visible GPC runtime system library routines are
	  named "_p_....".
