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 +4 -4
- data/CHANGELOG.md +13 -0
- data/Rakefile +1 -1
- data/TODO.restructure/20-utf8proc-enablement.md +34 -0
- data/TODO.restructure/21-typeddata-variant-prototype.md +18 -0
- data/lib/leptris/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 64e0e821d66fb8c8d25debf605648a6d533f432e0882f1a7cecf58b2e2a19e52
|
|
4
|
+
data.tar.gz: 70bb6cf535b69d0ae0c470459f183d6420e87db4a8bef12c89152f1d739c793b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.
|
|
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.
|
data/lib/leptris/version.rb
CHANGED
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.
|
|
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-
|
|
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
|