yeptris 0.6.49.0-powerpc64le-linux → 0.6.50.0-powerpc64le-linux
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/yeptris_native/version.h +2 -2
- data/lib/yeptris.rb +1 -1
- data/libyeptris.so +0 -0
- data/vendor/libyeptris/CMakeLists.txt +1 -1
- data/vendor/libyeptris/src/yeptris/tape.c +51 -45
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 502d9d312839f1bbb60cd18717903b08a307b49573cc70b2c7d6ca23795e1288
|
|
4
|
+
data.tar.gz: 78ec8de12de58a6d89eea7614d3da4588c697f4042e3d8d2fe70071cf2fc98b2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0506cd4bc37ab0616d8d0f075af345af89e260adacc19f53603c04584103608f2b720c8fcb4c732d20ff3980a6bbdc0d1d394c38a384892bbf5f97953a6dc769
|
|
7
|
+
data.tar.gz: 1971d74f5e1e38ef400cdf4a4d7c70cf65891c7a504941ff474ff8f79bb592d4e0fe36f874409ad41b3c7bdb87a99abb74a28e741d6907f2d40108ac918b806d
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
|
|
12
12
|
#define YEPTRIS_VERSION_MAJOR 0
|
|
13
13
|
#define YEPTRIS_VERSION_MINOR 6
|
|
14
|
-
#define YEPTRIS_VERSION_PATCH
|
|
15
|
-
#define YEPTRIS_VERSION_STRING "0.6.
|
|
14
|
+
#define YEPTRIS_VERSION_PATCH 50
|
|
15
|
+
#define YEPTRIS_VERSION_STRING "0.6.50"
|
|
16
16
|
|
|
17
17
|
#ifdef __cplusplus
|
|
18
18
|
extern "C" {
|
data/lib/yeptris.rb
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
module Yeptris
|
|
4
4
|
# The gem's version lives in the parent namespace's file — the last
|
|
5
5
|
# internal require (yeptris/version) retired with it.
|
|
6
|
-
VERSION = "0.6.
|
|
6
|
+
VERSION = "0.6.50.0".freeze
|
|
7
7
|
|
|
8
8
|
# Informational notices are OPT-IN (yeptris-ruby#217): consumers
|
|
9
9
|
# embed yeptris inside CLIs that assert clean stderr, and a
|
data/libyeptris.so
CHANGED
|
Binary file
|
|
@@ -2201,55 +2201,61 @@ YEPTRIS_API YeptrisStatus yeptris_parse_json_tape(const char* source, size_t len
|
|
|
2201
2201
|
return YEPTRIS_ERROR_ARG;
|
|
2202
2202
|
}
|
|
2203
2203
|
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
|
|
2208
|
-
|
|
2209
|
-
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2213
|
-
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
|
|
2204
|
+
/* #474: the entry's full-input gate_scan pre-pass moves to the
|
|
2205
|
+
* reject path (the #342/#81 law on parse_json, now here): the
|
|
2206
|
+
* columns-primary fused walk runs clean_only — tabs and non-ASCII
|
|
2207
|
+
* bytes REJECT inline — so on accepted documents the NEON gate
|
|
2208
|
+
* scan (the profile's 5% lane) never runs. A walk reject re-gates:
|
|
2209
|
+
* the record walk and the encoding-owed decision read `gated` only
|
|
2210
|
+
* when actually taken, and every error precedence below is
|
|
2211
|
+
* unchanged (the validating sequence consumes the same bit). */
|
|
2212
|
+
int gated;
|
|
2213
|
+
size_t off = 0;
|
|
2214
|
+
while (off < len && (source[off] == ' ' || source[off] == '\t' || source[off] == '\n' ||
|
|
2215
|
+
source[off] == '\r')) {
|
|
2216
|
+
off++;
|
|
2217
|
+
}
|
|
2218
|
+
int container = off < len && (source[off] == '[' || source[off] == '{');
|
|
2219
|
+
if (container) {
|
|
2220
|
+
/* the columns-primary fused walk: one pass, columns eager
|
|
2221
|
+
* by construction, strict numbers classified at walk time */
|
|
2222
|
+
if (yep_tape_walk_columns_fused(source, len, off, tape, 1, 1) == YEPTRIS_OK) {
|
|
2223
|
+
return YEPTRIS_OK;
|
|
2224
|
+
}
|
|
2225
|
+
}
|
|
2226
|
+
gated = len > 0 && yep_text_active()->gate_scan(source, len);
|
|
2227
|
+
if (container && !gated) {
|
|
2228
|
+
/* the token-contract route: stage 1 (vector indexes) + the
|
|
2229
|
+
* lean walk. Measured BEHIND the fused walk on json-doc
|
|
2230
|
+
* (417-426 vs 526-533: stage 1 at 1408 MB/s + a walk whose
|
|
2231
|
+
* arms carry the same grammar cost) — gated OFF until the
|
|
2232
|
+
* sized cuts land (the op-table classifier trick, the
|
|
2233
|
+
* specialized map/seq loops, stage-1 string closes). The
|
|
2234
|
+
* fused walk is the shipped route; the law. */
|
|
2219
2235
|
#if YEP_TOKEN_CONTRACT_ROUTE
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
|
|
2225
|
-
|
|
2226
|
-
|
|
2227
|
-
|
|
2228
|
-
|
|
2229
|
-
if (st != YEPTRIS_ERROR_PARSE) {
|
|
2230
|
-
return st; /* OK or MEMORY; a reject falls through */
|
|
2231
|
-
}
|
|
2232
|
-
} else {
|
|
2233
|
-
free(idx);
|
|
2234
|
-
}
|
|
2235
|
-
#endif
|
|
2236
|
-
/* the record-primary fused walk first — the DOM route's
|
|
2237
|
-
* exact call and flags (strict numbers at record time,
|
|
2238
|
-
* clean-only gates; a reject frees the tape internally, so
|
|
2239
|
-
* the column attempt below carves fresh). This route's
|
|
2240
|
-
* contract is COLUMNS-EAGER (the suite reads kinds/offs/
|
|
2241
|
-
* lens directly), so the records materialize here — the
|
|
2242
|
-
* fused scan plus one sequential decode pass, still ahead
|
|
2243
|
-
* of the column walk's inline three-stream writes. */
|
|
2244
|
-
/* the columns-primary fused walk: one pass, columns eager
|
|
2245
|
-
* by construction, strict numbers classified at walk time */
|
|
2246
|
-
if (yep_tape_walk_columns_fused(source, len, off, tape, 1, 1) == YEPTRIS_OK) {
|
|
2247
|
-
return YEPTRIS_OK;
|
|
2248
|
-
}
|
|
2249
|
-
YeptrisStatus st = tape_walk(source, len, off, tape, 1);
|
|
2236
|
+
uint32_t* idx = (uint32_t*)malloc((len + 2) * sizeof(uint32_t));
|
|
2237
|
+
if (idx == NULL) {
|
|
2238
|
+
return YEPTRIS_ERROR_MEMORY;
|
|
2239
|
+
}
|
|
2240
|
+
size_t nidx = 0;
|
|
2241
|
+
unsigned sflags = 0;
|
|
2242
|
+
if (yep_text_active()->json_stage1(source, len, idx, &nidx, &sflags)) {
|
|
2243
|
+
YeptrisStatus st = tape_walk_idx(source, len, off, idx, nidx, tape);
|
|
2244
|
+
free(idx);
|
|
2250
2245
|
if (st != YEPTRIS_ERROR_PARSE) {
|
|
2251
2246
|
return st; /* OK or MEMORY; a reject falls through */
|
|
2252
2247
|
}
|
|
2248
|
+
} else {
|
|
2249
|
+
free(idx);
|
|
2250
|
+
}
|
|
2251
|
+
#endif
|
|
2252
|
+
/* the record walk — the DOM route's exact call and flags
|
|
2253
|
+
* (strict numbers at record time). Non-ASCII documents stay
|
|
2254
|
+
* out of it: the gate above keeps today's routing, where the
|
|
2255
|
+
* validated lenient walk below owns them. */
|
|
2256
|
+
YeptrisStatus st = tape_walk(source, len, off, tape, 1);
|
|
2257
|
+
if (st != YEPTRIS_ERROR_PARSE) {
|
|
2258
|
+
return st; /* OK or MEMORY; a reject falls through */
|
|
2253
2259
|
}
|
|
2254
2260
|
}
|
|
2255
2261
|
|