You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: HACKING.md
+18-5Lines changed: 18 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ simdjson's source structure, from the top level, looks like this:
20
20
implementations).
21
21
* simdjson.cpp: A "master source" that includes all implementation files from src/. This is
22
22
equivalent to the distributed simdjson.cpp.
23
-
* arm64/|fallback/|haswell/|westmere/: Architecture-specific implementations. All functions are
23
+
* arm64/|fallback/|haswell/|westmere/: Architecture-specific implementations. All functions are
24
24
Each architecture defines its own namespace, e.g. simdjson::haswell.
25
25
* generic/: Generic implementations of the simdjson parser. These files may be included and
26
26
compiled multiple times, from whichever architectures use them. They assume they are already
@@ -37,7 +37,7 @@ Other important files and directories:
37
37
***.drone.yml:** Definitions for Drone CI.
38
38
***.appveyor.yml:** Definitions for Appveyor CI (Windows).
39
39
***.circleci:** Definitions for Circle CI.
40
-
***amalgamation.sh:** Generates singleheader/simdjson.h and singleheader/simdjson.cpp for release.
40
+
***amalgamate.sh:** Generates singleheader/simdjson.h and singleheader/simdjson.cpp for release.
41
41
***benchmark:** This is where we do benchmarking. Benchmarking is core to every change we make; the
42
42
cardinal rule is don't regress performance without knowing exactly why, and what you're trading
43
43
for it. If you're not sure what else to do to check your performance, this is always a good start:
@@ -56,7 +56,7 @@ Other important files and directories:
56
56
***tools:** Source for executables that can be distributed with simdjson
57
57
58
58
> **Don't modify the files in singleheader/ directly; these are automatically generated.**
59
-
>
59
+
>
60
60
> While we distribute those files on release, we *maintain* the files under include/ and src/.
61
61
62
62
While simdjson distributes just two files from the singleheader/ directory, we *maintain* the code in
@@ -73,7 +73,7 @@ you can regenerate them by running this at the top level:
73
73
make amalgamate
74
74
```
75
75
76
-
The amalgamator is at `amalgamation.sh` at the top level. It generates singleheader/simdjson.h by
76
+
The amalgamator is at `amalgamate.sh` at the top level. It generates singleheader/simdjson.h by
77
77
reading through include/simdjson.h, copy/pasting each header file into the amalgamated file at the
78
78
point it gets included (but only once per header). singleheader/simdjson.cpp is generated from
79
79
src/simdjson.cpp the same way, except files under generic/ may be included and copy/pasted multiple
@@ -157,6 +157,19 @@ make
157
157
make test
158
158
```
159
159
160
+
linux way:
161
+
162
+
```
163
+
mkdir build # if necessary
164
+
cd build
165
+
cmake .. -DCMAKE_CXX_COMPILER=g++ # or
166
+
cmake .. -DCMAKE_CXX_COMPILER=clang++
167
+
make -j
168
+
```
169
+
170
+
171
+
172
+
160
173
### Usage (CMake on 64-bit Windows using Visual Studio)
161
174
162
175
We assume you have a common 64-bit Windows PC with at least Visual Studio 2017 and an x64 processor with AVX2 support (2013 Intel Haswell or later) or SSE 4.2 + CLMUL (2010 Westmere or later).
@@ -189,7 +202,7 @@ On Windows (64-bit):
189
202
will build and install `simdjson` as a shared library.
190
203
191
204
```
192
-
.\vcpkg.exe install simdjson:x64-windows-static
205
+
.\vcpkg.exe install simdjson:x64-windows-static
193
206
```
194
207
195
208
will build and install `simdjson` as a static library.
0 commit comments