Latest features
Sept 5 2013 Beta version of code generator for the Intel MIC now included see notes below.
Preliminary support for classes is provided, as described in latest version of manual.
Listing files now produced showing which lines have been auto parallelised
AVX instructionset now supported including support for 64 bit address space versions
with code generator flag AVX64
Manual provides more detail on how to use multi core parallelism
Aliasing operations now supported for array sections via built
in alias procedure


Installation details

Unpack  a recent version of either the install.jar file or the install.zip file.

You can do this by using the
jar -xf install.jar
command, or by usings a windows unzip package.

This will create a directory mmpc containing the files needed by the compiler.

Dependencies
------------
Java, Nasm, Gcc, M4 macro processor if you are doing source development work.


You can install either from source or from the download files install.win32.zip or
install.linux.tar.gz

If installing from source, you should run the command
make install
to create the installation archives.


On Linux
--------
If you are just running the compiler to compile Pascal source you
need : (Sun's) Java, Nasm and Gcc.

GCC is used to build and link runtime libraries to the assembler
produced by Vector Pascal. On Linux the standard GCC compiler will work.

Extract the mmpc directory from install.tar.gz with the command:
tar -zxvf install.linux.tar.gz

You will now need to build a compatible RTL by doing the following:
Go into the directory mmpc and type
make rtl
and then type
make rtl.o

Optionally, place the directory mmpc on your path with the following command:
export PATH=$PATH:/path/to/mmpc
Note that this will have to be set to run every time your computer starts.

If you have altered the locations of the installed files from the default, you
will need to define the symbol mmpcdir to point at the directory containing
mmpc.jar by running the following command:
export mmpcdir=/path/to/mmpc


On Windows
----------
When working on Windows some incompatibilities exist between different releases
of GCC and of assemblers. The NASM assembler under Windows will only work
reliably with the djgpp release of GCC and not with Cygwin. Given Cygwin's easy
installation, when working with Windows, the prefered method is to use the
Cygwin compiler, not the DJGPP compiler. If using the cygwin compiler
specify that you are using the gnu versions of the code generator
as this is required to produce gnu compatible assembler code.
Examples of using the gnu versions of the compiler would be to specify
-cpugnuP4 or -cpugnuPentium

To install, first obtain a copy of Cygwin from http://cygwin.com/setup.exe
or http://www.cygwin.com/

When installing Cygwin, add the "make" package to the default programs to
install.

Once Cygwin is installed, extract the VPC archive using the following:
unzip install.win32.zip

You will now need to build a compatible RTL by doing the following:
Go into the directory mmpc and type
make rtl
Then type
make rtl.o

The environment variable "mmpcdir" will have to be set. This can be done by
right clicking on "My Computer" and selecting "Properties". Select the
"Advanced" tab and clicking on the "Environment Variables" button. mmpcdir
should then be set to the path to the files you extracted earlier.

Additionally, you may choose to add the same directory to your path.

To execute, you can use either Cygwin's shell or a standard Dos prompt.

=================================================================
If you want to use the pretty printer facility built into the compiler, then
you will need Latex.

If you want to use the garbage collector go into the directory
for the garbage collector mmpc/rtl/gc and follow the instructions
to build the Boehm garbage collection library gc.a

then go into mmpc and type

make rtlb.o

For the Intel MIC (Xeon Phi)
The compiler works as a cross compiler on the host machine. The compiler
flag you must use is -cpuMIC to generate code for it. 
You need to have the intel MPSS package installed and you need
to set up a pair of symbolic links on your path to the mic assembler and
and mic gcc compilers. The Pascal compiler expects a mic version of
the gnu assembler to be on its path with the name mic-as and a mic version
of the gcc compiler with the name mic-gcc.

At present it supports multi-core operations and basic SIMD operations
on single precision floats. Double precision maths is still scalar.



