1Revision history for Parse-RecDescent 2 31.00 Mon Aug 11 13:17:13 1997 4 5 - original version 6 7 81.01 Mon Sep 8 18:04:14 EST 1997 9 10 - changed "quotemeta" to "quotemeta $_" in Text::Balanced 11 to workaround bug in Perl 5.002 and 5.003 12 13 141.10 Tue Sep 30 14:51:49 EST 1997 15 16 - fixed fatal bug in tracing code 17 18 - added m<delim>...<delim> format for regex tokens 19 20 - added support for trailing modifiers (/.../gimsox) in regex tokens 21 22 - added $thisline variable 23 24 251.20 Thu Oct 2 11:46:57 EST 1997 26 27 - fixed handling of trailing regex modifiers (now no whitespace allowed 28 before between last delimiter and first modifier) 29 30 - added trace diagnostic for failure/success of actions 31 (demystifies failures caused by an action returning undef) 32 33 - added context for "Matched rule..." trace 34 35 - added a test so that an integer value (N>1) in the 36 $::RD_TRACE variable now truncates (to N characters) all 37 contexts reported in any trace 38 39 - added "start-up" actions: actions appearing before the first rule 40 were previously an error. They are now executed (once) at 41 the start of the parser's namespace. 42 43 441.21 Sat Oct 4 17:12:23 EST 1997 45 46 - modified truncation of context in trace diagnostics (successful 47 matches now report first N/2 and last N/2 chars, instead of first N) 48 49 - fixed incorrect version number in Balanced.pm 50 51 521.22 Tue Oct 7 11:53:27 EST 1997 53 54 - fixed lurking trace problem with certain pathological regexes 55 56 - fixed bug in generation of special namespaces (this was serious 57 as it prevented the use of more than one alternation in a parser, 58 as well as preventing the use of more than one parser in a script! 59 60 611.23 Fri Oct 17 10:15:22 EST 1997 62 63 - fixed error message generation for <error?:msg> directives 64 65 - fixed error message handling of empty productions 66 67 - fixed handling of multi-line start-up actions 68 69 - removed spurious debugging message for implicit subrule generation 70 71 - changed naming scheme for alternations (pseudo-rule's name now 72 describes location of alternation exactly) 73 74 - added support for repetition specifiers on alternations. 75 76 - Text::Balanced::extract_.... altered to honour the context in 77 which they are called (see Balanced.pod for details). 78 79 801.24 81 - fixed minor problem in tracing code (context string now correctly 82 reported for actions) 83 84 - added explicit namespace declaration at beginning of generated 85 code, to ensure that any "start code" is declared in the 86 appropriate namespace. 87 88 - fixed left recursion check on empty productions 89 90 - added $::RD_AUTOSTUB flag and associated autostubbing behaviour 91 (see new section - "Autostubbing" - in RecDescent.pod) 92 93 - eliminated hierarchical precedence between $::RD_HINT and 94 $::RD_TRACE. Enabling tracing now does _not_ automatically 95 turn on hinting (although error and warning messages are 96 still automatically enabled). 97 98 - fixed bug in Text::Balanced. Division now correctly handled 99 in code blocks. 100 101 1021.25 Mon Feb 09 12:19:14 EST 1998 103 104 - Resynchronized numbering schemes for RecDescent and Balanced. 105 106 1071.26 Wed Feb 25 13:52:15 EST 1998 108 109 - Fixed bug (and inefficiency) in <resync:pattern> directive. 110 111 - Improved checking of regexes within grammars 112 113 - Added subrule arguments (major change to internal grammar parser) 114 115 - Added <matchrule:...> directive 116 117 - started work on Compile() option (not complete yet - do not use!) 118 119 - Made generated code "use strict" 120 121 - Fixed bug which incorrectly warned against items 122 following a <error?> directive. 123 124 - Improved $thisline (added assignment and resync) 125 126 - Fixed expectation messages for subrules 127 128 - Rearranged tar file to co-operate with CPAN.pm 129 130 1311.30 Fri May 22 05:52:06 1998 132 133 - Added <rulevar> directive 134 135 - Added culling of productions starting with <reject> or <rulevar> 136 137 - Cleaned up and improved format (and speed) of tracing code 138 139 - Added warning levels 140 141 - Optimized generation of token separator checking code. 142 143 - Fixed bug encountered when parsing a literal string 144 145 - Added $::RD_AUTOACTION to simplify standard actions at the 146 end of each production 147 148 1491.31 Fri May 22 06:11:26 1998 150 151 - Fixed bug in naming archive file 152 153 1541.33 Fri May 22 06:15:26 1998 155 156 1571.35 Wed Jun 24 09:57:02 1998 158 159 - Removed "foreach my $var ( @list )" constructs, 160 which were biting users with perl 5.003 and earlier. 161 162 - Fixed bug calling &Parse::RecDescent::toksepcode 163 instead of &Parse::RecDescent::Rule::toksepcode 164 165 - Changed grammar so that colons in rule definitions 166 must appear on the same line as the rule name 167 (as documented). Added an explicit error message 168 when this is not the case. 169 170 - Added $thiscolumn, which indicates the current 171 column at any point in the parse. 172 173 - Added $thisoffset, which indicates the absolute 174 position in the original text string at any 175 point in the parse. 176 177 - Added $prevline and $prevcolumn, which indicate 178 line and column of the last char of the last 179 successfully matched item. 180 181 - Added @itempos which provides: 182 183 $itempos[$n]{offset}{from} 184 $itempos[$n]{offset}{to} 185 $itempos[$n]{line}{from} 186 $itempos[$n]{line}{to} 187 $itempos[$n]{column}{from} 188 $itempos[$n]{column}{to} 189 190 corresponding to each $item[$n]. 191 See new documentation. 192 193 - Several trivial lexical changes to make xemacs happy 194 195 1961.41 Mon Aug 10 14:52:53 1998 197 198 - Enhanced POD in response to user feedback 199 200 - Fixed subtle bug in Text::Balanced::extract_codeblock. 201 It only bit when '(?)' appeared in implicit subrules 202 203 - Added ability to pass args to the start-rule. 204 205 2061.42 ???? 207 208 - Added a test.pl 209 210 - Modified behaviour of repetitions, so that the results 211 of repeated subrules which succeed but don't consume are 212 preserved (at least up to the minimal number of repetitions) 213 214 - Fixed bug: @itempos now not incorrectly reset if grammar 215 contained alternations 216 217 - Fixed bug: Embedded unmatched '}' in regex tokens now works 218 correctly 219 220 - Miscellaneous tweaks to RecDescent.pod (e.g. updated meta-grammar) 221 222 2231.43 Sat Aug 15 06:43:46 1998 224 225 - Resychronized Balanced.pm versions 226 227 2281.50 Thu Aug 27 09:29:31 1998 229 230 - Changed <rulevar:...> parser to use extract_codeblock, so as to 231 handle embedded '>' chars (e.g. <rulevar: $tmp = $self->{tmp}> ) 232 233 - Added <defer:...> to allow deferred actions which are 234 only executed if they are part of a rule that eventually succeeds. 235 (see the new section under "Directives" in RecDescent.pod) 236 237 - Fixed matching interpolated literals (was broken when literal 238 contained pattern metacharacters) 239 240 2411.51 Thu Aug 27 16:25:08 1998 242 243 - Maintenance release, rectifying bad soft links in the 1.50 244 distributions 245 246 2471.60 Wed Oct 21 09:44:15 1998 248 249 [Never released] 250 2511.61 Wed Oct 21 11:06:19 1998 252 253 - Added <token:...> directive for supporting (future) token-stream 254 parsing (see pod) 255 256 - Added feature that data is consumed if passed as a reference 257 (see pod) 258 259 - Fixed bug in autogenerated errors: now ignores directives 260 261 - Modified behaviour of <defer> directive so that deferred 262 actions only executed if total parse succeeds (i.e. returns 263 a defined value) 264 265 - Made error messages "anti-deferred". That is, only those 266 errors invoked in paths that eventually caused a parse 267 to fail are printed - see documentation. 268 269 - Miscellaneous fixes for Text::Balanced subroutines 270 271 - Made private namespaces inherit Parse::RecDescent namespace 272 (leads to more intuitive behaviour when calling methods 273 of $thisparser) 274 275 - *** NON-BACKWARDS COMPATIBLE CHANGE! *** 276 Changed the behaviour of token separator specification. 277 Now uses <skip:...> directive. See pod for new details. 278 279 2801.62 Wed Dec 9 11:26:29 1998 281 282 - Reinstated missing $prevoffset variable 283 284 - Corrected a possible bug with autoactions (thanks Mitchell) 285 286 - *** IMPORTANT CHANGE *** 287 $::RD_WARN now initialized 3 by default. Serious but 288 non-fatal errors are automatically reported, unless you 289 explicitly undefine $::RD_WARN. 290 291 - Fixed bug in AUTOLOADing non-method subs defined in 292 package Parse::RecDescent (thanks Mario) 293 294 2951.63 Thu Mar 25 09:13:21 1999 296 297 - Rewrote documentation to replace the concept of a 298 token separator with that of a token prefix. 299 300 - Fixed obscure bug in replacement of rules containing 301 implicit subrules (alternations). Thanks Craig. 302 303 3041.64 Sun Mar 28 05:44:14 1999 305 306 - Synchronized with Text::Balanced version 307 308 - Fixed obscure bug in the treatment of escaped backslashes 309 in literal tokens. Thanks Matthew. 310 311 312 3131.65 Wed May 19 12:35:05 1999 314 315 - Added <leftop:...> and <rightop:...> directives 316 317 - Added level 2 warning and autoreject for lone <error?> 318 directive in a production. 319 320 3211.66 Fri Jul 2 13:35:06 1999 322 323 - Improved error message when an action fails to parse 324 (Thanks Tuomas). 325 326 - Allowed predefined subroutines in package Parse::RecDescent 327 to be used as rules in grammars 328 329 - Changed error report on bad regexes to level 3 warning, since 330 compile-time interpolation failure may falsely invalidate 331 regexes that would work at run-time. 332 333 3341.70 Fri Oct 8 14:15:36 1999 335 336 - Clarified use of "eofile" idiom in POD file 337 Clarified meaning of "free-form" in description of grammars 338 Fixed <resync> examples, which were invalidated by 339 earlier change in semantics of <error>. (Thanks Knut). 340 341 - Added grammar precompiler (see documentation) 342 343 - Tweaked message for <reject> optimization. 344 345 - Fixed bug when using '@' as a terminal (thanks Abigail) 346 347 - Fixed nasty bug when $return set to zero 348 349 - Added <score> and <autoscore> directives (see documentation) 350 351 352 3531.77 Mon Nov 22 06:11:32 1999 354 355 - IMPORTANT: Now requires 5.005 or better. 356 357 - Added <perl_quotelike>, <perl_codeblock>, and <perl_variable> 358 directives (see documentation) 359 360 - Added <autotree> directive (see documentation) 361 362 - Added %item hash (see documentation - thanks Stef!) 363 364 - Tweaked internal parser in line with changes to Text::Balanced 365 366 - Added <nocheck> directive to switch off recursion checking and 367 other checks in stable grammars (see documentation). 368 369 - Refined code generation WRT positional variables ($thisoffset, etc) 370 371 - Added positional entries for %item (see documentation) 372 373 - Fixed bug with (missing) start actions under precompiler (thanks Theo) 374 375 3761.78 Mon Mar 20 12:03:17 2000 377 378 - Fixed error messages and documentation for 379 Parse::RecDescent::Precompile (thanks Jim) 380 381 - Moved demos to /demo subdirectory 382 383 - Added tutorial in /tutorial subdirectory 384 385 - Added <autotree> directive 386 387 - Added (s /sep/) notation (thanks Greg) 388 389 - Circumvented \G and /gc calamities 390 391 - Added more comprehensible error message when parser invoked 392 through non-existent startrule (thanks Jeff) 393 394 - Fixed serious bug with creating new parsers after existing 395 ones had failed. (Thanks Paul) 396 397 - Fixed problem with nested implicit subrules (thanks Marc). 398 399 4001.79 Mon Aug 21 11:27:39 2000 401 402 - Pod tweak (thanks Abigail) 403 404 - Documented need to use do{..} within some <reject:...> 405 directives (thanks Paul) 406 407 - Added Save method 408 409 - Fixed bug that was preventing precompiled parsers being 410 subsequently extended (thanks Jeff). 411 412 - Changed keys used by %item. Now uses "named positionals" 413 rather that simple positionals for non-subrule items 414 (see documentation) 415 416 - Added trimmer for surrounding whitespace in matchrules. 417 418 - Squelched bug in (not) handling invalid directives (thanks John) 419 420 4211.80 Sat Jan 20 05:02:35 2001 422 423 - Fixed Save so that saved parsers can still be used after saving 424 (thanks Supun) 425 426 - Fixed bug in line number tracking (thanks Theo) 427 428 - Fixed bug in (s /pat/) shorthand (thanks Julien) 429 430 - Improved docs on <rulevar> (thanks Steve) 431 432 4331.90 Tue Mar 25 01:17:38 2003 434 435 436 - BACKWARDS INCOMPATIBLE CHANGE: The key of an %item entry for 437 a repeated subrule now includes the repetition specifier. 438 For example, in: 439 440 sentence: subject verb word(s) 441 442 the various matched items will be stored in $item{'subject'}, 443 $item{'verb'}, and $item{'word(s)'} (i.e. *not* in $item{'word'}, 444 as it would have been in previous versions of the module). 445 (thanks Anthony) 446 447 - Changed argument passing behaviour. If no arguments specified 448 for subrule, it is now passed current rule's @arg instead. To 449 get old (no arguments) behaviour use: subrule[] 450 451 - Fixed bug in <reject> handling: failed to reject if $return 452 had been set. (thanks Nick) 453 454 - Added two useful demos of restructuring nested data (thanks Marc) 455 456 - Fixed doc bug re use of // (thanks Randal) 457 458 - Localized filehandles, like a good citizen should 459 460 - Misc doc bug fixes (thanks all) 461 462 - Fixed Text::Balance dependency in Makefile.PL (thanks Dominique) 463 464 - Fixed bug that @itempos wasn't set up if referred to only in 465 an autoaction. (thanks Eric) 466 467 - Fixed truncation bug in tracing contexts 468 469 - Dramatically improved speed of line counting (thanks John) 470 471 - Made item(s) and item(s /,/) behave consistently wrt %item 472 (thanks Marcel) 473 474 - Added prototype <autorule:...> handling 475 476 - Added outer block markers for <perl_codeblock> 477 478 - Fixed multi-grammar precompilation (thanks Dominique) 479 480 - Fixed numerous snafus in tutorial.html (thanks Ralph) 481 482 - Added nesting level information to traces 483 484 - Fixed resetting of $text after an <uncommit> rule. 485 486 487 4881.91 Fri Mar 28 23:20:28 2003 489 490 - Updated Text::Balanced to fix various bugs 491 492 4931.92 Wed Apr 2 04:45:37 2003 494 495 - Removed Text::Balanced from distribution (now a prereq only) 496 497 4981.93 Wed Apr 2 22:25:14 2003 499 500 - Fixed fatal error with $tracelevel (thanks everyone) 501 502 5031.94 Wed Apr 9 08:29:33 2003 504 505 - Replaced 'our' with 'use vars' to reinstate 5.005 compatibility. 506 507 5081.95.1 Sun Sep 30 05:06:56 2007 509 510 511 - Updated README to reflect new status of Text::Balanced 512 (i.e. required but not included in the distribution) 513 514 - Fixed demo_logic (Thanks, Steve) 515 516 - Fixed autopropagation of arguments into repetitions (Thanks, Luke) 517 518 - Limited context info to 500 chars in traces (Thanks, Stephen) 519 520 - Added option to select base namespace for autotreeing (thanks Gaal) 521 522 - Improved formatting compatibility with 5.9.0 (thanks, David) 523 524 - Added support for $::RD_HINT = 0 to turn off hinting entirely 525 526 - Fixed bug in line handling 527 528 - Returned $return variable to documented behaviour 529 (i.e. setting return doesn't guarantee the match, only what is 530 returned if the match succeeds) 531 532 - Fixed nit in debugging of conditional regexes (thanks, Brian) 533 534 - Moved expectation creation to compile-time (thanks Fran�ois) 535 536 - Removed redundant inheritances (i.e. @ISA elements) 537 in internal namespace (thanks Hugo) 538 539 - Added warning against C<return> in actions to "GOTCHAS" documentation 540 541 - Added demo_another_Cgrammar.pl (thanks Hendrik) 542 543 - Documented parens (thanks Robin) 544 545 - Removed incorrect meta-grammar from docs 546 547 548 5491.96.0 Fri Oct 3 06:08:24 2008 550 551 - Propagated correct Changes file (thanks Matthew!) 552 553 - Added: <warn> <hint> <trace_build> <trace_parse> <nocheck> 554 555 - 556 557 5581.962.0 Tue Aug 25 19:45:15 2009 559 560 - Doc bug fix (thanks Christophe) 561 562 - Fixed assymmetrical push/pop on @lines tracker (thanks Peter!) 563 564 - Bumped sub-version number hugely to fix CPAN indexing (thanks Jerome) 565 566 - Remove all occurrences of $& so we don't affect other regular expressions. 567 568 - Perl 5.6.0 required for use of $+[0] and $-[0] for replacement of $&. 569 570 5711.962.1 Thu Aug 27 21:39:30 2009 572 573 - Fixed subtle bug in leftop and rightop caused by removal of $& 574 575 5761.963 Thu Jan 21 09:13:19 2010 577 578 - Fixed even subtler bug in leftop and rightop caused by removal of $& 579 (Thanks Francesco) 580 581 5821.964 Wed Feb 17 09:33:39 2010 583 584 - Fixed bug with undefined $1 when parsing literals (thanks Dan!) 585 586 - Fixed premature namespace destruction bug with compiled grammars 587 588 5891.964001 Tue Feb 23 15:15:18 2010 590 591 - Updated version number because versioning is a neverending 592 nightmare in Perl 5 (thanks Matt) 593 594 595 5961.965001 Sun Apr 4 15:00:10 2010 597 598 - Removed all references to /opts version of perl interpreter 599 600 - Added Parse::RecDescent::redirect_reporting_to() 601 to enable ERROR, TRACE, and TRACECONTEXT filehandles to be 602 easily redirected. 603 604 6051.966_000 Mon Jun 27 08:32:50 2011 606 607 - Patched unnamed subrules, so that they actual fail when 608 not correctly specified (thanks Evgeniy!) 609 610 - Added skip tests (thanks Flavio) 611 612 - Added doc patch to make $skip semantics clearer (thanks Flavio!) 613 614 - Fixed POD description of <rightop:...> semantics (thanks Dirk!) 615 616 6171.966_001 Mon Nov 14 10:34:52 2011 618 619 - Applied fix to restore skipped prefixes on match failure 620 (thanks Jeremy!) 621 622 - *** NON-BACKWARDS COMPATIBLE CHANGE! *** Removed formats to 623 eliminate problems with filehandle duplication in forked 624 environments. Removed redirect_reporting_to() in favor of using 625 STDERR for all error/trace output. 626 6271.966_002 Sun Jan 22 19:08:37 2012 628 629 - *** NON-BACKWARDS COMPATIBLE CHANGE! *** Change the caches for 630 $prevline and $thisline to be local to the parser, rather than 631 lexical vars in Parse::RecDescent. This prevents previously 632 generated parsers from interfering with the line counts of 633 later parsers. 634 635 - removed trailing whitespace from all member files (cosmetic) 636 637 - new tests, updated MANIFEST 638 639 - Added Jeremy Braun as an author and current maintainer 640 641 - update file permissions 642 643 - fixed a few broken links in the pod 644 6451.967001 Sat Jan 28 20:54:48 2012 646 647 - Addressed RT.cpan.org #28314: regex modifiers for tokens not 648 honored during regex syntax check. (Thanks SADAHIRO!) 649 650 - Fixed some POD typos 651 652 - Added message on how to turn off "default" hint value in the 653 default hint value ($::RD_HINT = 0). RT.cpan.org # #4898. 654 655 - Modified _write_ERROR to call formline twice to avoid repeated 656 $errorprefix. 657 658 - Collected match tracing messages into a common function which 659 takes into account positive/negative lookahead. 660 661 - Addressed RT.cpan.org #74258: RD_AUTOSTUB does not work with 662 precompiled parsers. (Thanks Yuri!) 663 664 - Special-case $::RD_AUTOSTUB eq 1. $::RD_AUTOSTUB's value is 665 ignored, and the unknown subrule 'rule' has a production 666 "rule: 'rule'", rather than "rule: '1'". 667 668 - Change Parse::RecDescent::new to call $self->Replace with only 669 the grammar as an argument. That prevents the $compiling 670 argument to new() from being incorrectly interpreted as 671 $isimplicit. 672 6731.967002 Sun Jan 29 19:13:04 2012 674 675 - Addressed RT.cpan.org #29966: regex with single backslash not 676 recognized. Changed the definition of $TOKEN to handle 677 backslashes inside of regex patterns. 678 679 - Skip tests in t/reentry.t if Test::Warn isn't available. 680 6811.967003 Mon Jan 30 07:24:53 2012 682 683 - Remove the 'use 5.10' from t/skip_dynamic.t, it runs fine 684 against Perl 5.8.9. (Thanks Slaven!) 685 6861.967_004 Tue Feb 7 22:11:11 2012 687 688 - Localize the OUT filehandle during Precompile. 689 690 - Document the <autotree:Base::Class> form of the <autotree> 691 directive. 692 693 - Provide a simple test for the <autotree> directive, 694 t/autotree.t. Renamed basics.t to ensure it runs before 695 autotree.t. 696 697 - Allow a global <skip:> directive that functions the same as 698 modifying $Parse::RecDescent::skip prior to compiling a 699 grammar. (Thanks Flavio!) 700 701 - Require that the $file returned by caller() be eq '-', rather than merely 702 starting with '-'. This allows execution of the following. (Thanks Christopher) 703 perl -MParse::RecDescent -e 'print "$Parse::RecDescent::VERSION\n";' 704 705 - Warn on empty productions followed by other productions. The 706 empty production always matches, so following productions will 707 never be reached. 708 709 - *** NON-BACKWARDS COMPATIBLE CHANGE! *** A repetition directive 710 such as 'id(s /,/)' correctly creates a temporary @item variable 711 to hold the 'id's that are matched. That @item variable is them 712 used to set the real $item[] entry for that repetition. The 713 same treatment is now given to %item. Formerly, in a production like: 714 715 id ',' id(s /,/) 716 717 matched against: 718 719 xxx, yyy, zzz 720 721 The $item{id} entry which should be 'xxx' is overwritten by 722 'yyy' and then 'zzz' prior to the action being executed. Now 723 'yyy' and 'zzz' set $item{id}, but in the private %item, which 724 goes out of scope once the repetition match completes. 725 726 - ** EXPERIMENTAL ** When precompiling, optionally create a 727 standalone parser by including most of the contents of 728 Parse::RecDescent in the resulting Precompiled output. 729 730 - Accept an optional $options hashref to Precompile, which can 731 be used to specify $options->{-standalone}, which currently 732 defaults to false. 733 734 - The subroutines import, Precompile and Save are not included 735 in the Precompile'd parser. 736 737 - The included Parse::RecDescent module is renamed to 738 Parse::RecDescent::_Runtime to avoid namespace conflicts with 739 an installed and use'd Parse::RecDescent. 740 741 - Add a new t/precompile.t to test precompilation. 742 743 - Add a new $_FILENAME global to Parse::RecDescent to make it 744 easy for the Precompile method to find the module. 745 746 - Remove the prototype from _generate. It is not required, and 747 it caused t/precompile.t (which ends up re-definiing a lot of 748 Parse::RecDescent subroutines) to fail needlessly, as the 749 calls to _generate in Replace and Extend normally do not see 750 the prototype, but do when re-defined. 751 752 - POD documentation for standalone parsers added. 753 7541.967_005 Wed Feb 8 18:46:35 2012 755 756 - Added JTBRAUN@CPAN.org as author in Build.PL. 757 758 - Added ExtUtils::MakeMaker build/configure version 759 requirements. (RT.cpan.org #74787, Thanks POPEL!) 760 7611.967006 Fri Feb 10 20:48:48 2012 762 763 - Bumped version to 1.967006 for non-development release. 764 7651.967_007 Thu Feb 23 07:26:03 2012 766 767 - Revised ExtUtils::MakeMaker build/configure version 768 requirements. (RT.cpan.org #74787, Thanks Paul!) 769 770 - Revised Text::Balanced prereq to require version 1.95, necessary 771 for t/skip.t to pass. (RT.cpan.org #74787, Thanks Paul!) 772 773 - Removed unused version.pm prereq. 774 775 - Fix a circular reference memory leak caused by the use of 776 $AUTOLOAD in sub AUTOLOAD{} in the generated parser's namespace. 777 Workaround documented in perl5 RT #110248. Workaround a 778 circular reference memory leak in ISA documented by perl5 RT 779 #92708. A parser's DESTROY() method redefines all subs before 780 deleting the stash, to avoid circular references between 781 subrules. (RT #53710, thanks Andreas!) 782 783 - Parse::RecDescent::AUTOLOAD did not correctly handle 784 initializing the line counting mechanism when a reference to a 785 scalar was passed to the parser. (RT.cpan.org #27705, thanks 786 Justin!) 787 7881.967_008 Tue Mar 13 22:28:00 2012 789 790 - Restore old _parserepeat calling convention. Change a parser's 791 DESTROY method to check for $self->{_not_precompiled} instead of 792 $self->{_precompiled}. (Fix for RT #74593). 793 7941.967009 Fri Mar 16 07:25:09 2012 795 796 - Bumped version to 1.967009 for non-development release. 797 7981.967_010 Sun Jul 7 11:23:53 2013 799 800 - Base the standalone precompiled parser's runtime name on the 801 parser's class, rather than use the fixed 802 "Parse::RecDescent::_Runtime". This prevents "already defined" 803 warnings when two standalone precompiled parsers are used. 804 805 - Add support for allowing precompiled parsers to share a common 806 runtime via the Precompile({-runtime_class}) option and the 807 PrecompiledRuntime() function. 808 809 - Warn on creation of Precompiled parsers that depend on 810 Parse::RecDescent. 811 812 - *** NON-BACKWARDS COMPATIBLE CHANGE! *** Change global the 813 <skip:> directive to eval similar to other <skip:> directives, 814 rather than being single-quoted in the resulting parser. 815 8161.967011 Sat Sep 12 16:42:01 2015 817 818 - Correct some typos in the documentation. (RT.cpan.org #87185, 819 thanks dsteinbrunner!) 820 821 - Sort hash keys and rulenames when generating code. This keeps 822 the output text for a given input text the same, reducing 823 differences in automated builds. (RT.cpan.org #102160, thanks 824 Reiner!) 825 826 - Precompiled parsers now document which 827 $Parse::RecDescent::VERSION was used to generate 828 them. (RT.cpan.org #77001) 829 8301.967012 Sun Sep 13 07:59:00 2015 831 832 - Reference Data::Dumper::Sortkeys, not SortKeys. Actually 833 produces reproducible precompiled parsers now. (RT.cpan.org 834 #107061, thanks Slaven!) 835 8361.967013 Sun Sep 27 10:00:36 2015 837 838 - Wrap Data::Dumper->Dump() to localize some $Data::Dumper::VARS 839 to control the dumped output. In particular, 840 Data::Dumper::Terse=1 was reported to break parser 841 generation. (RT.cpan.org #107355, thanks Sherrard!) 842 8431.967014 Sat Apr 1 10:33:29 2017 844 845 - Add a newline to package declaration lines in precompiled 846 parsers, to keep CPAN from indexing them. (RT.cpan.org #110404, 847 thanks Martin!) 848 849 - Provide repository and bugtracker entries in 850 MYMETA.*. (RT.cpan.org #110403, thanks Martin!) 851 852 - Update tests to handle '.' no longer being part of @INC in 853 perl-5.26.0. (RT.cpan.org #120415, thanks Jim!) 854 8551.967015 Tue Apr 4 07:38:07 2017 856 857 - Fix misuse of require to include MYMETA.pl, data is just 858 included in both Makefile.PL and Build.PL nowB. (RT.cpan.org 859 #120922, thanks Kent!) 860