Open nkeynes-oracle opened 8 years ago
Souffle uses extensively template code in C++ and GCC 4.6.x is not able to compile the data-structures. Rewriting the data-structure for old style C++ might not be possible. Similar with Bison - we use the latest C++ interface for bison. Older versions don't have this.
It may be difficult, but I don't believe it is impossible, and improving compatibility is useful both for us and for others.
We use advanced C++ template features to implement Futamura Projections/Partial Evaluation systems for data-structures. It will be very hard to achieve similar performance with an OO-style C++ program without partial evaluation.
If we don't use the latest bison C++ interface, the generated parser is an old-style C function instead of a modern C++ class linking via a driver the C++ class of the scanner.
If Oracle Labs (and other parties) may need a system which produces compatible code, we may want to divert the topic to building Soufflé as a library. Paul put a lot of effort into this / creating a JNI interface for Soufflé. There are other ideas related to the topic:
https://github.com/souffle-lang/souffle/issues/150 https://github.com/souffle-lang/souffle/issues/160
This might be a more productive/fruitful topic than porting Soufflé to old versions of C++/bison.
Known issues