Cloudy & Associates

Commit 71db9afe authored by Chatzikos, Marios's avatar Chatzikos, Marios
Browse files

Convert READMEs in source/ to Markdown

parent fc859cec
## Notes
To build with gcc, you can simply type "make" in this directory.
An executable named "cloudy.exe" will be produced.
There are a number of subfolders, with names "sys_*", that are tailored
There are a number of subfolders, with names ```sys_*```, that are tailored
for different compilers. For example, the LLVM compiler would use sys_llvm.
For more information on building Cloudy see
http://trac.nublado.org/wiki/CompileCode
https://gitlab.nublado.org/cloudy/cloudy/-/wikis/CompileCode
For more details on the makefile used to build Cloudy see
http://www.nublado.org/wiki/MakefileDescription
https://gitlab.nublado.org/cloudy/cloudy/-/wikis/MakefileDescription
## Notes
This test suite verifies that illegal constructs are rejected by the compiler.
To run the test suite:
```
./run_tests.pl [ <compiler-name> ]
```
The default compiler name is g++. Compiler output will be in run_tests.log.
This file should be checked to see if it contains the expected error messages
(the perl script only checks if the compiler returns an error code). All tests
......
## Notes
Set up to run through Clang static analyzer.
```
make clean
scan-build -o scan make
```
-- the make can be run in parallel with the -j <n> argument as usual.
This can be used on systems where scan-build and clang++ are
installed in the same location. If they are not, as they are no
in Lexington, then use the
```
--use-analyzer
```
option to specify the location of clang++. On our machines
the entry
```
scan-build -o scan --use-analyzer /usr/local/bin/clang++ make
```
will create the output.
## Notes
This directory contains the files needed to generate
an O3 optimized executable with g++
===========================
if you receive the error
#error "This g++ version cannot compile Cloudy and must not be used!"
> #error "This g++ version cannot compile Cloudy and must not be used!"
it is because you have version 2.96 or 3.4 of g++. These versions cannot
produce a valid executable. Update to a more recent version of the compiler.
......@@ -13,8 +15,10 @@ produce a valid executable. Update to a more recent version of the compiler.
To change Makefile so that the default build has other properties:
Edit the third line of the Makefile in sys_gcc to read
```
<TAB>$(MAKE) -f ../Makefile SRCDIR=.. $(MAKECMDGOALS) options
where "options" contains the options you want to pass on to make
```
where "options" contains the options you want to pass on to make, e.g.,
```
-j 4 EXTRA="-DFOO -DBAR"
```
This generates an executable compiled with g++ with
gprof profiling enabled
## Notes
to build enter
This generates an executable compiled with g++ with
gprof profiling enabled.
To build enter
```
make
at the command prompt
```
at the command prompt.
This builds a gcc executable with
coverage analysis switched on, which might be some help here. Takes a
......@@ -14,15 +17,15 @@ The runs generate a load of files with ".gcda" extension , which build
up stats for all subsequent runs until they are deleted (so one could
look at coverage for the whole test suite).
"make reset" will remove all these statistics files.
```make reset``` will remove all these statistics files.
"make analyze" runs "gcov" itself, sending the coverage statistics for
```make analyze``` runs "gcov" itself, sending the coverage statistics for
all the routines calls (a lot of text...) to "coverage", and
generating ".gcov" files in the subdirectory which give line-by-line
execution counts. It uses this output to print some basic coverage
statistics.
The following are useful for analysing the output from gprof
grep "^ *-: *[1-9]" *.gcov | wc
grep "^ *#" *.gcov | wc
grep "^ *[1-9]" *.gcov | wc
> grep "^ *-: *[1-9]" *.gcov | wc
> grep "^ *#" *.gcov | wc
> grep "^ *[1-9]" *.gcov | wc
## Notes
This generates a g++ executable with bounds-checking enabled, requires g++ 4.8.0 or later.
to build enter
```
make [ -j <n> ]
```
at the command prompt
the three tests included here should crash due to array bounds exceeded
```
crashBoundsStack.in
crashBoundsStatic.in
crashBoundsVector.in
```
llvm 3.2 supports this, but you need the compiler-rt
runtime libraries for the program to link. You can use sys_gccBounds with
```
make -j <n> CXX=clang++
```
to produce a binary with bounds checking enabled.
If, when using clang++, the error message produced gives the error
locations as a list of hexadecimal pointers, and there is a message
'Trying to symbolize code, but external symbolizer is not
initialized!', you may need to re-run the executable as e.g.
```
ASAN_SYMBOLIZER_PATH=$(which llvm-symbolizer-3.4) ../cloudy.exe
```
in order to get a proper stack trace.
This generates an executable compiled with g++ with
gprof profiling enabled
## Notes
to build enter
This generates an executable compiled with g++ with
gprof profiling enabled.
To build enter
```
make
at the command prompt
```
at the command prompt.
This generates an executable compiled with g++ with
gperftools heap profiling enabled
## Notes
to build enter
This generates an executable compiled with g++ with
gperftools heap profiling enabled.
To build enter
```
make
at the command prompt
```
at the command prompt.
```
gcc [...] -o myprogram -ltcmalloc
HEAPPROFILE=/tmp/profile ./myprogram
```
See
http://code.google.com/p/gperftools/wiki/GooglePerformanceTools
See the Google Performance Tools
[repository](https://github.com/gperftools/gperftools).
This generates an executable compiled with g++ with
gperftools profiling enabled
## Notes
to build enter
This generates an executable compiled with g++ with
gperftools profiling enabled.
To build enter
```
make
at the command prompt
```
at the command prompt.
```
gcc [...] -o myprogram -lprofiler
CPUPROFILE=/tmp/profile ./myprogram
See
http://code.google.com/p/gperftools/wiki/GooglePerformanceTools
```
See the Google Performance Tools
[repository](https://github.com/gperftools/gperftools).
This generates an executable compiled with g++ with
gprof profiling enabled
## Notes
to build enter
This generates an executable compiled with g++ with
gprof profiling enabled.
To build enter
```
make
at the command prompt
```
at the command prompt.
## Notes
This directory contains the files needed to generate an O3 optimized
executable with g++, using a shared library. This means that the
executable is small, but needs to be able to access libcloudy.so at
run time. The libcloudy.so file may also be useful for access by
third-party packages (e.g. perl or python).
to build do
To build do
```
source sourceme.txt
```
or enter
```
make
at the command prompt
```
at the command prompt.
clean - to remove files that were created by make, do
make clean
......@@ -17,6 +22,7 @@ make clean
The Makefile also builds a python link module using swig. If swig is
installed, and apart from platform dependencies,
```
% cd gcc_shared
% make -f ../Makefile SRCDIR=.. _cloudy.so
[stuff]
......@@ -34,15 +40,15 @@ print Cloudy::cdInit();
print Cloudy::cdRead("title A model"),"\n";
^D
4000
```
should work.
Small finesses will allow this to work with Ruby, Tcl, etc. as
advertised on the Swig website.
* * *
===========================
if you receive the error
#error "This g++ version cannot compile Cloudy and must not be used!"
If you receive the error
> #error "This g++ version cannot compile Cloudy and must not be used!"
it is because you have version 2.96 or 3.4 of g++. These versions cannot
produce a valid executable. Update to a more recent version of the compiler.
This generates an O3 optimized executable with icc
## Notes
to build enter
This generates an O3 optimized executable with icc.
To build enter
```
make
at the command prompt
```
at the command prompt.
sys_icc_mac:
on Mac with xcode 3.2.2 and icc 11.1 add
```
-use-asm
to both compile and link steps in Makefile.conf
```
to both compile and link steps in Makefile.conf.
This is included in the sys_icc_mac directory below this one.
This generates an O3 optimized executable with icc
## Notes
to build enter
This generates an O3 optimized executable with icc
To build enter
```
make
at the command prompt
```
at the command prompt.
sys_icc_mac:
on Mac with xcode 3.2.2 and icc 11.1 add
```
-use-asm
to both compile and link steps in Makefile.conf
```
to both compile and link steps in Makefile.conf.
## Notes
This directory contains the files needed to generate
an O3 optimized executable with clang++
Edit Makefile.conf so that the default build has other properties,
or use this to pass additional options to make:
```
make -j <n> EXTRA="-DFOO -DBAR"
```
## Notes
This generates an MPI parallelized executable with mpiCC (based on g++)
for running a large grid.
to build enter
To build enter
```
make
```
at the command prompt, to build debug do
```
make debug
```
add "-j n" where n is the number of threads to use in the build.
This will not work on a Mac, since it uses mpiCC which is misinterpreted as
......
## Notes
This generates an MPI parallelized executable with mpiCC (based on g++)
for running a large grid.
To build enter
```
make
```
at the command prompt.
This version uses mpic++ rather than mpiCC since the latter matches
mpicc on the Mac file system.
This generates an MPI parallelized executable with mpiCC (based on g++) for running a large grid.
to build enter
make
at the command prompt
this version uses mpic++ rather than mpiCC since the latter matches
mpicc on the Mac file system
This generates an MPI parallelized executable with mpiCC (based on icc) for running a large grid.
## Notes
to build enter
This generates an MPI parallelized executable with mpiCC (based on icc)
for running a large grid.
To build enter
```
make
at the command prompt
```
at the command prompt.
## Notes
This generates an MPI parallelized executable with mpiCC (based on g++)
for running a large grid.
to build enter
To build enter
```
make
```
at the command prompt, to build debug do
```
make debug
```
add "-j n" where n is the number of threads to use in the build.
This will not work on a Mac, since it uses mpiCC which is misinterpreted as
......
## Notes
This directory contains the files needed to generate
an optimized executable with the Sun Studio compiler.
The -Yl,/usr/bin flag is needed to work around an incompatibility between the
(modified) linker supplied by Sun and the object file format in recent Linux
distributions. It is only needed on 64-bit systems. See the bug report here
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6533627
distributions. It is only needed on 64-bit systems. See the bug report
[here](http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6533627)
for further details.
------------------------
to build enter
make
at the command prompt
To build enter
```
make
```
at the command prompt.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment