diff --git a/HACKING.md b/HACKING.md index e1c458a47..3a0327b70 100644 --- a/HACKING.md +++ b/HACKING.md @@ -110,6 +110,24 @@ workflows used by simdjson. Directory Structure and Source ------------------------------ +Before diving into the directory structure, here are key concepts used in the codebase: + +- **Amalgamated File**: A file that is conditionally included in the amalgamation process. These are wrapped in `#ifndef SIMDJSON_CONDITIONAL_INCLUDE` blocks and are included based on the target implementation (e.g., ARM64, x86). They include implementation-specific files (e.g., `arm64.h`) and generic files (e.g., under `generic/`). Amalgamated files have associated dependency files (`dependencies.h`) to track includes. + +- **Amalgamator File**: A file that orchestrates the inclusion of amalgamated files. Examples: `arm64.h`, `arm64/implementation.h`, `generic/amalgamated.h`. These are not themselves amalgamated but control conditional inclusions. + +- **Free Dependency File**: A top-level header that is always included unconditionally. These do not have dependency files and represent the public API (e.g., main headers). + +- **Implementation-Specific File**: A file tied to a specific CPU architecture or instruction set (e.g., `arm64/`, `haswell/`). These must be amalgamated. + +- **Generic File**: A shared file (under `generic/` or `simdjson/generic/`) that contains common code included once per implementation. + +- **Builtin File**: Special files under `simdjson/builtin/` that handle the builtin implementation, a fallback/default implementation used when no optimized implementation is available. + +- **Conditional Include Block**: A section wrapped in `#ifndef SIMDJSON_CONDITIONAL_INCLUDE` for editor-only or implementation-specific content. + +The script `singleheader/amalgation_helper.py` will generate an HTML report which you can use to visualize the status of each file. + simdjson's source structure, from the top level, looks like this: * **CMakeLists.txt:** The main build system. @@ -133,6 +151,12 @@ simdjson's source structure, from the top level, looks like this: * simdjson/generic/ondemand/*.h: individual On-Demand classes, generically written. * simdjson/generic/ondemand/dependencies.h: dependencies on common, non-implementation-specific simdjson classes. This will be included before including amalgamated.h. * simdjson/generic/ondemand/amalgamated.h: all generic ondemand classes for an implementation. + * simdjson/builder.h: the `simdjson::builder` namespace. Includes all public builder classes. + * simdjson/builtin/builder.h: the `simdjson::builtin::builder` namespace. + * simdjson/arm64|fallback|haswell|icelake|ppc64|westmere/builder.h: the `simdjson::::builder` namespace. Builder compiled for the specific implementation. + * simdjson/generic/builder/*.h: individual Builder classes, generically written. + * simdjson/generic/builder/dependencies.h: dependencies on common, non-implementation-specific simdjson classes. This will be included before including amalgamated.h. + * simdjson/generic/builder/amalgamated.h: all generic builder classes for an implementation. * **src:** The source files for non-inlined functionality (e.g. the architecture-specific parser implementations). * simdjson.cpp: A "main source" that includes all implementation files from src/. This is @@ -147,6 +171,7 @@ Other important files and directories: * **.github/workflows:** Definitions for GitHub Actions (CI). * **singleheader:** Contains generated `simdjson.h` and `simdjson.cpp` that we release. The files `singleheader/simdjson.h` and `singleheader/simdjson.cpp` should never be edited by hand. * **singleheader/amalgamate.py:** Generates `singleheader/simdjson.h` and `singleheader/simdjson.cpp` for release (python script). If you add a new implementation (e.g., rvv), you need to edit this file (IMPLEMENTATIONS). +* **singleheader/amalgation_helper.py:** Generates and `amalgamation_report.html` that helps you understand the status of each file. * **benchmark:** This is where we do benchmarking. Benchmarking is core to every change we make; the cardinal rule is don't regress performance without knowing exactly why, and what you're trading for it. Many of our benchmarks are microbenchmarks. We are effectively doing controlled scientific experiments for the purpose of understanding what affects our performance. So we simplify as much as possible. We try to avoid irrelevant factors such as page faults, interrupts, unnecessary system calls. We recommend checking the performance as follows: diff --git a/include/simdjson.h b/include/simdjson.h index 82353c04b..1cce0cb3d 100644 --- a/include/simdjson.h +++ b/include/simdjson.h @@ -52,6 +52,7 @@ #include "simdjson/padded_string_view-inl.h" #include "simdjson/dom.h" +#include "simdjson/builder.h" #include "simdjson/ondemand.h" #include "simdjson/convert.h" #include "simdjson/convert-inl.h" diff --git a/include/simdjson/arm64/builder.h b/include/simdjson/arm64/builder.h new file mode 100644 index 000000000..1a037e605 --- /dev/null +++ b/include/simdjson/arm64/builder.h @@ -0,0 +1,8 @@ +#ifndef SIMDJSON_ARM64_BUILDER_H +#define SIMDJSON_ARM64_BUILDER_H + +#include "simdjson/arm64/begin.h" +#include "simdjson/generic/builder/amalgamated.h" +#include "simdjson/arm64/end.h" + +#endif // SIMDJSON_ARM64_BUILDER_H \ No newline at end of file diff --git a/include/simdjson/builder.h b/include/simdjson/builder.h new file mode 100644 index 000000000..9b7c18516 --- /dev/null +++ b/include/simdjson/builder.h @@ -0,0 +1,14 @@ +#ifndef SIMDJSON_BUILDER_H +#define SIMDJSON_BUILDER_H + +#include "simdjson/builtin/builder.h" + +namespace simdjson { + /** + * @copydoc simdjson::builtin::builder + */ + namespace builder = builtin::builder; + +} // namespace simdjson + +#endif // SIMDJSON_BUILDER_H diff --git a/include/simdjson/builtin/builder.h b/include/simdjson/builtin/builder.h new file mode 100644 index 000000000..b1e3d5b5c --- /dev/null +++ b/include/simdjson/builtin/builder.h @@ -0,0 +1,40 @@ +#ifndef SIMDJSON_BUILTIN_BUILDER_H +#define SIMDJSON_BUILTIN_BUILDER_H + +#include "simdjson/builtin.h" +#include "simdjson/builtin/base.h" + +#include "simdjson/generic/builder/dependencies.h" + +#define SIMDJSON_CONDITIONAL_INCLUDE + +#if SIMDJSON_BUILTIN_IMPLEMENTATION_IS(arm64) +#include "simdjson/arm64/builder.h" +#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(fallback) +#include "simdjson/fallback/builder.h" +#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(haswell) +#include "simdjson/haswell/builder.h" +#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(icelake) +#include "simdjson/icelake/builder.h" +#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(ppc64) +#include "simdjson/ppc64/builder.h" +#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(westmere) +#include "simdjson/westmere/builder.h" +#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(lsx) +#include "simdjson/lsx/builder.h" +#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(lasx) +#include "simdjson/lasx/builder.h" +#else +#error Unknown SIMDJSON_BUILTIN_IMPLEMENTATION +#endif + +#undef SIMDJSON_CONDITIONAL_INCLUDE + +namespace simdjson { + /** + * @copydoc simdjson::SIMDJSON_BUILTIN_IMPLEMENTATION::builder + */ + namespace builder = SIMDJSON_BUILTIN_IMPLEMENTATION::builder; +} // namespace simdjson + +#endif // SIMDJSON_BUILTIN_BUILDER_H \ No newline at end of file diff --git a/include/simdjson/fallback/builder.h b/include/simdjson/fallback/builder.h new file mode 100644 index 000000000..d47f9c984 --- /dev/null +++ b/include/simdjson/fallback/builder.h @@ -0,0 +1,8 @@ +#ifndef SIMDJSON_FALLBACK_BUILDER_H +#define SIMDJSON_FALLBACK_BUILDER_H + +#include "simdjson/fallback/begin.h" +#include "simdjson/generic/builder/amalgamated.h" +#include "simdjson/fallback/end.h" + +#endif // SIMDJSON_FALLBACK_BUILDER_H \ No newline at end of file diff --git a/include/simdjson/generic/builder/amalgamated.h b/include/simdjson/generic/builder/amalgamated.h new file mode 100644 index 000000000..d09f83c4d --- /dev/null +++ b/include/simdjson/generic/builder/amalgamated.h @@ -0,0 +1,12 @@ +#if defined(SIMDJSON_CONDITIONAL_INCLUDE) && !defined(SIMDJSON_GENERIC_BUILDER_DEPENDENCIES_H) +#error simdjson/generic/builder/dependencies.h must be included before simdjson/generic/builder/amalgamated.h! +#endif + +#include "simdjson/generic/builder/json_string_builder.h" +#include "simdjson/generic/builder/json_builder.h" + + + +// JSON builder inline definitions +#include "simdjson/generic/builder/json_string_builder-inl.h" + diff --git a/include/simdjson/generic/builder/dependencies.h b/include/simdjson/generic/builder/dependencies.h new file mode 100644 index 000000000..fcab068f1 --- /dev/null +++ b/include/simdjson/generic/builder/dependencies.h @@ -0,0 +1,13 @@ +#ifdef SIMDJSON_CONDITIONAL_INCLUDE +#error simdjson/generic/builder/dependencies.h must be included before defining SIMDJSON_CONDITIONAL_INCLUDE! +#endif + +#ifndef SIMDJSON_GENERIC_BUILDER_DEPENDENCIES_H +#define SIMDJSON_GENERIC_BUILDER_DEPENDENCIES_H + +// Internal headers needed for builder generics. +// All includes not under simdjson/generic/builder must be here! +// Otherwise, amalgamation will fail. +#include "simdjson/concepts.h" + +#endif // SIMDJSON_GENERIC_BUILDER_DEPENDENCIES_H \ No newline at end of file diff --git a/include/simdjson/generic/ondemand/json_builder.h b/include/simdjson/generic/builder/json_builder.h similarity index 98% rename from include/simdjson/generic/ondemand/json_builder.h rename to include/simdjson/generic/builder/json_builder.h index fa9383959..3022f8082 100644 --- a/include/simdjson/generic/ondemand/json_builder.h +++ b/include/simdjson/generic/builder/json_builder.h @@ -1,7 +1,3 @@ -/** - * This file is part of the builder API. It is temporarily in the ondemand directory - * but we will move it to a builder directory later. - */ #ifndef SIMDJSON_GENERIC_BUILDER_H #ifndef SIMDJSON_CONDITIONAL_INCLUDE diff --git a/include/simdjson/generic/ondemand/json_string_builder-inl.h b/include/simdjson/generic/builder/json_string_builder-inl.h similarity index 99% rename from include/simdjson/generic/ondemand/json_string_builder-inl.h rename to include/simdjson/generic/builder/json_string_builder-inl.h index 56956d307..f825151a7 100644 --- a/include/simdjson/generic/ondemand/json_string_builder-inl.h +++ b/include/simdjson/generic/builder/json_string_builder-inl.h @@ -1,7 +1,3 @@ -/** - * This file is part of the builder API. It is temporarily in the ondemand - * directory but we will move it to a builder directory later. - */ #include #include #include diff --git a/include/simdjson/generic/ondemand/json_string_builder.h b/include/simdjson/generic/builder/json_string_builder.h similarity index 98% rename from include/simdjson/generic/ondemand/json_string_builder.h rename to include/simdjson/generic/builder/json_string_builder.h index ed005ec0a..82a4fa3c5 100644 --- a/include/simdjson/generic/ondemand/json_string_builder.h +++ b/include/simdjson/generic/builder/json_string_builder.h @@ -1,7 +1,3 @@ -/** - * This file is part of the builder API. It is temporarily in the ondemand directory - * but we will move it to a builder directory later. - */ #ifndef SIMDJSON_GENERIC_STRING_BUILDER_H #ifndef SIMDJSON_CONDITIONAL_INCLUDE diff --git a/include/simdjson/generic/ondemand/amalgamated.h b/include/simdjson/generic/ondemand/amalgamated.h index 81e8a0db7..c9cf187d4 100644 --- a/include/simdjson/generic/ondemand/amalgamated.h +++ b/include/simdjson/generic/ondemand/amalgamated.h @@ -1,4 +1,4 @@ -#if defined(SIMDJSON_CONDITIONAL_INCLUDE) && !defined(SIMDJSON_GENERIC_ONDEMAND_DEPENDENCIES_H) +#if defined(SIMDJSON_CONDITIONAL_INCLUDE) && !defined(SIMDJSON_GENERIC_BUILDER_DEPENDENCIES_H) #error simdjson/generic/ondemand/dependencies.h must be included before simdjson/generic/ondemand/amalgamated.h! #endif @@ -14,9 +14,6 @@ #include "simdjson/generic/ondemand/raw_json_string.h" #include "simdjson/generic/ondemand/parser.h" -// JSON builder - needed for extract_into functionality -#include "simdjson/generic/ondemand/json_string_builder.h" - // All other declarations #include "simdjson/generic/ondemand/array.h" #include "simdjson/generic/ondemand/array_iterator.h" @@ -44,13 +41,9 @@ #include "simdjson/generic/ondemand/object_iterator-inl.h" #include "simdjson/generic/ondemand/parser-inl.h" #include "simdjson/generic/ondemand/raw_json_string-inl.h" -#include "simdjson/generic/ondemand/serialization-inl.h" #include "simdjson/generic/ondemand/token_iterator-inl.h" #include "simdjson/generic/ondemand/value_iterator-inl.h" - -// JSON builder inline definitions -#include "simdjson/generic/ondemand/json_string_builder-inl.h" -#include "simdjson/generic/ondemand/json_builder.h" +#include "simdjson/generic/ondemand/serialization-inl.h" // JSON path accessor (compile-time) - must be after inline definitions #include "simdjson/generic/ondemand/compile_time_accessors.h" diff --git a/include/simdjson/generic/ondemand/dependencies.h b/include/simdjson/generic/ondemand/dependencies.h index e33b31f67..3c4fdc3a6 100644 --- a/include/simdjson/generic/ondemand/dependencies.h +++ b/include/simdjson/generic/ondemand/dependencies.h @@ -8,7 +8,6 @@ // Internal headers needed for ondemand generics. // All includes not under simdjson/generic/ondemand must be here! // Otherwise, amalgamation will fail. -#include "simdjson/concepts.h" #include "simdjson/dom/base.h" // for MINIMAL_DOCUMENT_CAPACITY #include "simdjson/implementation.h" #include "simdjson/padded_string.h" diff --git a/include/simdjson/generic/ondemand/serialization-inl.h b/include/simdjson/generic/ondemand/serialization-inl.h index 37a501789..f0d65c186 100644 --- a/include/simdjson/generic/ondemand/serialization-inl.h +++ b/include/simdjson/generic/ondemand/serialization-inl.h @@ -10,7 +10,7 @@ #include "simdjson/generic/ondemand/serialization.h" #include "simdjson/generic/ondemand/value.h" #if SIMDJSON_STATIC_REFLECTION -#include "simdjson/generic/ondemand/json_builder.h" +#include "simdjson/generic/builder/json_builder.h" #endif #endif // SIMDJSON_CONDITIONAL_INCLUDE diff --git a/include/simdjson/haswell/builder.h b/include/simdjson/haswell/builder.h new file mode 100644 index 000000000..b80058e28 --- /dev/null +++ b/include/simdjson/haswell/builder.h @@ -0,0 +1,8 @@ +#ifndef SIMDJSON_HASWELL_BUILDER_H +#define SIMDJSON_HASWELL_BUILDER_H + +#include "simdjson/haswell/begin.h" +#include "simdjson/generic/builder/amalgamated.h" +#include "simdjson/haswell/end.h" + +#endif // SIMDJSON_HASWELL_BUILDER_H \ No newline at end of file diff --git a/include/simdjson/icelake/builder.h b/include/simdjson/icelake/builder.h new file mode 100644 index 000000000..d8b8cb4fa --- /dev/null +++ b/include/simdjson/icelake/builder.h @@ -0,0 +1,8 @@ +#ifndef SIMDJSON_ICELAKE_BUILDER_H +#define SIMDJSON_ICELAKE_BUILDER_H + +#include "simdjson/icelake/begin.h" +#include "simdjson/generic/builder/amalgamated.h" +#include "simdjson/icelake/end.h" + +#endif // SIMDJSON_ICELAKE_BUILDER_H \ No newline at end of file diff --git a/include/simdjson/lasx/builder.h b/include/simdjson/lasx/builder.h new file mode 100644 index 000000000..ea8ee3133 --- /dev/null +++ b/include/simdjson/lasx/builder.h @@ -0,0 +1,8 @@ +#ifndef SIMDJSON_LASX_BUILDER_H +#define SIMDJSON_LASX_BUILDER_H + +#include "simdjson/lasx/begin.h" +#include "simdjson/generic/builder/amalgamated.h" +#include "simdjson/lasx/end.h" + +#endif // SIMDJSON_LASX_BUILDER_H \ No newline at end of file diff --git a/include/simdjson/lsx/builder.h b/include/simdjson/lsx/builder.h new file mode 100644 index 000000000..4d832d9bb --- /dev/null +++ b/include/simdjson/lsx/builder.h @@ -0,0 +1,8 @@ +#ifndef SIMDJSON_LSX_BUILDER_H +#define SIMDJSON_LSX_BUILDER_H + +#include "simdjson/lsx/begin.h" +#include "simdjson/generic/builder/amalgamated.h" +#include "simdjson/lsx/end.h" + +#endif // SIMDJSON_LSX_BUILDER_H \ No newline at end of file diff --git a/include/simdjson/ppc64/builder.h b/include/simdjson/ppc64/builder.h new file mode 100644 index 000000000..111264b99 --- /dev/null +++ b/include/simdjson/ppc64/builder.h @@ -0,0 +1,8 @@ +#ifndef SIMDJSON_PPC64_BUILDER_H +#define SIMDJSON_PPC64_BUILDER_H + +#include "simdjson/ppc64/begin.h" +#include "simdjson/generic/builder/amalgamated.h" +#include "simdjson/ppc64/end.h" + +#endif // SIMDJSON_PPC64_BUILDER_H \ No newline at end of file diff --git a/include/simdjson/westmere/builder.h b/include/simdjson/westmere/builder.h new file mode 100644 index 000000000..6fb500c1e --- /dev/null +++ b/include/simdjson/westmere/builder.h @@ -0,0 +1,8 @@ +#ifndef SIMDJSON_WESTMERE_BUILDER_H +#define SIMDJSON_WESTMERE_BUILDER_H + +#include "simdjson/westmere/begin.h" +#include "simdjson/generic/builder/amalgamated.h" +#include "simdjson/westmere/end.h" + +#endif // SIMDJSON_WESTMERE_BUILDER_H \ No newline at end of file diff --git a/singleheader/amalgamate.py b/singleheader/amalgamate.py index 092e98be9..71cd85a28 100755 --- a/singleheader/amalgamate.py +++ b/singleheader/amalgamate.py @@ -20,31 +20,68 @@ if sys.version_info < (3, 0): rules = """ -We refer your to the HACKING.md file for more information on how the project is organized. +Amalgamation Rules for simdjson +============================== -If you are trying to add a new implementation, you need to edit the amalgamate.py script -to add your implementation to the IMPLEMENTATIONS list. +This script creates a single compilation unit (amalgamation) from multiple source files, +allowing the entire library to be compiled as one file while supporting multiple CPU +architectures. Implementation-specific code is conditionally included at compile time. -To help understand the error, here are the rules for including files in simdjson: +For more details, see HACKING.md. -All implementation-specific files, including arm64.h, arm64/implementation.h and -arm64/ondemand.h, must be within SIMDJSON_CONDITIONAL_INCLUDE blocks. +Key Concepts: +- **Amalgamated File**: A file that is conditionally included in the amalgamation process. + These are wrapped in #ifndef SIMDJSON_CONDITIONAL_INCLUDE blocks and are included + based on the target implementation (e.g., ARM64, x86). They include implementation-specific + files (e.g., arm64.h) and generic files (e.g., under generic/). Amalgamated files have + associated dependency files (dependencies.h) to track includes. -Top-level headers must not be included in any SIMDJSON_CONDITIONAL_INCLUDE block. +- **Amalgamator File**: A file that orchestrates the inclusion of amalgamated files. + Examples: arm64.h, arm64/implementation.h, generic/amalgamated.h. These are not + themselves amalgamated but control conditional inclusions. -Generic files must be included only in amalgamator files (arm64.h, -arm64/implementation.h, arm64/ondemand.h, generic/amalgamated.h). +- **Free Dependency File**: A top-level header that is always included unconditionally. + These do not have dependency files and represent the public API (e.g., main headers). -We fail if an implementation-specific file is included more than once in the same block. -We fail if a generic file is included more than once per implementation in the same block. +- **Implementation-Specific File**: A file tied to a specific CPU architecture or + instruction set (e.g., arm64/, haswell/). These must be amalgamated. +- **Generic File**: A shared file (under generic/ or simdjson/generic/) that contains + common code included once per implementation. -Tip: generally, "file" will search the including file's source directory first, then -the search paths while does it the other way around. -We prefer to use <> in simdjson headers to avoid accidentally including a file from the -wrong directory. +- **Builtin File**: Special files under simdjson/builtin/ that handle the builtin + implementation, a fallback/default implementation used when no optimized implementation + is available. -The amalgamate.py script checks that all files are included. +- **Conditional Include Block**: A section wrapped in #ifndef SIMDJSON_CONDITIONAL_INCLUDE + for editor-only or implementation-specific content. + +Use amalgation_helper.py to generate an HTML report to help you understand the status of each file. + +Inclusion Rules: +1. All implementation-specific files must be within SIMDJSON_CONDITIONAL_INCLUDE blocks. + +2. Top-level headers (free dependency files) must not be included in any + SIMDJSON_CONDITIONAL_INCLUDE block. + +3. Generic files must be included only in amalgamator files. + +4. Amalgamated files can only include other amalgamated files. + +5. Free dependency files can only include amalgamator files or other free files, + not amalgamated files directly. + +6. We fail if an implementation-specific file is included more than once in the same block. + +7. We fail if a generic file is included more than once per implementation in the same block. + +8. Dependency files (dependencies.h) must list all editor-only includes for completeness. + +Tips: +- Use <> for includes to search system paths first, avoiding accidental local includes. +- The script validates that all .h and .cpp files are included or deprecated. + +If adding a new implementation, edit the IMPLEMENTATIONS list in this script. """ @@ -179,6 +216,8 @@ class SimdjsonFile: # simdjson/arm64/ondemand.h if self.filename == 'ondemand.h': return self.repository["simdjson/generic/ondemand/dependencies.h"] + if self.filename == 'builder.h': + return self.repository["simdjson/generic/builder/dependencies.h"] # simdjson/arm64.h, simdjson/arm64/*.h else: @@ -192,7 +231,7 @@ class SimdjsonFile: @property def is_amalgamator(self): if self.implementation: - return self.root == 'src' or self.include_dir == 'simdjson' or self.filename == 'ondemand.h' or self.filename == 'implementation.h' + return self.root == 'src' or self.include_dir == 'simdjson' or self.filename == 'ondemand.h'or self.filename == 'builder.h' or self.filename == 'implementation.h' else: return self.filename == 'amalgamated.h' @@ -209,22 +248,23 @@ class SimdjsonFile: return self.filename == 'dependencies.h' def add_include(self, include: 'SimdjsonFile'): + print(f" Adding include: {self} includes {include}") if self.is_conditional_include: # If I have a dependency file, I can only include something that has a dependency file. - assert include.is_conditional_include, f"{self} cannot include {include} without #ifndef SIMDJSON_CONDITIONAL_INCLUDE. {rules}" + assert include.is_conditional_include, f"Error: Amalgamated file '{self}' is trying to include '{include}', but '{include}' is not an amalgamated file. Amalgamated files can only include other amalgamated files to maintain conditional inclusion structure. Check the inclusion rules in the script's 'rules' variable. {rules}" # TODO make sure we only include amalgamated files that are guaranteed to be included with us (or before us) # if include.amalgamator_file: # assert include.amalgamator_file == self, f"{self} cannot include {include}: it should be included from {include.amalgamator_file} instead." else: - assert include.is_amalgamator or not include.is_conditional_include, f"{self} cannot include {include} because it is an amalgamated file. {rules}" + assert include.is_amalgamator or not include.is_conditional_include, f"Error: Free dependency file '{self}' is trying to include '{include}', which is an amalgamated file. Free dependency files (top-level headers) can only include amalgamator files or other free files, not amalgamated files directly. This prevents improper layering. Move the include to an amalgamator or restructure dependencies. {rules}" self.includes.append(include) include.included_from.add(self) def add_editor_only_include(self, include: 'SimdjsonFile'): - assert self.is_conditional_include, f"Cannot use #ifndef SIMDJSON_CONDITIONAL_INCLUDE in {self} because it is not an amalgamated file. {rules}" + assert self.is_conditional_include, f"Error: File '{self}' uses '#ifndef SIMDJSON_CONDITIONAL_INCLUDE', but '{self}' is not an amalgamated file. Conditional include blocks are only allowed in amalgamated files (those with dependencies). Remove the conditional block or ensure the file is amalgamated. {rules}" if not include.is_conditional_include: - assert self.dependency_file, f"{self} cannot include {include} without #ifndef SIMDJSON_CONDITIONAL_INCLUDE. {rules}" + assert self.dependency_file, f"Error: In '{self}', editor-only include of '{include}' requires a dependency file, but '{self}' has none. Ensure '{self}' has an associated dependencies.h file. {rules}" # TODO make sure we only include amalgamated files that are guaranteed to be included with us (or before us) # elif include.amalgamator_file: # assert self.is_amalgamated_before(self.amalgamator_file), f"{self} cannot include {include}: it should be included from {include.amalgamator_file} instead." @@ -239,11 +279,11 @@ class SimdjsonFile: if file.dependency_file == self: for editor_only_include in file.editor_only_includes: if not editor_only_include.is_conditional_include: - assert editor_only_include in self.includes, f"{file} includes {editor_only_include}, but it is not included from {self}. It must be added to {self}. {rules}" + assert editor_only_include in self.includes, f"Error: Dependency file '{self}' is missing an include for '{editor_only_include}', which is editor-only included in '{file}'. Add '{editor_only_include}' to '{self}' to ensure completeness. {rules}" if editor_only_include in extra_include_set: extra_include_set.remove(editor_only_include) - assert len(extra_include_set) == 0, f"{self} unnecessarily includes {extra_include_set}. They are not included in the corresponding amalgamated files. {rules}" + assert len(extra_include_set) == 0, f"Error: Dependency file '{self}' includes {extra_include_set}, which are not used in any amalgamated files. Remove these unnecessary includes to clean up dependencies. {rules}" class SimdjsonRepository: def __init__(self, project_path: str, relative_roots: List[RelativeRoot]): @@ -279,12 +319,12 @@ class SimdjsonRepository: result = None for relative_root in self.relative_roots: if os.path.exists(os.path.join(self.project_path, relative_root, filename)): - assert result is None, "{file} exists in both {result} and {root}!" + assert result is None, f"Error: File '{filename}' exists in both '{result}' and '{root}' directories. Files must be unique across roots to avoid ambiguity. Rename or move the duplicate file.{result}' and '{root}' directories. Files must be unique across roots to avoid ambiguity. Rename or move the duplicate file." result = relative_root return result def validate_all_files_used(self, root: RelativeRoot): - assert root in self.relative_roots + assert root in self.relative_roots, f"Error: Root '{root}' is not a valid relative root. Valid roots are {self.relative_roots}. Check the root parameter passed to validate_all_files_used." absolute_root = os.path.join(self.project_path, root) all_files = set([ os.path.relpath(os.path.join(dir, file).replace('\\', '/'), absolute_root) @@ -295,7 +335,7 @@ class SimdjsonRepository: used_files = set([file.include_path for file in self if file.root == root]) all_files.difference_update(used_files) all_files.difference_update(DEPRECATED_FILES) - assert len(all_files) == 0, f"Files not used: {sorted(all_files)}" + assert len(all_files) == 0, f"Error: The following files in '{root}' are not used in the amalgamation: {sorted(all_files)}. All .h and .cpp files must be included or added to DEPRECATED_FILES. Check for missing includes or deprecate unused files." class Amalgamator: @classmethod @@ -305,7 +345,7 @@ class Amalgamator: print(f"/* auto-generated on {timestamp}. version {version} Do not edit! */", file=fid) amalgamator = cls(fid, SimdjsonRepository(PROJECTPATH, roots)) file = amalgamator.repository[filename] - assert file, f"{filename} not found in {[os.path.join(PROJECTPATH, root) for root in roots]}!" + assert file, f"Error: Starting file '{filename}' not found in paths {[os.path.join(PROJECTPATH, root) for root in roots]}. Ensure the file exists and the paths are correct." amalgamator.maybe_write_file(file, None, "") amalgamator.repository.validate_free_dependency_files() fid.close() @@ -327,8 +367,8 @@ class Amalgamator: if file.is_conditional_include: if file.is_generic: # Generic files get written out once per implementation in a well-defined order - assert (file, self.implementation) not in self.found_generic_includes, f"generic file {file} included from {including_file} a second time for {self.implementation}!" - assert self.implementation, file + assert (file, self.implementation) not in self.found_generic_includes, f"Error: Generic file '{file}' is being included a second time for implementation '{self.implementation}' from '{including_file}'. Generic files should be included only once per implementation to avoid duplication." + assert self.implementation, f"Error: Attempting to write generic file '{file}', but no implementation is currently set. Generic files require an active implementation context." self.found_generic_includes.append((file, self.implementation)) else: # Other amalgamated files, on the other hand, may only be included once per *amalgamation* @@ -348,13 +388,13 @@ class Amalgamator: def file_to_str(self, file: SimdjsonFile): if file.is_generic and file.is_conditional_include: - assert self.implementation, file + assert self.implementation, f"Error: In file_to_str for '{file}', implementation is not set. This is required for generic conditional files." return f"{file} for {self.implementation}" return file def write_file(self, file: SimdjsonFile): # Detect cyclic dependencies - assert file not in self.include_stack, f"Cyclic include: {self.include_stack} -> {file}" + assert file not in self.include_stack, f"Error: Cyclic include detected: {self.include_stack} -> {file}. Remove the circular dependency by restructuring includes." self.include_stack.append(file) file.processed = False @@ -362,14 +402,13 @@ class Amalgamator: self.write(f"/* begin file {self.file_to_str(file)} */") if file == BUILTIN_BEGIN_H: - assert self.implementation is None, self.implementation - assert not self.builtin_implementation, self.builtin_implementation + assert self.implementation is None, f"Error: Starting builtin implementation, but '{self.implementation}' is already set. Builtin should start with no prior implementation." + assert not self.builtin_implementation, f"Error: Builtin implementation is already active ({self.builtin_implementation}). Cannot start again." self.builtin_implementation = True self.implementation = "SIMDJSON_BUILTIN_IMPLEMENTATION" - assert not self.editor_only_region + assert not self.editor_only_region, f"Error: Already in an editor-only region when starting to write '{file}'. Ensure proper nesting of conditional blocks." with open(file.absolute_path, 'r') as fid2: - print(f"including: {file}") for line in fid2: line = line.rstrip('\n') @@ -379,9 +418,9 @@ class Amalgamator: # Ignore lines inside #ifndef SIMDJSON_CONDITIONAL_INCLUDE if re.search(r'^#ifndef\s+SIMDJSON_CONDITIONAL_INCLUDE\s*$', line): - assert file.is_conditional_include, f"{file} uses #ifndef SIMDJSON_CONDITIONAL_INCLUDE but is not an amalgamated file! {rules}" - assert self.in_conditional_include_block, f"{file} uses #ifndef SIMDJSON_CONDITIONAL_INCLUDE without a prior #define SIMDJSON_CONDITIONAL_INCLUDE: {self.include_stack} {rules}" - assert not self.editor_only_region, f"{file} uses #ifndef SIMDJSON_CONDITIONAL_INCLUDE twice in a row {rules}" + assert file.is_conditional_include, f"Error: File '{file}' uses '#ifndef SIMDJSON_CONDITIONAL_INCLUDE', but it's not an amalgamated file. Conditional includes are only for amalgamated files. {rules}" + assert self.in_conditional_include_block, f"Error: File '{file}' uses '#ifndef SIMDJSON_CONDITIONAL_INCLUDE' without a prior '#define SIMDJSON_CONDITIONAL_INCLUDE'. Ensure the define comes first. Stack: {self.include_stack}. {rules}" + assert not self.editor_only_region, f"Error: File '{file}' uses '#ifndef SIMDJSON_CONDITIONAL_INCLUDE' twice in a row. Ensure conditional blocks are properly nested and closed. {rules}" self.editor_only_region = True # Handle ignored lines (and ending ignore blocks) @@ -399,7 +438,7 @@ class Amalgamator: self.editor_only_region = False continue - assert not end_ignore, f"{file} has #endif // SIMDJSON_CONDITIONAL_INCLUDE without #ifndef SIMDJSON_CONDITIONAL_INCLUDE {rules}" + assert not end_ignore, f"Error: File '{file}' has '#endif // SIMDJSON_CONDITIONAL_INCLUDE' without a matching '#ifndef'. Ensure proper conditional block structure. {rules}" # Handle #include lines included = re.search(r'^#include\s+["<]([^">]*)[">]', line) @@ -426,36 +465,36 @@ class Amalgamator: self.implementation = None elif re.search(r'\bSIMDJSON_IMPLEMENTATION\b', line) and file.include_path != IMPLEMENTATION_DETECTION_H: # copy the line, with SIMDJSON_IMPLEMENTATION replace to what it is currently defined to - assert self.implementation, f"Use of SIMDJSON_IMPLEMENTATION while not defined in {file}: {line}\n{rules}" + assert self.implementation, f"Error: In '{file}', line '{line}' uses SIMDJSON_IMPLEMENTATION, but it's not defined. Ensure SIMDJSON_IMPLEMENTATION is set before use. {rules}" line = re.sub(r'\bSIMDJSON_IMPLEMENTATION\b',self.implementation,line) # Handle defining and undefining SIMDJSON_CONDITIONAL_INCLUDE defined = re.search(r'^#define\s+SIMDJSON_CONDITIONAL_INCLUDE\s*$', line) if defined: - assert not file.is_conditional_include, "SIMDJSON_CONDITIONAL_INCLUDE defined in amalgamated file {file}! Not allowed. {rules}" - assert not self.in_conditional_include_block, f"{file} redefines SIMDJSON_CONDITIONAL_INCLUDE {rules}" + assert not file.is_conditional_include, f"Error: Amalgamated file '{file}' defines SIMDJSON_CONDITIONAL_INCLUDE, which is not allowed. Only non-amalgamated files can define it. {rules}" + assert not self.in_conditional_include_block, f"Error: File '{file}' redefines SIMDJSON_CONDITIONAL_INCLUDE while already in a conditional block. Avoid redefinition. {rules}" self.in_conditional_include_block = True self.found_includes_per_conditional_block.clear() self.write(f'/* defining SIMDJSON_CONDITIONAL_INCLUDE */') elif re.search(r'^#undef\s+SIMDJSON_CONDITIONAL_INCLUDE\s*$', line): - assert not file.is_conditional_include, "SIMDJSON_CONDITIONAL_INCLUDE undefined in amalgamated file {file}! Not allowed. {rules}" - assert self.in_conditional_include_block, f"{file} undefines SIMDJSON_CONDITIONAL_INCLUDE without defining it {rules}" + assert not file.is_conditional_include, f"Error: Amalgamated file '{file}' undefines SIMDJSON_CONDITIONAL_INCLUDE, which is not allowed. Only non-amalgamated files can undefine it. {rules}" + assert self.in_conditional_include_block, f"Error: File '{file}' undefines SIMDJSON_CONDITIONAL_INCLUDE without having defined it first. Ensure proper define/undefine pairing. {rules}" self.write(f'/* undefining SIMDJSON_CONDITIONAL_INCLUDE */') self.in_conditional_include_block = False self.write(line) - assert not self.editor_only_region, f"{file} ended without #endif // SIMDJSON_CONDITIONAL_INCLUDE {rules}" + assert not self.editor_only_region, f"Error: File '{file}' ended without closing the '#endif // SIMDJSON_CONDITIONAL_INCLUDE'. Ensure all conditional blocks are properly closed. {rules}" self.write(f"/* end file {self.file_to_str(file)} */") if file.include_path == BUILTIN_BEGIN_H: # begin.h redefined SIMDJSON_IMPLEMENTATION multiple times - assert self.builtin_implementation + assert self.builtin_implementation, f"Error: Processing BUILTIN_BEGIN_H, but builtin implementation is not active." self.implementation = "SIMDJSON_BUILTIN_IMPLEMENTATION" elif file.include_path == BUILTIN_END_H: - assert self.implementation is None - assert self.builtin_implementation + assert self.implementation is None, f"Error: Processing BUILTIN_END_H, but implementation is still set to '{self.implementation}'. It should be None." + assert self.builtin_implementation, f"Error: Processing BUILTIN_END_H, but builtin implementation is not active." self.implementation = None file.processed = True diff --git a/singleheader/amalgamation_report.html b/singleheader/amalgamation_report.html new file mode 100644 index 000000000..bdce3e4b8 --- /dev/null +++ b/singleheader/amalgamation_report.html @@ -0,0 +1,640 @@ + + + + + Amalgamation Helper Report + + + + +

Amalgamation Helper Report

+

Click on files to see details.

+
+
include/
simdjson/
arm64/
base.h

base.h

Path: include/simdjson/arm64/base.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: arm64.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
begin.h

begin.h

Path: include/simdjson/arm64/begin.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: arm64.
bitmanipulation.h

bitmanipulation.h

Path: include/simdjson/arm64/bitmanipulation.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: arm64.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/arm64/base.h"
+#include "simdjson/arm64/intrinsics.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
bitmask.h

bitmask.h

Path: include/simdjson/arm64/bitmask.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: arm64.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/arm64/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
builder.h

builder.h

Path: include/simdjson/arm64/builder.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: arm64.
end.h

end.h

Path: include/simdjson/arm64/end.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: arm64.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/arm64/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
implementation.h

implementation.h

Path: include/simdjson/arm64/implementation.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: arm64.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/base.h"
+#include "simdjson/implementation.h"
+#include "simdjson/internal/instruction_set.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
intrinsics.h

intrinsics.h

Path: include/simdjson/arm64/intrinsics.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: arm64.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/arm64/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
numberparsing_defs.h

numberparsing_defs.h

Path: include/simdjson/arm64/numberparsing_defs.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: arm64.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/arm64/base.h"
+#include "simdjson/arm64/intrinsics.h"
+#include "simdjson/internal/numberparsing_tables.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
ondemand.h

ondemand.h

Path: include/simdjson/arm64/ondemand.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: arm64.
simd.h

simd.h

Path: include/simdjson/arm64/simd.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: arm64.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/arm64/base.h"
+#include "simdjson/arm64/bitmanipulation.h"
+#include "simdjson/internal/simdprune_tables.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
stringparsing_defs.h

stringparsing_defs.h

Path: include/simdjson/arm64/stringparsing_defs.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: arm64.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/arm64/base.h"
+#include "simdjson/arm64/simd.h"
+#include "simdjson/arm64/bitmanipulation.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
arm64.h

arm64.h

Path: include/simdjson/arm64.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: arm64.
base.h

base.h

Path: include/simdjson/base.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
builder.h

builder.h

Path: include/simdjson/builder.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
builtin/
base.h

base.h

Path: include/simdjson/builtin/base.h

Categories: Free Dependency File, Builtin File

Why categorized:

  • No dependency file, so always included unconditionally.
  • Located in builtin directory.
builder.h

builder.h

Path: include/simdjson/builtin/builder.h

Categories: Free Dependency File, Builtin File

Why categorized:

  • No dependency file, so always included unconditionally.
  • Located in builtin directory.
implementation.h

implementation.h

Path: include/simdjson/builtin/implementation.h

Categories: Free Dependency File, Builtin File

Why categorized:

  • No dependency file, so always included unconditionally.
  • Located in builtin directory.
ondemand.h

ondemand.h

Path: include/simdjson/builtin/ondemand.h

Categories: Free Dependency File, Builtin File

Why categorized:

  • No dependency file, so always included unconditionally.
  • Located in builtin directory.
builtin.h

builtin.h

Path: include/simdjson/builtin.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
common_defs.h

common_defs.h

Path: include/simdjson/common_defs.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
compile_time_json-inl.h

compile_time_json-inl.h

Path: include/simdjson/compile_time_json-inl.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
compile_time_json.h

compile_time_json.h

Path: include/simdjson/compile_time_json.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
compiler_check.h

compiler_check.h

Path: include/simdjson/compiler_check.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
concepts.h

concepts.h

Path: include/simdjson/concepts.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
constevalutil.h

constevalutil.h

Path: include/simdjson/constevalutil.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
convert-inl.h

convert-inl.h

Path: include/simdjson/convert-inl.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
convert.h

convert.h

Path: include/simdjson/convert.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
dom/
array-inl.h

array-inl.h

Path: include/simdjson/dom/array-inl.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
array.h

array.h

Path: include/simdjson/dom/array.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
base.h

base.h

Path: include/simdjson/dom/base.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
document-inl.h

document-inl.h

Path: include/simdjson/dom/document-inl.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
document.h

document.h

Path: include/simdjson/dom/document.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
document_stream-inl.h

document_stream-inl.h

Path: include/simdjson/dom/document_stream-inl.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
document_stream.h

document_stream.h

Path: include/simdjson/dom/document_stream.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
element-inl.h

element-inl.h

Path: include/simdjson/dom/element-inl.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
element.h

element.h

Path: include/simdjson/dom/element.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
object-inl.h

object-inl.h

Path: include/simdjson/dom/object-inl.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
object.h

object.h

Path: include/simdjson/dom/object.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
parser-inl.h

parser-inl.h

Path: include/simdjson/dom/parser-inl.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
parser.h

parser.h

Path: include/simdjson/dom/parser.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
serialization-inl.h

serialization-inl.h

Path: include/simdjson/dom/serialization-inl.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
serialization.h

serialization.h

Path: include/simdjson/dom/serialization.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
dom.h

dom.h

Path: include/simdjson/dom.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
error-inl.h

error-inl.h

Path: include/simdjson/error-inl.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
error.h

error.h

Path: include/simdjson/error.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
fallback/
base.h

base.h

Path: include/simdjson/fallback/base.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: fallback.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
begin.h

begin.h

Path: include/simdjson/fallback/begin.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: fallback.
bitmanipulation.h

bitmanipulation.h

Path: include/simdjson/fallback/bitmanipulation.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: fallback.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/fallback/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
builder.h

builder.h

Path: include/simdjson/fallback/builder.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: fallback.
end.h

end.h

Path: include/simdjson/fallback/end.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: fallback.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/fallback/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
implementation.h

implementation.h

Path: include/simdjson/fallback/implementation.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: fallback.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/fallback/base.h"
+#include "simdjson/implementation.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
numberparsing_defs.h

numberparsing_defs.h

Path: include/simdjson/fallback/numberparsing_defs.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: fallback.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/fallback/base.h"
+#include "simdjson/internal/numberparsing_tables.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
ondemand.h

ondemand.h

Path: include/simdjson/fallback/ondemand.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: fallback.
stringparsing_defs.h

stringparsing_defs.h

Path: include/simdjson/fallback/stringparsing_defs.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: fallback.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/fallback/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
fallback.h

fallback.h

Path: include/simdjson/fallback.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: fallback.
generic/
amalgamated.h

amalgamated.h

Path: include/simdjson/generic/amalgamated.h

Categories: Amalgamated File, Amalgamator File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Located in generic directories.
atomparsing.h

atomparsing.h

Path: include/simdjson/generic/atomparsing.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ATOMPARSING_H
+#include "simdjson/generic/base.h"
+#include "simdjson/generic/jsoncharutils.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
base.h

base.h

Path: include/simdjson/generic/base.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_BASE_H
+#include "simdjson/base.h"
+// If we haven't got an implementation yet, we're in the editor, editing a generic file! Just
+// use the most advanced one we can so the most possible stuff can be tested.
+#ifndef SIMDJSON_IMPLEMENTATION
+#include "simdjson/implementation_detection.h"
+#if SIMDJSON_IMPLEMENTATION_ICELAKE
+#include "simdjson/icelake/begin.h"
+#elif SIMDJSON_IMPLEMENTATION_HASWELL
+#include "simdjson/haswell/begin.h"
+#elif SIMDJSON_IMPLEMENTATION_WESTMERE
+#include "simdjson/westmere/begin.h"
+#elif SIMDJSON_IMPLEMENTATION_ARM64
+#include "simdjson/arm64/begin.h"
+#elif SIMDJSON_IMPLEMENTATION_PPC64
+#include "simdjson/ppc64/begin.h"
+#elif SIMDJSON_IMPLEMENTATION_LASX
+#include "simdjson/lasx/begin.h"
+#elif SIMDJSON_IMPLEMENTATION_LSX
+#include "simdjson/lsx/begin.h"
+#elif SIMDJSON_IMPLEMENTATION_FALLBACK
+#include "simdjson/fallback/begin.h"
+#else
+#error "All possible implementations (including fallback) have been disabled! simdjson will not run."
+#endif
+#endif // SIMDJSON_IMPLEMENTATION
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
builder/
amalgamated.h

amalgamated.h

Path: include/simdjson/generic/builder/amalgamated.h

Categories: Amalgamated File, Amalgamator File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Located in generic directories.
dependencies.h

dependencies.h

Path: include/simdjson/generic/builder/dependencies.h

Categories: Free Dependency File, Generic File

Why categorized:

  • No dependency file, so always included unconditionally.
  • Located in generic directories.
json_builder.h

json_builder.h

Path: include/simdjson/generic/builder/json_builder.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_STRING_BUILDER_H
+#include "simdjson/generic/builder/json_string_builder.h"
+#include "simdjson/concepts.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
json_string_builder-inl.h

json_string_builder-inl.h

Path: include/simdjson/generic/builder/json_string_builder-inl.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_STRING_BUILDER_INL_H
+#include "simdjson/generic/builder/json_string_builder.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
json_string_builder.h

json_string_builder.h

Path: include/simdjson/generic/builder/json_string_builder.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_STRING_BUILDER_H
+#include "simdjson/generic/implementation_simdjson_result_base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
dependencies.h

dependencies.h

Path: include/simdjson/generic/dependencies.h

Categories: Free Dependency File, Generic File

Why categorized:

  • No dependency file, so always included unconditionally.
  • Located in generic directories.
dom_parser_implementation.h

dom_parser_implementation.h

Path: include/simdjson/generic/dom_parser_implementation.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_DOM_PARSER_IMPLEMENTATION_H
+#include "simdjson/generic/base.h"
+#include "simdjson/internal/dom_parser_implementation.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
implementation_simdjson_result_base-inl.h

implementation_simdjson_result_base-inl.h

Path: include/simdjson/generic/implementation_simdjson_result_base-inl.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_IMPLEMENTATION_SIMDJSON_RESULT_BASE_INL_H
+#include "simdjson/generic/base.h"
+#include "simdjson/generic/implementation_simdjson_result_base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
implementation_simdjson_result_base.h

implementation_simdjson_result_base.h

Path: include/simdjson/generic/implementation_simdjson_result_base.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_IMPLEMENTATION_SIMDJSON_RESULT_BASE_H
+#include "simdjson/generic/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
jsoncharutils.h

jsoncharutils.h

Path: include/simdjson/generic/jsoncharutils.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_JSONCHARUTILS_H
+#include "simdjson/generic/base.h"
+#include "simdjson/internal/jsoncharutils_tables.h"
+#include "simdjson/internal/numberparsing_tables.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
numberparsing.h

numberparsing.h

Path: include/simdjson/generic/numberparsing.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_NUMBERPARSING_H
+#include "simdjson/generic/base.h"
+#include "simdjson/generic/jsoncharutils.h"
+#include "simdjson/internal/numberparsing_tables.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
ondemand/
amalgamated.h

amalgamated.h

Path: include/simdjson/generic/ondemand/amalgamated.h

Categories: Amalgamated File, Amalgamator File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Located in generic directories.
array-inl.h

array-inl.h

Path: include/simdjson/generic/ondemand/array-inl.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_ARRAY_INL_H
+#include "simdjson/jsonpathutil.h"
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/ondemand/array.h"
+#include "simdjson/generic/ondemand/array_iterator-inl.h"
+#include "simdjson/generic/ondemand/json_iterator.h"
+#include "simdjson/generic/ondemand/value.h"
+#include "simdjson/generic/ondemand/value_iterator-inl.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
array.h

array.h

Path: include/simdjson/generic/ondemand/array.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_ARRAY_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/implementation_simdjson_result_base.h"
+#include "simdjson/generic/ondemand/value_iterator.h"
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
array_iterator-inl.h

array_iterator-inl.h

Path: include/simdjson/generic/ondemand/array_iterator-inl.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_ARRAY_ITERATOR_INL_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/ondemand/array_iterator.h"
+#include "simdjson/generic/ondemand/value-inl.h"
+#include "simdjson/generic/ondemand/value_iterator-inl.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
array_iterator.h

array_iterator.h

Path: include/simdjson/generic/ondemand/array_iterator.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_ARRAY_ITERATOR_H
+#include "simdjson/generic/implementation_simdjson_result_base.h"
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/ondemand/value_iterator.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
base.h

base.h

Path: include/simdjson/generic/ondemand/base.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_BASE_H
+#include "simdjson/generic/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
compile_time_accessors.h

compile_time_accessors.h

Path: include/simdjson/generic/ondemand/compile_time_accessors.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_COMPILE_TIME_ACCESSORS_H
+
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
dependencies.h

dependencies.h

Path: include/simdjson/generic/ondemand/dependencies.h

Categories: Free Dependency File, Generic File

Why categorized:

  • No dependency file, so always included unconditionally.
  • Located in generic directories.
deserialize.h

deserialize.h

Path: include/simdjson/generic/ondemand/deserialize.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_ONDEMAND_DESERIALIZE_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/ondemand/array.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
document-inl.h

document-inl.h

Path: include/simdjson/generic/ondemand/document-inl.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_INL_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/ondemand/array_iterator.h"
+#include "simdjson/generic/ondemand/document.h"
+#include "simdjson/generic/ondemand/json_type.h"
+#include "simdjson/generic/ondemand/raw_json_string.h"
+#include "simdjson/generic/ondemand/value.h"
+#include "simdjson/generic/ondemand/value-inl.h"
+#include "simdjson/generic/ondemand/array-inl.h"
+#include "simdjson/generic/ondemand/json_iterator-inl.h"
+#include "simdjson/generic/ondemand/object-inl.h"
+#include "simdjson/generic/ondemand/value_iterator-inl.h"
+#include "simdjson/generic/ondemand/deserialize.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
document.h

document.h

Path: include/simdjson/generic/ondemand/document.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/ondemand/json_iterator.h"
+#include "simdjson/generic/ondemand/deserialize.h"
+#include "simdjson/generic/ondemand/value.h"
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
document_stream-inl.h

document_stream-inl.h

Path: include/simdjson/generic/ondemand/document_stream-inl.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/ondemand/document_stream.h"
+#include "simdjson/generic/ondemand/document-inl.h"
+#include "simdjson/generic/implementation_simdjson_result_base-inl.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
document_stream.h

document_stream.h

Path: include/simdjson/generic/ondemand/document_stream.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/implementation_simdjson_result_base.h"
+#include "simdjson/generic/ondemand/document.h"
+#include "simdjson/generic/ondemand/parser.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
field-inl.h

field-inl.h

Path: include/simdjson/generic/ondemand/field-inl.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_FIELD_INL_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/ondemand/field.h"
+#include "simdjson/generic/ondemand/value-inl.h"
+#include "simdjson/generic/ondemand/value_iterator-inl.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
field.h

field.h

Path: include/simdjson/generic/ondemand/field.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_FIELD_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/implementation_simdjson_result_base.h"
+#include "simdjson/generic/ondemand/raw_json_string.h"
+#include "simdjson/generic/ondemand/value.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
json_iterator-inl.h

json_iterator-inl.h

Path: include/simdjson/generic/ondemand/json_iterator-inl.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_JSON_ITERATOR_INL_H
+#include "simdjson/internal/dom_parser_implementation.h"
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/ondemand/json_iterator.h"
+#include "simdjson/generic/ondemand/parser.h"
+#include "simdjson/generic/ondemand/raw_json_string.h"
+#include "simdjson/generic/ondemand/logger-inl.h"
+#include "simdjson/generic/ondemand/parser-inl.h"
+#include "simdjson/generic/ondemand/token_iterator-inl.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
json_iterator.h

json_iterator.h

Path: include/simdjson/generic/ondemand/json_iterator.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_JSON_ITERATOR_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/implementation_simdjson_result_base.h"
+#include "simdjson/generic/ondemand/token_iterator.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
json_type-inl.h

json_type-inl.h

Path: include/simdjson/generic/ondemand/json_type-inl.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_JSON_TYPE_INL_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/ondemand/json_type.h"
+#include "simdjson/generic/implementation_simdjson_result_base-inl.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
json_type.h

json_type.h

Path: include/simdjson/generic/ondemand/json_type.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_JSON_TYPE_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/implementation_simdjson_result_base.h"
+#include "simdjson/generic/numberparsing.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
logger-inl.h

logger-inl.h

Path: include/simdjson/generic/ondemand/logger-inl.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_LOGGER_INL_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/ondemand/logger.h"
+#include "simdjson/generic/ondemand/json_iterator.h"
+#include "simdjson/generic/ondemand/value_iterator.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
logger.h

logger.h

Path: include/simdjson/generic/ondemand/logger.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_LOGGER_H
+#include "simdjson/generic/ondemand/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
object-inl.h

object-inl.h

Path: include/simdjson/generic/ondemand/object-inl.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_OBJECT_INL_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/ondemand/field.h"
+#include "simdjson/generic/ondemand/object.h"
+#include "simdjson/generic/ondemand/object_iterator.h"
+#include "simdjson/generic/ondemand/raw_json_string.h"
+#include "simdjson/generic/ondemand/json_iterator.h"
+#include "simdjson/generic/ondemand/value-inl.h"
+#include "simdjson/jsonpathutil.h"
+#if SIMDJSON_STATIC_REFLECTION
+#include "simdjson/generic/ondemand/json_string_builder.h"  // for constevalutil::fixed_string
+#include 
+#endif
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
object.h

object.h

Path: include/simdjson/generic/ondemand/object.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_OBJECT_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/implementation_simdjson_result_base.h"
+#include "simdjson/generic/ondemand/value_iterator.h"
+#include 
+#if SIMDJSON_STATIC_REFLECTION && SIMDJSON_SUPPORTS_CONCEPTS
+#include "simdjson/generic/ondemand/json_string_builder.h"  // for constevalutil::fixed_string
+#endif
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
object_iterator-inl.h

object_iterator-inl.h

Path: include/simdjson/generic/ondemand/object_iterator-inl.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_OBJECT_ITERATOR_INL_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/ondemand/object_iterator.h"
+#include "simdjson/generic/ondemand/field-inl.h"
+#include "simdjson/generic/ondemand/value_iterator-inl.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
object_iterator.h

object_iterator.h

Path: include/simdjson/generic/ondemand/object_iterator.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_OBJECT_ITERATOR_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/implementation_simdjson_result_base.h"
+#include "simdjson/generic/ondemand/value_iterator.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
parser-inl.h

parser-inl.h

Path: include/simdjson/generic/ondemand/parser-inl.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_PARSER_INL_H
+#include "simdjson/padded_string.h"
+#include "simdjson/padded_string_view.h"
+#include "simdjson/implementation.h"
+#include "simdjson/internal/dom_parser_implementation.h"
+#include "simdjson/dom/base.h" // for MINIMAL_DOCUMENT_CAPACITY
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/ondemand/document_stream.h"
+#include "simdjson/generic/ondemand/parser.h"
+#include "simdjson/generic/ondemand/raw_json_string.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
parser.h

parser.h

Path: include/simdjson/generic/ondemand/parser.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_PARSER_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/implementation_simdjson_result_base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
raw_json_string-inl.h

raw_json_string-inl.h

Path: include/simdjson/generic/ondemand/raw_json_string-inl.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_RAW_JSON_STRING_INL_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/ondemand/raw_json_string.h"
+#include "simdjson/generic/ondemand/json_iterator-inl.h"
+#include "simdjson/generic/implementation_simdjson_result_base-inl.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
raw_json_string.h

raw_json_string.h

Path: include/simdjson/generic/ondemand/raw_json_string.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_RAW_JSON_STRING_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/implementation_simdjson_result_base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
serialization-inl.h

serialization-inl.h

Path: include/simdjson/generic/ondemand/serialization-inl.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_SERIALIZATION_INL_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/ondemand/array.h"
+#include "simdjson/generic/ondemand/document-inl.h"
+#include "simdjson/generic/ondemand/json_type.h"
+#include "simdjson/generic/ondemand/object.h"
+#include "simdjson/generic/ondemand/serialization.h"
+#include "simdjson/generic/ondemand/value.h"
+#if SIMDJSON_STATIC_REFLECTION
+#include "simdjson/generic/builder/json_builder.h"
+#endif
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
serialization.h

serialization.h

Path: include/simdjson/generic/ondemand/serialization.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_SERIALIZATION_H
+#include "simdjson/generic/ondemand/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
std_deserialize.h

std_deserialize.h

Path: include/simdjson/generic/ondemand/std_deserialize.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_ONDEMAND_DESERIALIZE_H
+#include "simdjson/generic/ondemand/object.h"
+#include "simdjson/generic/ondemand/array.h"
+#include "simdjson/generic/ondemand/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
token_iterator-inl.h

token_iterator-inl.h

Path: include/simdjson/generic/ondemand/token_iterator-inl.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_TOKEN_ITERATOR_INL_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/ondemand/token_iterator.h"
+#include "simdjson/generic/implementation_simdjson_result_base-inl.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
token_iterator.h

token_iterator.h

Path: include/simdjson/generic/ondemand/token_iterator.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_TOKEN_ITERATOR_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/implementation_simdjson_result_base.h"
+#include "simdjson/generic/ondemand/logger.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
value-inl.h

value-inl.h

Path: include/simdjson/generic/ondemand/value-inl.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_VALUE_INL_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/ondemand/array.h"
+#include "simdjson/generic/ondemand/array_iterator.h"
+#include "simdjson/generic/ondemand/json_iterator.h"
+#include "simdjson/generic/ondemand/json_type.h"
+#include "simdjson/generic/ondemand/object.h"
+#include "simdjson/generic/ondemand/raw_json_string.h"
+#include "simdjson/generic/ondemand/value.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
value.h

value.h

Path: include/simdjson/generic/ondemand/value.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_VALUE_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/implementation_simdjson_result_base.h"
+#include "simdjson/generic/ondemand/value_iterator.h"
+#include "simdjson/generic/ondemand/deserialize.h"
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
value_iterator-inl.h

value_iterator-inl.h

Path: include/simdjson/generic/ondemand/value_iterator-inl.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_INL_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/atomparsing.h"
+#include "simdjson/generic/numberparsing.h"
+#include "simdjson/generic/ondemand/json_iterator.h"
+#include "simdjson/generic/ondemand/value_iterator.h"
+#include "simdjson/generic/ondemand/json_type-inl.h"
+#include "simdjson/generic/ondemand/raw_json_string-inl.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
value_iterator.h

value_iterator.h

Path: include/simdjson/generic/ondemand/value_iterator.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_GENERIC_ONDEMAND_VALUE_ITERATOR_H
+#include "simdjson/generic/ondemand/base.h"
+#include "simdjson/generic/implementation_simdjson_result_base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
haswell/
base.h

base.h

Path: include/simdjson/haswell/base.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: haswell.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
begin.h

begin.h

Path: include/simdjson/haswell/begin.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: haswell.
bitmanipulation.h

bitmanipulation.h

Path: include/simdjson/haswell/bitmanipulation.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: haswell.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/haswell/base.h"
+#include "simdjson/haswell/intrinsics.h"
+#include "simdjson/haswell/bitmask.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
bitmask.h

bitmask.h

Path: include/simdjson/haswell/bitmask.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: haswell.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/haswell/base.h"
+#include "simdjson/haswell/intrinsics.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
builder.h

builder.h

Path: include/simdjson/haswell/builder.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: haswell.
end.h

end.h

Path: include/simdjson/haswell/end.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: haswell.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/haswell/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
implementation.h

implementation.h

Path: include/simdjson/haswell/implementation.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: haswell.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/haswell/base.h"
+#include "simdjson/implementation.h"
+#include "simdjson/internal/instruction_set.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
intrinsics.h

intrinsics.h

Path: include/simdjson/haswell/intrinsics.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: haswell.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/haswell/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
numberparsing_defs.h

numberparsing_defs.h

Path: include/simdjson/haswell/numberparsing_defs.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: haswell.

Conditional Blocks (2):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/haswell/base.h"
+#include "simdjson/haswell/intrinsics.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
Block 2
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/internal/numberparsing_tables.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
ondemand.h

ondemand.h

Path: include/simdjson/haswell/ondemand.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: haswell.
simd.h

simd.h

Path: include/simdjson/haswell/simd.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: haswell.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/haswell/base.h"
+#include "simdjson/haswell/intrinsics.h"
+#include "simdjson/haswell/bitmanipulation.h"
+#include "simdjson/internal/simdprune_tables.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
stringparsing_defs.h

stringparsing_defs.h

Path: include/simdjson/haswell/stringparsing_defs.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: haswell.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/haswell/base.h"
+#include "simdjson/haswell/simd.h"
+#include "simdjson/haswell/bitmanipulation.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
haswell.h

haswell.h

Path: include/simdjson/haswell.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: haswell.
icelake/
base.h

base.h

Path: include/simdjson/icelake/base.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: icelake.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
begin.h

begin.h

Path: include/simdjson/icelake/begin.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: icelake.
bitmanipulation.h

bitmanipulation.h

Path: include/simdjson/icelake/bitmanipulation.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: icelake.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/icelake/base.h"
+#include "simdjson/icelake/intrinsics.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
bitmask.h

bitmask.h

Path: include/simdjson/icelake/bitmask.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: icelake.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/icelake/base.h"
+#include "simdjson/icelake/intrinsics.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
builder.h

builder.h

Path: include/simdjson/icelake/builder.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: icelake.
end.h

end.h

Path: include/simdjson/icelake/end.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: icelake.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/icelake/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
implementation.h

implementation.h

Path: include/simdjson/icelake/implementation.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: icelake.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/icelake/base.h"
+#include "simdjson/implementation.h"
+#include "simdjson/internal/instruction_set.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
intrinsics.h

intrinsics.h

Path: include/simdjson/icelake/intrinsics.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: icelake.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/icelake/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
numberparsing_defs.h

numberparsing_defs.h

Path: include/simdjson/icelake/numberparsing_defs.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: icelake.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/icelake/base.h"
+#include "simdjson/icelake/intrinsics.h"
+#include "simdjson/internal/numberparsing_tables.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
ondemand.h

ondemand.h

Path: include/simdjson/icelake/ondemand.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: icelake.
simd.h

simd.h

Path: include/simdjson/icelake/simd.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: icelake.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/icelake/base.h"
+#include "simdjson/icelake/intrinsics.h"
+#include "simdjson/icelake/bitmanipulation.h"
+#include "simdjson/internal/simdprune_tables.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
stringparsing_defs.h

stringparsing_defs.h

Path: include/simdjson/icelake/stringparsing_defs.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: icelake.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/icelake/base.h"
+#include "simdjson/icelake/simd.h"
+#include "simdjson/icelake/bitmanipulation.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
icelake.h

icelake.h

Path: include/simdjson/icelake.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: icelake.
implementation.h

implementation.h

Path: include/simdjson/implementation.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
implementation_detection.h

implementation_detection.h

Path: include/simdjson/implementation_detection.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
internal/
atomic_ptr.h

atomic_ptr.h

Path: include/simdjson/internal/atomic_ptr.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
dom_parser_implementation.h

dom_parser_implementation.h

Path: include/simdjson/internal/dom_parser_implementation.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
instruction_set.h

instruction_set.h

Path: include/simdjson/internal/instruction_set.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
jsoncharutils_tables.h

jsoncharutils_tables.h

Path: include/simdjson/internal/jsoncharutils_tables.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
jsonformatutils.h

jsonformatutils.h

Path: include/simdjson/internal/jsonformatutils.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
numberparsing_tables.h

numberparsing_tables.h

Path: include/simdjson/internal/numberparsing_tables.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
simdprune_tables.h

simdprune_tables.h

Path: include/simdjson/internal/simdprune_tables.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
tape_ref-inl.h

tape_ref-inl.h

Path: include/simdjson/internal/tape_ref-inl.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
tape_ref.h

tape_ref.h

Path: include/simdjson/internal/tape_ref.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
tape_type.h

tape_type.h

Path: include/simdjson/internal/tape_type.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
jsonioutil.h

jsonioutil.h

Path: include/simdjson/jsonioutil.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
jsonpathutil.h

jsonpathutil.h

Path: include/simdjson/jsonpathutil.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
lasx/
base.h

base.h

Path: include/simdjson/lasx/base.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: lasx.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
begin.h

begin.h

Path: include/simdjson/lasx/begin.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: lasx.
bitmanipulation.h

bitmanipulation.h

Path: include/simdjson/lasx/bitmanipulation.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: lasx.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/lasx/base.h"
+#include "simdjson/lasx/intrinsics.h"
+#include "simdjson/lasx/bitmask.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
bitmask.h

bitmask.h

Path: include/simdjson/lasx/bitmask.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: lasx.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/lasx/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
builder.h

builder.h

Path: include/simdjson/lasx/builder.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: lasx.
end.h

end.h

Path: include/simdjson/lasx/end.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: lasx.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/lasx/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
implementation.h

implementation.h

Path: include/simdjson/lasx/implementation.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: lasx.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/base.h"
+#include "simdjson/implementation.h"
+#include "simdjson/internal/instruction_set.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
intrinsics.h

intrinsics.h

Path: include/simdjson/lasx/intrinsics.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: lasx.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/lasx/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
numberparsing_defs.h

numberparsing_defs.h

Path: include/simdjson/lasx/numberparsing_defs.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: lasx.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/lasx/base.h"
+#include "simdjson/lasx/intrinsics.h"
+#include "simdjson/internal/numberparsing_tables.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
ondemand.h

ondemand.h

Path: include/simdjson/lasx/ondemand.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: lasx.
simd.h

simd.h

Path: include/simdjson/lasx/simd.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: lasx.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/lasx/base.h"
+#include "simdjson/lasx/bitmanipulation.h"
+#include "simdjson/internal/simdprune_tables.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
stringparsing_defs.h

stringparsing_defs.h

Path: include/simdjson/lasx/stringparsing_defs.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: lasx.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/lasx/base.h"
+#include "simdjson/lasx/simd.h"
+#include "simdjson/lasx/bitmanipulation.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
lasx.h

lasx.h

Path: include/simdjson/lasx.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: lasx.
lsx/
base.h

base.h

Path: include/simdjson/lsx/base.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: lsx.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
begin.h

begin.h

Path: include/simdjson/lsx/begin.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: lsx.
bitmanipulation.h

bitmanipulation.h

Path: include/simdjson/lsx/bitmanipulation.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: lsx.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/lsx/base.h"
+#include "simdjson/lsx/intrinsics.h"
+#include "simdjson/lsx/bitmask.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
bitmask.h

bitmask.h

Path: include/simdjson/lsx/bitmask.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: lsx.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/lsx/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
builder.h

builder.h

Path: include/simdjson/lsx/builder.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: lsx.
end.h

end.h

Path: include/simdjson/lsx/end.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: lsx.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/lsx/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
implementation.h

implementation.h

Path: include/simdjson/lsx/implementation.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: lsx.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/base.h"
+#include "simdjson/implementation.h"
+#include "simdjson/internal/instruction_set.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
intrinsics.h

intrinsics.h

Path: include/simdjson/lsx/intrinsics.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: lsx.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/lsx/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
numberparsing_defs.h

numberparsing_defs.h

Path: include/simdjson/lsx/numberparsing_defs.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: lsx.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/lsx/base.h"
+#include "simdjson/lsx/intrinsics.h"
+#include "simdjson/internal/numberparsing_tables.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
ondemand.h

ondemand.h

Path: include/simdjson/lsx/ondemand.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: lsx.
simd.h

simd.h

Path: include/simdjson/lsx/simd.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: lsx.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/lsx/base.h"
+#include "simdjson/lsx/bitmanipulation.h"
+#include "simdjson/internal/simdprune_tables.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
stringparsing_defs.h

stringparsing_defs.h

Path: include/simdjson/lsx/stringparsing_defs.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: lsx.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/lsx/base.h"
+#include "simdjson/lsx/simd.h"
+#include "simdjson/lsx/bitmanipulation.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
lsx.h

lsx.h

Path: include/simdjson/lsx.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: lsx.
minify.h

minify.h

Path: include/simdjson/minify.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
ondemand.h

ondemand.h

Path: include/simdjson/ondemand.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
padded_string-inl.h

padded_string-inl.h

Path: include/simdjson/padded_string-inl.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
padded_string.h

padded_string.h

Path: include/simdjson/padded_string.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
padded_string_view-inl.h

padded_string_view-inl.h

Path: include/simdjson/padded_string_view-inl.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
padded_string_view.h

padded_string_view.h

Path: include/simdjson/padded_string_view.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
portability.h

portability.h

Path: include/simdjson/portability.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
ppc64/
base.h

base.h

Path: include/simdjson/ppc64/base.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: ppc64.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
begin.h

begin.h

Path: include/simdjson/ppc64/begin.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: ppc64.
bitmanipulation.h

bitmanipulation.h

Path: include/simdjson/ppc64/bitmanipulation.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: ppc64.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/ppc64/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
bitmask.h

bitmask.h

Path: include/simdjson/ppc64/bitmask.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: ppc64.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/ppc64/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
builder.h

builder.h

Path: include/simdjson/ppc64/builder.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: ppc64.
end.h

end.h

Path: include/simdjson/ppc64/end.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: ppc64.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/ppc64/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
implementation.h

implementation.h

Path: include/simdjson/ppc64/implementation.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: ppc64.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/ppc64/base.h"
+#include "simdjson/implementation.h"
+#include "simdjson/internal/instruction_set.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
intrinsics.h

intrinsics.h

Path: include/simdjson/ppc64/intrinsics.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: ppc64.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/ppc64/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
numberparsing_defs.h

numberparsing_defs.h

Path: include/simdjson/ppc64/numberparsing_defs.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: ppc64.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/ppc64/base.h"
+#include "simdjson/ppc64/intrinsics.h"
+#include "simdjson/internal/numberparsing_tables.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
ondemand.h

ondemand.h

Path: include/simdjson/ppc64/ondemand.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: ppc64.
simd.h

simd.h

Path: include/simdjson/ppc64/simd.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: ppc64.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/ppc64/base.h"
+#include "simdjson/ppc64/bitmanipulation.h"
+#include "simdjson/internal/simdprune_tables.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
stringparsing_defs.h

stringparsing_defs.h

Path: include/simdjson/ppc64/stringparsing_defs.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: ppc64.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/ppc64/base.h"
+#include "simdjson/ppc64/bitmanipulation.h"
+#include "simdjson/ppc64/simd.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
ppc64.h

ppc64.h

Path: include/simdjson/ppc64.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: ppc64.
simdjson.h

simdjson.h

Path: include/simdjson/simdjson.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
simdjson_version.h

simdjson_version.h

Path: include/simdjson/simdjson_version.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
westmere/
base.h

base.h

Path: include/simdjson/westmere/base.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: westmere.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
begin.h

begin.h

Path: include/simdjson/westmere/begin.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: westmere.
bitmanipulation.h

bitmanipulation.h

Path: include/simdjson/westmere/bitmanipulation.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: westmere.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/westmere/base.h"
+#include "simdjson/westmere/intrinsics.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
bitmask.h

bitmask.h

Path: include/simdjson/westmere/bitmask.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: westmere.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/westmere/base.h"
+#include "simdjson/westmere/intrinsics.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
builder.h

builder.h

Path: include/simdjson/westmere/builder.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: westmere.
end.h

end.h

Path: include/simdjson/westmere/end.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: westmere.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/westmere/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
implementation.h

implementation.h

Path: include/simdjson/westmere/implementation.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: westmere.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/westmere/base.h"
+#include "simdjson/implementation.h"
+#include "simdjson/internal/instruction_set.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
intrinsics.h

intrinsics.h

Path: include/simdjson/westmere/intrinsics.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: westmere.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/westmere/base.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
numberparsing_defs.h

numberparsing_defs.h

Path: include/simdjson/westmere/numberparsing_defs.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: westmere.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/internal/numberparsing_tables.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
ondemand.h

ondemand.h

Path: include/simdjson/westmere/ondemand.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: westmere.
simd.h

simd.h

Path: include/simdjson/westmere/simd.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: westmere.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include "simdjson/westmere/base.h"
+#include "simdjson/westmere/bitmanipulation.h"
+#include "simdjson/internal/simdprune_tables.h"
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
stringparsing_defs.h

stringparsing_defs.h

Path: include/simdjson/westmere/stringparsing_defs.h

Categories: Amalgamated File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Tied to implementation: westmere.
westmere.h

westmere.h

Path: include/simdjson/westmere.h

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: westmere.
simdjson.h

simdjson.h

Path: include/simdjson.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
src/
arm64.cpp

arm64.cpp

Path: src/arm64.cpp

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: arm64.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
base.h

base.h

Path: src/base.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
fallback.cpp

fallback.cpp

Path: src/fallback.cpp

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: fallback.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
from_chars.cpp

from_chars.cpp

Path: src/from_chars.cpp

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
generic/
amalgamated.h

amalgamated.h

Path: src/generic/amalgamated.h

Categories: Amalgamated File, Amalgamator File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Located in generic directories.
base.h

base.h

Path: src/generic/base.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_SRC_GENERIC_BASE_H
+#include 
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
dependencies.h

dependencies.h

Path: src/generic/dependencies.h

Categories: Free Dependency File, Generic File

Why categorized:

  • No dependency file, so always included unconditionally.
  • Located in generic directories.
dom_parser_implementation.h

dom_parser_implementation.h

Path: src/generic/dom_parser_implementation.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_SRC_GENERIC_DOM_PARSER_IMPLEMENTATION_H
+#include 
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
json_character_block.h

json_character_block.h

Path: src/generic/json_character_block.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_SRC_GENERIC_JSON_CHARACTER_BLOCK_H
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
stage1/
amalgamated.h

amalgamated.h

Path: src/generic/stage1/amalgamated.h

Categories: Amalgamated File, Amalgamator File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Located in generic directories.
base.h

base.h

Path: src/generic/stage1/base.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_SRC_GENERIC_STAGE1_BASE_H
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
buf_block_reader.h

buf_block_reader.h

Path: src/generic/stage1/buf_block_reader.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_SRC_GENERIC_STAGE1_BUF_BLOCK_READER_H
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
dependencies.h

dependencies.h

Path: src/generic/stage1/dependencies.h

Categories: Free Dependency File, Generic File

Why categorized:

  • No dependency file, so always included unconditionally.
  • Located in generic directories.
find_next_document_index.h

find_next_document_index.h

Path: src/generic/stage1/find_next_document_index.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_SRC_GENERIC_STAGE1_FIND_NEXT_DOCUMENT_INDEX_H
+#include 
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
json_escape_scanner.h

json_escape_scanner.h

Path: src/generic/stage1/json_escape_scanner.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_SRC_GENERIC_STAGE1_JSON_ESCAPE_SCANNER_H
+#include 
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
json_minifier.h

json_minifier.h

Path: src/generic/stage1/json_minifier.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_SRC_GENERIC_STAGE1_JSON_MINIFIER_H
+#include 
+#include 
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
json_scanner.h

json_scanner.h

Path: src/generic/stage1/json_scanner.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_SRC_GENERIC_STAGE1_JSON_SCANNER_H
+#include 
+#include 
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
json_string_scanner.h

json_string_scanner.h

Path: src/generic/stage1/json_string_scanner.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_SRC_GENERIC_STAGE1_JSON_STRING_SCANNER_H
+#include 
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
json_structural_indexer.h

json_structural_indexer.h

Path: src/generic/stage1/json_structural_indexer.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_SRC_GENERIC_STAGE1_JSON_STRUCTURAL_INDEXER_H
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
utf8_lookup4_algorithm.h

utf8_lookup4_algorithm.h

Path: src/generic/stage1/utf8_lookup4_algorithm.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_SRC_GENERIC_STAGE1_UTF8_LOOKUP4_ALGORITHM_H
+#include 
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
utf8_validator.h

utf8_validator.h

Path: src/generic/stage1/utf8_validator.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_SRC_GENERIC_STAGE1_UTF8_VALIDATOR_H
+#include 
+#include 
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
stage2/
amalgamated.h

amalgamated.h

Path: src/generic/stage2/amalgamated.h

Categories: Amalgamated File, Amalgamator File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Located in generic directories.
base.h

base.h

Path: src/generic/stage2/base.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_SRC_GENERIC_STAGE2_BASE_H
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
dependencies.h

dependencies.h

Path: src/generic/stage2/dependencies.h

Categories: Free Dependency File, Generic File

Why categorized:

  • No dependency file, so always included unconditionally.
  • Located in generic directories.
json_iterator.h

json_iterator.h

Path: src/generic/stage2/json_iterator.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_SRC_GENERIC_STAGE2_JSON_ITERATOR_H
+#include 
+#include 
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
logger.h

logger.h

Path: src/generic/stage2/logger.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_SRC_GENERIC_STAGE2_LOGGER_H
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
stringparsing.h

stringparsing.h

Path: src/generic/stage2/stringparsing.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_SRC_GENERIC_STAGE2_STRINGPARSING_H
+#include 
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
structural_iterator.h

structural_iterator.h

Path: src/generic/stage2/structural_iterator.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_SRC_GENERIC_STAGE2_STRUCTURAL_ITERATOR_H
+#include 
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
tape_builder.h

tape_builder.h

Path: src/generic/stage2/tape_builder.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_SRC_GENERIC_STAGE2_TAPE_BUILDER_H
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
tape_writer.h

tape_writer.h

Path: src/generic/stage2/tape_writer.h

Categories: Amalgamated File, Generic File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Located in generic directories.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#define SIMDJSON_SRC_GENERIC_STAGE2_TAPE_WRITER_H
+#include 
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
haswell.cpp

haswell.cpp

Path: src/haswell.cpp

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: haswell.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
icelake.cpp

icelake.cpp

Path: src/icelake.cpp

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: icelake.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
implementation.cpp

implementation.cpp

Path: src/implementation.cpp

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
internal/
error_tables.cpp

error_tables.cpp

Path: src/internal/error_tables.cpp

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
isadetection.h

isadetection.h

Path: src/internal/isadetection.h

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
jsoncharutils_tables.cpp

jsoncharutils_tables.cpp

Path: src/internal/jsoncharutils_tables.cpp

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
numberparsing_tables.cpp

numberparsing_tables.cpp

Path: src/internal/numberparsing_tables.cpp

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
simdprune_tables.cpp

simdprune_tables.cpp

Path: src/internal/simdprune_tables.cpp

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
lasx.cpp

lasx.cpp

Path: src/lasx.cpp

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: lasx.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
lsx.cpp

lsx.cpp

Path: src/lsx.cpp

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: lsx.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
ppc64.cpp

ppc64.cpp

Path: src/ppc64.cpp

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: ppc64.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
simdjson.cpp

simdjson.cpp

Path: src/simdjson.cpp

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
to_chars.cpp

to_chars.cpp

Path: src/to_chars.cpp

Categories: Free Dependency File

Why categorized:

  • No dependency file, so always included unconditionally.
westmere.cpp

westmere.cpp

Path: src/westmere.cpp

Categories: Amalgamated File, Amalgamator File, Implementation-Specific File

Why categorized:

  • Has a dependency file, so it is conditionally included.
  • Meets criteria for amalgamator (e.g., in src or specific directories/files).
  • Tied to implementation: westmere.

Conditional Blocks (1):

Block 1
#ifndef SIMDJSON_CONDITIONAL_INCLUDE
+#include 
+#endif // SIMDJSON_CONDITIONAL_INCLUDE
+
+ + diff --git a/singleheader/singleheader.zip b/singleheader/singleheader.zip index 97a79aebe..13fc65329 100644 Binary files a/singleheader/singleheader.zip and b/singleheader/singleheader.zip differ