Home
Name Modified Size InfoDownloads / Week
vectorpascalcom 2011-06-24
manual.pdf < 14 hours ago 796.4 kB
readme < 14 hours ago 5.3 kB
install.zip < 14 hours ago 11.7 MB
install.jar < 14 hours ago 11.7 MB
ISO_and_extensions_conformance_test_report.html 2017-12-05 103.9 kB
installexperimental.jar 2013-09-13 21.0 MB
installexperimental508.zip 2013-09-13 21.0 MB
installstable467.jar 2013-07-14 17.2 MB
installstable467.zip 2013-07-14 17.2 MB
Totals: 10 Items   100.7 MB 5
Latest features

Now supports AVX512 by using the -cpuX86_64v4 flag.
Additional APL style operations supported
PREF and SUFF generate prefix and suffix vectors after style of Iversons alpha and omega operators.
In fact the appropriate APL unicode are recognised by the compiler.
The APL style rotate operator on arrays has been added, written either as ROT or as the corresponding APL symbol.
The INDEX function has been introduced to do the same as the APL select construct.
For example
program select;
const n=40;m=10;
var nums:array[1..n] of integer;
    mask:array[1..n] of boolean;
    indices:pivector;
begin
	nums := random mod 1000 ;
	mask := (nums mod m)<2;
	indices:=index(mask[]);
	writeln(indices^);
	writeln(nums[indices^]);
end.

We initialise nums with numbers in 0..999, and form a mask of those numbers
whose last digits are 0 or 1.
We use  index} to form the indices of where the mask array was true\footnote{The index funtion
takes a dynamic array slice as its parameter, we form a slice comprising the whole array with
the construct {\tt mask[]}.}.
We then produce a table of the positions and numbers at these positions


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, atyle, sablecc, M4 macro processor if you are doing source development work.
Nvidia GPU requires nvcc in addition to above, and a GPU with compute capability 3.0 and above.


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, Gcc and Nvcc if compiling to an Nvidia GPU.

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.
Source: readme, updated 2024-04-18