This ticket aims to eventually be a master issue for tracking what's needed to support https://github.com/simdjson/simdjson. The idea is to support simdjson on the evaluator, while keeping the compiler JSON Toolkit only.
Phase 1: Abstract away JSON Toolkit
Phase 2: Bridge any interoperability requirements between simdjson and JSON Toolkit
Phase 3: Enable simdjson
Resolved
- Will we emit annotation values using
simdjson or JSON Toolkit?
- Resolution: Annotations are never stored, so we can keep using JSON Toolkit, otherwise we need to get into emitting
simdjson from the compiler
This ticket aims to eventually be a master issue for tracking what's needed to support https://github.com/simdjson/simdjson. The idea is to support
simdjsonon the evaluator, while keeping the compiler JSON Toolkit only.Phase 1: Abstract away JSON Toolkit
evaluator_json.h?) that introduces a layer of indirection for type aliases and functions that we can#ifdefbased on the chosen backend. All other parts of the evaluator should use this instead. We would even need to abstract how to loop over objects, etc which might get nasty?AssertionGreaterEqual) to NOT take JSON values as inputPhase 2: Bridge any interoperability requirements between
simdjsonand JSON Toolkitsimdjsoninto the build usingvendorpullsimdjsonJSON document. Probably needs to happen here in Blaze as a re-implementation of pointer traversal?simdjsonand JSON ToolkitPhase 3: Enable
simdjsonsimdjsonandjsontoolkit. MaybeBLAZE_EVALUATOR_BACKEND? Note Blaze would still always link to JSON Toolkit for using other of its stuff, like JSON Pointerssimdjsonvariant of the common abstraction interfaceResolved
simdjsonor JSON Toolkit?simdjsonfrom the compiler