The high-performance On Demand front-end introduced in version 0.7 has received major quality-of-life and performance improvements (credit @jkeiser).
- Runtime dispatching is now supported, achieving high performance without compiling for a specific CPU.
- Object field lookup is now order-insensitive:
double x = object["x"]; double y = object["y"];
will work no matter which order the fields appear in the object. Reading fields in order still gives maximum performance. - Object lookup and array iteration can now be used against untyped values, enabling things like chained lookup (
object["a"]["b"]
) - Numbers, strings and boolean values can be saved and parsed later by storing the
ondemand::value
, allowing more efficient filtering and bulk parsing, as well as fixing smaller quality-of-life issues.
We have improved our CMake build with respect to installed artefacts so that
CMake dependencies automatically handle thread dependencies.
We have greatly improved our benchmarks with a set of realistic tasks on
realistic datasets, using Google Benchmark as a framework.