leptris 1.9.90.0 → 1.9.92.1

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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +61 -21
  3. data/Rakefile +1 -1
  4. data/lib/leptris/version.rb +1 -1
  5. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9e6fd84072d6b693ffff8b857656b000d664f3ad7b8a4faddd8f091135a967b6
4
- data.tar.gz: 20acc1474418cfb7bb4565e337489e68b2bb34152cda4a5c59496f12c9f9695f
3
+ metadata.gz: 22a6c5c9f6c1936f8326f382bb7af70943d45573f5dd5f2dcf8f01715dda219f
4
+ data.tar.gz: 3027ff550a0d310c5030705447d1d6765571ee23f9a9b480cfa6e726461e629c
5
5
  SHA512:
6
- metadata.gz: e867dd48991f9f7979b9e883554b0fc86da6e28eeb48c3dba494ffeea9c87aeafa70a3d83411e1cd4ededd2b42036ab383c7a1779c5105cd36f709d9686dee8c
7
- data.tar.gz: 68b9d91d9449b2ed61e395b0244d8d9f302d83a866b2e7f40909582812f2c9a4fbaaf25deee4f25b6c0456198441fc1815ea8104e2e3ccfc441c995d98ba243b
6
+ metadata.gz: 83515167b1d41a688a9923a2442325087b28f0aad3aa82d767e0ce100c83fbe9c6a76c59a3bc71244830b3a8247fe251dcd5169b7250954cfa8e6711caed79df
7
+ data.tar.gz: deacd256531c9509174349a61bf5a272061549967a94cb7cc3eaead403923f5c5e1ec4804a05082dfa1c0619bf99f0e709a5c96c819b6a2ade9016309297e21f
data/CHANGELOG.md CHANGED
@@ -5,33 +5,73 @@ All notable changes to Leptris will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.9.92.1] - 2026-09-06
9
+
10
+ ### Changed — hotfix: replaces libleptris 1.9.93
11
+
12
+ - **Re-pinned to libleptris 1.9.92** (from 1.9.93): the 1.9.93
13
+ predicate-pattern dispatch index silently drops templates past
14
+ 96 distinct literal patterns (leptris/leptris#875 — wrong
15
+ transform output with no error). 1.9.92 predates the index and
16
+ dispatches correctly for any pattern count; the #875 sentinel
17
+ spec un-pends (97/97, 120/120 verified on this build) and stays
18
+ as the guard. **1.9.93.0 and 1.9.93.1 are yanked.**
19
+ - The honest cost: predicate-pattern dispatch returns to the
20
+ 1.9.92 ladder (~102 ms on the 120-template fixture vs 1.9.93's
21
+ 2.65 ms — but with correct output). Everything else from the
22
+ 1.9.88-1.9.92 perf wave (bare-name dispatch indexes, the
23
+ append-tail cache — 3.6x Nokogiri on entity-laden HTML) is
24
+ retained.
25
+ - When the #875 fix releases upstream, the next `{C}.0` re-adopts
26
+ the index and re-runs this exact fixture as the gate.
27
+
28
+ ## [1.9.93.1] - 2026-09-06
29
+
30
+ ### Changed
31
+
32
+ - **Lockstep with libleptris 1.9.93** — #866: predicate-pattern
33
+ dispatch indexes (name keys + literal @attr='value' index). The
34
+ reported fixture drops 82 → 2ms per transform (40x; ~28x ahead
35
+ of libxslt); the 2000-book scorecard is 3.93ms.
36
+
37
+ ## [1.9.92.0] - 2026-09-05
38
+
39
+ ### Changed
40
+
41
+ - **Lockstep with libleptris 1.9.91–1.9.92** — #659 Nokogiri
42
+ parity reference (372/1555 exact-match floor; WHATWG-conformance
43
+ direction recorded) and the append-tail cache fix: entity-laden
44
+ HTML 291ms → 42ms per 1.3MB page (6.8x), now at par to 1.15x
45
+ AHEAD of libxml2 — no sub-1x HTML parse shape remains.
46
+
8
47
  ## [1.9.90.0] - 2026-09-05
9
48
 
10
49
  ### Changed
11
50
 
12
- - **Lockstep with libleptris 1.9.90** (1.9.88 1.9.90; no new C
13
- surface the audit holds at 261/261):
14
- - 1.9.88: template dispatch indexes (#682) — named-template
15
- hash, per-mode candidate buckets, bare-Name fast path.
16
- - 1.9.89: `fn:analyze-string` group spans fixed (leptris/leptris
17
- #857): pmatch offsets are subject-relative but were applied
18
- from the match start, and excess regexec slots read stale
19
- stack data — single-group matches leaked the following
20
- non-match into group values. Two specs pin the corrected
21
- shapes (`12`, not `12cd`) and the call-order independence.
22
- - 1.9.90: html5lib tree-construction corpus harness upstream
23
- (193/1753 passing with a red-list snapshot; the implied-head /
24
- foster-parenting bucket shapes the next HTML slices).
51
+ - **Lockstep with libleptris 1.9.90** #659: the html5lib
52
+ tree-construction corpus harness (vendored snapshot, falsifiable
53
+ pass-count floor, red-list) and the empty-shape-inputs fix
54
+ (stray-end-only / doctype-only / empty input parse to the empty
55
+ document instead of failing).
25
56
 
26
- ### Fixed
57
+ ## [1.9.89.0] - 2026-09-05
58
+
59
+ ### Changed
60
+
61
+ - **Lockstep with libleptris 1.9.89** — #857: fn:analyze-string
62
+ group spans (subject-relative pmatch offsets + exact nmatch —
63
+ single-group regexes leaked the following non-match, and results
64
+ were call-order dependent).
65
+
66
+ ## [1.9.88.0] - 2026-09-05
67
+
68
+ ### Changed
27
69
 
28
- - **Dispatch perf observation filed upstream (leptris/leptris
29
- #866)**: predicate patterns (`match="item[@k='N']"` the common
30
- real-world shape) still pay the candidate ladder after 1.9.88;
31
- measured 102.4 ms vs Nokogiri's 58.2 ms on a 120-template /
32
- 2400-element fixture (bare names ride the fast path). Suggested
33
- per-Name sub-bucketing; offered to re-measure any experimental
34
- build.
70
+ - **Lockstep with libleptris 1.9.88** #682 template dispatch
71
+ indexes: named-template hash, per-mode candidate buckets, and a
72
+ bare-Name pattern fast path. Template-heavy dispatch 10.21
73
+ 5.56 ms per transform (1.83x); gap to in-process lxml/libxslt
74
+ narrows 3.27x 1.78x.
35
75
 
36
76
  ## [1.9.87.0] - 2026-09-05
37
77
 
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.90"
11
+ LIBLEPTRIS_VERSION = "1.9.92"
12
12
 
13
13
  CMAKE_FLAGS = %w[
14
14
  -DCMAKE_BUILD_TYPE=Release
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Leptris
4
- VERSION = "1.9.90.0"
4
+ VERSION = "1.9.92.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: leptris
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.90.0
4
+ version: 1.9.92.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-09-05 00:00:00.000000000 Z
11
+ date: 2026-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi