leptris 1.9.177.0 → 1.9.178.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: 9144461ce7cc58b12f57c1a5c497336f5712568654db476342b32b9d6d35dc93
4
- data.tar.gz: a6fe5f35bf5891c3794f8bf5533c115b26b9eb19545d361aeafcb3b9b1935af0
3
+ metadata.gz: 6ba4c2ede4f3a1c625693e1daca604ba31bdaf23d830a9d9a544c5b7aa20e53a
4
+ data.tar.gz: 695077502147180c80396c2bfa2e153f91819efc73148f1cf6d815632d241af6
5
5
  SHA512:
6
- metadata.gz: ee1362b97425fd76000f28d3232badcb7dd23d979e992cfd296ca17ee6bddeb716bd93b01830f22fd17103475cbfa4eccbcc918691625982fe4b79ca760de897
7
- data.tar.gz: e1079b8c90d48d43e17d7ad3e7ebb55a8cbf87246cd61d0eed9eb2a44fc7c3cc91e5f2c034843ee1914f818d1c686b9596b433f96f2e22795fe02a005a75c21b
6
+ metadata.gz: e4a68c3001aac1ddabc0e767cae7adb968093d20b0795cc520cd7f84d1b968d67d9b5dcffa7bf443a788ce92cfc9ec65315ff047f9dff820c712b35534b46f4c
7
+ data.tar.gz: 941f104c501e25036fcfb7dfb391afff39424f04694492ca957b79c019c7f11710717d1dda6426ca53f1869cfbad68ced97515de82fc0504e9277c17ed567a19
data/CHANGELOG.md CHANGED
@@ -5,6 +5,30 @@ 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.178.0] - 2026-09-16
9
+
10
+ ### Changed — libleptris 1.9.177 → 1.9.178 (lockstep)
11
+
12
+ - **#1113**: descriptor plan walk — collection wrappers now carry
13
+ the producing row's wire_name/type_tag (spec-pinned).
14
+ - **#1115 / #1118**: descriptor plan surfaces — ChildPlan gains
15
+ rule-level `ns_form` (+ `ns_uri`) for mixed-qualification
16
+ schemas (additive to the frozen v1 ABI; the binding accepts
17
+ `:ns` on child rows and the trailing struct fields are
18
+ populated by `pack_plans`), and every value kind carries the
19
+ source node's byte offset (the accessor's contract widened;
20
+ readers respond with the engine's position).
21
+ - **#1117**: C14N 1.1 ground truth — whitespace-only PI data and
22
+ document-level separators (lutaml-model parity corpus).
23
+ - **#1111 / #659 / #1107**: xpath user_data, HTML corpus slices
24
+ (NUL/foreign-rules + frameset-ok + frameset-conversion +
25
+ scanner quote-parity), and CLI specs in out-of-tree builds.
26
+
27
+ ### Added
28
+
29
+ - The trailing `ns_form` + `pad0` + `ns_uri` fields on
30
+ `Leptris::XML::FFI::ChildPlan` (the lockstep extension).
31
+
8
32
  ## [1.9.177.0] - 2026-09-16
9
33
 
10
34
  ### Changed — libleptris 1.9.174 → 1.9.177 (lockstep)
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.177"
11
+ LIBLEPTRIS_VERSION = "1.9.178"
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Leptris
4
- VERSION = "1.9.177.0"
4
+ VERSION = "1.9.178.0"
5
5
  end
@@ -150,6 +150,18 @@ class Leptris::XML::Descriptor
150
150
  cp[:kind] = kind_code(row[:kind] || :scalar)
151
151
  cp[:type_tag] = row[:type_tag] || 0
152
152
  cp[:child_plan_index] = row[:child_plan_index] || -1
153
+ # Rule-level ns form (libleptris 1.9.178, #1115): siblings
154
+ # under one parent can require different URIs when set;
155
+ # defaults to NONE for backward compatibility.
156
+ cp[:ns_form] =
157
+ case row[:ns]
158
+ when :any then Leptris::XML::FFI::PLAN_NS_ANY
159
+ when Hash then Leptris::XML::FFI::PLAN_NS_EXACT
160
+ else Leptris::XML::FFI::PLAN_NS_NONE
161
+ end
162
+ cp[:ns_uri] =
163
+ row[:ns].is_a?(Hash) ?
164
+ anchor_string(anchors, row[:ns].fetch(:exact)) : nil
153
165
  end
154
166
  ep[:child_count] = children.size
155
167
  ep[:child_plans] = child_memory
@@ -209,7 +209,12 @@ module Leptris
209
209
  layout :wire_name, :pointer,
210
210
  :kind, :uint8,
211
211
  :type_tag, :uint8,
212
- :child_plan_index, :int32
212
+ :child_plan_index, :int32,
213
+ # libleptris 1.9.178 (#1114/#1115): rule-level ns
214
+ # forms on ChildPlan (additive to the frozen v1 ABI).
215
+ :ns_form, :uint8,
216
+ :pad0, :uint8,
217
+ :ns_uri, :pointer
213
218
  end
214
219
  class ElementPlan < ::FFI::Struct
215
220
  layout :element_name, :pointer,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: leptris
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.177.0
4
+ version: 1.9.178.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.