XML-Parser

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

    - PR #225 Replace indirect object syntax in test files (t/decl.t,
      t/parament.t, t/external_ent.t)
    - PR #224 Add test coverage for IO control character rejection in
      external entity paths

2.56 2026-04-02 (by Todd Rinaldo)

  Fixes:
    - PR #223 Skip original_string test when expat lacks
      XML_CONTEXT_BYTES, fixing false test failures on platforms
      where libexpat is compiled without XML_CONTEXT_BYTES (e.g.
      DragonFlyBSD system expat)

2.55 2026-04-01 (by Todd Rinaldo)

  Fixes:
    - PR #221 Fix struct-return ABI mismatch in XML_ExpatVersionInfo()
      by parsing the version string instead of using the struct return,
      which was corrupted when Perl and libexpat used different struct
      return conventions (-fpcc-struct-return vs -freg-struct-return)
    - PR #214 GH #211 GH #212 GH #213 Revert defaulthandle char
      routing and standalone string changes that broke downstream CPAN
      modules (XML-Twig, XML-DOM, XML-XPath)
    - PR #216 GH #215 Increase deep_nesting test depth from 600 to
      2048 to actually exercise the st_serial_stack reallocation code
      path (the GH #39 fix)
    - PR #218 Update expat download URL from SourceForge to GitHub in
      the "expat not found" error message

  Improvements:
    - PR #220 GH #215 Add AddressSanitizer CI job for XS memory safety
      to catch heap buffer overflows and use-after-free bugs

  Maintenance:
    - PR #219 Modernize last 4 print-ok test files (astress, namespaces,
      stream, skip) to Test::More with descriptive test names
    - PR #217 Remove obsolete .travis.yml (project uses GitHub Actions)

2.54 2026-03-27 (by Todd Rinaldo)

  Fixes:
    - PR #196 Plug XS memory leaks on error paths in Expat.xs
      (externalEntityRef, parse_stream, ParserCreate)
    - PR #204 Add defensive NULL checks in Expat.xs to prevent crashes
      on memory exhaustion and undefined behavior on short input lines
    - PR #203 Add explicit package main after inline package declarations
      in test files to clarify scope

  Improvements:
    - PR #207 GH #205 Add GitHub Actions workflow to auto-create GitHub
      Releases on tag push, enabling downstream notification via
      GitHub's release watch
    - PR #209 Update AUTHORS POD in Parser.pm and Expat.pm to reflect
      full maintainer history
    - PR #210 Add CI badge to POD via =for markdown directive so it
      survives README.md regeneration
    - Rename README to README.md and regenerate from POD

  Maintenance:
    - PR #208 Modernize 10 legacy test files from print-ok style to
      Test::More (cdata, finish, deep_nesting, xml_escape, partial,
      char_end_doc, current_length, combine_chars, utf8_stream, defaulted)

2.53 2026-03-25 (by Todd Rinaldo)

  Fixes:
    - PR #202 GH #201 Fix detection of bare glob filehandles (*FH) in
      Expat::parse; previously only glob references were recognized

  Maintenance:
    - PR #198 Modernize encoding.t from print-ok style to Test::More
      and expand coverage
    - PR #197 Modernize styles.t from Test to Test::More and expand
      coverage
    - Ignore Mac OS metadata files (.DS_Store) in .gitignore

2.52 2026-03-24 (by Todd Rinaldo)

  Fixes:
    - PR #193 Restrict Subs style to package-local subs only; previously
      UNIVERSAL::can() walked the inheritance tree, potentially dispatching
      to inherited base class methods on element names like <connect/>

  Improvements:
    - PR #195 Require perl 5.008 minimum and remove pre-5.008 compat code
      (dead polyfills, tied-handle branch, ExtUtils::Liblist guard)

  Documentation:
    - PR #176 GH #173 Explain why the empty sub-parser parse is needed in
      externalEntityRef for parameter entity processing

  Maintenance:
    - PR #194 Remove dead code: Built_In_Styles hash, $have_File_Spec,
      newSVpvn/ERRSV compat guards
    - PR #192 GH #190 Log expat version in all CI jobs for easier
      diagnosis of platform-specific failures
    - Add AI_POLICY.md for transparency

2.51 2026-03-20 (by Todd Rinaldo)

  Fixes:
    - PR #184 GH #182 Fix compile warnings from Fedora gcc: unhandled enum
      value in switch and uninitialized variables in parse_stream
    - PR #186 GH #183 Add explicit case labels for XML_CTYPE_EMPTY and
      XML_CTYPE_ANY in generate_model switch to fix -Wswitch on BSD/clang
    - PR #175 GH #174 Add XML_DTD/XML_GE compile-time guards to AllocTracker
      and BillionLaughs XS bindings to fix warnings when expat lacks these flags
    - PR #187 GH #185 Require proper declaration in AllocTracker feature
      detection to prevent implicit function declaration on BSD

  Improvements:
    - PR #189 GH #188 Add tests for XS functions modified in PR #184 covering
      XML_ErrorString, XML_GetBase/XML_SetBase, and generate_model

  Maintenance:
    - PR #181 GH #180 Add Fedora 43 container job to CI test matrix
    - PR #178 Add BSD testing (FreeBSD, OpenBSD, NetBSD) to CI
    - PR #179 Add no-lwp CI job to validate test suite without LWP::UserAgent
    - Update MANIFEST

2.49 2026-03-19 (by Todd Rinaldo)

Changes  view on Meta::CPAN

	  and I'm not sure to whom credit should be given.
	- The file_ext_ent_handler now opens a file handle instead of
	  reading the entire entity at once.
	- Merged patches supplied by Larry Wall to (for perl 5.6 and beyond)
	  tag generated strings as UTF-8, where appropriate.
	- Fixed a bug in xml_escape reported by Jerry Geiger <jgeiger@rios.de>.
	  It failed when requesting escaping of perl regex meta-characters.
	- Laurent Caprani <caprani@pop.multimania.com> reported a bug in the
	  Proc handler for the Debug style.
	- <chocolateboy@usa.net> sent in a patch for the element index
	  mechanism. I was popping the stack too soon in the endElement fcn.
	- Jim Miner <jfm@winternet.com> sent in a patch to fix a warning in
	  Expat.pm.
	- Kurt Starsinic pointed out that the eval used to check for string
	  versus IO handle was leaving $@ dirty, thereby foiling higher
	  level exception handlers
	- An expat question by Paul Prescod <paul@prescod.net> helped me
	  see that exeptions in the parse call bypass the Expat release method,
	  causing memory leaks.
	- Mark D. Anderson <mda@discerning.com> noted that calling
	  recognized_string from the Final method caused a dump. There are
	  a bunch of methods that should not be called after parsing has
	  finished. These now have protective if statements around them.
	- Updated canonical utility to conform to newer version of Canonical
	  XML working draft.
2.27 Sat Sep 25 18:26:44 EDT 1999
	- Corrected documentation in Parser.pm
	- Deal with XML_NS and XML_BYTE_ORDER macros in Expat/Makefile.PL
	- Chris Thorman <chris@thorman.com> noted that "require 'URI::URL.pm'"
	  in Parser.pm was in error (should be "require 'URI/URL.pm'")
	- Andrew McNaughton <andrew@scoop.co.nz> noted "use English" and
	  use of '$&' slowed down regex handling for whole application, so
	  they were excised from XML::Parser::Expat.
	- Work around "modification of read-only value" bug in perl 5.004
	- Enno Derksen <enno@att.com> reported that the Doctype handler
	  wasn't being called when ParseParamEnt was set.
	- Now using Version 19990728 of expat, with local patches.
	- Got rid of shadow buffer
	  o  thus fixed the error reported by Ashley Sanders
	     <a.sanders@mcc.ac.uk>
	  o  and removed ExpatNB limitations that Peter Billam
             <music@pjb.com.au> noted.
	- Vadim Konovalov <vkonovalov@lucent.com> had a problem compiling
	  for multi-threading that was fixed by changing Perl_sv_setsv to
	  sv_setsv.
	- Added new Expat method: skip_until(index)
	- Backward incompatible change to method xml_escape: to get former
	  behavior use $xp->xml_escape($string, '>', ...)
	- Added utility, canonical, to samples
2.26 Sun Jul 25 19:06:41 EDT 1999
	- Ken Beesley <ken.beesley@xrce.xerox.com> discovered that
	  declarations in the external subset are not sent to registered
	  handlers when there is no internal subset.
	- Fixed parse_dtd to work when entity values or attribute defaults
	  are so large that they might be broken across multiple calls to
	  the default handler.
	- For lwp_ext_ent_handler, use URI::URL instead of URI so that old
	  5.004 installations will work with it.
2.25 Fri Jul 23 06:23:43 EDT 1999
	- Now using Version 1990709 of expat. No local patches.
	- Numerous people reported a SEGV problem when running t/cdata
	  on various platforms and versions of perl. The problem was
	  introduced with the setHandlers change. In some cases an
	  un-initialized value was being returned.
	- Added an additional external entity handler, lwp_ext_ent_handler,
	  that deals with general URIs. It is installed instead of the
	  "file only" handler if the LWP package is installed.
2.24  Thu Jul  8 23:05:50 EDT 1999
	- KangChan Lee <dolphin@comeng.chungnam.ac.kr> supplied the
	  EUC-KR encoding map.
	- Enno Derksen <enno@att.com> forwarded reports by Jon Eisenzopf
	  <eisen@pobox.com> and Stefaan Onderbeke <onderbes@bec.bel.alcatel.be>
	  about a core dump using XML::DOM. This was due to a bug in the
	  prolog parsing part of XML::Parser.
	- Loic Dachary <loic@ceic.com> discovered that changing G_DISCARD to
	  G_VOID introduced a small memory leak. Changed G_VOID back to
	  G_DISCARD.
	- As suggested by Ben Holzman <bholzman@earthlink.net>, the
	  setHandlers methods of both Parser and Expat now return lists that
	  consist of type, handler pairs that correspond to the input, but
	  the handlers returned are the ones that were in effect prior to
	  the call.
	- Now using Version 19990626 of expat with a local patch (provided
	  by James Clark.)
	- Added option ParseParamEnt. When set to a true value, parameter
	  entities are parsed and the external DTD is read (unless standalone
	  set to "Yes" in document).
2.23 Mon Apr 26 21:30:28 EDT 1999
	- Fixed a bug in the ExpatNB class reported by Gabe Beged-Dov
	  <begeddov@jfinity.com>. The ErrorMessage attribute wasn't
	  being initialized for ExpatNB. This should have been done in
	  the Expat constructor.
	- Applied patch provided by Nathan Kurz <nate@valleytel.net> to
	  fix more perl stack manipulation errors in Expat.xs.
	- Applied another patch by Nathan to change perl_call_sv flag
	  from G_DISCARD to G_VOID for callbacks, which helps performance.
	- Murata Makoto <murata@apsdc.ksp.fujixerox.co.jp> reported a
	  problem on Win32 platforms that only showed up when UTF-16 was
	  being used. The needed call to binmode was added to the parsefile
	  methods.
	- Added documentation for release method that was added in release
	  2.20 to Expat pod. (Point raised by <mookie@undef.com>)
	- Now using Version 19990425 of expat. No local patches.
	- Added specified_attr method and made ineffective the is_defaulted
	  method.
2.22 Sun Apr  4 11:47:25 EDT 1999
	- Loic Dachary <loic@ceic.com> reported a core dump with a small
	  file with a comment that wasn't properly closed. Fixed in expat
	  by updating positionPtr properly in final call of XML_Parse.
	  (Reported to & acknowledged by James Clark.)
	- Made more fixes to Expat.xs position calculation.
	- Loic Dachary <loic@ceic.com> provided patches for fixing a
	  memory growth problem with large documents. (Garbage collection
	  wasn't happening frequently enough.)
	- As suggested by Gabe Beged-Dov <begeddov@jfinity.com>, added
	  a non-blocking parse mechanism:
		- Added parse_start method to XML::Parser, which returns a
		  XML::Parser::ExpatNB object.
		- Added XML::Parser::ExpatNB class, which is a subclass of
		  Expat and has the additional methods parse_more & parse_done
	- Made some performance tweaks as suggested by performance thread



( run in 0.500 second using v1.01-cache-2.11-cpan-e1769b4cff6 )