Difference between revisions of "Download 1.0"
(Created page with '<metadesc>Download the latest version of the Mesham type oriented parallel programming language</metadesc> {{Applicationbox|name=Mesham compiler 1.0|author=[[User:polas|Nick Bro…') |
|||
Line 11: | Line 11: | ||
== Download == | == Download == | ||
+ | * All components (compiler, runtime library, libgc) - download 64 bit '''here''' and 32 bit '''here''' | ||
* Latest compiler version: 1.0.0_232 released 19th January 2013 - download 64 bit '''here''' and 32 bit '''here''' | * Latest compiler version: 1.0.0_232 released 19th January 2013 - download 64 bit '''here''' and 32 bit '''here''' | ||
* Latest runtime library version: 1.0.0 released 19th January 2013 - download 64 bit '''here''' and 32 bit '''here''' | * Latest runtime library version: 1.0.0 released 19th January 2013 - download 64 bit '''here''' and 32 bit '''here''' | ||
* Conservative garbage collector (libgc) version 7.2 - download 64 bit '''here''' and 32 bit '''here''' | * Conservative garbage collector (libgc) version 7.2 - download 64 bit '''here''' and 32 bit '''here''' | ||
+ | |||
+ | == Installation Instructions == | ||
+ | |||
+ | It is suggested to download ''all components'' which will provide you with the compiler, runtime library and libgc. Unpack the archive and place the ''mcc'' (whihc is the main compiler) executable in your chosen location. It is suggested to either add the location to your path environment variable or add a symbolic link from the ''/usr/bin'' directory to the ''mcc'' binary so that you can call it regardless of the working directory. | ||
+ | |||
+ | Next we need to set up some environment variables to tell the compiler exactly where to find some different aspects. We can set these via the command ''export varible=value'' where ''variable'' is the name of the environment variable you wish to set and ''value'' is the value to set it to. The first environment variable, '''MESHAM_C_COMPILER''', decides which C compiler to use - we suggest mpicc and if you agree then issue ''export MESHAM_C_COMPILER=mpicc''. | ||
+ | |||
+ | Next we are going to set '''MESHAM_SYS_INCLUDE''' which points to the Mesham system include files (supplied with the compiler and all archive in the ''includes'' directory.) Set this variable to point to the directory containing these .mesh files. '''MESHAM_C_INCLUDE''' needs to point to the directory containing the ''mesham.h'' header file and will be used by the C compiler. This, along with the runtime library, is supplied in the ''idaho'' directory. Lastly, the '''MESHAM_C_LIBRARY''' should point to the directory containing the Mesham runtime library and also the libgc library (this can be in the same directory or you can separate the values the via '';''.) It it suggested to add these exports to your ''.bashrc'' script to avoid excessive typing. | ||
+ | |||
+ | If you do not wish to set these last two environment variables then alternatively you can symlink ''libmesham.so'' and ''libgc.so'' into your ''/usr/lib'' directory and the ''mesham.h'' header file into ''/usr/include''. | ||
+ | |||
+ | Now we have done this we are good to go; issue ''mcc -env'' which will display the environment variables. | ||
+ | |||
+ | == Testing the compiler == | ||
+ | |||
+ | Copy the following code into test.mesh, then compile via ''mcc -e test.mesh'' (the -e flag will display any errors reported by the C compiler.) All being well an executable ''test'' will appear, run this via ''mpiexec -np 1 ./test'' after ensuring your favourite MPI process manager is running. | ||
+ | |||
+ | #include <io> | ||
+ | #include <string> | ||
+ | #include <parallel> | ||
+ | |||
+ | function void main() { | ||
+ | group 0,1,2,3 { | ||
+ | print("Hello from process "+itostring(pid())+"\n"); | ||
+ | }; | ||
+ | }; | ||
+ | |||
+ | All being well, you should see the output (but the order of the lines will vary): | ||
+ | |||
+ | Hello from process 0 | ||
+ | Hello from process 2 | ||
+ | Hello from process 3 | ||
+ | Hello from process 1 |
Revision as of 17:45, 19 January 2013
Mesham compiler 1.0 | |
Icon: | |
---|---|
Description: | The latest release of the Mesham compiler |
Version: | 1.0.0_232 |
Released: | January 2013 |
Author: | Nick Brown |
Website: | http://www.mesham.com |
Introduction
This is the latest version of the Mesham compiler and is based upon the language as described here and documented on this website. The compiler has been entirely rewritten from scratch and this line of compiler (version 1.0 and upwards) is known as at the Oubliette line to distinguish it from the previous versions.
Version 1.0.0 is currently an alpha release and as such should be considered experimental. Please keep checking back for later versions which will be released as we fix bugs and add features.
Download
- All components (compiler, runtime library, libgc) - download 64 bit here and 32 bit here
- Latest compiler version: 1.0.0_232 released 19th January 2013 - download 64 bit here and 32 bit here
- Latest runtime library version: 1.0.0 released 19th January 2013 - download 64 bit here and 32 bit here
- Conservative garbage collector (libgc) version 7.2 - download 64 bit here and 32 bit here
Installation Instructions
It is suggested to download all components which will provide you with the compiler, runtime library and libgc. Unpack the archive and place the mcc (whihc is the main compiler) executable in your chosen location. It is suggested to either add the location to your path environment variable or add a symbolic link from the /usr/bin directory to the mcc binary so that you can call it regardless of the working directory.
Next we need to set up some environment variables to tell the compiler exactly where to find some different aspects. We can set these via the command export varible=value where variable is the name of the environment variable you wish to set and value is the value to set it to. The first environment variable, MESHAM_C_COMPILER, decides which C compiler to use - we suggest mpicc and if you agree then issue export MESHAM_C_COMPILER=mpicc.
Next we are going to set MESHAM_SYS_INCLUDE which points to the Mesham system include files (supplied with the compiler and all archive in the includes directory.) Set this variable to point to the directory containing these .mesh files. MESHAM_C_INCLUDE needs to point to the directory containing the mesham.h header file and will be used by the C compiler. This, along with the runtime library, is supplied in the idaho directory. Lastly, the MESHAM_C_LIBRARY should point to the directory containing the Mesham runtime library and also the libgc library (this can be in the same directory or you can separate the values the via ;.) It it suggested to add these exports to your .bashrc script to avoid excessive typing.
If you do not wish to set these last two environment variables then alternatively you can symlink libmesham.so and libgc.so into your /usr/lib directory and the mesham.h header file into /usr/include.
Now we have done this we are good to go; issue mcc -env which will display the environment variables.
Testing the compiler
Copy the following code into test.mesh, then compile via mcc -e test.mesh (the -e flag will display any errors reported by the C compiler.) All being well an executable test will appear, run this via mpiexec -np 1 ./test after ensuring your favourite MPI process manager is running.
#include <io> #include <string> #include <parallel> function void main() { group 0,1,2,3 { print("Hello from process "+itostring(pid())+"\n"); }; };
All being well, you should see the output (but the order of the lines will vary):
Hello from process 0 Hello from process 2 Hello from process 3 Hello from process 1