I'm following your README, in ubuntu16.04
Compiling grammartec v0.1.0 (/nautilus/grammartec)
error[E0554]: #![feature] may not be used on the stable release channel
--> grammartec/src/lib.rs:1:1
|
1 | #![feature(exclusive_range_pattern)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0554]: #![feature] may not be used on the stable release channel
--> grammartec/src/lib.rs:2:1
|
2 | #![feature(step_trait)]
| ^^^^^^^^^^^^^^^^^^^^^^^
warning: unused import: `std::collections::HashMap`
--> grammartec/src/tree.rs:10:5
|
10 | use std::collections::HashMap;
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: #[warn(unused_imports)] on by default
warning: unused imports: `Rng`, `sample`, `thread_rng`
--> grammartec/src/recursion_info.rs:2:12
|
2 | use rand::{sample, thread_rng, Rng, StdRng};
| ^^^^^^ ^^^^^^^^^^ ^^^
warning: unused import: `rule::NormalOrCustomRule`
--> grammartec/src/recursion_info.rs:8:5
|
8 | use rule::NormalOrCustomRule;
| ^^^^^^^^^^^^^^^^^^^^^^^^
warning: unnecessary parentheses around `if` condition
--> grammartec/src/recursion_info.rs:40:19
|
40 | if(ctx.get_nt(rule) == nt){
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
|
= note: #[warn(unused_parens)] on by default
warning: unnecessary parentheses around `for` head expression
--> grammartec/src/recursion_info.rs:50:26
|
50 | for _ in (0..ctx.get_num_children(rule)){
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
warning: use of deprecated item 'rand::sample': renamed to seq::sample_iter
--> grammartec/src/chunkstore.rs:3:12
|
3 | use rand::{sample, thread_rng};
| ^^^^^^
|
= note: #[warn(deprecated)] on by default
warning: use of deprecated item 'rand::sample': renamed to seq::sample_iter
--> grammartec/src/chunkstore.rs:66:49
|
66 | let selected = relevant.and_then(|iter| sample(&mut thread_rng(), iter, 1).pop());
| ^^^^^^
warning: use of deprecated item 'rand::sample': renamed to seq::sample_iter
--> grammartec/src/context.rs:8:12
|
8 | use rand::{sample, thread_rng, Rng, StdRng};
| ^^^^^^
warning: use of deprecated item 'rand::sample': renamed to seq::sample_iter
--> grammartec/src/context.rs:566:15
|
566 | match sample(&mut thread_rng(), applicable_rules, 1).pop() {
| ^^^^^^
warning: use of deprecated item 'rand::sample': renamed to seq::sample_iter
--> grammartec/src/recursion_info.rs:2:12
|
2 | use rand::{sample, thread_rng, Rng, StdRng};
| ^^^^^^
warning: unused import: `TreeLike`
--> grammartec/src/recursion_info.rs:7:17
|
7 | use tree::{Tree,TreeLike};
| ^^^^^^^^
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0554`.
error: Could not compile `grammartec`.
warning: build failed, waiting for other jobs to finish...
error: build failed
I'm trying to build this using this Dockerfile: (which is based on ubuntu16.04)
FROM zjuchenyuan/base
RUN apt update &&\
apt install -y g++-multilib clang llvm-3.8-dev ruby bison ruby-dev cargo
RUN git clone https://github.com/RUB-SysSec/nautilus.git &&\
cd /nautilus/forksrv/instrument/rt &&\
make &&\
cd /nautilus/forksrv/instrument/clang_wrapper &&\
make
RUN git clone https://github.com/mruby/mruby.git /nautilus/forksrv/instrument/mruby &&\
cd /nautilus/forksrv/instrument/mruby &&\
CC=/nautilus/forksrv/instrument/clang_wrapper/redqueen-clang \
LD=/nautilus/forksrv/instrument/clang_wrapper/redqueen-clang \
make
RUN cd nautilus &&\
mkdir -p outputs/queue &&\
sed -i 's#/data/projects/grammar_fuzz/gramophone#/nautilus#g' config.ron
And running cargo run -p gramophone --release --bin fuzzer
in the container.