diff --git a/README.md b/README.md index ae3e765769b7192b4ff9007a61c9dc913d34efff..942d3c5bc7f10b3f8314e43e8cdc242b035f663b 100644 --- a/README.md +++ b/README.md @@ -43,11 +43,26 @@ sourcefile (`src/main.cpp`) can also be built with c++11 (this is tested on some commits on both Windows and linux). +### Notes for linux + +There seems to be a problem with docopt.cpp with gcc-4.9 as well... (Everything +compiles, but the program options are not parsed well.) If you want to build +with `clang` on linux, you should also use `libc++`. Try the following: + +``` +sudo apt-get install libc++-dev +mkdir build +cd build +CXX=clang++ CC=clang CXXFLAGS=-stdlib=libc++ LDFLAGS=-pthread cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. +make + +``` + ## Java -For now the java code, which acts as a bridge between LearnLib and this c++ -tool, is included here. But it should earn its own repo at some point. Also, my -javanese is a bit rusty... +For now the java code, which acts as a bridge between LearnLib and this c++ +tool, is included here (can be out-dated). But it should earn its own repo at +some point. Also, my javanese is a bit rusty... ## License diff --git a/java/YannakakisEQOracle.java b/java/YannakakisEQOracle.java index 0bf8be108f0e0fd87f6d40ec522c64d2bfd18ce6..5a4f45b511d988e607fd696525d57659413855a7 100644 --- a/java/YannakakisEQOracle.java +++ b/java/YannakakisEQOracle.java @@ -23,7 +23,7 @@ import java.util.*; public class YannakakisEQOracle<O> implements EquivalenceOracle.MealyEquivalenceOracle<String, O> { private final MembershipOracle<String, Word<O>> sulOracle; private final List<Alphabet<String>> alphabets; - private final ProcessBuilder pb = new ProcessBuilder("/Users/joshua/Documents/PhD/Yannakakis/build/main", "--", "0", "3", "random"); + private final ProcessBuilder pb = new ProcessBuilder("/Users/joshua/Documents/PhD/Yannakakis/build/main", "--prefix", "buggy", "=", "random", "0", "3"); private int currentAlphabet = 0; private long bound = 100; diff --git a/lib/transfer_sequences.cpp b/lib/transfer_sequences.cpp index 4cc17a2fad24b1c73e59fdb40cb04ab8d9559995..63e01fd40840d640a9d943f83a4da5aaed4f49ad 100644 --- a/lib/transfer_sequences.cpp +++ b/lib/transfer_sequences.cpp @@ -21,7 +21,7 @@ static size_t clamp_to_size_t(double x, size_t min, size_t max) { transfer_sequences create_transfer_sequences(transfer_options const & opt, const mealy & machine, state s, uint_fast32_t random_seed) { mt19937 generator(random_seed); - uniform_int_distribution<double> dist(opt.q_min, opt.q_max); + uniform_real_distribution<double> dist(opt.q_min, opt.q_max); vector<bool> added(machine.graph_size, false); vector<word> words(machine.graph_size); diff --git a/src/main.cpp b/src/main.cpp index e0408aef4a86cba8d498e18052db30b43dcc288d..e1238eecbfe15d0e42ecb76d1588660e1085a565 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -19,7 +19,7 @@ using namespace std; static const char USAGE[] = -R"(Generate a test suite +R"(Generate a test suite. Use '=' as filename for stdin. Usage: main [options] <filename> (all|fixed|random) <max k> <rnd length> @@ -38,7 +38,7 @@ R"(Generate a test suite using time_logger = silent_timer; int main(int argc, char *argv[]) try { - const auto args = docopt::docopt(USAGE, {argv + 1, argv + argc}, true, "5 aug 11:00"); + const auto args = docopt::docopt(USAGE, {argv + 1, argv + argc}, true, "25 Nov 11:50"); const string filename = args.at("<filename>").asString(); const bool use_stdio = filename == "="; diff --git a/src/methods.cpp b/src/methods.cpp index 2c015a3579f69b6f906d7ffb8907b16998a20798..a26395af5f06bbf763366711ded18b66db0ef6ca 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -94,8 +94,8 @@ int main(int argc, char * argv[]) { const auto suffixes = suffixes_fut.get(); for(state s = 0; s < suffixes.size(); ++s){ clog << "suffixes for " << s << endl; - for(auto s : suffixes[s].local_suffixes) { - for(auto x : s){ + for(auto s2 : suffixes[s].local_suffixes) { + for(auto x : s2){ clog << x; } clog << endl;