source: CIVL/README@ d477119

1.23 2.0 acw/focus-triggers main test-branch
Last change on this file since d477119 was 6f2b49d, checked in by Manchun Zheng <zmanchun@…>, 12 years ago

updated README.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@761 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 8.3 KB
Line 
1 CIVL: The Concurrency Intermediate Verification Language
2 v 0.9
3
4------------------------------ Overview -------------------------------
5
6CIVL is a framework encompassing...
7
8 * a programming language, CIVL-C, which adds to C a number of
9 concurrency primitives, as well as the ability to define
10 functions in any scope. Together, these features make for
11 a very expressive concurrent language that can faithfully
12 represent programs using various APIs and parallel languages,
13 such as MPI, OpenMP, CUDA, and Chapel. CIVL-C also provides
14 a number of primitives supporting verification.
15 * a model checker which uses symbolic execution to verify a
16 number of safety properties of CIVL-C programs. The model
17 checker can also be used to verify that two CIVL-C programs
18 are functionally equivalent.
19 * a number of translators from various commonly-used languages
20 and APIs to CIVL-C. (This part is still a work in progress.)
21
22CIVL is developed by the Verified Software Laboratory at the
23University of Delaware Department of Computer Science.
24For more information, visit http://vsl.cis.udel.edu/civl
25
26Developers:
27
28Stephen F. Siegel
29Timothy K. Zirkel
30Manchun Zheng
31Ziqing Luo
32
33------------------------------- License -------------------------------
34
35CIVL is open source software distributed under the GNU
36General Public License. However, the libraries used by CIVL
37(and incorporated into the complete distribution) use various
38licenses. See directory licenses for the license of each component.
39
40-------------------------- Updates from v 0.8 -------------------------
41
42
43------------------------- Binary Installation -------------------------
44
45For most users, this will be the easiest way to install and use CIVL.
46
471. Install a Java 7 SDK if you have not already. Go to
48http://www.oracle.com/technetwork/java/javase/downloads/ for the
49latest from Oracle. On linux, you can optionally sudo apt-get install
50openjdk-7-jdk.
51
522. If you already have the VSL dependencies library, you may
53skip this step. Otherwise, download the archive of VSL
54dependencies from http://vsl.cis.udel.edu/tools/vsl_depend,
55choosing the version for your OS type (32-bit linux,
5664-bit linux, or 64-bit OS X). Unzip and untar the
57downloaded .tgz file and you will have a folder named "vsl".
58If you do not already have a directory /opt, create one with
59"mkdir /opt". Move vsl into /opt. Use sudo as needed.
60
613. Download the CIVL distribution from http://vsl.cis.udel.edu/civl.
62
634. Unzip and untar the downloaded file if this does not happen
64automatically. This should result in a folder named
65CIVL-TAG, where TAG is some version id string. This folder
66contains the following:
67
68 - README : this file
69 - bin : containing one executable sh script called "civl"
70 - lib : containing civl-TAG.jar
71 - doc : containing the manual and the tutorial of CIVL
72 - emacs : CIVL-C emacs mode and its installation guideline
73 - licenses : licenses for CIVL and included libraries
74 - examples : some example CIVL programs
75
765. Move CIVL-TAG into /opt.
77
786. Put the civl script in your path however you like to put things
79in your path. Either move it to a directory in your path,
80or create a symlink to it, or edit your .profile or equivalent
81to put it in your path.
82
83------------------------- Source Installation -------------------------
84
85We recommend using the Eclipse IDE for Java/EE developers.
86
871. Install an SVN plugin in Eclipse (such as Subversive) if you have
88 not already.
89
902. Install prerequisite projects ABC, SARL and GMC.
91 Make sure that the three projects are put in the workspace
92 directory where CIVL will be put.
93
94 a. Install the C front-end ABC. In Eclipse,
95 select New Project...from SVN, use the archive
96 svn://vsl.cis.udel.edu/abc. After entering that, open it
97 up and select the "trunk". After checking out trunk, name
98 the project "ABC". Then follow the instructions in the INSTALL
99 file for Eclipse installation. Build the abc.jar from within
100 Eclipse by right-clicking (or ctrl-clicking on OS X) on the
101 build.xml file and selecting Run As->Ant Build.
102
103 b. Install the symbolic algebra and reasoning library SARL.
104 In Eclipse, select New Project...from SVN, use the archive
105 svn://vsl.cis.udel.edu/sarl. After entering that, open it
106 up and select the "trunk". After checking out trunk, name
107 the project "SARL". Then follow the instructions in the INSTALL
108 file for Eclipse installation. Build the sarl.jar from within
109 Eclipse by right-clicking (or ctrl-clicking) on the build.xml
110 file and selecting Run As->Ant Build.
111
112 c. Install the generic model checking utilities package GMC.
113 In Eclipse, select New Project...from SVN, use the archive
114 svn://vsl.cis.udel.edu/gmc. After entering that, open it
115 up and select the "trunk". After checking out trunk, name
116 the project "GMC". Build the gmc.jar from within Eclipse
117 by right-clicking (or ctrl-clicking) on the build.xml file and
118 selecting Run As->Ant Build.
119
1203. From within Eclipse, select New Project...from SVN. The archive is
121 svn://vsl.cis.udel.edu/civl. After entering that, open it up and
122 select the "trunk". (It is simplest to just check out the trunk for
123 the Eclipse project.)
124
1254. Check out the trunk, and create the project using the New Java
126 Project Wizard as usual, naming it "CIVL". The .project, .classpath,
127 and other Eclipse meta-data are already in the SVN archive, saving you
128 a bunch of work.
129
1305. If you already have the VSL dependencies library, you may
131 skip this step. Download the tgz archive of VSL dependencies from
132 http://vsl.cis.udel.edu/tools/vsl_depend, choosing the right .tgz
133 according to your platform:
134
135 vsl_linux32-1.0.tgz - 32-bit linux
136 vsl_linux64-1.0.tgz - 64-bit linux
137 vsl_osx64-1.0.tgz - 64-bit osx
138
139 Unzip the .tgz file and you will have the folder vsl.
140 Move vsl to /opt (you might need to use sudo for this.
141 Also, if you don't already have a directory called /opt,
142 you will have to create it with mkdir /opt).
143
144 Suppose that you put the .tgz file (or .tar file if your browser
145 unzipped it automatically to a .tar file) in the directory $Download.
146 You can use the following commands:
147
148 $ cd $Download
149 $ tar xzf YourTgzOrTarFile vsl
150 $ sudo mv vsl /opt
151
152 Now you can type "ls /opt/vsl", and the output should be
153
154 README.txt lib licenses src
155
1566. If default_build.properties matches the configuration of your system,
157 then you can skip this step. Otherwise, you may need to create a file
158 build.properties in the directory where build.xml is in.
159 Copy and paste the content from any file under properties, edit each
160 entry with the path configured in your system. The newly created file
161 build.properties will automatically be used by ant to to build the .jar file.
162
1637. Navigate to Preferences -> Java -> Build Path -> ClassPath
164 Variables, and then select New to create a classpath variable VSL,
165 and specify its value to be /opt/vsl. Navigate to Preferences -> Run/Debug
166 -> String Substitution -> New, and then define an entry vsl_lib and
167 set its value to be /opt/vsl/lib.
168
1698. Do a clean build. Everything should compile. Generate the civl.jar
170 by right-clicking (or ctrl-click on OS X) the build.xml file and
171 Run As->Ant Build.
172
1739. Go to Run->Run Configurations... Create a new JUnit configuration.
174 Name it CIVL Tests. Select "Run all tests in the selected project..."
175 and navigate to the folder "test" in the CIVL project.
176 The Test runner should be JUnit 4. Under the Arguments tab, type
177 "-ea" (without the quotes) in the VM arguments area (to enable assertion
178 checking). Under the Environment tab, create an entry
179 DYLD_LIBRARY_PATH (OS X) or LD_LIBRARY_PATH (linux),
180 specify its value by clicking Variables and choose vsl_lib from the list,
181 or you may type ${vsl_lib} in the value entry.
182
18310. An example of how to set up a single test from within Eclipse:
184 create a new Run Configuration via the Run->Run
185 Configurations... menu. Create a new "Java Application"
186 configuration. Call it "CIVL barrier2". The Project is CIVL. The
187 main class is edu.udel.cis.vsl.civl.CIVL. Under the Arguments tab,
188 set the Program arguments to "examples/barrier2.cvl" (without the
189 quotes). Modify the VM arguments and the Environment as in the step
190 above. You should now be able to run the test by clicking "Run".
Note: See TracBrowser for help on using the repository browser.