Hi,
I failed to biuld spot-2.14.1 on macOS. As the spot website invites to report to this list I am doing so.
Thank you for providing and mainating this very usefull software package, kind Regards, Thomas Moor
============
1)
I ran
./configure --prefix ~/opt --disable-python
which produces too much output to mail. It ended with
[…] config.status: executing libtool commands
which to me sounds fine.
2)
I ran
make
which again was very busy. It did issue some harmless warnings not worth reporting, but ended with an fatal error
[…] libtool: compile: g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../.. -I../../buddy/src -I../../lib -I../../lib -\ DNDEBUG -fvisibility=hidden -fvisibility-inlines-hidden -DSPOT_BUILD -std=c++17 -g -O3 -ffast-math -fstrict-aliasing -fomit\ -frame-pointer -MT ltlf.lo -MD -MP -MF .deps/ltlf.Tpo -c ltlf.cc -fno-common -DPIC -o .libs/ltlf.o ltlf.cc:434:15: error: no template named 'unordered_map' in namespace 'std'; did you mean 'robin_hood::unordered_map'? std::unordered_map<formula, std::vector<formula>> map; ^~~~~~~~~~~~~~~~~~ robin_hood::unordered_map ../../spot/priv/robin_hood.hh:2520:1: note: 'robin_hood::unordered_map' declared here using unordered_map = ^ 1 error generated. […]
3)
I have inspected the reported file “spot/tl/ltlf.cc", and it actually uses "robin_hood::unordered_map” in a number on instances, but also once "std::unordered_map”. Changing this to "robin_hood::unordered_map” fixed the problem for me and I could successfully build the executables I was after; e.g.
./bin/autfilt —version
reports
autfilt (spot) 2.14.1
Copyright (C) 2025 by the Spot authors, see the AUTHORS File for details. […]
I did not follow up technical details about “robin_hood” … is this some kind of a joke that Robin Hood fixed my build?
3)
In the case it matters:
clang —version
reports
Apple clang version 14.0.0 (clang-1400.0.29.202) Target: arm64-apple-darwin21.6.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
This is the standard toochain that came along with macOS 12.7.6 (dated 2021)
Hi Thomas,
"Moor, Thomas" thomas.moor@fau.de writes:
ltlf.cc:434:15: error: no template named 'unordered_map' in namespace 'std'; did you mean 'robin_hood::unordered_map'?
[...]>
I have inspected the reported file “spot/tl/ltlf.cc", and it actually uses "robin_hood::unordered_map” in a number on instances, but also once "std::unordered_map”. Changing this to "robin_hood::unordered_map” fixed the problem for me and I could successfully build the executables I was after;
Thank you for the report. I'll apply the same fix.
For some reason <unordered_map> was indirectly included in all the architectures I build Spot on (including some osx_arm64 builds for conda-forge).
I did not follow up technical details about “robin_hood” … is this some kind of a joke that Robin Hood fixed my build?
It's a hash table with open addressing that steals the location of "rich" keys (keys that have a small probe sequence) to give to the "poor" keys (keys that would have a longer probe sequence).