Skip to content

Commit 660472b

Browse files
Update to simdjson 3.10.0 (#88)
1 parent 5d0bfde commit 660472b

5 files changed

Lines changed: 611 additions & 93 deletions

File tree

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
A basic Lua binding to [simdjson](https://simdjson.org). The simdjson library is an incredibly fast JSON parser that uses SIMD instructions and fancy algorithms to parse JSON very quickly. It's been tested with LuaJIT 2.0/2.1 and Lua 5.1, 5.2, 5.3, and 5.4 on linux/osx/windows. It has a general parsing mode and a lazy mode that uses a JSON pointer.
55

6-
Current simdjson version: 3.9.5
6+
Current simdjson version: 3.10.0
77

88
## Installation
99
If all the requirements are met, lua-simdjson can be install via luarocks with:
@@ -87,7 +87,7 @@ local fileResponse = simdjson.openFile("jsonexamples/twitter.json")
8787
print(fileResponse:atPointer("/statuses/0/id")) --using a JSON pointer
8888

8989
```
90-
Starting with version 0.5.0, the `atPointer` method is JSON pointer compliant. The previous pointer implementation is considered deprecated, but is still available with the `at` method.
90+
Starting with version 0.2.0, the `atPointer` method is JSON pointer compliant. The previous pointer implementation is considered deprecated, but is still available with the `at` method.
9191

9292
The `open` and `parse` codeblocks should print out the same values. It's worth noting that the JSON pointer indexes from 0.
9393

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package="lua-simdjson"
2-
version="0.0.3-1"
2+
version="0.0.4-1"
33
source = {
44
url = "git://github.com/FourierTransformer/lua-simdjson",
5-
tag = "0.0.3"
5+
tag = "0.0.4"
66
}
77
description = {
88
summary = "This is a simple Lua binding for simdjson",

src/luasimdjson.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#include "luasimdjson.h"
1616

1717
#define LUA_SIMDJSON_NAME "simdjson"
18-
#define LUA_SIMDJSON_VERSION "0.0.3"
18+
#define LUA_SIMDJSON_VERSION "0.0.4"
1919

2020
using namespace simdjson;
2121

src/simdjson.cpp

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* auto-generated on 2024-07-04 16:26:22 -0400. Do not edit! */
1+
/* auto-generated on 2024-08-01 09:31:50 -0400. Do not edit! */
22
/* including simdjson.cpp: */
33
/* begin file simdjson.cpp */
44
#define SIMDJSON_SRC_SIMDJSON_CPP
@@ -40,6 +40,16 @@
4040
#endif
4141
#endif
4242

43+
// C++ 23
44+
#if !defined(SIMDJSON_CPLUSPLUS23) && (SIMDJSON_CPLUSPLUS >= 202302L)
45+
#define SIMDJSON_CPLUSPLUS23 1
46+
#endif
47+
48+
// C++ 20
49+
#if !defined(SIMDJSON_CPLUSPLUS20) && (SIMDJSON_CPLUSPLUS >= 202002L)
50+
#define SIMDJSON_CPLUSPLUS20 1
51+
#endif
52+
4353
// C++ 17
4454
#if !defined(SIMDJSON_CPLUSPLUS17) && (SIMDJSON_CPLUSPLUS >= 201703L)
4555
#define SIMDJSON_CPLUSPLUS17 1
@@ -5954,7 +5964,7 @@ class dom_parser_implementation {
59545964
* Unescape a valid UTF-8 string from src to dst, stopping at a final unescaped quote. There
59555965
* must be an unescaped quote terminating the string. It returns the final output
59565966
* position as pointer. In case of error (e.g., the string has bad escaped codes),
5957-
* then null_nullptrptr is returned. It is assumed that the output buffer is large
5967+
* then null_ptr is returned. It is assumed that the output buffer is large
59585968
* enough. E.g., if src points at 'joe"', then dst needs to have four free bytes +
59595969
* SIMDJSON_PADDING bytes.
59605970
*
@@ -5971,7 +5981,7 @@ class dom_parser_implementation {
59715981
* Unescape a NON-valid UTF-8 string from src to dst, stopping at a final unescaped quote. There
59725982
* must be an unescaped quote terminating the string. It returns the final output
59735983
* position as pointer. In case of error (e.g., the string has bad escaped codes),
5974-
* then null_nullptrptr is returned. It is assumed that the output buffer is large
5984+
* then null_ptr is returned. It is assumed that the output buffer is large
59755985
* enough. E.g., if src points at 'joe"', then dst needs to have four free bytes +
59765986
* SIMDJSON_PADDING bytes.
59775987
*
@@ -12482,7 +12492,7 @@ simdjson_inline error_code json_structural_indexer::finish(dom_parser_implementa
1248212492
}
1248312493
parser.n_structural_indexes = uint32_t(indexer.tail - parser.structural_indexes.get());
1248412494
/***
12485-
* The On Demand API requires special padding.
12495+
* The On-Demand API requires special padding.
1248612496
*
1248712497
* This is related to https://github.com/simdjson/simdjson/issues/906
1248812498
* Basically, we want to make sure that if the parsing continues beyond the last (valid)
@@ -13357,7 +13367,7 @@ simdjson_inline bool handle_unicode_codepoint_wobbly(const uint8_t **src_ptr,
1335713367
* Unescape a valid UTF-8 string from src to dst, stopping at a final unescaped quote. There
1335813368
* must be an unescaped quote terminating the string. It returns the final output
1335913369
* position as pointer. In case of error (e.g., the string has bad escaped codes),
13360-
* then null_nullptrptr is returned. It is assumed that the output buffer is large
13370+
* then null_ptr is returned. It is assumed that the output buffer is large
1336113371
* enough. E.g., if src points at 'joe"', then dst needs to have four free bytes +
1336213372
* SIMDJSON_PADDING bytes.
1336313373
*/
@@ -18701,7 +18711,7 @@ simdjson_inline error_code json_structural_indexer::finish(dom_parser_implementa
1870118711
}
1870218712
parser.n_structural_indexes = uint32_t(indexer.tail - parser.structural_indexes.get());
1870318713
/***
18704-
* The On Demand API requires special padding.
18714+
* The On-Demand API requires special padding.
1870518715
*
1870618716
* This is related to https://github.com/simdjson/simdjson/issues/906
1870718717
* Basically, we want to make sure that if the parsing continues beyond the last (valid)
@@ -19576,7 +19586,7 @@ simdjson_inline bool handle_unicode_codepoint_wobbly(const uint8_t **src_ptr,
1957619586
* Unescape a valid UTF-8 string from src to dst, stopping at a final unescaped quote. There
1957719587
* must be an unescaped quote terminating the string. It returns the final output
1957819588
* position as pointer. In case of error (e.g., the string has bad escaped codes),
19579-
* then null_nullptrptr is returned. It is assumed that the output buffer is large
19589+
* then null_ptr is returned. It is assumed that the output buffer is large
1958019590
* enough. E.g., if src points at 'joe"', then dst needs to have four free bytes +
1958119591
* SIMDJSON_PADDING bytes.
1958219592
*/
@@ -24913,7 +24923,7 @@ simdjson_inline error_code json_structural_indexer::finish(dom_parser_implementa
2491324923
}
2491424924
parser.n_structural_indexes = uint32_t(indexer.tail - parser.structural_indexes.get());
2491524925
/***
24916-
* The On Demand API requires special padding.
24926+
* The On-Demand API requires special padding.
2491724927
*
2491824928
* This is related to https://github.com/simdjson/simdjson/issues/906
2491924929
* Basically, we want to make sure that if the parsing continues beyond the last (valid)
@@ -25788,7 +25798,7 @@ simdjson_inline bool handle_unicode_codepoint_wobbly(const uint8_t **src_ptr,
2578825798
* Unescape a valid UTF-8 string from src to dst, stopping at a final unescaped quote. There
2578925799
* must be an unescaped quote terminating the string. It returns the final output
2579025800
* position as pointer. In case of error (e.g., the string has bad escaped codes),
25791-
* then null_nullptrptr is returned. It is assumed that the output buffer is large
25801+
* then null_ptr is returned. It is assumed that the output buffer is large
2579225802
* enough. E.g., if src points at 'joe"', then dst needs to have four free bytes +
2579325803
* SIMDJSON_PADDING bytes.
2579425804
*/
@@ -31396,7 +31406,7 @@ simdjson_inline error_code json_structural_indexer::finish(dom_parser_implementa
3139631406
}
3139731407
parser.n_structural_indexes = uint32_t(indexer.tail - parser.structural_indexes.get());
3139831408
/***
31399-
* The On Demand API requires special padding.
31409+
* The On-Demand API requires special padding.
3140031410
*
3140131411
* This is related to https://github.com/simdjson/simdjson/issues/906
3140231412
* Basically, we want to make sure that if the parsing continues beyond the last (valid)
@@ -32271,7 +32281,7 @@ simdjson_inline bool handle_unicode_codepoint_wobbly(const uint8_t **src_ptr,
3227132281
* Unescape a valid UTF-8 string from src to dst, stopping at a final unescaped quote. There
3227232282
* must be an unescaped quote terminating the string. It returns the final output
3227332283
* position as pointer. In case of error (e.g., the string has bad escaped codes),
32274-
* then null_nullptrptr is returned. It is assumed that the output buffer is large
32284+
* then null_ptr is returned. It is assumed that the output buffer is large
3227532285
* enough. E.g., if src points at 'joe"', then dst needs to have four free bytes +
3227632286
* SIMDJSON_PADDING bytes.
3227732287
*/
@@ -38453,7 +38463,7 @@ simdjson_inline error_code json_structural_indexer::finish(dom_parser_implementa
3845338463
}
3845438464
parser.n_structural_indexes = uint32_t(indexer.tail - parser.structural_indexes.get());
3845538465
/***
38456-
* The On Demand API requires special padding.
38466+
* The On-Demand API requires special padding.
3845738467
*
3845838468
* This is related to https://github.com/simdjson/simdjson/issues/906
3845938469
* Basically, we want to make sure that if the parsing continues beyond the last (valid)
@@ -39328,7 +39338,7 @@ simdjson_inline bool handle_unicode_codepoint_wobbly(const uint8_t **src_ptr,
3932839338
* Unescape a valid UTF-8 string from src to dst, stopping at a final unescaped quote. There
3932939339
* must be an unescaped quote terminating the string. It returns the final output
3933039340
* position as pointer. In case of error (e.g., the string has bad escaped codes),
39331-
* then null_nullptrptr is returned. It is assumed that the output buffer is large
39341+
* then null_ptr is returned. It is assumed that the output buffer is large
3933239342
* enough. E.g., if src points at 'joe"', then dst needs to have four free bytes +
3933339343
* SIMDJSON_PADDING bytes.
3933439344
*/
@@ -44477,7 +44487,7 @@ simdjson_inline error_code json_structural_indexer::finish(dom_parser_implementa
4447744487
}
4447844488
parser.n_structural_indexes = uint32_t(indexer.tail - parser.structural_indexes.get());
4447944489
/***
44480-
* The On Demand API requires special padding.
44490+
* The On-Demand API requires special padding.
4448144491
*
4448244492
* This is related to https://github.com/simdjson/simdjson/issues/906
4448344493
* Basically, we want to make sure that if the parsing continues beyond the last (valid)
@@ -45352,7 +45362,7 @@ simdjson_inline bool handle_unicode_codepoint_wobbly(const uint8_t **src_ptr,
4535245362
* Unescape a valid UTF-8 string from src to dst, stopping at a final unescaped quote. There
4535345363
* must be an unescaped quote terminating the string. It returns the final output
4535445364
* position as pointer. In case of error (e.g., the string has bad escaped codes),
45355-
* then null_nullptrptr is returned. It is assumed that the output buffer is large
45365+
* then null_ptr is returned. It is assumed that the output buffer is large
4535645366
* enough. E.g., if src points at 'joe"', then dst needs to have four free bytes +
4535745367
* SIMDJSON_PADDING bytes.
4535845368
*/
@@ -50492,7 +50502,7 @@ simdjson_inline error_code json_structural_indexer::finish(dom_parser_implementa
5049250502
}
5049350503
parser.n_structural_indexes = uint32_t(indexer.tail - parser.structural_indexes.get());
5049450504
/***
50495-
* The On Demand API requires special padding.
50505+
* The On-Demand API requires special padding.
5049650506
*
5049750507
* This is related to https://github.com/simdjson/simdjson/issues/906
5049850508
* Basically, we want to make sure that if the parsing continues beyond the last (valid)
@@ -51367,7 +51377,7 @@ simdjson_inline bool handle_unicode_codepoint_wobbly(const uint8_t **src_ptr,
5136751377
* Unescape a valid UTF-8 string from src to dst, stopping at a final unescaped quote. There
5136851378
* must be an unescaped quote terminating the string. It returns the final output
5136951379
* position as pointer. In case of error (e.g., the string has bad escaped codes),
51370-
* then null_nullptrptr is returned. It is assumed that the output buffer is large
51380+
* then null_ptr is returned. It is assumed that the output buffer is large
5137151381
* enough. E.g., if src points at 'joe"', then dst needs to have four free bytes +
5137251382
* SIMDJSON_PADDING bytes.
5137351383
*/
@@ -54568,7 +54578,7 @@ simdjson_inline bool handle_unicode_codepoint_wobbly(const uint8_t **src_ptr,
5456854578
* Unescape a valid UTF-8 string from src to dst, stopping at a final unescaped quote. There
5456954579
* must be an unescaped quote terminating the string. It returns the final output
5457054580
* position as pointer. In case of error (e.g., the string has bad escaped codes),
54571-
* then null_nullptrptr is returned. It is assumed that the output buffer is large
54581+
* then null_ptr is returned. It is assumed that the output buffer is large
5457254582
* enough. E.g., if src points at 'joe"', then dst needs to have four free bytes +
5457354583
* SIMDJSON_PADDING bytes.
5457454584
*/

0 commit comments

Comments
 (0)