Changes between Initial Version and Version 4 of Ticket #5902


Ignore:
Timestamp:
04/08/2026 05:30:32 PM (2 weeks ago)
Author:
Bruce Dubbs
Comment:

Now version 2.57.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #5902

    • Property Summary XML-Parser-2.55XML-Parser-2.57
  • Ticket #5902 – Description

    initial v4  
    11New minor version.
     2
     32.57 2026-04-07
     4
     5  Fixes:
     6    - Fix PE parsing regression that broke XML::Twig DTD
     7      round-tripping: defer parameter entity parsing activation to when a
     8      declaration handler is registered, preventing PE references from
     9      being consumed by the empty sub-parser instead of reaching the
     10      Default handler
     11    - Add regression tests for post-root character data
     12      routing and add ppport.h for XS backward compatibility macros
     13    - Add NULL check after XML_ParserCreate_MM to prevent
     14      segfault on memory allocation failure
     15    - Replace deprecated indirect object syntax in
     16      LWPExternEnt.pl (new URI(...) -> URI->new(...), etc.) for forward
     17      compatibility with Perl 5.36+ where 'use v5.36' disables the
     18      indirect feature. Also add 'use strict' to the file
     19
     20  Improvements:
     21    - Add downstream CI testing for XML::XPath, XML::DOM, and
     22      XML::Twig to catch breakage in major consumers before release
     23
     24  Maintenance:
     25    - Convert t/char_end_doc.t to Test::More; all 57 test files
     26      now consistently use Test::More
     27    - Expand CLAUDE.md with project conventions for generated
     28      files, releases, and testing
     29    - Add test coverage for load_encoding, xml_escape edge
     30      cases, and ContentModel API
     31    - Add test coverage for element_index, position_in_context,
     32      specified_attr, and setHandlers
     33    - Add test coverage for recognized_string, default_current,
     34      and original_string introspection methods
     35    - Add test coverage for context-tracking API (context,
     36      current_element, in_element, within_element, depth)
     37    - Add test coverage for parse_start/ExpatNB non-blocking
     38      parser API
     39    - Replace indirect object syntax in test files (t/decl.t,
     40      t/parament.t, t/external_ent.t)
     41    - Add test coverage for IO control character rejection in
     42      external entity paths
     43
     442.56 2026-04-02 (by Todd Rinaldo)
     45
     46  Fixes:
     47    - Skip original_string test when expat lacks
     48      XML_CONTEXT_BYTES, fixing false test failures on platforms
     49      where libexpat is compiled without XML_CONTEXT_BYTES (e.g.
     50      DragonFlyBSD system expat)
     51
     522.55 2026-04-01 (by Todd Rinaldo)
     53
     54  Fixes:
     55    - Fix struct-return ABI mismatch in XML_ExpatVersionInfo()
     56      by parsing the version string instead of using the struct return,
     57      which was corrupted when Perl and libexpat used different struct
     58      return conventions (-fpcc-struct-return vs -freg-struct-return)
     59    - Revert defaulthandle char
     60      routing and standalone string changes that broke downstream CPAN
     61      modules (XML-Twig, XML-DOM, XML-XPath)
     62    - Increase deep_nesting test depth from 600 to
     63      2048 to actually exercise the st_serial_stack reallocation code
     64      path
     65    - Update expat download URL from SourceForge to GitHub in
     66      the "expat not found" error message
     67
     68  Improvements:
     69    - Add AddressSanitizer CI job for XS memory safety
     70      to catch heap buffer overflows and use-after-free bugs
     71
     72  Maintenance:
     73    - Modernize last 4 print-ok test files (astress, namespaces,
     74      stream, skip) to Test::More with descriptive test names
     75    - Remove obsolete .travis.yml (project uses GitHub Actions)