I really like ChaiScript and have used it in a couple of small game projects.
But I stopped using it because it was insanely slow (in both compile times and runtime performance). Several hundred (if not thousand) times slower than the equivalent Lua code.
That was a few years ago, but skimming through the release notes, it doesn't seem to have been fixed.
Unfortunately ChaiScript needs to be header-only because it's like 99% templates.
You can put all your ChaiScript-related code into an isolated implementation file, and try to avoid touching that file as much as possible. But that only works well for long-term projects, where once you get all the bindings you need set up, you can coast for a while without touching those files.
For short-term projects it's a nightmare because you're constantly touching the ChaiScript files.
There's no inherent reason a header-only library should significantly impact compile times, aside from the fact that the authors usually don't have the foresight to make it efficient. It's also very difficult to find information about how to make templates more efficient at compile time.
> I bet the compile times would improve if it wasn't header only.
If any hypothetical compilation time problem concerns you then rest assure that C++ enables you to develop submodules that wrap and instantiate your templates, eliminating the need to recompile them every single build.
But I stopped using it because it was insanely slow (in both compile times and runtime performance). Several hundred (if not thousand) times slower than the equivalent Lua code.
That was a few years ago, but skimming through the release notes, it doesn't seem to have been fixed.