Skip to content

Commit eebf0d9

Browse files
authored
Merge pull request #210 from lmntal/develop
Version 2.4.0
2 parents 5da0247 + 1644df7 commit eebf0d9

File tree

581 files changed

+46134
-111784
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

581 files changed

+46134
-111784
lines changed

.cquery

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
clang
2+
%c -std=c11
3+
%cpp -std=c++11
4+
-pthread
5+
6+
# Includes
7+
-I./src
8+
-I./src/element/re2c
9+
-I./src/element
10+
-I./src/ext
11+
-I./src/ffi
12+
-I./src/loader
13+
-I./src/test
14+
-I./src/verifier
15+
-I./src/verifier/mem_encode
16+
-I./src/vm
17+
-I./src/vm/interpret
18+

.gitignore

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
# Libraries
1010
*.lib
1111
*.a
12+
share/*
1213

1314
# Shared objects (inc. Windows DLLs)
1415
*.dll
@@ -23,6 +24,7 @@
2324
*.i*86
2425
*.x86_64
2526
*.hex
27+
bin/*
2628

2729
# misc
2830
GPATH
@@ -32,6 +34,7 @@ TAGS
3234
gtags.conf
3335
*~
3436
\#*\#
37+
.vscode/*
3538

3639
#mac
3740
.DS_Store
@@ -43,6 +46,7 @@ Thumbs.db
4346
Makefile
4447
Makefile.in
4548
autom4te.cache/
49+
benchmarkset/*.il
4650
compile
4751
config.guess
4852
config.log
@@ -67,18 +71,13 @@ lib/*.il
6771
*.lo
6872
*.la
6973
src/arch.h
70-
src/loader/il_lexer.c
71-
src/loader/il_lexer.h
72-
src/loader/il_parser.c
73-
src/loader/il_parser.h
74-
src/loader/interpret_generated.c
75-
src/loader/translate_generated.c
7674
src/slim
77-
src/verifier/nc_lexer.*
78-
src/verifier/nc_parser.*
79-
src/verifier/nc_parser.h
80-
src/verifier/propsym_lexer.*
81-
src/verifier/propsym_parser.*
75+
src/verifier/nc_lexer.cpp
76+
src/verifier/nc_parser.cpp
77+
src/verifier/nc_parser.hpp
78+
src/verifier/propsym_lexer.cpp
79+
src/verifier/propsym_parser.cpp
80+
src/verifier/propsym_parser.hpp
8281
src/utility/.deps
8382
src/verifier/.deps
8483
third_party/google-perftools-1.8.3/.deps
@@ -89,3 +88,9 @@ test/**/*.log
8988
test/**/*.trs
9089
test/**/*.il
9190
.dirstamp
91+
il_lexer.cpp
92+
il_parser.cpp
93+
il_parser.hpp
94+
src/loader/interpret_generated.cpp
95+
src/loader/translate_generated.cpp
96+
third_party/google-perftools-1.8.3/test-suite.log

.travis.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
language: cpp
2+
compiler:
3+
- gcc
4+
- clang
5+
before_install:
6+
- git clone https://github.com/lmntal/lmntal-compiler.git
7+
- cd lmntal-compiler && ant compile && cd ..
8+
- export LMNTAL_HOME="`pwd`/lmntal-compiler"
9+
- sudo apt-get -qq update
10+
- sudo apt-get install -y re2c
11+
install:
12+
- ./autogen.sh
13+
- ./configure
14+
script:
15+
- make check

AUTHORS

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,19 @@ Yusuke Ueno <yueno@ueda.info.waseda.ac.jp>
1111
Ryohei Nakagawa <nakagawa@ueda.info.waseda.ac.jp>
1212
Tosiki Kawabata <kawabata@ueda.info.waseda.ac.jp>
1313
Manabu Meguro <meguro@ueda.info.waseda.ac.jp>
14+
Naoki Yaguchi <yaguchi@ueda.info.waseda.ac.jp>
15+
Ryuichi Aoyama <aoyama@ueda.info.waseda.ac.jp>
16+
Masaru Onuma <onuma@ueda.info.waseda.ac.jp>
17+
Ryo Yasuda <yasuda@ueda.info.waseda.ac.jp>
18+
Taketo Yoshida <taketo@ueda.info.waseda.ac.jp>
19+
Suguru Yonamine <yonamine@ueda.info.waseda.ac.jp>
20+
Yusuke Yoshimoto <yoshimoto@ueda.info.waseda.ac.jp>
21+
Yutaro Tsunekawa <tsunekawa@ueda.info.waseda.ac.jp>
22+
Nozomi Matsuzawa <matsuzawa@ueda.info.waseda.ac.jp>
23+
Taichi Tomioka <tomioka@ueda.info.waseda.ac.jp>
24+
Takahiro Yanagawa <yanagawa@ueda.info.waseda.ac.jp>
25+
Ryoto Saito <saito@ueda.info.waseda.ac.jp>
26+
Norihiko Sumiya <sumiya@ueda.info.waseda.ac.jp>
27+
Yasin Alimjan <alim@ueda.info.waseda.ac.jp>
28+
Kazunori Ueda <ueda@ueda.info.waseda.ac.jp>
29+

DEVELOP

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ slimディレクトリ以下で
7272

7373
を実行
7474

75+
非決定実行については時間がかかるので標準ではいくつかのケースでしかテストを実行しない。
76+
全てのテストケースを実行したい時は環境変数$slim_CHECK_ND=yesを設定する。
77+
7578

7679
* デバッグ
7780
** dmalloc (http://dmalloc.com/)

NEWS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
SLIM (2.4.0) -- 2019/07/15
2+
* migrate from C into C++
3+
* refactoring
4+
15
SLIM (2.3.1) -- 2017/06/13
26
* new features
37
+ add statespace library

README

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,7 @@ The way to compile this package is:
1717
```
1818
export LMNTAL_HOME=/path/to/devel # set path of compiler
1919
cd slim
20-
aclocal
21-
automake --add-missing
22-
autoreconf
20+
./autogen.sh
2321
./configure
2422
make
2523
```
@@ -60,7 +58,8 @@ lmntal --slimcode source.lmn > source.il
6058
- autoconf 2.69
6159
- g++
6260
- flex 2.5.35
63-
- bison 2.3
61+
- re2c 1.0.3
62+
- bison 3.0
6463
- ruby 1.9.3p547
6564
- libtool 2.2.6b
6665
- cunit

README.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,7 @@ The way to compile this package is:
1717
```
1818
export LMNTAL_HOME=/path/to/devel # set path of compiler
1919
cd slim
20-
aclocal
21-
automake --add-missing
22-
autoreconf
20+
./autogen.sh
2321
./configure
2422
make
2523
```
@@ -60,7 +58,8 @@ lmntal --slimcode source.lmn > source.il
6058
- autoconf 2.69
6159
- g++
6260
- flex 2.5.35
63-
- bison 2.3
61+
- re2c 1.0.3
62+
- bison 3.0
6463
- ruby 1.9.3p547
6564
- libtool 2.2.6b
6665
- cunit

autogen.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,6 @@ run ()
1212
}
1313

1414
run aclocal
15+
run autoheader
1516
run automake --add-missing
1617
run autoreconf

benchmarkset/abp.lmn

Lines changed: 50 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,51 @@
1-
/*
2-
* abp.lmn -- Alternating Bit Protocol Model
3-
*
4-
* @author Masato Gocho
5-
* @date 2008.10.20
6-
*
7-
* Property0: Respons
8-
* Property1: Respons under the Strong Fairness
9-
*/
10-
11-
% msg(Message, Bit).
12-
sender{
13-
mnum(1).
14-
msg(0,0).
15-
ackOK @@ exp(I,B), mnum(Max), ack(0,A) :- A=:=B,J=(I+1) mod Max, C=1-B |
16-
msg(J,C), mnum(Max).
17-
ackNG @@ exp(I,B), ack(0,A) :- A=\=B |
18-
msg(I,B).
19-
}.
20-
21-
% ack(0, Ack) key(ExpectedBit).
22-
23-
recver{
24-
key(0).
25-
bit_OK @@ key(K), msg(I,B) :- int(I), K=:=B, A=1-K |
26-
key(A), ack(0,B).
27-
bit_NG @@ key(K), msg(I,B) :- int(I), K=\=B, A=1-K |
28-
key(K), ack(0,A).
29-
}.
30-
31-
% message channel
32-
daemon{
33-
msg_pass @@ msg(I,B) :- m2r(I,B).
34-
msg_lost @@ msg(I,B) :- int(I), int(B) | .
35-
// msg_err_ @@ msg(I,B) :- int(I), Z=1-B | m2r(I,Z).
36-
ack_pass @@ ack(0,A) :- r2s(0,A).
37-
ack_lost @@ ack(0,A) :- int(A) | .
38-
// ack_err_ @@ ack(0,A) :- int(A), B=1-A | r2s(0,B).
39-
}.
40-
41-
% communication between processes
42-
s_2_d @@ sender{$s,@s, msg(M,N)}, daemon{$d,@d} :- int(M),int(N) |
43-
sender{$s,@s, exp(M,N)}, daemon{$d,@d, msg(M,N)}.
44-
d_2_r @@ daemon{$d,@d, m2r(M,N)}, recver{$r,@r} :- int(M),int(N) |
45-
recver{$r,@r, msg(M,N)}, daemon{$d,@d}.
46-
r_2_d @@ recver{$r,@r, ack(0,A)}, daemon{$d,@d} :- int(A) |
47-
daemon{$d,@d, ack(0,A)}, recver{$r,@r}.
48-
d_2_s @@ daemon{$d,@d, r2s(0,A)}, sender{$s,@s} :- int(A) |
49-
sender{$s,@s, ack(0,A)}, daemon{$d,@d}.
50-
t_out @@ daemon{@d}, recver{key(K),@r}, sender{exp(M,N), mnum(Max), @s,$s[]}/ :- int(K),int(M),int(N),int(Max) |
1+
/*
2+
* abp.lmn -- Alternating Bit Protocol Model
3+
*
4+
* @author Masato Gocho
5+
* @date 2008.10.20
6+
*
7+
* Property0: Respons
8+
* Property1: Respons under the Strong Fairness
9+
*/
10+
11+
% msg(Message, Bit).
12+
sender{
13+
mnum(10000).
14+
msg(0,0).
15+
ackOK @@ exp(I,B), mnum(Max), ack(0,A) :- A=:=B,J=(I+1) mod Max, C=1-B |
16+
msg(J,C), mnum(Max).
17+
ackNG @@ exp(I,B), ack(0,A) :- A=\=B |
18+
msg(I,B).
19+
}.
20+
21+
% ack(0, Ack) key(ExpectedBit).
22+
23+
recver{
24+
key(0).
25+
bit_OK @@ key(K), msg(I,B) :- int(I), K=:=B, A=1-K |
26+
key(A), ack(0,B).
27+
bit_NG @@ key(K), msg(I,B) :- int(I), K=\=B, A=1-K |
28+
key(K), ack(0,A).
29+
}.
30+
31+
% message channel
32+
daemon{
33+
msg_pass @@ msg(I,B) :- m2r(I,B).
34+
msg_lost @@ msg(I,B) :- int(I), int(B) | .
35+
// msg_err_ @@ msg(I,B) :- int(I), Z=1-B | m2r(I,Z).
36+
ack_pass @@ ack(0,A) :- r2s(0,A).
37+
ack_lost @@ ack(0,A) :- int(A) | .
38+
// ack_err_ @@ ack(0,A) :- int(A), B=1-A | r2s(0,B).
39+
}.
40+
41+
% communication between processes
42+
s_2_d @@ sender{$s,@s, msg(M,N)}, daemon{$d,@d} :- int(M),int(N) |
43+
sender{$s,@s, exp(M,N)}, daemon{$d,@d, msg(M,N)}.
44+
d_2_r @@ daemon{$d,@d, m2r(M,N)}, recver{$r,@r} :- int(M),int(N) |
45+
recver{$r,@r, msg(M,N)}, daemon{$d,@d}.
46+
r_2_d @@ recver{$r,@r, ack(0,A)}, daemon{$d,@d} :- int(A) |
47+
daemon{$d,@d, ack(0,A)}, recver{$r,@r}.
48+
d_2_s @@ daemon{$d,@d, r2s(0,A)}, sender{$s,@s} :- int(A) |
49+
sender{$s,@s, ack(0,A)}, daemon{$d,@d}.
50+
t_out @@ daemon{@d}, recver{key(K),@r}, sender{exp(M,N), mnum(Max), @s,$s[]}/ :- int(K),int(M),int(N),int(Max) |
5151
daemon{@d}, recver{key(K),@r}, sender{msg(M,N), mnum(Max), @s}.

0 commit comments

Comments
 (0)