leptris 1.9.105.0 → 1.9.107.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6d66d917b7658ce7016fc697f5c26bc0f26a4c529a2ff4cccdc241dc43524b61
4
- data.tar.gz: 711c7ad4aa90101509bddcf8dbd9a5d456736b774e00bf4603b135b72e2b1f81
3
+ metadata.gz: 64e0e821d66fb8c8d25debf605648a6d533f432e0882f1a7cecf58b2e2a19e52
4
+ data.tar.gz: 70bb6cf535b69d0ae0c470459f183d6420e87db4a8bef12c89152f1d739c793b
5
5
  SHA512:
6
- metadata.gz: 16f738b770e66956609d5b96132e813fecd50d3d5e9839f7102d0df2b53eedda4778805d1f6a17a8931b639557d5596b49d6807969a8fb21736704581b99f726
7
- data.tar.gz: b04afa176b4fa26efff932b3b46de5e75cb1dbc99a4f2cb2ab44f35a1dc27d30f21916f303007e5a081f8738b082ac5e274e469e4d05d05b9b9cf86c6221367a
6
+ metadata.gz: eadc86a700848a3a0980d0e2af292ded87619a4bd958a0ea897a310c35caf00dfca7d4c1a997e1760d48d18872cb84458440601bc437a120131e6f4344a614b0
7
+ data.tar.gz: 9d6a4fbc7dc3b88e96c896a4b55d10583b9764979a4d7f8eb3d0a51be3422d870f758a805c566529e85c94c2bcd7512b5715479e4d1e04295ce1936ff78599ab
data/CHANGELOG.md CHANGED
@@ -5,6 +5,19 @@ 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.107.0] - 2026-09-08
9
+
10
+ ### Changed
11
+
12
+ - **Lockstep with libleptris 1.9.107** (1.9.106 → 1.9.107, no new
13
+ C surface — audit 265/265): WHATWG adoption agency (simplified
14
+ 8.2.5.4) — a formatting element closed out of order keeps its
15
+ scope for later content via cloned reopening; clones carry the
16
+ original's attributes. The html4 default keeps libxml2's
17
+ pop-away shape (byte-parity held). html5lib corpus 295 (+53%
18
+ since the two-mode split); Nokogiri parity 372 held exactly.
19
+ Three specs.
20
+
8
21
  ## [1.9.105.0] - 2026-09-08
9
22
 
10
23
  ### Changed
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.105"
11
+ LIBLEPTRIS_VERSION = "1.9.107"
12
12
 
13
13
  CMAKE_FLAGS = %w[
14
14
  -DCMAKE_BUILD_TYPE=Release
@@ -0,0 +1,34 @@
1
+ # 20 — utf8proc enablement (fn:normalize-unicode in the platform gems)
2
+
3
+ Status: IN PROGRESS — mechanics validated, engineering plan set
4
+ (owner greenlight 2026-09-08)
5
+
6
+ ## Finding (validated on this machine)
7
+
8
+ - `LEPTRIS_ENABLE_UTF8PROC=ON` builds cleanly (linked against
9
+ homebrew utf8proc 2.11.3) and is what the function needs.
10
+ - **The blocker**: FindUtf8proc links the SYSTEM library with an
11
+ ABSOLUTE install path (`/opt/homebrew/opt/utf8proc/lib/
12
+ libutf8proc.3.dylib`) — a platform gem built this way fails to
13
+ load on any machine without utf8proc at that exact path. The
14
+ platform gems' self-containment would be broken.
15
+
16
+ ## Plan (the properly-engineered greenlight)
17
+
18
+ - [ ] Build utf8proc from its release source in `rake compile`
19
+ (same tarball discipline as libleptris), per platform.
20
+ - [ ] Relocate the linkage: rebuild utf8proc with a relocatable
21
+ install name, and re-link libleptris against the LOCAL build
22
+ (not the system one) — `-DCMAKE_PREFIX_PATH` to the local
23
+ utf8proc install.
24
+ - [ ] Vendor `libutf8proc.{dylib,so,dll}` beside `libleptris.*` in
25
+ the platform gems; `ffi_lib` pre-loads utf8proc before
26
+ libleptris so dyld resolves the dependent image from the
27
+ already-loaded bundle.
28
+ - [ ] Un-pend the `normalize-unicode` sentinel spec; validate the
29
+ full platform matrix in CI before releasing (isolated
30
+ `{C}.1` release so a revert is clean).
31
+
32
+ Not landing this half-working: a utf8proc-linked gem that fails to
33
+ load on utf8proc-less machines would be worse than the missing
34
+ function.
@@ -0,0 +1,18 @@
1
+ # 21 — #147 option B: TypedData wrapper variant (owner greenlit)
2
+
3
+ Status: QUEUED (dedicated round)
4
+
5
+ The greenlight arrived ("proceed with all"); the execution plan,
6
+ in verification order:
7
+
8
+ - [ ] Minimal C ext (one file): a TypedData class holding
9
+ (pointer, document-ref) with the Node duck surface the hot
10
+ paths need — installed as a compiled gem.
11
+ - [ ] Measure the hypothesis first: held-RSS of a walked tree with
12
+ TypedData wrappers vs FFI::Pointer wrappers (predicted
13
+ ~28% of the wrapper layer, ~552 kB/doc → ~400 kB/doc).
14
+ - [ ] If validated: design the `Node.construct` factory seam to
15
+ select wrapper classes per variant (OCP — one seam, no
16
+ scatter), then the variant gem + platform matrix.
17
+ - [ ] If NOT validated (win < ~15%): record the negative result on
18
+ #147 and close option B with data.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Leptris
4
- VERSION = "1.9.105.0"
4
+ VERSION = "1.9.107.0"
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.105.0
4
+ version: 1.9.107.0
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-07 00:00:00.000000000 Z
11
+ date: 2026-09-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -88,6 +88,8 @@ files:
88
88
  - TODO.restructure/17-perf-drift-record.md
89
89
  - TODO.restructure/18-audit-spec-doubles-and-gem-contents.md
90
90
  - TODO.restructure/19-gitignore-hygiene.md
91
+ - TODO.restructure/20-utf8proc-enablement.md
92
+ - TODO.restructure/21-typeddata-variant-prototype.md
91
93
  - docs/adr/0001-lockstep-mirror.md
92
94
  - docs/adr/0002-utf8-at-the-seam.md
93
95
  - docs/adr/0003-readonly-memoization-pattern.md