-
Notifications
You must be signed in to change notification settings - Fork 44
/
Changes
1585 lines (1344 loc) · 54.7 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Revision history for Perl extension PPI
{{$NEXT}}
1.279 2024-08-23 14:02:44Z
Summary:
- Implemented a cache to speed up sibling iteration
(GH#287) (Graham Knop (haarg))
1.278 2024-03-11 02:20:06Z
- Add support for new octal number syntax (GH#295) (Branislav Branislav
Zahradník)
1.277 2023-09-22 09:12:48Z
Summary:
- Parse prototypes as literal quotes, enables parens and newlines in protos
- Fix false positive detection of labels (GH#289) (Dan Church)
Details:
- Wrapped most Document->new calls in tests with automatic checks
1.276 2022-07-19 21:43:50Z
Summary:
- Implement Replace Method (GH#274) (Renee and Olaf Alders)
1.275 2022-07-18 19:42:13Z
Summary:
- CHECK bareword handle parsed as scheduled block (GH#247) (trwyant)
1.274 2022-05-02 18:21:56Z
Summary:
- Indentation in here-docs is now preserved (GH#252) (trwyant)
1.273 2022-04-22 15:58:31Z
Summary:
- Whitespace in signatures is now preserved (GH#257)
1.272 2022-02-02 16:10:50Z
Summary:
- Drop prerequisite for IO::String on perl 5.8+
1.271 2022-01-25 21:47:21Z
Summary:
- return correct name for lexical subroutines
- silence uninitialized warning in t/07_token.t
- bump minimum Test::More version to 0.96
- fix some typos in Pod
- moved repository to Perl-Critic GitHub org:
https://github.com/Perl-Critic/PPI
1.270 2019-07-09 15:14:57Z
Summary:
- attempt to handle new blead binary/hexadecimal parsing behavior in tests
1.269 2019-05-17 18:36:46Z
Summary:
- many small documentation improvements
1.268 2019-05-16 10:00:39Z
Summary:
- fix a broken link in the pod
1.267 2019-05-16 09:22:34Z
Summary:
- make PPI::Test::Run more OS-agnostic
1.266 2019-05-15 16:17:49Z
Summary:
- keep heredoc terminator detection from triggering regex errors
- small cleanups
Details:
- make the output of PPI::Test::Run more useful
- remove a superfluous import
1.265 2019-05-14 12:39:51Z
Summary:
- simplified a code construct
1.264 2019-04-28 14:56:28Z
Summary:
- keep vstring processing from swallowing underscores
1.262 2019-04-28 11:41:54Z
Summary:
- convert newlines in some raw test files from win32 to unix
1.260 2019-04-28 11:10:02Z
Summary:
- allow underscores in vstrings
1.258 2019-04-27 17:05:33Z
Summary:
- remove accidentally included Test::InDistDir
1.256 2019-04-26 16:40:01Z
Summary:
- allow all PPI::Document instances to have a filename attribute
1.254 2019-04-26 16:23:21Z
Summary:
- recognize `for (;<$foo>;) {}` as containing a readline operator
1.252 2019-04-26 14:21:36Z
Summary:
- add support for the double diamond (<<>>) input operator
- adjust position of a todo marker to not catch a passing test
1.250 2019-04-25 16:43:32Z
Summary:
- various smaller releng changes
Details:
- removed dependency on File::Remove
- add some tests including a TODO test for misparse bug on '(1)-1'
- allow tests to run without pre-determined module versions
- add travis-perl helper to be run before install
- update versions of Perl Travis tests on
1.248 2019-04-25 16:08:08Z
Summary:
- parse list-embedded curlies as hash constructors
1.246 2019-04-25 15:33:48Z
Summary:
- support indented here-docs
- fixed some typos
1.244 2019-04-25 15:21:51Z
Summary:
- support key-value and index-value slices in PPI::Token::Symbol symbol method
1.242 2019-04-25 14:33:56Z
Summary:
- keep exponents of 2 or more zeroes from trapping PPI in an endless loop
1.240 2019-04-25 14:09:24Z
Summary:
- add support for lexical subroutines from perl-5.26
1.238 2019-04-25 12:03:37Z
Summary:
- only release engineering, moved to Dist::Zilla, straightened out
dependencies and fixed some formatting in Changes
1.237_001 Wed 15 Nov 2017
Summary:
- support postfix dereference
- remove dependencies on vars, base and List::MoreUtils
- reduce globals and cross-package variables
- make xt/api.t skip/run properly
Details:
- convert many cross-package var accesses to var imports
- convert several unnecessary globals to local variables
1.236 Thu 22 June 2017
Summary:
- prevent Node->child from proceeding without a valid argument
- make test pragma warning code enable -w to match warnings policy
1.234 Wed 21 June 2017
Summary:
- Prevent sub names like v10 from being version strings
(GitHub #65) (MOREGAN)
1.232 Wed 21 June 2017
Summary:
- add Changes entries forgotten in 1.230
1.230 Wed 21 June 2017
Summary:
- remove temporary fix introduced in 1.226
- prevent possible regex on undefined scalar in
__current_token_is_forced_word
1.228 Tue 20 June 2017
Summary:
- keep PPI::Dumper from breaking Perl::Critic under cperl 5.27
(RURBAN)
1.226 Tue 20 June 2017
Summary:
- Fix test reliance on '.' in @INC (KENTNL)
- temporary fix to keep an untested combination from blocking
Perl::Critic (https://github.com/chriscapaci)
1.224 Sun 14 May 2017
Summary:
- updating an out-of-date meta.yml caused by Module::Install
1.222 Sun 14 May 2017
Summary:
- unit tests for many parts, both passing and TODO
- many documentation fixes
- add ->version method to PPI::Statement::Package (WOLFSAGE)
- remove unused PPI::Document->new timeout feature
- do not expect '.' in @INC (PLICEASE)
- many parsing fixes
- various fixes to the behaviors of methods
- removal of problematic dependencies
Details:
- Remove undocumented, non-working 'timeout' attribute to
Document->new, including HAVE_ALARM and
PPI::Exception::ParserTimeout. (GitHub #140) (MOREGAN)
- first cut of a travis configuration
- do hex number matching with [[:xdigit:]]
- some readability improvements on the code of HereDoc.pm
- recognize heredoc even if they have no newline at the end (AUBERTG)
- parse left side of => as bareword even if it looks like a keyword or
op (MOREGAN)
- remove source code escapes in the output of QuoteLike::Words->literal
(MOREGAN)
- removal of Test::NoWarnings
- less uses of List::MoreUtils in favor of List::Util
- expand $'x to $::main::x in Symbol->canonical as with $::x
(MOREGAN)
- fixed parsing of large numbers in Number::Exp on Solaris 80 (JMASLAK)
- make remove_child actually return undef on failure to find child to
remove
- higher accuracy when deciding whether certain characters are operators
or variable type casts (*&% etc.) (MOREGAN)
- parse x as the first element of code as a word, not an operator
(MOREGAN)
- recognize the implied end of a package statement that includes a block
(MOREGAN)
- parse package names that look like operators as strings, not ops
(MOREGAN)
- parse package names that look like v10 as strings, not versions
(MOREGAN)
- parse things like v49use as a single bareword, not v-string + keyword
(MOREGAN)
- parse x64 as a word, not x operator + number (MOREGAN)
- parse 1.eq 1 as float + op, not concatenation
- parse subroutine attributes correctly (MOREGAN)
1.220 Tue 11 Nov 2014
Summary:
- incompatible behavior fixes on PPI::Statement::Sub->prototype
- improved parsing of various syntax elements
- code quality improvements
- various small documentation fixes
Details:
- {} is now recognized as anonymous hash constructor instead of a code
block after these operators: &&= //= || && // ? :
(GitHub #36) (MOREGAN)
- regex capture variables greater than $9 are now parsed completely,
instead of being parsed as single digit captures with numbers after
them (GitHub #38) (MOREGAN)
- DESTROY and AUTOLOAD subs are now parsed even without the sub
keyword (GitHub #39) (MOREGAN)
- PPI::Statement::Sub->prototype behavior now matches its
documentation, instead of returning the prototype string
unchanged and still including the parens (GitHub #56) (MOREGAN)
- PPI::Statement::Sub->prototype now returns undef on subs without a
prototype, instead of returning an empty string
(GitHub #56) (MOREGAN)
- list of keywords which are not parsed as packages when followed by
the Perl4 package separator ' has been increased
(GitHub #77) (MOREGAN)
- application of a number of Perl::Critic policies and documentation
fixes (GitHub #53) (MOREGAN, MITHALDU)
- automation of README.md generation for git (GitHub #86) (COWENS)
- various small documentation fixes (Github #96) (MOREGAN)
1.218 Sat 16 Aug 2014
Summary:
- Fixes for various parsing and documentation bugs
- 1MB limit on input document size removed
- Moved repository to GitHub: https://github.com/adamkennedy/PPI
Details:
- Stop directing bugs to rt.cpan.org (GitHub #40) (MOREGAN)
- Fix documentation reference to List::Util (RT #75308) (RWSTAUNER)
- Improve scalability of parsing long lines, and remove the size
limit on documents PPI will parse (GitHub #5) (MITHALDU)
- Speed up adding an element to an unlabeled statement.
Allow inlining of some methods. (WOLFSAGE)
- Expanded test coverage (DOLMEN, MOREGAN)
- Convert inline tests to standalone tests (GitHub #12) (MOREGAN)
- Fix for '1=>x' being parsed as x operator (GitHub #46) (MOREGAN)
- Recognize that '1 x3' is the x operator followed by a 3
(RT #37892, GitHub #27) (MOREGAN)
- Support all augmented assignment operators (<<=, ||=, etc.)
(RT #68176, 71705) (MOREGAN)
- Stop upper-case "=CUT" from terminating POD (RT #75039) (JAE)
- Support upper-case digits in hex and binary numbers, including
in the leading '0X' and '0B'. (RT #36540) (KRYDE, MOREGAN)
- Fix float argument to range operator misparsed as version
string (RT #45014) (MOREGAN)
- Fix POD markup in PPI::Find (RT #51693) (FWIE)
- Fix spelling of "Tom Christiansen" (RT #67264) (TADMC)
- Fix a large raft of spelling and grammar errors (RT #85049) (David
Steinbrunner, DOLMEN, MOREGAN)
- Fix errors in documentation of the PPI::Element class hierarchy
(RT #30863, 69026) (SJQUINNEY)
- Prevent PPI::XSAccessor packages from hiding corresponding PPI
packages in CPAN (RT #90792) (MITHALDU)
- Recognize the formfeed character as whitespace (RT #67517) (WYANT)
- Recognize regex match following 'return' (RT #27475) (ADAMK)
- Fix missing dereference, length called on reference (RT #40103)
(ADAMK)
1.215 Sat 26 Feb 2011
Summary:
- No changes
Details:
- Confirmed new Perl::Critic works with 1.214_02, so we
can release a new PPI now.
1.214_02 Mon 31 Jan 2011
Summary:
- More minor fixes, preparing for production release
Details:
- Updated copyright year to 2011 (ADAMK)
- Fixed RT #64247 bless {} probably contains a hash constructor (WYANT)
- Backed out glob fix (WYANT)
- Fixed RT #65199 Cast can trump braces in
PPI::Token::Symbol->symbol (WYANT)
1.214_01 Thu 16 Dec 2010
Summary:
- General fix release
Details:
- index_locations on an empty document no longer warns (WYANT)
- Corrected a bug in line-spanning attribute support (WYANT)
- Regression test for line-spanning attribute support (ADAMK)
- Fixed #61305 return { foo => 1 } should parse curlys as hash
constructor, not block (WYANT)
- Fixed #63943 map and regexp confuse PPI? (ADAMK)
1.213 Tue 6 Jul 2010
Summary:
- Targetted bug fix, no changes to parsing or normal usage
Details:
- Updated to Module::Install 1.00
- Updated module depednencies in xt author tests
- Fixed extremely broken PPI::Token::Pod::merge and added test case
1.212 Sun 9 May 2010
Summary:
- Minor bug fixes and development support
Details:
- Fixed #48819: Bug in ForLoop back-compatilbilty warning
- Added support for $ENV{X_TOKENIZER} --> $PPI::Lexer::X_TOKENIZER
1.211_01 Sun 21 Feb 2010
Summary:
- Experimentation support and bug fixes
Details:
- Upgraded to Module::Install 0.93
- Added support for $PPI::Lexer::X_TOKENIZER, so that alternate
experimentatal tokenizers can be swapped in for testing.
- Added an extra 14_charsets.t case to validate we handle byte
order marks properly.
- Moved author tests from t to xt to reduce spurious test failures
in CPAN Testers, when the testing modules change across versions
- Fixed #26082: scalar { %x } is misparsed
- Fixed #26591: VMS patch for PPI 1.118
- Fixed #44862: PPI cannot parse "package Foo::100;" correctly
- Fixed #54208: PPI::Token::Quote::Literal::literal is missing due
to case-sensitivity error
1.210 Mon 15 Feb 2010
Summary:
- Packaging fixes
Details:
- No functional changes
- Upgrading to Module::Install 0.93
- Added missing test_requires dependency for Class::Inspector
1.209 Sat 6 Feb 2010
Summary:
- Small optimisation release
Details:
- No functional changes
- Upgrading to Module::Install 0.92
- Moved the Test::ClassAPI test to only run during RELEASE_TESTING
to reduce the dependency load (and occasionally Test::ClassAPI seems
to FAIL on CPAN Testers.
1.208 Thu 14 Jan 2010
Summary:
- THIS IS THE 100TH RELEASE OF PPI!
- Fixes some tiny issues, otherwise unchanged from 1.207_01
Details:
- Don't assign '' to $^W, it generates a warning on Gentoo
- Added missing PPI::Token::Regexp fix to Changes file
- Updating Copyright to the new year (yet again)
1.207_01 Thu 10 Dec 2009
Summary:
- This is a general bug fix and accuracy release
Details:
- Fixed #50309: literal() wrong result on "qw (a b c)"
- PPI::Dumper no longer causes Elements to flush location data.
Also it no longer disables location information for non-Documents.
- +{ package => 1 } doesn't create a PPI::Statement::Package
- PPI::Token::Regexp and PPI::Token::QuoteLike::Regexp how have methods
for getting at the various components (delimiters, modifiers, match &
substitution strings).
1.206 Sun 9 Aug 2009
Summary:
- This is an optimisation release (1-2% speed up)
(Using information uncovered by a Devel::NYTProf 3 alpha)
Details:
- Removing som superfluous 1; returns
- Using defined and ref to avoid highly excessive calls
to PPI::Util::TRUE
1.205 Mon 3 Aug 2009
Summary:
- This is a production release
Details:
- No changes from 1.204_07
1.204_07 Fri 31 Jul 2009
Summary:
- Minor tweaks
Details:
- Allow ::For and ::List to return true to ->isa(::ForLoop)
and do a once-per-process warning when we do.
- Fixed a bug in Class::XSAccessor prototype.
1.204_06 Wed 22 Jul 2009
Summary:
- API Change
Details:
- Changing PPI::Structure::ForLoop to PPI::Structure::For
1.204_05 Tue 21 Jul 2009
Summary:
- Bug fixes in preparation for production release
Details:
- There is no longer any real reason to bundle the testing modules
except as a potential source of more bugs.
- Removed quantifier ? on zero-length ^ in /^?for(?:each)?\z/
- Run-time load PPI::Document instal of compile-time loading it
- Tweak a few load orders to get PPI::Util loaded earlier.
- Fixed location access methods on PPI::Element
- New PPI::Statement::Include::version_literal() method.
1.204_04 Thu 16 Jul 2009
Summary:
- Dependency tweaks
Details:
- Because we bundle Test::ClassAPI, we need to explicitly match its
dependencies. Bumped Params::Util to 1.00.
- Bumped a couple of deps a couple of revisions to get better XS.
1.204_03 Tue 14 Jul 2009
Summary:
- More bug fixing, clean up, and optimisation
- Cleaning up contributed APIs
- Adding some demonstration classes
Details:
- Implemented PPI::Transform::UpdateCopyright
- Removed the use of 'use base'
- Various minor simplifications
- Renamed PPI::Statement::Switch to ::Given
- Renamed PPI::Structure::WhenMatch to ::When
- Converted the Lexer internals to use exception-based error
handling.
- Take advantage of the removal of all those "or return undef"
to simplify the Lexer code, remove variable declarations, and
inline calls to several hot-code-path functions. The Lexer
should be significantly faster (FSDO "significant").
- The v6 key on Tokenizer broke support for Perl 5.6
(perl thought it was a numeric v-string)
1.204_02 Sun 10 May 2009
Summary:
- Various bug fixing and stabilisation work
- It's a perl 5.10 extravaganza!
Details:
- Updated Module::Install to 0.87
- Added Test::NoWarnings to the test suite
- Added support for qw{foo} in addition to for ('foo')
- Added support for vstrings again
- Now supports the 5.10 "state" keyword.
(As far as PPI is concerned it's a synonym for "my")
- Now supports switch statements.
- Now supports the smart match operator (~~).
- Now supports keeping track of line numbers and file names as
affected by the #line directive.
- Now supports UNITCHECK blocks.
- Statement::Include::module_version() implemented.
- Statement::Include::arguments() implemented.
- Statement::Variable::symbols() implemented.
- Token::QuoteLike::Words::literal() implemented.
- Token::Quote::Double::simplify() fixed.
- Element line_number(), column_number(), visual_column_number(),
logical_line_number(), and logical_filename() implemented.
- Support for Unicode byte order marks (PPI::Token::BOM) added.
- Token::Word::method_call() implemented.
- Element::descendant_of() and Element::ancestor_of() implemented.
- Statement::specialized() implemented.
- Now can handle files named "0".
(Perl::Critic got a complaint about this)
- foreach loop variables can be declared using "our".
- Much more comprehensive testing of compound statement detection.
1.204_01 Sun 18 May 2008
Summary:
- Unicode cleanup and bug fixing
- Taking the opportunity to do some house cleaning while the
code base is relatively stable, before things get crazy again.
Details:
- For completeness sake, add support for empty documents
- Moved capability detection into PPI::Util
- POD test script now skips on install properly
- Removed 200 lines of old dead "rawinput" code from PPI::Tokenizer
- 100% of PPI::Tokenizer is now exception-driven
- Workaround for "RT#35917 - charsets.t eats all available VM"
(unicode bug in 5.8.6, works in 5.8.8)
- Temporarily disable round-trip testing of 14_charset.t
1.203 Wed 14 May 2008
Summary:
- No change, switching to production version
1.202_03 Wed 14 May 2008
Summary:
- Initial Perl 6 support
- Bug fixes and final 1.203 release candidate
- I finally catch up with all the failing test cases
that Chris Dolan keeps commiting :)
Details:
- Adding initial support for "use v6-alpha;"
- Adding new class Perl::Statement::Include::Perl6
- Adding a test on the KindaPerl6::Grammar,
which triggered a bug in the tokenizer during
CPAN::Metrics tinderboxing.
- All open() calls now use three-argument form
- Upgrading explicit Perl dependency to 5.006,
because of the previous item.
- Better support for labels, including tricky ones like "BEGIN : { ... }"
1.202_02 Wed 2 Jan 2008
Summary:
- Back-compatibility and 1.203 release candidate
Details:
- Removing the use of use base 'Exporter';
- Updating Test::SubCalls dep to 1.07 to get
the use base 'Exporter' fix for that too.
1.202_01 Tue 20 Nov 2007
Summary:
- Minor bug fix release
Details:
- RT #30469: calling length() on PPI::Token gives error
- 14_charsets.t was incorrectly skipping in situations
that it should have been running.
1.201 Mon 22 Oct 2007
Summary:
- Minor bug fix release
Details:
- The internal exception class PPI::Exception::ParserTimeout was
inheriting from itself.
1.200 Mon 15 Oct 2007
Summary:
- Production Release
Details:
- Zero changes from 1.199_07
- Updated version from 1.199_07 to 1.200
1.199_07 Fri 12 Oct 2007
Summary:
- This is the third release candidate for 1.200
- Minor tweak
Details:
- Changed the way to detect Perl 5.6 to ignore the 1_0e1_0 failure
1.199_06 Wed 10 Oct 2007
Summary:
- This is the second release candidate for 1.200
- Some small bug fixes
Details:
- Remove -w from test scripts to allow taint'enabled testing
- Skip the failing 1_0e1_0 test on Perl 5.6.2
1.199_05 Tue 9 Oct 2007
Summary:
- This is the first release candidate for 1.200
- Fix some parser corner cases
Details:
- Fixed parsing of %!, $^\w, and %^H
- Fixed parsing of @{$foo}-1
- Fixed parsing of <$fh1>, <$fh2>
1.199_04
Summary:
- Build tweaks
- More regression changes
Details:
- Increasing List::Util dependency to 1.19
(Removes a memory leak on Win32)
1.199_03 Thu 12 Jul 2007
Summary:
- Support for a few more rare/legacy Perl syntax
- Tokenizer simplification, optimization and exception'ification
Details:
- Added support for the <<\EOF heredoc style
- Always create ->{type} in full-quote sections
- Converted more of the Tokenizer to use exceptions
- Optimized away a bunch of now-unneeded "or return undef"
- Optimized _set_token_class down to a single statement
- Inlined _set_token_class out of existence
- Cache and fast-clone PPI::Token::Whitespace->null
- Removed some superfluous parameter checks on private methods,
for conditions that would cause explosions and be noticed anyway.
- Removed the fancy options from PPI::Token::new
- More consistent structure of incomplete quotes
1.199_02 Mon 5 Mar 2007
Summary:
- Added parser timeout support
- Fixing various regression cases
- Adding some housekeeping tweaks
Details:
- Created PPI::Exception with an eye to moving towards
using exceptions more for error handling (for speed).
The goal is to get rid of the "or return undef"s.
- Added the timeout param to the PPI::Document constructor
which uses alarm to implement basic timeout support.
This should help when parsing a large corpus on Unix.
(Not available on Win32)
- Fixed incorrect location() for PPI::Structure instances.
- Adding better parsing of hash constructors.
- Pushing Clone dependency to 0.22 to get closer to taint support)
- Pushing deps on bundled test modules to prevent accidentally
bundling old versions.
1.199_01 Tue 31 Oct 2006
Summary:
- Improved lexing correctness
- Partial implementation of literal
- Initial implementation of Number classes (Chris Dolan)
Details:
- Split out PPI::Token::Number subclasses
- Implement numbers with exponential notation
- Implement literal() for ::Number classes (except ::Version)
- Implement literal() for ::Token::Quote::Single
- Added -T for inline tests
- Add tests for nested statements and nested structures
- Fixed some bugs as a result
- Improved detection of the correct curly brace structure types
1.118 Fri 22 Sep 2006
Summary:
- Better 5.10 support
- Fixing various (mostly parsing) bugs
Details:
- Upgraded to Module::Install 0.64
- Improving support for dor and added //= operators
- Fixed parsing of binary, octal and hex numbers
- Fixed parsing of /= and *=
- Fixed #21571 symbol() returns just sigil with adjacent braces
- Fixed #21575 variables() chokes on list with whitespace
- Fixed #20480 (Misparse of some floating-point numbers.)
- Fixed #19999: Make test fails (undeclared global variable $document) under Perl 5.6.2
(or at least, I think I have. This needs double-checking on Perl 5.6.2)
- Partially Fixed #16952: [PATCH] Speed up tokenizer char-by-char
(Did not apply the patch, but fixed a bug noted as an aside in the report)
- PPI::Document::File was returning a plain PPI::Document object, fixed.
- FINALLY added some basic POD for PPI::Structure, the one class I somehow
keep forgetting to do.
1.117 Sat 02 Sep 2006
Summary:
- Fixing bugs introduced in 1.116
Details:
- Simple compound statements "{ 1 }" were not end-detecting properly
- The new handling for the "-" character was shortcutting naively
- Labelled compound statements were not end-detecting properly
- { package => 1 } was treating package incorrectly
- Fixed bugs in test cases submitted by the Perl::Critic team
- Added a number of extra test cases, and introduced Test::Object
based testing for PPI::Document objects.
1.116 Thu 31 Aug 2006
Summary:
- PPI::Document::File first release
- Adding readonly attribute
- Fixed various accumulated bugs
Details:
- Upgraded to Module::Install 0.63
- Add a new file-only subclass of PPI::Document
- Added the readonly attribute to the PPI::Document->new constructor
- Added method PPI::Document->readonly method
- 'goto' is a PPI::Statement::Break
- Re-fixed #19629: End of list mistakenly seen as end of statement
- Applied #16892: [PATCH] docs and comments
- Fixed #16815 (location of Structure::List is not defined.)
- Fixed misparsing of C< 1-1 >
- Fixed #18413: PPI::Node prune() implementation broken
- Fixed #20428 (minor doc bug in PPI::Token::Symbol)
- Resolved NOTABUG #20031 (PPI installation)
- Resolved NOTABUG #20038 (PPI installation)
- Fixed #19883: 'package' bareword used as hash key is detected as package statement
- Fixed #19629: End of list mistakenly seen as end of statement
- Fixed #15043: (no description) # He wanted PPI::Document::File
1.115 Sat 03 Jun 2006
Summary:
- Fixing rt.cpan.org bugs
Details:
- Fixed #19614: Suspicious code in PPI::Structure
- Fixed #16831: until () { } not parsed as compound statement
- NOTABUG #16834: "$a = 1 if ($a == 2)" vs "$a = 1 if $a == 2"
- Fixed #19629: End of list mistakenly seen as end of statement
- Fixed #18413: PPI::Node prune() implementation broken
1.114 Thu 25 May 2006
Summary:
- This release addresses only dependency issues
Details:
- Changed over from IO::Scalar to IO::String
- Added a dependency on Task::Weaken so that we can make
various not-so-clueful downstream packagers play nicely.
1.113 Wed 10 May 2006
Summary:
- This release contains only build-time changes
Details:
- Upgraded to Module::Install 0.62
- No features() used in this dist, so removing auto_install
1.112 Mon 24 Apr 2006
Summary:
- Emergency release to fix a bug that prevents install on perl > 5.8.4
Details:
- Small typo in the unicode-specific section of 14_charsets.t
prevents tests passing for anyone with a unicode-sane Perl version.
- Added a test for strange locales that can't handle unicode,
and skip the unicode tests.
1.111 Sat 22 Apr 2006
General
- Moved from SourceForge CVS to new collaborative SVN repository
- Fixed regressions other people had added since 1.110
- Upgraded to Module::Install 0.62
Details:
- SourceForge was too hard to get into, so moved to specially designed
new SVN repository to make it easy for others to help out.
- Moved t.data to t/data in line with current style and to reduce complexity.
- Fixed t/data/08_regression/11_multiply_vs_glob_cast (added by unknown)
- Fixed t/data/08_regression/12_pow (added by unknown)
- Removed every use of UNIVERSAL::isa in the tests
- Upgraded to Module::Install 0.62 (my private prerelease)
1.110 Fri Jan 27 2005
General
- Added test support for the third location component (Arjen Laarhoven)
- Various bug fixes
(Releasing early with only small changes at the request of Perl::Critic)
Details:
- Fixed CPAN #16924: PPI::Statement::Sub.pm fix to use Params::Util line to resolve _INSTANCE error
- Fixed CPAN #16837: typo in PPI::Statement::Expression POD
- Fixed CPAN #16973: PPI 1.109 shouldn't require List::Util 1.18
(We do need 1.18 to avoid a leak, but it doesn't work everywhere)
- Fixed CPAN #16814: _INSTANCE method not defined in PPI::Statement::Sub (dupe)
- Arjen Laarhoven added to CVS committers
- Added a third element to ->location return arrayref that contains the visual
starting column of the token, taking into account tabbing.
1.109 Fri Dec 30 2005
Summary:
- Various bug fixes
- Minor structural cleanup
Details:
- Removed every single use of UNIVERSAL::isa
- PPI::Normal was quite broken, cleaned it up
- Fixed PPI::Normal::Standard::remove_statement_separator
- Fixed CPAN #16674 PPI::Token::Quote::Double->interpolations
(awigley)
- Fixed CPAN #15131 PPI::Node->find() behavior not completely
documented (Jeffrey Thalhammer)
- Fixed CPAN 13743 PPI::Statement::Scheduled api (johanl)
- PPI::Statement::Scheduled is now a subclass of PPI::Statement::Sub
- Removed breaking circular include in PPI::Util
- Removed an 'our' variable in t/04_element.t that created a 5.6.0 dependency
- Only do the PPI::Cache tests that use Test::SubCalls if >= 5.006
- (Except for File::Remove, we should ACTUALLY depend on 5.005 now)
- Fixed CPAN #16671 $_ is not localized (JPIERCE)
(I missed an unlocaled $_ hiding in the Node object destructor)
1.108 Thu Dec 15 2005
Summary:
- Fixing of some very minor bugs
Details:
- 8 wasn't an illegal character in an octal number (fixed)
- Two <<heredocs with no content on the final line didn't round-trip (fixed)
1.107 Wed Dec 14 2005
Summary:
- PPI is now Editor-compatible.
- You can create a PPI::Document from random ASCII line noise!
Details:
- Added a dozen various patches to complete round-trip Tokenizer
and Lexer support for absolutely anything (i.e. line noise)
inside the normal set of ASCII characters used in Perl programs.
- Does not include Latin-1 and Unicode line noise (yet).
- Completely the 21_exhaustive.t test script.
- Tested 21_exhaustive.t against 500,000 x 120-character
completely random line noise Perl programs.
(Apparently I'm still leaking 1k per document somewhere)
1.106 Sun Dec 11 2005
Summary:
- More changes to support all possible 4-character programs
Details:
- Various fixes to weird things like *::'
1.105 Sat Dec 10 2005
Summary:
- Improvements driven by Audrey Tang's pugs wishlist.
(So pugs can parse Perl 5, eep)
- Latin-1/Unicode improvements (but now requires perl >= 5.8.5)
(not pre-checked and enforced yet, but will be)
- Starting new generation of "exhaustive" testing
Details:
- Added 20_tokenizer_regressions, which tests all
detectably-failing 3-or-less character long Perl programs
(not inclusive of latin-1 or Unicode). (Audrey Tang)
- Fixed bug for incomplete <READLINE> quotes at EOF
(there may be a few more similar cases)
- Fixed bug with $'0 (where 0 is only legal after ::)
- No longer die for illegal chars in hex/bin number types
(Attach the error to $token->{_warning} instead)
- Caught a number of cases with trailing colons for $things
(Both at EOF and end of token)
- Convert [^\W\d]\w* to (?!\d)\w+ to improve unicode support
in symbols etc (Audrey Tang)
- Miscellaneous doc bugs in the SYNOPSIS (Audrey Tang)
1.104 Thu Nov 10 2005
General
- No change to code
- Both List::Util and List::MoreUtil contain memory leaks,
and we use them extensively. Pushed the dependencies up
to versions with the memory leaks fixed.
1.103 Thu Oct 6 2005
General
- Small bug fix that shouldn't have escaped
Details:
- Changed md5hex_file to act more like the PPI::Documeny way.
That is, localise and THEN convert to \015
1.102 Wed Oct 5 2005
General
- Small things to support Perl::Metrics
Details:
- Added undocumented PPI::Util::md5hex_file function
1.101 Thu Sep 29 2005
General
- Bug fix release
Details:
- Fixed CPAN bug #14436 and #14440, misparse for my ($foo) ...
- Added an self-analysis test script for PPI-testable problems
- Fixed some minor bugs it threw up.
1.100_03
General
- Major bug fixing
- Some additions to help simplify Perl::Metrics
Details:
- A whole bunch (practically all) of the sibling code was breaking
under non-trivial use. Fixed, with a number of new tests added.
- Added function PPI::Util::md5hex
- Added method PPI::Document::hex_id
1.100_02
General
- Various bug fixes
- Completed the first version of PPI::Cache
Details:
- Expanded round-trip testing coverage to all the lexer and
regression test files
- 06_round_trip.t wasn't doing the round-trip test properly.
Fortunately, this only resulted in false failures, so no
actual damage was done as a result of this.
1.100_01 Sat Sep 03 2005
Summary:
- Added integrated cache support
Details:
- Added PPI::Cache class
- Removed warning in 99_pod.t
- Added a common PPI::Util::_slurp function
- PPI::Document can be given a cache to use
1.003 Tue Aug 18 2005
Summary:
- Bug fix release
Details:
- Add support for 'for $foo () {}'
- Add support for 'for my $foo () {}'
- Fixed bug where "'Hello..." crashed the Tokenizer
- Fixed bug where '"Hello...' crashed the Tokenizer
- Fixed bug where 's' crashed the Tokenizer
1.002 Thu Jul 14 2005
Summary:
- Bug fix release
Details:
- Fixed CPAN #13655 - insert_before and insert_after broken.
1.001 Tue Jul 12 2005
Summary:
- Turning on Test::Inline scripts
Details:
- Bug fix: ->string returns wrong for qq <foo> and all braced quotes
- Added Test::Inline 2.100-type inline2test.conf and inline2test.tpl files
- Added t/ppi_token__quoteengine_full.t
- Added t/ppi_token_quote_single.t
- Added t/ppi_token_quote_double.t
- Added t/ppi_token_quote_literal.t
- Added t/ppi_token_quote_interpolate.t
1.000 Sat Jul 9 2005
Summary:
- FIRST PRODUCTION RELEASE
- Finalising POD, corrected the Copyright dates
- Rewrote much of the main PPI.pm docs
- Removing more unneeded dependencies
- Added native Storable support
Details:
- Removed dependency on Class::Inspector
- Added build dependency on Class::Inspector and include() it
(although it's still needed at build time, this still does manage to
reduce the number of files to download by one more)
- Added PPI::Document::STORABLE_freeze and PPI::Document::STORABLE_thaw
0.996 Fri Jul 8 2005
Summary: