leptris 1.9.273.0 → 1.9.273.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eac60497cce482f9c8a82023dfe9af7437aca757483c90e2a8af52c0aa9f9f40
4
- data.tar.gz: aadeb53448aabd955c1ede63cf1b468d50ab575100f0d7f3e57f1675a460f9f0
3
+ metadata.gz: 47fcca29c1cb0aacea1ff5027999e599246075f64cc810075df396e1d4e38e42
4
+ data.tar.gz: df9e0dc01a033ac4bc77664871ea3d68d93659dfc4711f4ea6bff4a26296a767
5
5
  SHA512:
6
- metadata.gz: 9d695d666df1ebec848d062cee08f7f35101f872d799ffb18ec2bc2de502b25f410fe086f02f280658c76972511e3d532b42d4bfca78c4fee5ea38d8b94cf1e2
7
- data.tar.gz: f1704c469043bf964a5b52def67dede9a719a36e42732d0e4abd818e8de6f8ef076c12c30bce82a2d39591c1951e2518fdafbb2af7f821a46eaf5ba9f973a1de
6
+ metadata.gz: 124be7f3520d656fe7a943addb4dc8761ab42d5ba7f7b2ce704303c9eca0acc736399ab99bbdb47ff5d1405f01799511355b1f8c561245fcab8eda35f341036e
7
+ data.tar.gz: 716f23a6af6e287a9f9949a2458fca1cef71c24d56057efb79ebefae3e3bf26182c846c6c7b5a90362334c03c91da981945fe85b1c207d6c8e55687cd56e5fd5
data/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ ## [1.9.273.1] - 2026-09-30
2
+
3
+ ### Added
4
+
5
+ - `ParseOptions.skip_dup_detection` /
6
+ `ParseOptions.skip_source_positions` (libleptris 1.9.272, Lane-18
7
+ round 18 Door A): the two opt-out gates for fixed bookkeeping
8
+ costs. Skipping dup detection admits duplicate attributes
9
+ silently (first wins for queries, no recover diag); skipping
10
+ source positions degrades element source columns (lines still
11
+ resolve from the buffer). Defaults are byte-identical — a zero
12
+ flag word parses exactly as before (spec pins the round-trip).
13
+
1
14
  # Changelog
2
15
 
3
16
  All notable changes to Leptris will be documented in this file.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Leptris
4
- VERSION = "1.9.273.0"
4
+ VERSION = "1.9.273.1"
5
5
  end
@@ -380,6 +380,13 @@ module Leptris
380
380
  [:leptris_plan_result], :size_t
381
381
  attach_function :leptris_plan_value_count,
382
382
  [:leptris_plan_result], :size_t
383
+ # Children snapshot (libleptris 1.9.271, #1436 Door B): one
384
+ # two-call crossing returns every child's name, type tag, and
385
+ # borrowed handle. First call with NULL buffers returns the
386
+ # names-blob capacity required; the retry fills everything.
387
+ attach_function :leptris_plan_value_children_snapshot,
388
+ [:leptris_plan_result, :pointer, :size_t, :pointer, :pointer,
389
+ :pointer], :size_t
383
390
  attach_function :leptris_plan_value_at,
384
391
  [:leptris_plan_result, :size_t], :leptris_plan_result
385
392
  attach_function :leptris_plan_value_attribute,
@@ -1351,6 +1358,8 @@ attach_function :leptris_parse_string,
1351
1358
  # #1094: &name; references stay unexpanded first-class nodes
1352
1359
  # when this flag parses (character references still expand).
1353
1360
  LEPTRIS_PARSE_KEEP_ENTITY_REFS = 4
1361
+ LEPTRIS_PARSE_SKIP_DUP_DETECTION = 8
1362
+ LEPTRIS_PARSE_SKIP_SOURCE_POSITIONS = 16
1354
1363
  NODE_DOCTYPE = 5
1355
1364
  NODE_ATTRIBUTE = 6
1356
1365
 
@@ -24,6 +24,19 @@ class Leptris::XML::ParseOptions
24
24
  # verbatim.
25
25
  KEEP_ENTITY_REFS = Leptris::XML::FFI::LEPTRIS_PARSE_KEEP_ENTITY_REFS
26
26
 
27
+ # Skip duplicate-attribute detection at parse time (libleptris
28
+ # 1.9.272, Lane-18 round 18 Door A): duplicate attributes are
29
+ # admitted silently — first wins for queries, no recover diag.
30
+ # For sources that cannot carry duplicates. Off by default.
31
+ SKIP_DUP_DETECTION = Leptris::XML::FFI::LEPTRIS_PARSE_SKIP_DUP_DETECTION
32
+
33
+ # Skip source-position bookkeeping (libleptris 1.9.272, Door A):
34
+ # element source columns degrade to zeros (line still resolves
35
+ # from the buffer). For consumers that never read positions.
36
+ # Off by default.
37
+ SKIP_SOURCE_POSITIONS =
38
+ Leptris::XML::FFI::LEPTRIS_PARSE_SKIP_SOURCE_POSITIONS
39
+
27
40
  attr_reader :flags
28
41
 
29
42
  # Recover (libleptris 1.9.0, #547): a parse failure returns an
@@ -59,6 +72,14 @@ class Leptris::XML::ParseOptions
59
72
  new(DTDATTR)
60
73
  end
61
74
 
75
+ def self.skip_dup_detection
76
+ new(SKIP_DUP_DETECTION)
77
+ end
78
+
79
+ def self.skip_source_positions
80
+ new(SKIP_SOURCE_POSITIONS)
81
+ end
82
+
62
83
  def dtdattr?
63
84
  @flags & DTDATTR != 0
64
85
  end
@@ -67,6 +88,14 @@ class Leptris::XML::ParseOptions
67
88
  @flags & KEEP_ENTITY_REFS != 0
68
89
  end
69
90
 
91
+ def skip_dup_detection?
92
+ @flags & SKIP_DUP_DETECTION != 0
93
+ end
94
+
95
+ def skip_source_positions?
96
+ @flags & SKIP_SOURCE_POSITIONS != 0
97
+ end
98
+
70
99
  def dtdattr=(value)
71
100
  if value then @flags |= DTDATTR else @flags &= ~DTDATTR end
72
101
  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.273.0
4
+ version: 1.9.273.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-29 00:00:00.000000000 Z
11
+ date: 2026-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi