New features in GNU Pascal 2.0 (corresponding to GCC 2.7.2.1): * Partial compatibility to Borland Pascal The "turbo-alpha" version of GNU Pascal 1.1 (corresponding to GCC 2.6.3) is now integrated into the main distribution. Some bugs have been fixed, and more Borland compatible features have been implemented, for example "else" in case statements (as an alternative for "otherwise") and UCSD/Borland-style untyped "var" parameters. * Easier installation Configuration is now done via GNU auto-configuration scripts. Compilation should now go through just by typing `configure' and then `make' (assuming that you have compiled GCC before). * Cross compilers The new configuration scripts make it easy to compile GPC as a cross compiler. * Texinfo documentation The existing documentation was translated to Texinfo format and organized in a tree. Some parts have been modified, rewritten, or added. The Texinfo documentation allows to have printed material (through TeX) and online-documentation in the GNU info format as well as in HTML format from one and the same source tree. * Precompiled interfaces Precompiled Extended Pascal Module Interfaces and Borland Pascal Unit Interfaces are now stored in GNU Pascal Interface (GPI) files. It is no more necessary to include the Module's or Unit's Interface part into the source of the main program. * AutoMake facility When you invoke GPC with a new command-line option --automake, it automatically checks whether Modules/Units used by the program must be recompiled and/or linked. This mechanism should make the use of `make' superfluous for GNU Pascal. * More stable objects Some bugs in the (Borland Pascal 7.0 style) objects (in the "turbo-alpha" version of GNU Pascal 1.1) are fixed. For example the "variable `vmt_Foo' too large" errors have been eliminated. * "String" bug fixed The bug that functions returning String schemas were called three times instead of once has been eliminated. * Extended Pascal "export foo = all" extension As a GNU extension to ISO 10206 Extended Pascal, we have introduced an export clause "export foo = all" (with a new (redefineable) keyword `all') which tells GPC to export all identifiers in the Module's interface part in the Interface `foo'. (Borland-style Units do the same automatically; the name of the Interface is then derived from the Units's name.) * PXSC operator fragments The PXSC operators +> -> *> /> etc. are not yet implemented, but the symbols are available now, so you can define these operators by yourself. (Please send us a copy when you do so!) * "__AsmName__" for variables External names of variables can now be specified via "var foo: __AsmName__ 'bar' Integer;". * Machine-specific attributes Attributes for like "attribute ( stdcall )" for Windows API functions are supported now. Furthermore, functions can have more than one attribute, e.g. "Procedure MyWindowsAPIproc; AsmName 'MyWindowsAPIproc'; attribute ( stdcall );". * Main program name configurable You can specify the external name of the function to be called by the system (usually `main') with a new option "-fgpc-main:MyMain". This is useful when using libraries which define "main", e.g. RSXWDK.