This project's initial motivation came from the need to adequately store and manage data structures that need to be persistent in the ABLE project.
There are two mayor subsystems: the data manager and the layout manager. The data manager exports an API that allows applications handling of containers, it also manages all the metadata of the containers and sends reads and write requests to the layout manager assuming a logical linear block address. The layout manager provides a virtual address space to the data manager, it uses chunks as its basic allocation and operation unit, these can be later remapped to a different location in an effort to improve performance.
A: During type analysis phase of the compilation this information is known.
These instructions will guide through the installation of SoftPM on a Ubuntu system. These instruction may not work on other distributions.
$ uname --all Linux maxwell 2.6.32-24-generic #42-Ubuntu SMP Fri Aug 20 14:21:58 UTC 2010 x86_64 GNU/Linux
$ sudo aptitude install libglib2.0-0-dev
command:
$ sudo aptitude install subversion
$ sudo aptitude install ocaml-nox
$ svn co https://doomsday.cs.fiu.edu/svn/pds/cil/
This will create a new folder called cil within the current folder. Now we need to compile CIL. To do so, run the following commands:
$ ./configure #this will setup the makefiles $ make #to compile cil and all its modules
At this point, you should have cil compiled. It is convenient to add the following folders to $PATH variable.
PATH_TO_FOLDER/cil/bin
PATH_TO_FOLDER/cil/obj/x86_LINUX
This can be done by adding the following line at the end of ~/.bashrc
export PATH=$PATH:/PATH_TO_FOLDER/cil/bin:/PATH_TO_FOLDER/cil/obj/x86_LINUX/
where PATH_TO_FOLDER is the path to the folder containing cil. Now we update $PATH by running the following command:
$ source ~/.bashrc
To check that CIL have been successfully installed, run the following command and make sure you get a similar output:
$ cilly | grep softpm /home/lmarmol/Projects/cil/cil-1.3.7/obj/x86_LINUX/cilly.asm.exe -help --dosoftpm Enable source transformations for softpm --dosoftpmcounter Enable softpmcounter: prints a message for avery SoftPM rule found --dosoftpmcpp Enable softpmcpp: pre-processor for LLVM generated c-code
$ sudo aptitude install llvm llvm-gcc
To see an example of how to convert C++ code in C code using LLVM, follow this link http://llvm.org/docs/FAQ.html#translatecxx
Now that we have installed all the dependecies, we can check-out the SoftPM source code from the svn server. To do so, run the following command:
svn co https://doomsday.cs.fiu.edu/svn/pds/code/src/
This will create a new folder named src within the current folder. Change directories into that folder and run the following commands to compilie SoftPM:
$ source config.sh $ make
If everything worked out as planed, you should now have a working version of SoftPM. To make sure that everything is working, change directory to tests and run the following command:
$ ./run-cmp.sh btree_simple/ ... tree_node: 2142757034 tree_node: 2145174067 tree_node: 2145854098 tree_node: 2147469841 tree_node_cmp: 1
Notice that the last line is tree_node_cmp: 1, which is the expected output.