leptris 1.9.396.0-aarch64-linux → 1.9.397.0-aarch64-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/Rakefile +1 -1
- data/lib/leptris/version.rb +1 -1
- data/lib/libleptris.so +0 -0
- data/vendor-src/README.md +1 -1
- data/vendor-src/libleptris/CHANGELOG.md +17 -0
- data/vendor-src/libleptris/CMakeLists.txt +1 -1
- data/vendor-src/libleptris/src/leptris/flat/direct_parse.c +11 -11
- data/vendor-src/libleptris/vcpkg.json +1 -1
- 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: c65a84ecbd6e96187a169401563798f631e7de15b0638bc8f0d0fbc7d2f43f8d
|
|
4
|
+
data.tar.gz: 5267225bffc4d8b4438ffecdcb68def71cf4821827277efd9d7e39269ef5ac53
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2a6f4e3a13f4b84ab998021800d2233f7d4ffb91f29ec4ef860b8776a15482df23eb61c9b5f91ace55ab5eb64a5174eac68a2ae6ce78d3ecce0f50e6dd60199e
|
|
7
|
+
data.tar.gz: 1fbea43a7237f8dad724876fe5b53b6a45260b9595b14b89da3e32a0bf38f378d9fa7785650525c4d59d869fb2c38bef5a6f07bb7a34354a3933ccef467b8a8e
|
data/Rakefile
CHANGED
|
@@ -8,7 +8,7 @@ RSpec::Core::RakeTask.new(:spec)
|
|
|
8
8
|
# Pin for `rake compile` and the platform-gem builds. Keep in lockstep
|
|
9
9
|
# with .github/workflows/build.yml (which calls `rake compile`) and the
|
|
10
10
|
# CHANGELOG when libleptris releases.
|
|
11
|
-
LIBLEPTRIS_VERSION = "1.9.
|
|
11
|
+
LIBLEPTRIS_VERSION = "1.9.397"
|
|
12
12
|
# Vendored alongside libleptris for fn:normalize-unicode (TODO
|
|
13
13
|
# .restructure/20): built per platform with a RELOCATABLE @rpath
|
|
14
14
|
# install name, loaded by ffi.rb before libleptris so the
|
data/lib/leptris/version.rb
CHANGED
data/lib/libleptris.so
CHANGED
|
Binary file
|
data/vendor-src/README.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
2
|
|
|
3
|
+
## [1.9.397] - 2026-10-31
|
|
4
|
+
|
|
5
|
+
### Performance
|
|
6
|
+
|
|
7
|
+
- **Attribute-value tail fused into one pass (leptris#1842, PR
|
|
8
|
+
#1934).** With the UTF-8 gate on the SIMD validator, the line
|
|
9
|
+
profile moved to `dp_parse_attrs`: values of ~50 bytes just miss
|
|
10
|
+
the 48-byte inline probe, so every attribute paid the quote
|
|
11
|
+
memchr AND a SIMD-contains CALL for `&` AND a second full byte
|
|
12
|
+
loop for literal whitespace — three scans of every value. One
|
|
13
|
+
fused early-exit loop computes both flags: **parse +28%** on the
|
|
14
|
+
2.2MB dense-UTF-8 fixture (4.11 -> 3.20 ms, 536 -> 686 MB/s with
|
|
15
|
+
frame pointers). Flag semantics unchanged; amp/whitespace hits
|
|
16
|
+
from the inline probe still short-circuit the tail.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
3
20
|
## [1.9.396] - 2026-10-31
|
|
4
21
|
|
|
5
22
|
### Fixed
|
|
@@ -1114,17 +1114,17 @@ static int dp_parse_attrs(DParser* p, LeptrisElement elem) {
|
|
|
1114
1114
|
if (q >= p->end) return -1; /* unterminated */
|
|
1115
1115
|
val_end = (char*)memchr(q, quote, p->end - q);
|
|
1116
1116
|
if (!val_end) return -1;
|
|
1117
|
-
if (q < val_end) {
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1117
|
+
if (q < val_end && (!has_amp || !has_ws)) {
|
|
1118
|
+
/* One fused pass for '&' and literal \t/\n/\r: the old
|
|
1119
|
+
* shape paid a SIMD-contains CALL plus a second byte
|
|
1120
|
+
* loop per attribute — 3 scans of every value on the
|
|
1121
|
+
* #1842 profile (50-byte values just miss the 48-byte
|
|
1122
|
+
* inline probe, so this tail ran for all of them). */
|
|
1123
|
+
for (const char* w = q; w < val_end; w++) {
|
|
1124
|
+
unsigned char c = (unsigned char)*w;
|
|
1125
|
+
has_amp |= (c == '&');
|
|
1126
|
+
has_ws |= (c == '\t' || c == '\n' || c == '\r');
|
|
1127
|
+
if (has_amp && has_ws) break;
|
|
1128
1128
|
}
|
|
1129
1129
|
}
|
|
1130
1130
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json",
|
|
3
3
|
"name": "leptris",
|
|
4
|
-
"version": "1.9.
|
|
4
|
+
"version": "1.9.397",
|
|
5
5
|
"description": "High-performance XML parser and XPath 1.0 engine in C (libleptris)",
|
|
6
6
|
"homepage": "https://github.com/leptris/leptris",
|
|
7
7
|
"license": "MIT",
|