Re: apgsearch v4.0
Posted: August 23rd, 2017, 8:52 am
please Calcyman,
Update the seperation
Update the seperation
Fixed in the latest version of lifelib (ll1.12) for oscillators in LtL rules.Saka wrote:please Calcyman,
Update the seperation [sic]
Apologies for dumping more code into this thread, but this happened. This is only a small portion of the errors as it goes over the 60k character limit.calcyman wrote:Amended (run './recompile.sh --update').
Code: Select all
#C everything else up to this point compiled successfully...
gcc main.o includes/sha256.o includes/md5.o includes/happyhttp.o -o apgmera
Undefined symbols for architecture x86_64:
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::compare(char const*) const", referenced from:
apg::rule2int(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
apg::comprep(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
authenticate(char const*, char const*) in main.o
apg::hashsoup(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, ...ng<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, bool) in main.o
apg::lifetree_abstract<unsigned int>::advance(apg::hypernode<unsigned int>, unsigned long long, unsigned long long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
...
...
void std::__1::vector<apg::VTile28*, std::__1::allocator<apg::VTile28*> >::__push_back_slow_path<apg::VTile28*>(apg::VTile28*&&) in main.o
std::__1::vector<apg::bitworld, std::__1::allocator<apg::bitworld> >::vector(unsigned long) in main.o
std::__1::enable_if<(__is_forward_iterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*>::value) && (is_constructible<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::iterator_traits<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*>::reference>::value), void>::type std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::assign<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) in main.o
std::__1::vector<apg::bitworld, std::__1::allocator<apg::bitworld> >::vector(std::__1::vector<apg::bitworld, std::__1::allocator<apg::bitworld> > const&) in main.o
...
...
"std::__1::__next_prime(unsigned long)", referenced from:
std::__1::__hash_table<std::__1::__hash_value_type<unsigned long long, apg::VTile28>, std::__1::__unordered_map_hasher<unsigned long long, std::__1::__hash_value_type<unsigned long long, apg::VTile28>, std::__1::hash<unsigned long long>, true>, std::__1::__unordered_map_equal<unsigned long long, std::__1::__hash_value_type<unsigned long long, apg::VTile28>, std::__1::equal_to<unsigned long long>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned long long, apg::VTile28> > >::rehash(unsigned long) in main.o
...std::__1::allocator<char> > > > >, std::__1::__unordered_map_hasher<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__hash_value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::__unordered_map_equal<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__hash_value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__hash_value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > > >::rehash(unsigned long) in main.o
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__init(char const*, ...
...
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__init(unsigned long, char)", referenced from:
std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> > std::__1::__pad_and_output<char, std::__1::char_traits<char> >(std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> >, char const*, char const*, char const*, std::__1::ios_base&, char) in main.o
apg::base_classifier<1>::base_classifier(apg::lifetree_abstract<unsigned int>*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> > std::__1::__pad_and_output<char, std::__1::char_traits<char> >(std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> >, char const*, char const*, char const*, std::__1::ios_base&, char) in md5.o
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::append(char const*)", referenced from:
...
_main in main.o
apg::lifetree<unsigned int, 2>::string_recurse(apg::hypernode<unsigned int>) in main.o
apg::lifetree<unsigned int, 1>::string_recurse(apg::hypernode<unsigned int>) in main.o
apg::base_classifier<1>::base_classifier(apg::lifetree_abstract<unsigned int>*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
happyhttp::Response::ProcessHeaderLine(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in happyhttp.o
...
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::resize(unsigned long, char)", referenced from:
std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> >::str(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in main.o
std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> >::overflow(int) in main.o
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::replace(unsigned long, unsigned long, char const*, unsigned long)", referenced from:
apg::replace(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in main.o
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::reserve(unsigned long)", referenced from:
apg::bitworld::canonise_orientation(int, int, int, int, int, int, int, int) in main.o
apg::wechslerise(std::__1::vector<apg::bitworld, std::__1::allocator<apg::bitworld> >&, long long*) in main.o
apg::sanirule(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
apg::pattern::operator=(apg::pattern const&) in main.o
classifyAperiodic(apg::pattern) in main.o
_main in main.o
apg::pattern::pattern(apg::pattern const&) in main.o
...
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::push_back(char)", referenced from:
apg::bitworld::canonise_orientation(int, int, int, int, int, int, int, int) in main.o
...tor<char> >::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned long, unsigned long, std::__1::allocator<char> const&)", referenced from:
apg::bitworld::canonise_orientation(int, int, int, int, int, int, int, int) in main.o
apg::sanirule(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
verifySearch(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
apg::lifetree_abstract<unsigned int>::advance(apg::hypernode<unsigned int>, unsigned long long, unsigned long long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
apg::lifetree<unsigned int, 2>::read_macrocell(std::__1::basic_istream<char, std::__1::char_traits<char> >&, std::__1::map<unsigned long long, unsigned long long, std::__1::less<unsigned long long>, std::__1::allocator<std::__1::pair<unsigned long long const, unsigned long long> > >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in main.o
apg::lifetree<unsigned int, 2>::invstring_recurse(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, unsigned long long&) in main.o
r, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
apg::sanirule(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
...
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::operator=(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
apg::pattern::disjunction(apg::pattern const&) in main.o
apg::pattern::minus(apg::pattern const&) in main.o
apg::pattern::conjunction(apg::pattern const&) in main.o
apg::pattern::exclusive_disjunction(apg::pattern const&) in main.o
std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> >::str(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in main.o
apg::pattern::shift(long long, long long) in main.o
apg::pattern::advance(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, unsigned long long) in main.o
...
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::operator=(char)", referenced from:
apg::lifetree<unsigned int, 2>::string_recurse(apg::hypernode<unsigned int>) in main.o
apg::lifetree<unsigned int, 1>::string_recurse(apg::hypernode<unsigned int>) in main.o
"std::__1::basic_istream<char, std::__1::char_traits<char> >::sentry::sentry(std::__1::basic_istream<char, std::__1::char_traits<char> >&, bool)", referenced from:
std::__1::basic_istream<char, std::__1::char_traits<char> >& std::__1::getline<char, std::__1::char_traits<char>, std::__1::allocator<char> >(std::__1::basic_istream<char, std::__1::char_traits<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, char) in main.o
"std::__1::basic_istream<char, std::__1::char_traits<char> >::~basic_istream()", referenced from:
construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
"std::__1::basic_istream<char, std::__1::char_traits<char> >::~basic_istream()", referenced from:
construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
"std::__1::basic_istream<char, std::__1::char_traits<char> >::operator>>(unsigned int&)", referenced from:
apg::lifetree<unsigned int, 2>::read_macrocell(std::__1::basic_istream<char, std::__1::char_traits<char> >&, std::__1::map<unsigned long long, unsigned long long, std::__1::less<unsigned long long>, std::__1::allocator<std::__1::pair<unsigned long long const, unsigned long long> > >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in main.o
apg::lifetree<unsigned int, 1>::read_macrocell(std::__1::basic_istream<char, std::__1::char_traits<char> >&, std::__1::map<unsigned long long, unsigned long long, std::__1::less<unsigned long long>, std::__1::allocator<std::__1::pair<unsigned long long const, unsigned long long> > >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in main.o
"std::__1::basic_istream<char, std::__1::char_traits<char> >::operator>>(unsigned long long&)", referenced from:
apg::lifetree<unsigned int, 2>::read_macrocell(std::__1::basic_istream<char, std::__1::char_traits<char> >&, std::__1::map<unsigned long long, unsigned long long, std::__1::less<unsigned long long>, std::__1::allocator<std::__1::pair<unsigned long long const, unsigned long long> > >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in main.o
apg::lifetree<unsigned int, 1>::read_macrocell(std::__1::basic_istream<char, std::__1::char_traits<char> >&, std::__1::map<unsigned long long, unsigned long long, std::__1::less<unsigned long long>, std::__1::allocator<std::__1::pair<unsigned long long const, unsigned long long> > >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in main.o
"std::__1::basic_ostream<char, std::__1::char_traits<char> >::put(char)", referenced from:
catagolueRequest(char const*, char const*) in main.o
authenticate(char const*, char const*) in main.o
stabilise3(apg::upattern<apg::VTile28, 28>&) in main.o
obtainWork(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
verifySearch(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
runSearch(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, bool) in main.o
SoupSearcher::submitResults(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, long long, int, bool) in main.o
...
"std::__1::basic_ostream<char, std::__1::char_traits<char> >::flush()", referenced from:
catagolueRequest(char const*, char const*) in main.o
authenticate(char const*, char const*) in main.o
stabilise3(apg::upattern<apg::VTile28, 28>&) in main.o
obtainWork(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
verifySearch(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
runSearch(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, bool) in main.o
SoupSearcher::submitResults(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, long long, int, bool) in main.o
...
"std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry::sentry(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)", referenced from:
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in main.o
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in md5.o
"std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry::~sentry()", referenced from:
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in main.o
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in md5.o
"std::__1::basic_ostream<char, std::__1::char_traits<char> >::~basic_ostream()", referenced from:
construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char> >-in-std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char> >-in-std::__1::basic_ofstream<char, std::__1::char_traits<char> > in main.o
"std::__1::basic_ostream<char, std::__1::char_traits<char> >::~basic_ostream()", referenced from:
construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char> >-in-std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char> >-in-std::__1::basic_ofstream<char, std::__1::char_traits<char> > in main.o
"std::__1::basic_ostream<char, std::__1::char_traits<char> >::~basic_ostream()", referenced from:
authenticate(char const*, char const*) in main.o
std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_ostringstream() in main.o
reseed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
linearlyse(apg::pattern, int, int) in main.o
obtainWork(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
verifySearch(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
runSearch(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, bool) in main.o
...
"std::__1::basic_ostream<char, std::__1::char_traits<char> >::operator<<(int)", referenced from:
catagolueRequest(char const*, char const*) in main.o
authenticate(char const*, char const*) in main.o
reseed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
linearlyse(apg::pattern, int, int) in main.o
runSearch(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, bool) in main.o
"std::__1::basic_ostream<char, std::__1::char_traits<char> >::operator<<(unsigned int)", referenced from:
apg::lifetree<unsigned int, 2>::write_macrocell_recurse(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, apg::hypernode<unsigned int>, std::__1::map<unsigned long long, unsigned long long, std::__1::less<unsigned long long>, std::__1::allocator<std::__1::pair<unsigned long long const, unsigned long long> > >*, std::__1::map<std::__1::pair<unsigned int, unsigned int>, unsigned long long, std::__1::less<std::__1::pair<unsigned int, unsigned int> >, std::__1::allocator<std::__1::pair<std::__1::pair<unsigned int, unsigned int> const, unsigned long long> > >*, unsigned long long&) in main.o
apg::lifetree<unsigned int, 1>::write_macrocell_recurse(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, apg::hypernode<unsigned int>, std::__1::map<unsigned long long, unsigned long long, std::__1::less<unsigned long long>, std::__1::allocator<std::__1::pair<unsigned long long const, unsigned long long> > >*, std::__1::map<std::__1::pair<unsigned int, unsigned int>, unsigned long long, std::__1::less<std::__1::pair<unsigned int, unsigned int> >, std::__1::allocator<std::__1::pair<std::__1::pair<unsigned int, unsigned int> const, unsigned long long> > >*, unsigned long long&) in main.o
"std::__1::basic_ostream<char, std::__1::char_traits<char> >::operator<<(long)", referenced from:
reseed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
SoupSearcher::submitResults(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, long long, int, bool) in main.o
"std::__1::basic_ostream<char, std::__1::char_traits<char> >::operator<<(unsigned long)", referenced from:
reseed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
"std::__1::basic_ostream<char, std::__1::char_traits<char> >::operator<<(long long)", referenced from:
verifySearch(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
runSearch(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, bool) in main.o
SoupSearcher::submitResults(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, long long, int, bool) in main.o
"std::__1::basic_ostream<char, std::__1::char_traits<char> >::operator<<(unsigned long long)", referenced from:
apg::lifetree_abstract<unsigned int>::advance(apg::hypernode<unsigned int>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, unsigned long long, unsigned long long) in main.o
apg::pattern::apgcode() in main.o
apg::lifetree<unsigned int, 2>::write_macrocell_recurse(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, apg::hypernode<unsigned int>, std::__1::map<unsigned long long, unsigned long long, std::__1::less<unsigned long long>, std::__1::allocator<std::__1::pair<unsigned long long const, unsigned long long> > >*, std::__1::map<std::__1::pair<unsigned int, unsigned int>, unsigned long long, std::__1::less<std::__1::pair<unsigned int, unsigned int> >, std::__1::allocator<std::__1::pair<std::__1::pair<unsigned int, unsigned int> const, unsigned long long> > >*, unsigned long long&) in main.o
apg::lifetree<unsigned int, 1>::write_macrocell_recurse(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, apg::hypernode<unsigned int>, std::__1::map<unsigned long long, unsigned long long, std::__1::less<unsigned long long>, std::__1::allocator<std::__1::pair<unsigned long long const, unsigned long long> > >*, std::__1::map<std::__1::pair<unsigned int, unsigned int>, unsigned long long, std::__1::less<std::__1::pair<unsigned int, unsigned int> >, std::__1::allocator<std::__1::pair<std::__1::pair<unsigned int, unsigned int> const, unsigned long long> > >*, unsigned long long&) in main.o
"std::__1::basic_iostream<char, std::__1::char_traits<char> >::~basic_iostream()", referenced from:
construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
"std::__1::basic_iostream<char, std::__1::char_traits<char> >::~basic_iostream()", referenced from:
construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
"std::__1::basic_iostream<char, std::__1::char_traits<char> >::~basic_iostream()", referenced from:
catagolueRequest(char const*, char const*) in main.o
authenticate(char const*, char const*) in main.o
std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_stringstream() in main.o
verifySearch(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
ProcessedResponse::ProcessedResponse() in main.o
std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_stringstream() in main.o
non-virtual thunk to std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_stringstream() in main.o
...
"std::__1::basic_streambuf<char, std::__1::char_traits<char> >::sync()", referenced from:
vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
"std::__1::basic_streambuf<char, std::__1::char_traits<char> >::imbue(std::__1::locale const&)", referenced from:
vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
"std::__1::basic_streambuf<char, std::__1::char_traits<char> >::uflow()", referenced from:
vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
vtable for std::__1::basic_filebuf<char, std::__1::char_traits<char> > in main.o
"std::__1::basic_streambuf<char, std::__1::char_traits<char> >::setbuf(char*, long)", referenced from:
vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
"std::__1::basic_streambuf<char, std::__1::char_traits<char> >::xsgetn(char*, long)", referenced from:
vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
vtable for std::__1::basic_filebuf<char, std::__1::char_traits<char> > in main.o
"std::__1::basic_streambuf<char, std::__1::char_traits<char> >::xsputn(char const*, long)", referenced from:
vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
vtable for std::__1::basic_filebuf<char, std::__1::char_traits<char> > in main.o
"std::__1::basic_streambuf<char, std::__1::char_traits<char> >::showmanyc()", referenced from:
vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
vtable for std::__1::basic_filebuf<char, std::__1::char_traits<char> > in main.o
"std::__1::basic_streambuf<char, std::__1::char_traits<char> >::basic_streambuf()", referenced from:
authenticate(char const*, char const*) in main.o
reseed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
linearlyse(apg::pattern, int, int) in main.o
obtainWork(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
verifySearch(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
runSearch(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, bool) in main.o
SoupSearcher::submitResults(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, long long, int, bool) in main.o
...
"std::__1::basic_streambuf<char, std::__1::char_traits<char> >::~basic_streambuf()", referenced from:
catagolueRequest(char const*, char const*) in main.o
authenticate(char const*, char const*) in main.o
std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_stringstream() in main.o
std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_ostringstream() in main.o
reseed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
linearlyse(apg::pattern, int, int) in main.o
obtainWork(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
...
"std::__1::cerr", referenced from:
apg::lifetree_abstract<unsigned int>::advance(apg::hypernode<unsigned int>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, unsigned long long, unsigned long long) in main.o
apg::base_classifier<1>::pbbosc(apg::pattern, unsigned long long, unsigned long long) in main.o
apg::lifetree<unsigned int, 2>::_string32(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
apg::lifetree<unsigned int, 2>::read_macrocell(std::__1::basic_istream<char, std::__1::char_traits<char> >&, std::__1::map<unsigned long long, unsigned long long, std::__1::less<unsigned long long>, std::__1::allocator<std::__1::pair<unsigned long long const, unsigned long long> > >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in main.o
apg::kivtable<apg::nicearray<unsigned long long, 8>, unsigned int, apg::lifemeta<unsigned int> >::getfreenode() in main.o
apg::kivtable<apg::nicearray<unsigned long long, 8>, unsigned int, apg::lifemeta<unsigned int> >::resize_hash(unsigned long long) in main.o
apg::kivtable<apg::nicearray<unsigned int, 4>, unsigned int, apg::lifemeta<unsigned int> >::init(unsigned long long) in main.o
...
"std::__1::cout", referenced from:
catagolueRequest(char const*, char const*) in main.o
authenticate(char const*, char const*) in main.o
stabilise3(apg::upattern<apg::VTile28, 28>&) in main.o
obtainWork(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
verifySearch(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
runSearch(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, bool) in main.o
SoupSearcher::submitResults(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, long long, int, bool) in main.o
...
"std::__1::ctype<char>::id", referenced from:
catagolueRequest(char const*, char const*) in main.o
authenticate(char const*, char const*) in main.o
stabilise3(apg::upattern<apg::VTile28, 28>&) in main.o
obtainWork(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
verifySearch(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
runSearch(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, bool) in main.o
SoupSearcher::submitResults(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, long long, int, bool) in main.o
...
"std::__1::locale::locale(std::__1::locale const&)", referenced from:
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::basic_filebuf() in main.o
"std::__1::locale::~locale()", referenced from:
catagolueRequest(char const*, char const*) in main.o
authenticate(char const*, char const*) in main.o
stabilise3(apg::upattern<apg::VTile28, 28>&) in main.o
obtainWork(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
verifySearch(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
runSearch(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, bool) in main.o
SoupSearcher::submitResults(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, long long, int, bool) in main.o
...
"std::__1::codecvt<char, char, __mbstate_t>::id", referenced from:
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::basic_filebuf() in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::imbue(std::__1::locale const&) in main.o
"std::__1::ios_base::__set_badbit_and_consider_rethrow()", referenced from:
std::__1::basic_istream<char, std::__1::char_traits<char> >& std::__1::getline<char, std::__1::char_traits<char>, std::__1::allocator<char> >(std::__1::basic_istream<char, std::__1::char_traits<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, char) in main.o
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in main.o
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in md5.o
"std::__1::ios_base::init(void*)", referenced from:
authenticate(char const*, char const*) in main.o
reseed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
linearlyse(apg::pattern, int, int) in main.o
obtainWork(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
verifySearch(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
runSearch(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, bool) in main.o
SoupSearcher::submitResults(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, long long, int, bool) in main.o
...
"std::__1::ios_base::clear(unsigned int)", referenced from:
std::__1::basic_istream<char, std::__1::char_traits<char> >& std::__1::getline<char, std::__1::char_traits<char>, std::__1::allocator<char> >(std::__1::basic_istream<char, std::__1::char_traits<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, char) in main.o
SoupSearcher::submitResults(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, long long, int, bool) in main.o
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in main.o
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in md5.o
"std::__1::basic_ios<char, std::__1::char_traits<char> >::~basic_ios()", referenced from:
catagolueRequest(char const*, char const*) in main.o
authenticate(char const*, char const*) in main.o
std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_stringstream() in main.o
std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_ostringstream() in main.o
reseed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
linearlyse(apg::pattern, int, int) in main.o
obtainWork(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
...
"std::bad_cast::bad_cast()", referenced from:
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::seekoff(long long, std::__1::ios_base::seekdir, unsigned int) in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::sync() in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::underflow() in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::overflow(int) in main.o
"std::bad_cast::~bad_cast()", referenced from:
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::seekoff(long long, std::__1::ios_base::seekdir, unsigned int) in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::sync() in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::underflow() in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::overflow(int) in main.o
"std::terminate()", referenced from:
___clang_call_terminate in main.o
___clang_call_terminate in md5.o
___clang_call_terminate in happyhttp.o
"typeinfo for std::__1::basic_istream<char, std::__1::char_traits<char> >", referenced from:
construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
"typeinfo for std::__1::basic_ostream<char, std::__1::char_traits<char> >", referenced from:
construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char> >-in-std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
typeinfo for std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char> >-in-std::__1::basic_ofstream<char, std::__1::char_traits<char> > in main.o
typeinfo for std::__1::basic_ofstream<char, std::__1::char_traits<char> > in main.o
"typeinfo for std::__1::basic_iostream<char, std::__1::char_traits<char> >", referenced from:
construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
typeinfo for std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
"typeinfo for std::__1::basic_streambuf<char, std::__1::char_traits<char> >", referenced from:
typeinfo for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
typeinfo for std::__1::basic_filebuf<char, std::__1::char_traits<char> > in main.o
"typeinfo for std::bad_cast", referenced from:
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::seekoff(long long, std::__1::ios_base::seekdir, unsigned int) in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::sync() in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::underflow() in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::overflow(int) in main.o
"vtable for __cxxabiv1::__class_type_info", referenced from:
typeinfo for happyhttp::Wobbly in main.o
typeinfo for apg::lifetree_abstract<unsigned int> in main.o
typeinfo for happyhttp::Wobbly in happyhttp.o
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for __cxxabiv1::__si_class_type_info", referenced from:
typeinfo for std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
typeinfo for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
typeinfo for std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
typeinfo for apg::lifetree<unsigned int, 2> in main.o
typeinfo for apg::lifetree<unsigned int, 1> in main.o
typeinfo for std::__1::basic_ofstream<char, std::__1::char_traits<char> > in main.o
typeinfo for std::__1::basic_filebuf<char, std::__1::char_traits<char> > in main.o
...
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"non-virtual thunk to std::__1::basic_iostream<char, std::__1::char_traits<char> >::~basic_iostream()", referenced from:
construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
"non-virtual thunk to std::__1::basic_iostream<char, std::__1::char_traits<char> >::~basic_iostream()", referenced from:
construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
"virtual thunk to std::__1::basic_istream<char, std::__1::char_traits<char> >::~basic_istream()", referenced from:
construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
"virtual thunk to std::__1::basic_istream<char, std::__1::char_traits<char> >::~basic_istream()", referenced from:
construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
"virtual thunk to std::__1::basic_ostream<char, std::__1::char_traits<char> >::~basic_ostream()", referenced from:
construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char> >-in-std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char> >-in-std::__1::basic_ofstream<char, std::__1::char_traits<char> > in main.o
"virtual thunk to std::__1::basic_ostream<char, std::__1::char_traits<char> >::~basic_ostream()", referenced from:
construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char> >-in-std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char> >-in-std::__1::basic_ofstream<char, std::__1::char_traits<char> > in main.o
"virtual thunk to std::__1::basic_iostream<char, std::__1::char_traits<char> >::~basic_iostream()", referenced from:
construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
"virtual thunk to std::__1::basic_iostream<char, std::__1::char_traits<char> >::~basic_iostream()", referenced from:
construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char> >-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > in main.o
"operator delete[](void*)", referenced from:
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::imbue(std::__1::locale const&) in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::setbuf(char*, long) in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::~basic_filebuf() in main.o
"operator delete(void*)", referenced from:
apg::rle2vec(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
apg::_shift_left(apg::bitworld const&, unsigned int) in main.o
apg::_shift_right(apg::bitworld const&, unsigned int) in main.o
apg::_shift_down(apg::bitworld const&, unsigned int) in main.o
apg::_shift_up(apg::bitworld const&, unsigned int) in main.o
apg::bitworld::getbbox(long long*) in main.o
apg::bitworld::population() in main.o
...
"operator new[](unsigned long)", referenced from:
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::imbue(std::__1::locale const&) in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::setbuf(char*, long) in main.o
"operator new(unsigned long)", referenced from:
apg::bitworld::setcell(unsigned long long, unsigned long long, bool) in main.o
apg::_shift_left(apg::bitworld const&, unsigned int) in main.o
std::__1::map<std::__1::pair<int, int>, unsigned long long, std::__1::less<std::__1::pair<int, int> >, std::__1::allocator<std::__1::pair<std::__1::pair<int, int> const, unsigned long long> > >::operator[](std::__1::pair<int, int> const&) in main.o
apg::_shift_right(apg::bitworld const&, unsigned int) in main.o
apg::_shift_down(apg::bitworld const&, unsigned int) in main.o
apg::_shift_up(apg::bitworld const&, unsigned int) in main.o
apg::bleed(apg::bitworld const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
...
"___cxa_allocate_exception", referenced from:
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::seekoff(long long, std::__1::ios_base::seekdir, unsigned int) in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::sync() in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::underflow() in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::overflow(int) in main.o
happyhttp::BailOnSocketError(char const*) in happyhttp.o
happyhttp::Connection::connect() in happyhttp.o
happyhttp::Connection::putrequest(char const*, char const*) in happyhttp.o
...
"___cxa_begin_catch", referenced from:
catagolueRequest(char const*, char const*) in main.o
___clang_call_terminate in main.o
std::__1::basic_istream<char, std::__1::char_traits<char> >& std::__1::getline<char, std::__1::char_traits<char>, std::__1::allocator<char> >(std::__1::basic_istream<char, std::__1::char_traits<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, char) in main.o
std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> >::overflow(int) in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::~basic_filebuf() in main.o
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in main.o
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in md5.o
...
"___cxa_end_catch", referenced from:
catagolueRequest(char const*, char const*) in main.o
std::__1::basic_istream<char, std::__1::char_traits<char> >& std::__1::getline<char, std::__1::char_traits<char>, std::__1::allocator<char> >(std::__1::basic_istream<char, std::__1::char_traits<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, char) in main.o
std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> >::overflow(int) in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::~basic_filebuf() in main.o
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in main.o
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in md5.o
"___cxa_throw", referenced from:
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::seekoff(long long, std::__1::ios_base::seekdir, unsigned int) in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::sync() in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::underflow() in main.o
std::__1::basic_filebuf<char, std::__1::char_traits<char> >::overflow(int) in main.o
happyhttp::BailOnSocketError(char const*) in happyhttp.o
happyhttp::Connection::connect() in happyhttp.o
happyhttp::Connection::putrequest(char const*, char const*) in happyhttp.o
...
"___gxx_personality_v0", referenced from:
apg::rle2vec(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
apg::_shift_left(apg::bitworld const&, unsigned int) in main.o
apg::_shift_right(apg::bitworld const&, unsigned int) in main.o
apg::_shift_down(apg::bitworld const&, unsigned int) in main.o
apg::_shift_up(apg::bitworld const&, unsigned int) in main.o
apg::bleed(apg::bitworld const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in main.o
apg::shift_bitworld(apg::bitworld const&, long long, long long) in main.o
...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [apgmera] Error 1
Code: Select all
Undefined symbols for architecture x86_64:
...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [apgmera] Error 1
Why are you trying to link using gcc instead of g++? The top line of the makefile should say g++, and it should be invoked at every step of the compilation (including linkage).gmc_nxtman wrote:Apologies for dumping more code into this thread, but this happened. This is only a small portion of the errors as it goes over the 60k character limit.calcyman wrote:Amended (run './recompile.sh --update').
Code: Select all
$ ./recompile.sh --fopenmp
Skipping updates; use --update to update apgmera automatically.
Ensuring lifelib is up-to-date...
Rule unspecified; assuming b3s23.
Symmetry unspecified; assuming C1.
Configuring rule b3s23; symmetry C1
Valid rulestring: b3s23
Rule integer: 6152
Rule circuit: [-131-124-450-014-672]
Rule integer: 6152
Rule circuit: [-131-124-450-014-672]
Rule integer: 6152
Rule circuit: [-131-124-450-014-672]
Valid symmetry: C1
Success!
g++-7.1.0 -c -Wall -O3 -march=native --std=c++11 main.cpp -o main.o
make: g++-7.1.0: No such file or directory
make: *** [main.o] Error 1Did you try not editing the plain "g++" in the makefile? I haven't looked for the readme, but it doesn't seem like it would be normal to have to call a compiler by a different name every time you upgrade +.0.0.1. And that minus sign in front of the 7 seems unusual too.gmc_nxtman wrote:I tried a fresh install of both gcc and OpenMPI and replaced "g++" at the beginning of the makefile with "g++-7.1.0" (my version) as implied in the readme but the makefile doesn't seem to find that...
I tried that before and it simply doesn't compile with OpenMP:dvgrn wrote:Did you try not editing the plain "g++" in the makefile? I haven't looked for the readme, but it doesn't seem like it would be normal to have to call a compiler by a different name every time you upgrade +.0.0.1. And that minus sign in front of the 7 seems unusual too.
Code: Select all
Warning: apgluxe has not been compiled with OpenMP support.In that case, it's probably easier to leave the OpenMP support out of apgluxe, and run multiple instances whenever you want to use multiple cores.gmc_nxtman wrote:Because I'm a complete noob with anything related to compilation/installation. (This has been and will be demonstrated many times during my time on conwaylife.com forums)
You'll need to add the directory containing g++-7.1.0 to your $PATH environment variable. Or alternatively include the fully qualified path at the top of the file, e.g.: CC='/full/path/to/executable/g++-7.1.0'I tried a fresh install of both gcc and OpenMPI and replaced "g++" at the beginning of the makefile with "g++-7.1.0" (my version) as implied in the readme but the makefile doesn't seem to find that:
Code: Select all
x = 128, y = 2, rule = B3/S23
bobobbobbbbbobobboobobbooboooboooboboooobobooobobbobobboooooooobobbbbobooooobbboobboobobboobobbboboboboobbobbbooobbbooooobbbbbob$
oooooooboobobbbbobobboooboobbbbboobbbbbooboboooooooobbboobbboboboobbobooboobbooobbbbobobboboobboobobbbobobbbbbboooobobooobooobbb!
Code: Select all
x = 128, y = 2, rule = B3/S23
boobooobbobooobboobbobboobbbbboooboooobbbbbbbbobbobooobobbbobobobbbobobbobbbbobobooobbbbbobbbbbbbbbbbbbbbooboobboboobbbooobobobb$
bbobbobbbbbooobooboobbobbbbobbobbobbooboooobboboobbbbbbboooooooobbobbooboobobobobooobboboboobobbooobboobobooobobbooooooobbbboobo!
Code: Select all
x = 128, y = 2, rule = B3/S23
bobbobbbbboboobobooooboobbooboboobobboobbboooooobbooobbboboobbobbbobbbbobobbbbbbboobobooobobobbboooobobobbobboooobobbobbbbboobbo$
oobobbooooobbobobbbobbobooobbboooboooboobobobobbooobobbboobooooobbbboooobbbbooooobbooobobobbbobbbbobbobboobobbbboboobobbbooboobo!
Whoops. This is what happens when you write:Apple Bottom wrote:Something weird's going on with chaotic growth pattern detection -- two zz_REPLICATORs showed up in 2x128, supposedly in the following soups:
None of these appear to be what apgluxe thinks they are.
Code: Select all
pat.advance(10000, 0, 0);Code: Select all
pat.advance(0, 0, 10000);Done, thanks for the quick fix!calcyman wrote:Fixed in version v4.13; please upgrade immediately.
Code: Select all
diff -ru apgmera/includes/searching.h allowquit-7a75/includes/searching.h
--- apgmera/includes/searching.h 2017-08-20 22:14:28.002363900 +0200
+++ allowquit-7a75/includes/searching.h 2017-08-23 22:08:40.334331800 +0200
@@ -1,8 +1,27 @@
+#include <stdio.h>
+#include <sys/select.h>
+
+// determine whether there's a keystroke waiting
+int keyWaiting() {
+ struct timeval tv;
+ fd_set fds;
+
+ tv.tv_sec = 0;
+ tv.tv_usec = 0;
+
+ FD_ZERO(&fds);
+ FD_SET(STDIN_FILENO, &fds); // STDIN_FILENO is 0
+
+ select(STDIN_FILENO+1, &fds, NULL, NULL, &tv);
+
+ return FD_ISSET(STDIN_FILENO, &fds);
+}
+
#pragma once
#ifdef USE_OPEN_MP
-void parallelSearch(int n, int m, std::string payoshaKey, std::string seed, int local_log) {
+bool parallelSearch(int n, int m, std::string payoshaKey, std::string seed, int local_log) {
SoupSearcher globalSoup;
@@ -54,12 +73,14 @@
}
std::cout << "----------------------------------------------------------------------" << std::endl;
}
+
+ return false;
}
#endif
-void runSearch(int n, std::string payoshaKey, std::string seed, int local_log, bool testing) {
+bool runSearch(int n, std::string payoshaKey, std::string seed, int local_log, bool testing) {
SoupSearcher soup;
apg::lifetree<uint32_t, BITPLANES> lt(400);
@@ -73,8 +94,9 @@
int64_t lasti = 0;
bool finishedSearch = false;
+ bool quitByUser = false;
- while (finishedSearch == false) {
+ while ((finishedSearch == false) && (quitByUser == false)) {
std::ostringstream ss;
ss << i;
@@ -89,9 +111,16 @@
std::cout << i << " soups completed (" << ((int) ((i - lasti) / elapsed)) << " soups per second)." << std::endl;
lasti = i;
start = clock();
+
+ if(keyWaiting()) {
+ char c = fgetc(stdin);
+ if ((c == 'q') || (c == 'Q'))
+ quitByUser = true;
+ }
+
}
- if (i % n == 0) {
+ if ((i % n == 0) || quitByUser) {
std::cout << "----------------------------------------------------------------------" << std::endl;
std::cout << i << " soups completed." << std::endl;
std::cout << "Attempting to contact payosha256." << std::endl;
@@ -108,6 +137,8 @@
}
}
+
+ return quitByUser;
}
diff -ru apgmera/main.cpp allowquit-7a75/main.cpp
--- apgmera/main.cpp 2017-08-23 20:30:17.385160100 +0200
+++ allowquit-7a75/main.cpp 2017-08-24 11:49:32.570166800 +0200
@@ -7,6 +7,7 @@
#include <ctime>
#include <cmath>
#include <unistd.h>
+#include <termios.h>
#ifdef USE_OPEN_MP
#include <omp.h>
@@ -41,7 +42,9 @@
int local_log = 0;
bool testing = false;
int nullargs = 1;
-
+ bool quitByUser = false;
+ struct termios ttystate;
+
// Extract options:
for (int i = 1; i < argc - 1; i++) {
if (strcmp(argv[i], "-k") == 0) {
@@ -95,6 +98,12 @@
if (verifications < 0) {
verifications = (parallelisation <= 4) ? 3 : 0;
}
+
+ // turn on non-blocking reads
+ tcgetattr(STDIN_FILENO, &ttystate);
+ ttystate.c_lflag &= ~ICANON;
+ ttystate.c_cc[VMIN] = 1;
+ tcsetattr(STDIN_FILENO, TCSANOW, &ttystate);
std::cout << "\nGreetings, this is \033[1;33mapgluxe " << APG_VERSION;
std::cout << "\033[0m, configured for \033[1;34m" << RULESTRING << "/";
@@ -106,7 +115,7 @@
std::cout << std::endl;
- while (true) {
+ while (!quitByUser) {
if (verifications > 0) {
std::cout << "Peer-reviewing hauls:\n" << std::endl;
// Verify some hauls:
@@ -120,17 +129,22 @@
std::cout << "Using seed " << seed << std::endl;
if (parallelisation > 0) {
#ifdef USE_OPEN_MP
- parallelSearch(soups_per_haul, parallelisation, payoshaKey, seed, local_log);
+ quitByUser = parallelSearch(soups_per_haul, parallelisation, payoshaKey, seed, local_log);
#else
- runSearch(soups_per_haul, payoshaKey, seed, local_log, false);
+ quitByUser = runSearch(soups_per_haul, payoshaKey, seed, local_log, false);
#endif
} else {
- runSearch(soups_per_haul, payoshaKey, seed, local_log, testing);
+ quitByUser = runSearch(soups_per_haul, payoshaKey, seed, local_log, testing);
}
seed = reseed(seed);
if (testing) { break; }
}
- return 0;
+ // turn on blocking reads
+ tcgetattr(STDIN_FILENO, &ttystate);
+ ttystate.c_lflag |= ICANON;
+ tcsetattr(STDIN_FILENO, TCSANOW, &ttystate);
+
+ return quitByUser ? 1 : 0;
}
Code: Select all
$ cd apgmera
$ patch -p1 <../apgluxe-7a75-allowquit.patch
patching file includes/searching.h
patching file main.cpp
$
Thank you very much! Tested on Linux and committed to the repository:Apple Bottom wrote:Calcyman recently asked people to not submit hauls too often so in order to ease the load on Catagolue. In order to make it easier to spin up searchers and shut them down gracefully without losing hours' worth of results, I've ported the "allow-the-user-to-hit-q-to-stop-searching-and-submit-partial-results" patch to apgluxe:
I intend to add support for power-of-two torus sizes in the future, which will allow searching rules such as B37/S23. This will require quite a few significant changes to lifelib, though, to allow toroidal patterns.muzik wrote:Could apgsearch be made able to search certain explosive rules, maybe by deleting patterns that exceed a certain bounding box or ignoring soups that last more than a set amount of generations?
There's a few different types of explosions, though. Imagine I wanted to search for this legendary beast:calcyman wrote:I intend to add support for power-of-two torus sizes in the future, which will allow searching rules such as B37/S23. This will require quite a few significant changes to lifelib, though, to allow toroidal patterns.muzik wrote:Could apgsearch be made able to search certain explosive rules, maybe by deleting patterns that exceed a certain bounding box or ignoring soups that last more than a set amount of generations?
Code: Select all
x = 12, y = 14, rule = B3457/S4568
4bo2bo$4b4o$2b8o$2b2ob2ob2o$obobo2bobobo$2ob6ob2o$ob3o2b3obo$3ob4ob3o$
2ob6ob2o$b3o4b3o$b3o4b3o$3b2o2b2o$3bo4bo$5b2o!Code: Select all
x = 255, y = 2, rule = B3457/S4568
o2bo2b2o3b8o2bobob2ob4obobob5ob6o3b3o4b3o3b2ob2obobo3bob3obo3b3o2bo4b
4ob3obo2b4o2bo2b2ob2ob3o3bob2ob3ob2obobob2ob2obobob3o2b2o4b6o2b3ob2o4b
o2b4ob5o2b3o2b2ob2o4b4obo4bo3b6ob2ob4o2b2ob2obobobo$o2bo2b2o3b8o2bobob
2ob4obobob5ob6o3b3o4b3o3b2ob2obobo3bob3obo3b3o2bo4b4ob3obo2b4o2bo2b2ob
2ob3o3bob2ob3ob2obobob2ob2obobob3o2b2o4b6o2b3ob2o4bo2b4ob5o2b3o2b2ob2o
4b4obo4bo3b6ob2ob4o2b2ob2obobobo!
True, that's a bit confusing. Just a cosmetic issue, though.muzik wrote:Minor, extremely insignificant issue that doesn't really affect anything: pressing q still returns the "Connection was successful; starting new search..." message, where it would make a lot more sense for it to say something along the lines of "Connection was successful; stopping search...".
Should I be concerned?apgluxe wrote: xs120_y2gg39e0e93ggzo80g6kk303303303kk6g08ozol5d0ddy5dd0d5lozy0319e0mm0mm0e913zy46430346 would take infeasibly long to brute-force separate.
Code: Select all
x = 75, y = 32, rule = B3/S5
o5b4o2bo30b2o10b8o4b2o$o3bo9b2o27b2o10b8o4b2o$o4b3o4b2obo27b2o6b2o18b
4o$2bo2b2o2bo2b4o27b2o6b2o18b4o$obobo2b2o3bo2bo27b2o8b6o8b4o2b2o$3obob
2ob5o29b2o8b6o8b4o2b2o$3bobo9bo31b2o4b4o4b2o4b8o$o4bo2bob5o32b2o4b4o4b
2o4b8o$3b2obob3o4bo27b2o2b2o2b2o4b4o6b2o4b2o$obo2b2o2b2o4bo27b2o2b2o2b
2o4b4o6b2o4b2o$bobo2bob2obob2o28b6o2b2o2b4o2b10o$2bob2obo2bob3o28b6o2b
2o2b4o2b10o$obob2o4bobo2bo33b2o2b2o18b2o$b3o2b10o33b2o2b2o18b2o$2bo7bo
3bo28b2o8b2o4b2o2b10o$b2o6b6o28b2o8b2o4b2o2b10o$49b4o2b2o2b6o8b2o$49b
4o2b2o2b6o8b2o$43b2o2b2o4b4o4b4o8b2o$43b2o2b2o4b4o4b4o8b2o$45b2o2b2o4b
2o2b4o2b2o2b4o$45b2o2b2o4b2o2b4o2b2o2b4o$47b2o2b4o2b2o4b2o2b6o$47b2o2b
4o2b2o4b2o2b6o$43b2o2b2o2b4o8b2o2b2o4b2o$43b2o2b2o2b4o8b2o2b2o4b2o$45b
6o4b20o$45b6o4b20o$47b2o14b2o6b2o$47b2o14b2o6b2o$45b4o12b12o$45b4o12b
12o!
I like that idea. Haven't looked at the 4.x code yet, but it didn't take long to implement this in apgsearch 1.x (well, 0.54+0.x).muzik wrote:Possible pseudosymmetry suggestion: "inflated" soups, where each cell takes up a 2x2 space.
This could be especially useful for rules which simulate margolus rules with 2x2 blocks (although I don't see much evil in searching rules without this property using this pseudosymmetry). It could possibly also be made subject to the additional symmetries and size rectangle (8x32, 4x64, 2x128) options the 1x1-cell soups face, obviously scaled up for it to make sense.
Unlikely to be implemented in apgluxe, I'd wager, unless you want to do it yourself, but 0.54+0.32i-ab2 supports my earlier "test" symmetries, so you can use that to search those if you're so inclined.muzik wrote:Also, how about these 256x256 and 16x32 symmetries AB has been trying out, and WW's 32x32?
Code: Select all
s = hashlib.sha256(instring).digest() + hashlib.sha256(instring + "_2").digest() + hashlib.sha256(instring + "_3").digest() + ...
It won't ever be implemented in apgluxe. That symmetry was an experiment to dump HoneySearch results to Catagolue; however, I reached the decision that running HS for two days on a 72-physical-core machine with hundreds of gigabytes of memory and saving results to disk was the way to go. There was then several additional hours of post-processing and filtering, culminating in the 'data' directory of slmake (which is what Dave Greene has been using for his latest self-constructing projects).muzik wrote:On the topic of symmetries: will the SS symmetry ever be officially implemented? The only problem I can see with it is the fact that it's obviously going to fail in rules where the glider isn't a spaceship, so maybe the rule should default to b3s23 if the symmetry is specified.
It will be, once I enhance the code for collecting objects.muzik wrote:So does this mean that 4.x is faster at searching b3s23/C1 overall?
Inflated 1x256 is worthless. You can get the same results just by running all 2x(2n) solid blocks of cells from n=1–256, which can be achieved using a simple script.muzik wrote:I would quite like an inflated 1x256 symmetry at the very least.