| | 2 | |
| | 3 | 2.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 | |
| | 44 | 2.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 | |
| | 52 | 2.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) |