Skip to content

Commit 03746b9

Browse files
committed
Move document/element/etc. under dom
1 parent de001da commit 03746b9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+821
-784
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ The simdjson library is easily consumable with a single .h and .cpp file.
4848
```c++
4949
#include "simdjson.h"
5050
int main(void) {
51-
simdjson::document::parser parser;
52-
simdjson::document::element tweets = parser.load("twitter.json");
51+
simdjson::dom::parser parser;
52+
simdjson::dom::element tweets = parser.load("twitter.json");
5353
std::cout << tweets["search_metadata"]["count"] << " results." << std::endl;
5454
}
5555
```

amalgamation.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ int main(int argc, char *argv[]) {
127127
std::cerr << "Please specify at least one file name. " << std::endl;
128128
}
129129
const char * filename = argv[1];
130-
simdjson::document::parser parser;
130+
simdjson::dom::parser parser;
131131
auto [doc, error] = parser.load(filename); // do the parsing
132132
if (error) {
133133
std::cout << "parse failed" << std::endl;

benchmark/bench_dom_api.cpp

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ const padded_string EMPTY_ARRAY("[]", 2);
1616

1717
static void twitter_count(State& state) {
1818
// Prints the number of results in twitter.json
19-
document::parser parser;
20-
document::element doc = parser.load(JSON_TEST_PATH);
19+
dom::parser parser;
20+
dom::element doc = parser.load(JSON_TEST_PATH);
2121
for (auto _ : state) {
2222
uint64_t result_count = doc["search_metadata"]["count"];
2323
if (result_count != 100) { return; }
@@ -44,12 +44,12 @@ BENCHMARK(iterator_twitter_count);
4444

4545
static void twitter_default_profile(State& state) {
4646
// Count unique users with a default profile.
47-
document::parser parser;
48-
document::element doc = parser.load(JSON_TEST_PATH);
47+
dom::parser parser;
48+
dom::element doc = parser.load(JSON_TEST_PATH);
4949
for (auto _ : state) {
5050
set<string_view> default_users;
51-
for (document::object tweet : doc["statuses"].as_array()) {
52-
document::object user = tweet["user"];
51+
for (dom::object tweet : doc["statuses"].as_array()) {
52+
dom::object user = tweet["user"];
5353
if (user["default_profile"]) {
5454
default_users.insert(user["screen_name"]);
5555
}
@@ -61,14 +61,14 @@ BENCHMARK(twitter_default_profile);
6161

6262
static void twitter_image_sizes(State& state) {
6363
// Count unique image sizes
64-
document::parser parser;
65-
document::element doc = parser.load(JSON_TEST_PATH);
64+
dom::parser parser;
65+
dom::element doc = parser.load(JSON_TEST_PATH);
6666
for (auto _ : state) {
6767
set<tuple<uint64_t, uint64_t>> image_sizes;
68-
for (document::object tweet : doc["statuses"].as_array()) {
68+
for (dom::object tweet : doc["statuses"].as_array()) {
6969
auto [media, not_found] = tweet["entities"]["media"];
7070
if (!not_found) {
71-
for (document::object image : media.as_array()) {
71+
for (dom::object image : media.as_array()) {
7272
for (auto [key, size] : image["sizes"].as_object()) {
7373
image_sizes.insert({ size["w"], size["h"] });
7474
}
@@ -84,8 +84,8 @@ BENCHMARK(twitter_image_sizes);
8484

8585
static void error_code_twitter_count(State& state) noexcept {
8686
// Prints the number of results in twitter.json
87-
document::parser parser;
88-
document::element doc = parser.load(JSON_TEST_PATH);
87+
dom::parser parser;
88+
dom::element doc = parser.load(JSON_TEST_PATH);
8989
for (auto _ : state) {
9090
auto [value, error] = doc["search_metadata"]["count"].as_uint64_t();
9191
if (error) { return; }
@@ -96,14 +96,14 @@ BENCHMARK(error_code_twitter_count);
9696

9797
static void error_code_twitter_default_profile(State& state) noexcept {
9898
// Count unique users with a default profile.
99-
document::parser parser;
100-
document::element doc = parser.load(JSON_TEST_PATH);
99+
dom::parser parser;
100+
dom::element doc = parser.load(JSON_TEST_PATH);
101101
for (auto _ : state) {
102102
set<string_view> default_users;
103103

104104
auto [tweets, error] = doc["statuses"].as_array();
105105
if (error) { return; }
106-
for (document::element tweet : tweets) {
106+
for (dom::element tweet : tweets) {
107107
auto [user, error2] = tweet["user"].as_object();
108108
if (error2) { return; }
109109
auto [default_profile, error3] = user["default_profile"].as_bool();
@@ -128,12 +128,12 @@ static void iterator_twitter_default_profile(State& state) {
128128
set<string_view> default_users;
129129
ParsedJson::Iterator iter(pj);
130130

131-
// for (document::object tweet : doc["statuses"].as_array()) {
131+
// for (dom::object tweet : doc["statuses"].as_array()) {
132132
if (!(iter.move_to_key("statuses") && iter.is_array())) { return; }
133133
if (iter.down()) { // first status
134134
do {
135135

136-
// document::object user = tweet["user"];
136+
// dom::object user = tweet["user"];
137137
if (!(iter.move_to_key("user") && iter.is_object())) { return; }
138138

139139
// if (user["default_profile"]) {
@@ -160,16 +160,16 @@ BENCHMARK(iterator_twitter_default_profile);
160160

161161
static void error_code_twitter_image_sizes(State& state) noexcept {
162162
// Count unique image sizes
163-
document::parser parser;
164-
document::element doc = parser.load(JSON_TEST_PATH);
163+
dom::parser parser;
164+
dom::element doc = parser.load(JSON_TEST_PATH);
165165
for (auto _ : state) {
166166
set<tuple<uint64_t, uint64_t>> image_sizes;
167167
auto [statuses, error] = doc["statuses"].as_array();
168168
if (error) { return; }
169-
for (document::element tweet : statuses) {
169+
for (dom::element tweet : statuses) {
170170
auto [images, not_found] = tweet["entities"]["media"].as_array();
171171
if (!not_found) {
172-
for (document::element image : images) {
172+
for (dom::element image : images) {
173173
auto [sizes, error2] = image["sizes"].as_object();
174174
if (error2) { return; }
175175
for (auto [key, size] : sizes) {
@@ -194,7 +194,7 @@ static void iterator_twitter_image_sizes(State& state) {
194194
set<tuple<uint64_t, uint64_t>> image_sizes;
195195
ParsedJson::Iterator iter(pj);
196196

197-
// for (document::object tweet : doc["statuses"].as_array()) {
197+
// for (dom::object tweet : doc["statuses"].as_array()) {
198198
if (!(iter.move_to_key("statuses") && iter.is_array())) { return; }
199199
if (iter.down()) { // first status
200200
do {
@@ -206,7 +206,7 @@ static void iterator_twitter_image_sizes(State& state) {
206206
if (iter.move_to_key("media")) {
207207
if (!iter.is_array()) { return; }
208208

209-
// for (document::object image : media.as_array()) {
209+
// for (dom::object image : media.as_array()) {
210210
if (iter.down()) { // first media
211211
do {
212212

@@ -247,7 +247,7 @@ BENCHMARK(iterator_twitter_image_sizes);
247247
static void print_json(State& state) noexcept {
248248
// Prints the number of results in twitter.json
249249
padded_string json = get_corpus(JSON_TEST_PATH);
250-
document::parser parser;
250+
dom::parser parser;
251251
if (!parser.allocate_capacity(json.length())) { cerr << "allocation failed" << endl; return; }
252252
if (int error = json_parse(json, parser); error != SUCCESS) { cerr << error_message(error) << endl; return; }
253253
for (auto _ : state) {

benchmark/bench_parse_call.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ using namespace std;
77
const padded_string EMPTY_ARRAY("[]", 2);
88

99
static void json_parse(State& state) {
10-
document::parser parser;
10+
dom::parser parser;
1111
if (parser.set_capacity(EMPTY_ARRAY.length())) { return; }
1212
for (auto _ : state) {
1313
auto error = simdjson::json_parse(EMPTY_ARRAY, parser);
@@ -16,7 +16,7 @@ static void json_parse(State& state) {
1616
}
1717
BENCHMARK(json_parse);
1818
static void parser_parse_error_code(State& state) {
19-
document::parser parser;
19+
dom::parser parser;
2020
if (parser.set_capacity(EMPTY_ARRAY.length())) { return; }
2121
for (auto _ : state) {
2222
auto [doc, error] = parser.parse(EMPTY_ARRAY);
@@ -25,11 +25,11 @@ static void parser_parse_error_code(State& state) {
2525
}
2626
BENCHMARK(parser_parse_error_code);
2727
static void parser_parse_exception(State& state) {
28-
document::parser parser;
28+
dom::parser parser;
2929
if (parser.set_capacity(EMPTY_ARRAY.length())) { return; }
3030
for (auto _ : state) {
3131
try {
32-
UNUSED document::element doc = parser.parse(EMPTY_ARRAY);
32+
UNUSED dom::element doc = parser.parse(EMPTY_ARRAY);
3333
} catch(simdjson_error &j) {
3434
return;
3535
}
@@ -39,14 +39,14 @@ BENCHMARK(parser_parse_exception);
3939

4040
static void build_parsed_json(State& state) {
4141
for (auto _ : state) {
42-
document::parser parser = simdjson::build_parsed_json(EMPTY_ARRAY);
42+
dom::parser parser = simdjson::build_parsed_json(EMPTY_ARRAY);
4343
if (!parser.valid) { return; }
4444
}
4545
}
4646
BENCHMARK(build_parsed_json);
4747
static void document_parse_error_code(State& state) {
4848
for (auto _ : state) {
49-
document::parser parser;
49+
dom::parser parser;
5050
auto [doc, error] = parser.parse(EMPTY_ARRAY);
5151
if (error) { return; }
5252
}
@@ -55,8 +55,8 @@ BENCHMARK(document_parse_error_code);
5555
static void document_parse_exception(State& state) {
5656
for (auto _ : state) {
5757
try {
58-
document::parser parser;
59-
UNUSED document::element doc = parser.parse(EMPTY_ARRAY);
58+
dom::parser parser;
59+
UNUSED dom::element doc = parser.parse(EMPTY_ARRAY);
6060
} catch(simdjson_error &j) {
6161
return;
6262
}

benchmark/benchfeatures.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ struct option_struct {
125125
if (arch == architecture::UNSUPPORTED) {
126126
arch = find_best_supported_architecture();
127127
}
128-
document::parser::use_implementation(arch);
128+
dom::parser::use_implementation(arch);
129129
}
130130

131131
template<typename F>

benchmark/benchmarker.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ struct json_stats {
7777
size_t blocks_with_16_structurals = 0;
7878
size_t blocks_with_16_structurals_flipped = 0;
7979

80-
json_stats(const padded_string& json, const document::parser& parser) {
80+
json_stats(const padded_string& json, const dom::parser& parser) {
8181
bytes = json.size();
8282
blocks = bytes / BYTES_PER_BLOCK;
8383
if (bytes % BYTES_PER_BLOCK > 0) { blocks++; } // Account for remainder block
@@ -291,9 +291,9 @@ struct benchmarker {
291291
}
292292

293293
really_inline void run_iteration(bool stage1_only, bool hotbuffers=false) {
294-
// Allocate document::parser
294+
// Allocate dom::parser
295295
collector.start();
296-
document::parser parser;
296+
dom::parser parser;
297297
bool alloc_ok = parser.allocate_capacity(json.size());
298298
event_count allocate_count = collector.end();
299299
allocate_stage << allocate_count;

benchmark/distinctuseridcompetition.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ void print_vec(const std::vector<int64_t> &v) {
3838
// clang-format off
3939

4040
// simdjson_recurse below come be implemented like so but it is slow:
41-
/*void simdjson_recurse(std::vector<int64_t> & v, simdjson::document::element element) {
41+
/*void simdjson_recurse(std::vector<int64_t> & v, simdjson::dom::element element) {
4242
if (element.is_array()) {
4343
auto [array, array_error] = element.as_array();
4444
for (auto child : array) {
@@ -63,7 +63,7 @@ void print_vec(const std::vector<int64_t> &v) {
6363
// clang-format on
6464

6565

66-
void simdjson_recurse(std::vector<int64_t> & v, simdjson::document::element element) {
66+
void simdjson_recurse(std::vector<int64_t> & v, simdjson::dom::element element) {
6767
if (element.is_array()) {
6868
auto array = element.as_array();
6969
for (auto child : array) {
@@ -100,7 +100,7 @@ void simdjson_recurse(std::vector<int64_t> & v, simdjson::document::element elem
100100
}
101101

102102
__attribute__((noinline)) std::vector<int64_t>
103-
simdjson_just_dom(simdjson::document::element doc) {
103+
simdjson_just_dom(simdjson::dom::element doc) {
104104
std::vector<int64_t> answer;
105105
simdjson_recurse(answer, doc);
106106
remove_duplicates(answer);
@@ -110,16 +110,16 @@ simdjson_just_dom(simdjson::document::element doc) {
110110
__attribute__((noinline)) std::vector<int64_t>
111111
simdjson_compute_stats(const simdjson::padded_string &p) {
112112
std::vector<int64_t> answer;
113-
simdjson::document::parser parser;
114-
simdjson::document::element doc = parser.parse(p);
113+
simdjson::dom::parser parser;
114+
simdjson::dom::element doc = parser.parse(p);
115115
simdjson_recurse(answer, doc);
116116
remove_duplicates(answer);
117117
return answer;
118118
}
119119

120120
__attribute__((noinline)) simdjson::error_code
121121
simdjson_just_parse(const simdjson::padded_string &p) {
122-
simdjson::document::parser parser;
122+
simdjson::dom::parser parser;
123123
return parser.parse(p).error();
124124
}
125125

@@ -372,8 +372,8 @@ int main(int argc, char *argv[]) {
372372
volume, !just_data);
373373
BEST_TIME("sasjon (just parse) ", sasjon_just_parse(p), false, , repeat,
374374
volume, !just_data);
375-
simdjson::document::parser parser;
376-
simdjson::document::element doc = parser.parse(p);
375+
simdjson::dom::parser parser;
376+
simdjson::dom::element doc = parser.parse(p);
377377
BEST_TIME("simdjson (just dom) ", simdjson_just_dom(doc).size(), size,
378378
, repeat, volume, !just_data);
379379
char *buffer = (char *)malloc(p.size() + 1);

benchmark/minifiercompetition.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ int main(int argc, char *argv[]) {
151151
.is_valid(),
152152
true, memcpy(buffer, mini_buffer, p.size()), repeat, volume, !just_data);
153153

154-
simdjson::document::parser parser;
154+
simdjson::dom::parser parser;
155155
bool automated_reallocation = false;
156156
BEST_TIME("simdjson orig",
157157
parser.parse((const uint8_t *)buffer, p.size(),

benchmark/parse_stream.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ int main (int argc, char *argv[]){
3535
std::cout << "Gigabytes/second\t" << "Nb of documents parsed" << std::endl;
3636
for (auto i = 0; i < 3; i++) {
3737
//Actual test
38-
simdjson::document::parser parser;
38+
simdjson::dom::parser parser;
3939
simdjson::error_code alloc_error = parser.set_capacity(p.size());
4040
if (alloc_error) {
4141
std::cerr << alloc_error << std::endl;
@@ -76,7 +76,7 @@ int main (int argc, char *argv[]){
7676
int count;
7777
for (size_t j = 0; j < 5; j++) {
7878
//Actual test
79-
simdjson::document::parser parser;
79+
simdjson::dom::parser parser;
8080
simdjson::error_code error;
8181

8282
auto start = std::chrono::steady_clock::now();
@@ -115,7 +115,7 @@ int main (int argc, char *argv[]){
115115
for (int i = 0; i < NB_ITERATION; i++) {
116116

117117
// Actual test
118-
simdjson::document::parser parser;
118+
simdjson::dom::parser parser;
119119
simdjson::error_code error;
120120

121121
auto start = std::chrono::steady_clock::now();

benchmark/parseandstatcompetition.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ void print_stat(const stat_t &s) {
5050

5151

5252
really_inline void simdjson_process_atom(stat_t &s,
53-
simdjson::document::element element) {
53+
simdjson::dom::element element) {
5454
if (element.is_number()) {
5555
s.number_count++;
5656
} else if (element.is_bool()) {
@@ -64,7 +64,7 @@ really_inline void simdjson_process_atom(stat_t &s,
6464
}
6565
}
6666

67-
void simdjson_recurse(stat_t &s, simdjson::document::element element) {
67+
void simdjson_recurse(stat_t &s, simdjson::dom::element element) {
6868
if (element.is_array()) {
6969
s.array_count++;
7070
auto [array, array_error] = element.as_array();
@@ -93,7 +93,7 @@ void simdjson_recurse(stat_t &s, simdjson::document::element element) {
9393
__attribute__((noinline)) stat_t
9494
simdjson_compute_stats(const simdjson::padded_string &p) {
9595
stat_t s{};
96-
simdjson::document::parser parser;
96+
simdjson::dom::parser parser;
9797
auto [doc, error] = parser.parse(p);
9898
if (error) {
9999
s.valid = false;

0 commit comments

Comments
 (0)