Skip to content

Commit 6bc4c6f

Browse files
committed
Upgrade Core to e1cd255bdd8a0cff32e237b95070548f203edbe7
Signed-off-by: Juan Cruz Viotti <[email protected]>
1 parent 61a04d9 commit 6bc4c6f

File tree

540 files changed

+104841
-5756
lines changed

Some content is hidden

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

540 files changed

+104841
-5756
lines changed

CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ if(PROJECT_IS_TOP_LEVEL)
6969
sourcemeta_target_clang_format(SOURCES
7070
src/*.h src/*.cc
7171
test/*.h test/*.cc)
72-
sourcemeta_target_clang_tidy(SOURCES src/*.cc)
7372
endif()
7473

7574
# Testing

DEPENDENCIES

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
vendorpull https://github.com/sourcemeta/vendorpull 70342aaf458e6cb80baeb5b718901075fc42ede6
2-
core https://github.com/sourcemeta/core 4a92a3d26b1c82617593974ca2350873a8f6dec9
2+
core https://github.com/sourcemeta/core e1cd255bdd8a0cff32e237b95070548f203edbe7
33
bootstrap https://github.com/twbs/bootstrap 1a6fdfae6be09b09eaced8f0e442ca6f7680a61e

Makefile

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,6 @@ compile: .always
3232
$(CMAKE) --install ./build --prefix ./build/dist --config $(PRESET) --verbose \
3333
--component sourcemeta_jsonbinpack_dev
3434

35-
lint: .always
36-
$(CMAKE) --build ./build --config $(PRESET) --target clang_tidy
37-
3835
test: .always
3936
$(CMAKE) -E env UBSAN_OPTIONS=print_stacktrace=1 \
4037
$(CTEST) --test-dir ./build --build-config $(PRESET) \

cmake/FindCore.cmake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ if(NOT Core_FOUND)
55
set(SOURCEMETA_CORE_INSTALL OFF CACHE BOOL "disable installation")
66
endif()
77

8+
set(SOURCEMETA_CORE_TIME OFF CACHE BOOL "disable")
9+
set(SOURCEMETA_CORE_UUID OFF CACHE BOOL "disable")
10+
set(SOURCEMETA_CORE_GZIP OFF CACHE BOOL "disable")
11+
set(SOURCEMETA_CORE_MD5 OFF CACHE BOOL "disable")
812
set(SOURCEMETA_CORE_JSONL OFF CACHE BOOL "disable JSONL support")
913
set(SOURCEMETA_CORE_YAML OFF CACHE BOOL "disable YAML support")
1014
set(SOURCEMETA_CORE_CONTRIB_GOOGLETEST ${JSONBINPACK_TESTS} CACHE BOOL "GoogleTest")

src/runtime/decoder_any.cc

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,9 @@ auto Decoder::ANY_PACKED_TYPE_TAG_BYTE_PREFIX(
8383
case SUBTYPE_LONG_STRING_BASE_EXPONENT_10:
8484
return sourcemeta::core::JSON{
8585
this->get_string_utf8(this->get_varint() + 1024)};
86+
default:
87+
unreachable();
8688
}
87-
88-
// We should never get here. If so, it is definitely a bug
89-
unreachable();
9089
} else {
9190
switch (type) {
9291
case TYPE_POSITIVE_INTEGER_BYTE:
@@ -97,9 +96,10 @@ auto Decoder::ANY_PACKED_TYPE_TAG_BYTE_PREFIX(
9796
subtype > 0 ? static_cast<std::int64_t>(-subtype)
9897
: static_cast<std::int64_t>(-this->get_byte() - 1)};
9998
case TYPE_SHARED_STRING: {
100-
const auto length = subtype == 0
101-
? this->get_varint() - 1 + uint_max<5> * 2
102-
: subtype - 1;
99+
const auto length =
100+
subtype == 0 ? this->get_varint() - 1 +
101+
static_cast<std::uint64_t>(uint_max<5>) * 2
102+
: subtype - 1;
103103
const std::uint64_t position{this->position()};
104104
const std::uint64_t current{this->rewind(this->get_varint(), position)};
105105
const sourcemeta::core::JSON value{this->get_string_utf8(length)};
@@ -109,46 +109,46 @@ auto Decoder::ANY_PACKED_TYPE_TAG_BYTE_PREFIX(
109109
case TYPE_STRING:
110110
return subtype == 0
111111
? this->FLOOR_VARINT_PREFIX_UTF8_STRING_SHARED(
112-
{uint_max<5> * 2})
112+
{static_cast<std::uint64_t>(uint_max<5>) * 2})
113113
: sourcemeta::core::JSON{this->get_string_utf8(subtype - 1)};
114114
case TYPE_LONG_STRING:
115115
return sourcemeta::core::JSON{
116116
this->get_string_utf8(subtype + uint_max<5>)};
117117
case TYPE_ARRAY:
118-
return subtype == 0 ? this->FIXED_TYPED_ARRAY(
119-
{this->get_varint() + uint_max<5>,
120-
std::make_shared<Encoding>(
121-
sourcemeta::jsonbinpack::
122-
ANY_PACKED_TYPE_TAG_BYTE_PREFIX{}),
123-
{}})
124-
: this->FIXED_TYPED_ARRAY(
125-
{static_cast<std::uint64_t>(subtype - 1),
126-
std::make_shared<Encoding>(
127-
sourcemeta::jsonbinpack::
128-
ANY_PACKED_TYPE_TAG_BYTE_PREFIX{}),
129-
{}});
118+
return subtype == 0
119+
? this->FIXED_TYPED_ARRAY(
120+
{.size = this->get_varint() + uint_max<5>,
121+
.encoding = std::make_shared<Encoding>(
122+
sourcemeta::jsonbinpack::
123+
ANY_PACKED_TYPE_TAG_BYTE_PREFIX{}),
124+
.prefix_encodings = {}})
125+
: this->FIXED_TYPED_ARRAY(
126+
{.size = static_cast<std::uint64_t>(subtype - 1),
127+
.encoding = std::make_shared<Encoding>(
128+
sourcemeta::jsonbinpack::
129+
ANY_PACKED_TYPE_TAG_BYTE_PREFIX{}),
130+
.prefix_encodings = {}});
130131
case TYPE_OBJECT:
131132
return subtype == 0
132133
? this->FIXED_TYPED_ARBITRARY_OBJECT(
133-
{this->get_varint() + uint_max<5>,
134-
std::make_shared<Encoding>(
134+
{.size = this->get_varint() + uint_max<5>,
135+
.key_encoding = std::make_shared<Encoding>(
135136
sourcemeta::jsonbinpack::
136137
PREFIX_VARINT_LENGTH_STRING_SHARED{}),
137-
std::make_shared<Encoding>(
138+
.encoding = std::make_shared<Encoding>(
138139
sourcemeta::jsonbinpack::
139140
ANY_PACKED_TYPE_TAG_BYTE_PREFIX{})})
140141
: this->FIXED_TYPED_ARBITRARY_OBJECT(
141-
{static_cast<std::uint64_t>(subtype - 1),
142-
std::make_shared<Encoding>(
142+
{.size = static_cast<std::uint64_t>(subtype - 1),
143+
.key_encoding = std::make_shared<Encoding>(
143144
sourcemeta::jsonbinpack::
144145
PREFIX_VARINT_LENGTH_STRING_SHARED{}),
145-
std::make_shared<Encoding>(
146+
.encoding = std::make_shared<Encoding>(
146147
sourcemeta::jsonbinpack::
147148
ANY_PACKED_TYPE_TAG_BYTE_PREFIX{})});
149+
default:
150+
unreachable();
148151
}
149-
150-
// We should never get here. If so, it is definitely a bug
151-
unreachable();
152152
}
153153
}
154154

src/runtime/decoder_array.cc

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ auto Decoder::BOUNDED_8BITS_TYPED_ARRAY(
3030
const std::uint64_t size{byte + options.minimum};
3131
assert(is_within(size, options.minimum, options.maximum));
3232
return this->FIXED_TYPED_ARRAY(
33-
{size, std::move(options.encoding), std::move(options.prefix_encodings)});
33+
{.size = size,
34+
.encoding = options.encoding,
35+
.prefix_encodings = options.prefix_encodings});
3436
};
3537

3638
auto Decoder::FLOOR_TYPED_ARRAY(const struct FLOOR_TYPED_ARRAY &options)
@@ -40,7 +42,9 @@ auto Decoder::FLOOR_TYPED_ARRAY(const struct FLOOR_TYPED_ARRAY &options)
4042
assert(size >= value);
4143
assert(size >= options.minimum);
4244
return this->FIXED_TYPED_ARRAY(
43-
{size, std::move(options.encoding), std::move(options.prefix_encodings)});
45+
{.size = size,
46+
.encoding = options.encoding,
47+
.prefix_encodings = options.prefix_encodings});
4448
};
4549

4650
auto Decoder::ROOF_TYPED_ARRAY(const struct ROOF_TYPED_ARRAY &options)
@@ -49,7 +53,9 @@ auto Decoder::ROOF_TYPED_ARRAY(const struct ROOF_TYPED_ARRAY &options)
4953
const std::uint64_t size{options.maximum - value};
5054
assert(size <= options.maximum);
5155
return this->FIXED_TYPED_ARRAY(
52-
{size, std::move(options.encoding), std::move(options.prefix_encodings)});
56+
{.size = size,
57+
.encoding = options.encoding,
58+
.prefix_encodings = options.prefix_encodings});
5359
};
5460

5561
} // namespace sourcemeta::jsonbinpack

src/runtime/decoder_common.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@ auto Decoder::read(const Encoding &encoding) -> sourcemeta::core::JSON {
3737
HANDLE_DECODING(20, FIXED_TYPED_ARBITRARY_OBJECT)
3838
HANDLE_DECODING(21, VARINT_TYPED_ARBITRARY_OBJECT)
3939
#undef HANDLE_DECODING
40+
default:
41+
// We should never get here. If so, it is definitely a bug
42+
unreachable();
4043
}
41-
42-
// We should never get here. If so, it is definitely a bug
43-
unreachable();
4444
}
4545

4646
} // namespace sourcemeta::jsonbinpack

src/runtime/encoder_any.cc

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include <cstdint> // std::uint8_t, std::int64_t, std::uint64_t
99
#include <iterator> // std::cbegin, std::cend, std::distance
1010
#include <memory> // std::make_shared
11+
#include <ranges> // std::ranges
1112
#include <utility> // std::move
1213

1314
namespace sourcemeta::jsonbinpack {
@@ -17,9 +18,7 @@ auto Encoder::BYTE_CHOICE_INDEX(const sourcemeta::core::JSON &document,
1718
-> void {
1819
assert(!options.choices.empty());
1920
assert(is_byte(options.choices.size()));
20-
const auto iterator{std::find_if(
21-
std::cbegin(options.choices), std::cend(options.choices),
22-
[&document](const auto &choice) { return choice == document; })};
21+
const auto iterator{std::ranges::find(options.choices, document)};
2322
assert(iterator != std::cend(options.choices));
2423
const auto cursor{std::distance(std::cbegin(options.choices), iterator)};
2524
assert(
@@ -31,9 +30,10 @@ auto Encoder::LARGE_CHOICE_INDEX(const sourcemeta::core::JSON &document,
3130
const struct LARGE_CHOICE_INDEX &options)
3231
-> void {
3332
assert(options.choices.size() > 0);
34-
const auto iterator{std::find_if(
35-
std::cbegin(options.choices), std::cend(options.choices),
36-
[&document](const auto &choice) { return choice == document; })};
33+
const auto iterator{
34+
std::ranges::find_if(options.choices, [&document](const auto &choice) {
35+
return choice == document;
36+
})};
3737
assert(iterator != std::cend(options.choices));
3838
const auto cursor{std::distance(std::cbegin(options.choices), iterator)};
3939
assert(is_within(cursor, static_cast<std::uint64_t>(0),
@@ -46,9 +46,10 @@ auto Encoder::TOP_LEVEL_BYTE_CHOICE_INDEX(
4646
const struct TOP_LEVEL_BYTE_CHOICE_INDEX &options) -> void {
4747
assert(options.choices.size() > 0);
4848
assert(is_byte(options.choices.size()));
49-
const auto iterator{std::find_if(
50-
std::cbegin(options.choices), std::cend(options.choices),
51-
[&document](auto const &choice) { return choice == document; })};
49+
const auto iterator{
50+
std::ranges::find_if(options.choices, [&document](auto const &choice) {
51+
return choice == document;
52+
})};
5253
assert(iterator != std::cend(options.choices));
5354
const auto cursor{std::distance(std::cbegin(options.choices), iterator)};
5455
assert(is_within(cursor, 0,
@@ -117,7 +118,7 @@ auto Encoder::ANY_PACKED_TYPE_TAG_BYTE_PREFIX(
117118
this->put_varint(absolute);
118119
}
119120
} else if (document.is_string()) {
120-
const sourcemeta::core::JSON::String value{document.to_string()};
121+
const sourcemeta::core::JSON::String &value{document.to_string()};
121122
const auto size{document.byte_size()};
122123
const auto shared{this->cache_.find(value, Cache::Type::Standalone)};
123124
if (size < uint_max<5>) {
@@ -131,7 +132,8 @@ auto Encoder::ANY_PACKED_TYPE_TAG_BYTE_PREFIX(
131132
this->cache_.record(value, this->position(), Cache::Type::Standalone);
132133
this->put_string_utf8(value, size);
133134
}
134-
} else if (size >= uint_max<5> && size < uint_max<5> * 2 &&
135+
} else if (size >= uint_max<5> &&
136+
size < static_cast<std::uint64_t>(uint_max<5>) * 2 &&
135137
!shared.has_value()) {
136138
this->put_byte(static_cast<std::uint8_t>(
137139
TYPE_LONG_STRING | ((size - uint_max<5>) << type_size)));
@@ -154,8 +156,8 @@ auto Encoder::ANY_PACKED_TYPE_TAG_BYTE_PREFIX(
154156
}
155157

156158
// If we got this far, the string is at least a certain length
157-
return FLOOR_VARINT_PREFIX_UTF8_STRING_SHARED(document,
158-
{uint_max<5> * 2});
159+
return FLOOR_VARINT_PREFIX_UTF8_STRING_SHARED(
160+
document, {static_cast<std::uint64_t>(uint_max<5> * 2)});
159161
}
160162
} else if (document.is_array()) {
161163
const auto size{document.size()};
@@ -170,7 +172,9 @@ auto Encoder::ANY_PACKED_TYPE_TAG_BYTE_PREFIX(
170172
Encoding encoding{
171173
sourcemeta::jsonbinpack::ANY_PACKED_TYPE_TAG_BYTE_PREFIX{}};
172174
this->FIXED_TYPED_ARRAY(
173-
document, {size, std::make_shared<Encoding>(std::move(encoding)), {}});
175+
document, {.size = size,
176+
.encoding = std::make_shared<Encoding>(std::move(encoding)),
177+
.prefix_encodings = {}});
174178
} else if (document.is_object()) {
175179
const auto size{document.size()};
176180
if (size >= uint_max<5>) {
@@ -186,8 +190,10 @@ auto Encoder::ANY_PACKED_TYPE_TAG_BYTE_PREFIX(
186190
Encoding value_encoding{
187191
sourcemeta::jsonbinpack::ANY_PACKED_TYPE_TAG_BYTE_PREFIX{}};
188192
this->FIXED_TYPED_ARBITRARY_OBJECT(
189-
document, {size, std::make_shared<Encoding>(std::move(key_encoding)),
190-
std::make_shared<Encoding>(std::move(value_encoding))});
193+
document,
194+
{.size = size,
195+
.key_encoding = std::make_shared<Encoding>(std::move(key_encoding)),
196+
.encoding = std::make_shared<Encoding>(std::move(value_encoding))});
191197
} else {
192198
// We should never get here
193199
unreachable();

src/runtime/encoder_array.cc

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@ auto Encoder::BOUNDED_8BITS_TYPED_ARRAY(
3030
assert(is_within(size, options.minimum, options.maximum));
3131
assert(is_byte(options.maximum - options.minimum));
3232
this->put_byte(static_cast<std::uint8_t>(size - options.minimum));
33-
this->FIXED_TYPED_ARRAY(document, {size, std::move(options.encoding),
34-
std::move(options.prefix_encodings)});
33+
this->FIXED_TYPED_ARRAY(document,
34+
{.size = size,
35+
.encoding = options.encoding,
36+
.prefix_encodings = options.prefix_encodings});
3537
}
3638

3739
auto Encoder::FLOOR_TYPED_ARRAY(const sourcemeta::core::JSON &document,
@@ -40,17 +42,21 @@ auto Encoder::FLOOR_TYPED_ARRAY(const sourcemeta::core::JSON &document,
4042
const auto size{document.size()};
4143
assert(size >= options.minimum);
4244
this->put_varint(size - options.minimum);
43-
this->FIXED_TYPED_ARRAY(document, {size, std::move(options.encoding),
44-
std::move(options.prefix_encodings)});
45+
this->FIXED_TYPED_ARRAY(document,
46+
{.size = size,
47+
.encoding = options.encoding,
48+
.prefix_encodings = options.prefix_encodings});
4549
}
4650

4751
auto Encoder::ROOF_TYPED_ARRAY(const sourcemeta::core::JSON &document,
4852
const struct ROOF_TYPED_ARRAY &options) -> void {
4953
const auto size{document.size()};
5054
assert(size <= options.maximum);
5155
this->put_varint(options.maximum - size);
52-
this->FIXED_TYPED_ARRAY(document, {size, std::move(options.encoding),
53-
std::move(options.prefix_encodings)});
56+
this->FIXED_TYPED_ARRAY(document,
57+
{.size = size,
58+
.encoding = options.encoding,
59+
.prefix_encodings = options.prefix_encodings});
5460
}
5561

5662
} // namespace sourcemeta::jsonbinpack

src/runtime/encoder_common.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ auto Encoder::write(const sourcemeta::core::JSON &document,
3939
HANDLE_ENCODING(20, FIXED_TYPED_ARBITRARY_OBJECT)
4040
HANDLE_ENCODING(21, VARINT_TYPED_ARBITRARY_OBJECT)
4141
#undef HANDLE_ENCODING
42+
default:
43+
// We should never get here. If so, it is definitely a bug
44+
unreachable();
4245
}
43-
44-
// We should never get here. If so, it is definitely a bug
45-
unreachable();
4646
}
4747

4848
} // namespace sourcemeta::jsonbinpack

0 commit comments

Comments
 (0)