-
Notifications
You must be signed in to change notification settings - Fork 29
/
Changes
1128 lines (772 loc) · 42.2 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 autodie
{{$NEXT}}
2.37 2023-12-28 19:12:52+00:00 UTC
* #117 - Deprecate smartmatch handling
* #118 - Remove mention of cpanratings.perl.org
* #119 - Fix typo in changelog
2.36 2023-01-30 16:48:23+00:00 UTC
* Remove the use of ' as a package separator.
* Fix spelling errors in POD.
2.35 2023-01-27 16:00:26+00:00 UTC
* Prepare for 5.38 changes to deprecate smartmatch
* Remove +x bit from pm and t files
* CI - Turn off Pod coverage and critic tests below 5.12
2.34
* Remove rt.cpan.org reference.
2.33
* Switch to testsuite CI workflow
* Add 2.33 support to Fatal.pm
* Add missing use Scalar::Utils for using bless
* Fix typo
* Update bug tracker to github to prep for rt shutdown.
2.32 2020-01-16 11:40:52-06:00 America/Chicago
* Update automated tests to include soft dependencies.
* Remove Test::Perl::Critic as a testing requirement.
* Update README.md to show github actions status
not Travis.
2.31 2020-01-08 00:37:45-06:00 America/Chicago
* TEST BUGFIX: Correct diag explain in t/version.t
so it'll pass on perl 5.8
* TEST BUGFIX: Only test t/no-all.t if optional
IPC::System::Simple is available
* BUILD: Switch automated testing to github actions
* TEST BUGFIX: Turn off t/kill.t for windows. Recent
versions of windows seem to choke when doing:
`kill 0, $$;`
2.30 2020-01-02 16:51:16-06:00 America/Chicago
* BUGFIX: Fix a boolean logic precedence error causing
a "useless use of numeric" warning when using kill
with a signal of 0. Thanks to Maurice Aubrey for
reporting the issue and providing a Pull Request
for it. (GH#76)
* BUGFIX: Apply patch from Niko Tyni to fix a scoping
issue "no autodie" and the "system" sub. (GH#69)
* BUGFIX / DOC: Update code and documentation about
smartmatch to match current the current support
in perl. Thanks to Zefram; cherry-picked from
perl core. (GH#83)
* DOC: Fix a POD error and some unnecessary spaces
that tripped POD parsers. Thanks to Aaron Crane
and Chase Whitener for reporting the issues plus
providing Pull Requests for it. (GH#51 and GH#79)
* DOC: Document how to use Import::Into with autodie.
(GH#50)
* BUILD: Clean up of dzil.ini removing some unnecessary
test recommends. Thanks to Karen Etheridge for
reporting the issue and providing a Pull Requests
for it. (GH#78)
* TEST BUGFIX: Set binmode on some file handles to fix
issues on Windows. Thanks to Tony Cook; cherry-picked
from perl core. (GH#83)
* TEST / INTERNAL / TRAVIS: Also test with Perl 5.22,
5.24, 5.26 and 5.28.
2.29 2015-07-09 17:16:38+10:00 Australia/Melbourne
* BUGFIX: Apply patch from Karen Etheridge to install
autodie and Fatal into 'perl' rather than 'site'
for older perls (RT#85801, GH#68)
2.28 2015-06-22 16:20:35+10:00 Australia/Melbourne
* TEST BUG: Properly skip the Import::Into test if the
version of Import::Into is insufficent. Thanks to
Olivier Mengué. (GH#67)
* DOC: Document change in 2.27 that was omitted from the
Changes-file by mistake.
2.27 2015-06-10 19:19:49+10:00 Australia/Melbourne
* DEPRECATION: Deprecate the use of "Fatal qw(:lexcial)". It
is an implementation detail of autodie and is about to
change.
* BUG: Use "octal" numbers in error messages for CORE
subroutines taking a "mode" parameter (e.g. mkdir and chmod).
Thanks to "Bugdebugger". (GH#65 and GH#66)
* SPEED: Allow wrappers for CORE::exec and CORE::system to be
reused as they are not dependent on the calling package.
* TEST: Avoid hard-coded directory separator in t/system.t.
Thanks to A. Sinan Unur for reporting it and providing a
patch. (GH#62)
* TEST: Add missing "require autodie" in import-into test and
ensure Import::Into remains an optional test dependency.
* TEST / INTERNAL / TRAVIS: Set "sudo: false" to gain access
to the Travis container based infrastructure.
* TEST: Bump version of Import::Into to 1.002004 as older
versions are insufficient for our test. Thanks to
Olivier Mengué for reporting it. (RT#101377)
2.26 2014-12-26 16:27:23+00:00 UTC
* BUGFIX / INCOMPAT: Remove "fileno" and "umask" from the list of
CORE subs protected by autodie and Fatal.
When they return undef, it is not a failure.
* BUGFIX: Fixed an error that could occur during global destruction of
the form "(in cleanup) Can't use an undefined value as an ARRAY
reference at .../autodie/Scope/GuardStack.pm line 48 during global
destruction" (Thanks to Dave Rolsky).
* BUGFIX: The open-pragma is now properly ignored when open is
given an explicit layer. This brings autodie protected
open in sync with open. Thanks to Gregory Oschwald and
Graham Knop for the report + test case and the patch.
(GH#52 + GH#53)
* BUGFIX: Hide the "SCALAR" (buffer) argument in the string
representation of autodie::exception for the read,
sysread and syswrite CORE subs. This is to avoid
a dump of binary data to the screen/log when a
(sys)read or syswrite fails.
* FEATURE: Let autodie::exception work in equality tests and
string comparison via "overload fallback".
(Thanks to Michael G. Schwern)
* DOC: Mention that "kill" is in the ":ipc" category. It has
been there since autodie v2.14.
(Thanks to Felipe Gasper for reporting it, RT#97320).
* INTERNAL: Use "parent" instead of "base" for inheritance. Also
avoid some @ISA relationships that were redundant.
Either truly redundant ones or by importing "import"
from Exporter v5.57.
- This change implies that perl 5.8 users must now
also fetch "parent" from cpan.
(Thanks to Olivier Mengué, GH#59)
* DEVEL / TEST: The autodie module now accepts an undefined Fatal
version, assuming it to be development version.
Test cases that require versions are now either
skipped or considered "release" test.
* TEST / INTERNAL: Enabled travis-ci for Perl 5.20
* TEST: Close temp file before re-opening in t/truncate.t.
(Thanks to Craig A. Berry, RT#96609)
* TEST: Pass O_TRUNC with O_CREAT to sysopen in t/utf8_open.t.
(Thanks to Craig A. Berry, RT#87237)
* TEST: Clean up temp file in t/truncate.t.
(Thanks to Dave Mitchell, RT#100688)
2.25 2014-04-03 09:43:15EST+1100 Australia/Melbourne
* DOCS: Spelling fixes in autodie::ScopeUtil
(Courtesy Salvatore Bonaccorso)
2.24 2014-03-30 19:30:10EST+1100 Australia/Melbourne
* FEATURE: Provide a stack backtrace when `Carp::Always` is enabled.
Note that sometimes this is not as pretty as it could
be, patches welcome.
(Thanks to Niels Thykier, GH #35)
* BUGFIX: Fix situations where `no autodie` doesn't respect lexical
scope. (Thanks to Niels Thykier, GH #41, RT #72053,
RT #86396)
* INTERNAL: Remove now unused variables in code (Niels Thykier).
* DOCS: Make it extra-clear autodie doesn't check `print`.
(Dave Rolsky, GH #39)
* TEST: Removed obsolete boilerplate.t
* TEST / INTERNAL: Enabled travis-ci for Perl 5.8
* TEST: Stopped some Pod::Coverage tests failing under Perl 5.8
* BUILD: Better support for building in a read-only directory
(courtesy Andrew Fresh, GH #46)
2.23 2014-01-27 13:50:55EST+1100 Australia/Melbourne
* TEST / BUGFIX: Improved testing support on Android
and Blackberry devices. (GH #44, thanks to
Hugmeir.)
* TEST / INTERNAL / TRAVIS: Various non-code
tweaks to make travis-ci more happy with testing
autodie.
* BUGFIX: autodie no longer weakens strict by allowing
undeclared variables with the same name as built-ins.
(RT #74246, thanks to Neils Thykier and Father
Chrysostomos.)
* BUGFIX: `use autodie qw( foo ! foo);` now correctly
insists that we have hints for foo. (Thanks Niels Thykier)
* INTERNAL: Improved benchmarking code, thanks to
Niels Thykier.
2.22 2013-09-21 11:37:14 Asia/Tokyo
* TEST / INTERNAL: Restore timestamps on touched testing
files to avoid git flagging files having changed in
git. (RT #88444, courtesy shay@cpan)
2.21 2013-09-12 13:17:23 Australia/Melbourne
Many more improvements from Niels Thykier, great hero of the
free people. Plus a compatibility patch from Zefram, keeper
of Carp.
* SPEED / INTERNAL : Through the magic of globally reuseable
core leak trampolines, autodie is even faster when used across
multiple pacakages.
* SPEED / INTERNAL : Caches used for keeping track of
fatalised subroutines are faster and leaner.
* SPEED / INTERNAL : Core subroutine wrappers are now lazily
compiled.
* SPEED / INTERNAL : Using autodie while autodie is already in
effect is now faster and more efficient.
* INTERNAL : $" and $! are no longer arbitrarily messed with
for no reason via autodie. (They're still messed with when
using Fatal.)
* SPEED / INTERNAL : The ':all' tag hierachy is expanded
immediately, in an efficient fashion.
* INTERNAL : Numerous minor clean-ups. Dead variables removed.
Typos fixed.
* SPEED / INTERNAL : import() and _make_fatal() cache more
aggressively, reducing CPU overhead.
* TEST: Compatibility with Carp 1.32 (thanks to Zefram).
RT #88076.
2.20 2013-06-23 16:08:41 PST8PDT
Many improvements from Niels Thykier, hero of the
free people. From GH #25:
* SPEED / INTERNAL: Less time is spent computing prototypes
* SPEED / INTERNAL: Leak guards are more efficient.
* SPEED : Expanding tags (eg: qw(:all)) is now faster.
This also improves the speed of checking autodying
code with Perl::Critic.
* INTERNAL: Expanding of tags is faster and preserves order.
2.19 2013-05-13 10:02:15 Australia/Melbourne
* BUGFIX: Loading a file that does not change packages while
autodie in effect no longer causes weird behaviour when
slurpy built-ins (like open() and unlink()) are called. GH #22
Thanks to Niels Thykier.
* TEST: Tests for leak guard failures for slurpy core functions.
2.18 2013-05-12 18:12:14 Australia/Melbourne
* TEST: More testing in scope_leak.t.
* TEST: More testing around packages in truncate.t.
* SPEED / INTERNAL: Significant improvements in load time,
especially when autodie is used across multiple files,
by caching reuseable subroutines and reducing calls to eval "".
Huge thanks to Niels Thykier, who is a hero of the
free people, and completely and utterly awesome.
(RT #46984)
* DOCUMENTATION: Spelling and correction fixes,
courtesy David Steinbrunner.
* DEVEL: Faster and more robust testing with travis-ci.
* DEVEL: Some simple benchmarks bundled in the benchmarks/ directory.
2.17 2013-04-29 01:03:50 Australia/Melbourne
* DOCS: Spelling fixes thanks to dsteinbrunner! (RT #84897)
* DOCS: Fixed github links to point to 'pjf' rather than
'pfenwick' (GH #18, thanks to Lx!)
* INTERNAL: Silence warnings about experimental smart-match on
5.17.11+ (via Brian Fraser and p5p)
* TEST / BUILD: Generate .travis.yml files for CI testing via
dzil.
2.16 2013-02-23 01:49:16 Australia/Melbourne
* BUGFIX: Fix breakages under 5.8.x related to the new
autodie::skip feature.
* BUILD / BUGFIX: Remove dependency on parent.pm.
2.15 2013-02-22 23:55:22 Australia/Melbourne
* BUILD / BUGFIX: Correct meta-info that wanted at least Perl
v5.8.40, rather than v5.8.4. Giant thanks to Paul Howarth
for spotting this!
2.14 2013-02-22 15:43:33 Australia/Melbourne
* FEATURE: Classes which claim they ->DOES('autodie::skip') are now
skipped when generating exceptions. This is mainly of use to
utility classes. See `perldoc autodie::skip` for more details.
(GH Issue #15)
* FEATURE / BUGFIX / INCOMPAT: 'chmod' is now in the ':filesys'
category (was in ':file').
* BUGFIX: Added support for 'chown' and 'utime', that was
previously overlooked. Mad props to RsrchBoy for spotting this.
These are all in the ':filesys' category.
(GH Pull #13)
* BUGFIX: Added support for 'kill'. This is part of the
':ipc' category.
* BUGFIX: Fixed bug whereby chmod, chown, kill, unlink and
utime would not throw an exception when they didn't
change all their files or signal all their processes.
* TEST: truncate.t is now skipped on systems that don't have a
working File::Temp.
* TEST: open.t has a few more tests for exotic modes.
* TEST: chown() tests are skipped on Win32, as chown on Windows
is a no-op. (Thanks to Mithaldu for spotting this!)
* TEST: Author tests now look for the AUTHOR_TESTING env
variable (for dzil compliance).
* TEST: Better testing for chown, chmod, and unlink.
* TEST: Better testing for utime.
* TEST: kwalitee.t is now only run when $ENV{RELEASE_TESTING} is set.
* BUGFIX: Removed executable bits from some bundled text files.
* BUILD: We now use dzil to manage autodie.
* BUILD: Only Perl 5.8.4 and above is supported by autodie.
Please upgrade your Perl distro if you're using 5.8.3 or
below.
2.13 Thu Nov 8 14:22:03 EST 2012
* TEST: Deterministic tests in hints_pod_examples.t .
(RT #80412, thanks to demerphq)
* INTERNAL: subroutine installs are now done in a
deterministic order. (RT #80414, thanks to demerphq)
2.12 Tue Jun 26 14:55:04 PDT 2012
* BUGFIX: autodie now plays nicely with the 'open' pragma
(RT #54777, thanks to Schwern).
* BUILD: Updated to Module::Install 1.06
* BUILD: Makefile.PL is less redundant.
* TEST: t/pod-coverage.t no longer thinks LEXICAL_TAG is
a user-visible subroutine.
2.11 Sat Mar 24 01:50:56 AUSEST 2012
* DOCS: Explicitly documented that autodie is context
unaware. (Thanks to chromatic.)
* TEST: Multi-arg open tests are skipped on VMS.
(Thanks to Craig A. Berry.)
* TEST BUGFIX recv.t shouldn't assume STDIN is a file handle.
(Thanks to Todd Rinaldo)
* TEST: Fixed compatibility with Carp 1.25.
(Thanks to Olivier Mengué.)
* INTERNAL: Exception classes are loaded more safely.
(Thanks to Schwern)
2.10 Sat Feb 27 14:01:18 AUSEST 2010
* BUGFIX: Fatal and autodie no longer leak Carp functions
into the caller's namespace. Thanks to Schwern.
* TEST: Multi-arg open tests are really really skipped
under Windows now.
* DOCUMENTATION: Many more people are properly attributed
in the 'AUTHORS' file.
2.09 Tue Feb 23 00:33:09 AUSEST 2010
* DOCS: Fixed documentation typo. RT #48575
Thanks to David Taylor.
* TEST: Tests involved multi-arg open are skipped
on Windows (where multi-arg pipe is not implemented).
2.08 Mon Feb 8 14:24:26 AUSEST 2010
* BUGFIX: Addeds support for chmod. Many thanks to
Jonathan Yu for reporting this (RT #50423).
* BUGFIX: Multi-arg open is now supported by open.
Many thanks to Nick Cleaton for finding and fix this
bug. (RT #52427)
* BUILD: Updated to Module::Install 0.93
2.07 Fri Jul 31 16:35:40 BST 2009
* FEATURE: Added ->eval_error to autodie::exception, which
stores the contents of $@ at the time autodie throws its
own exception. This is useful when dealing with modules
such as Text::Balanced which set (but do not throw)
$@ on error.
* TEST: Checking for flock() support no longer causes
test failures on older VMS sysstems. (RT #47812)
Thanks to Craig A. Berry for supplying a patch.
* TEST: hints.t tests should no longer cause bogus
failures relating to File::Copy on VMS and Windows
systems prior to Perl 5.10.2.
2.06 Tue Jul 7 00:01:37 AUSEST 2009
* BUG: Explicitly documented that autodie does NOT play
nicely with string evals, especially under Perl 5.10.x.
Please avoid using string evals while autodie is in scope.
* TEST: Check for autodie leaking out of scope in the
presence of string evals. (string-eval-leak.t)
Thanks to Florian Ragwitz and Vincent Pit for identifying
this.
* BUGFIX: autodie once again correctly works when used
inside a string eval. (This was accidently broken
somewhere around 1.997-1.998).
2.05 Sat Jul 4 16:33:01 AUSEST 2009
* BUGFIX: format_default() in autodie::exception no longer
returns a string with file and line attached. This would
cause the file and line information to appear twice when
format handlers would choose to fall back to the defaults.
The file and line information is now always added by
stringify(). (RT #47520, thanks to Michael Schwern)
* BUGFIX: Exceptions thrown by 2-argument open() are more likely
to specify the mode as 'for reading' when no explicit
mode was given. (RT #47520, thanks to Michael Schwern)
2.04 Thu Jul 2 18:56:57 AUSEST 2009
* TEST: Removed spurious warning about insufficient credit.
* TEST: hints.t produces less debugging output when testing
the Perl core. (Thanks to Jerry D. Hedden)
* TEST: hints.t no longer spuriously fails when checking
the return values from File::Copy under Windows before
Perl 5.10.1. (Thanks to Curtis Jewell)
2.03 Wed Jul 1 15:39:16 AUSEST 2009
* BUGFIX: Stopped blog_hints.t from booching under Perl
5.8.x. because parent.pm is not installed.
2.02 Wed Jul 1 15:06:21 AUSEST 2009
* FEATURE: autodie::exception now supports ->context() to
discover the context of the failing subroutine, and
->return() to get a list of what it returned.
* BUGFIX: ->function from autodie::exception now returns
the original name of the dying sub, rather than its imported
name. For example, 'File::Copy::copy' rather than 'main::copy'.
Core functions continue to always return 'CORE::whatever'.
* TEST: blog_hints.t tests new hinting features against
examples in my blog at http://pjf.id.au/blog/
2.01 Wed Jul 1 01:31:24 AUSEST 2009
* DOCUMENTATION: General copyediting and tidy-up
(Thanks to Toby Corkindale)
* BUGFIX: Warnings are no longer emitted when undefined values
are compared by hinting routines.
* BUGFIX: Hints for File::Copy now operate correctly under
Perl 5.10.1.
* BUGFIX: Inheritance is now considered sufficient to declare
allegiance to the hints provider role under Perl 5.8.x.
(Thanks to Glenn Fowler)
* TEST: hints.t no longer throws failures under Perl 5.10.1.
* TEST: pod-coverage.t (author test) no longer fails if
Sub::Identify is not installed.
(Thanks to Jonathan Yu. RT #47437)
2.00 Mon Jun 29 01:24:49 AUSEST 2009
* FEATURE: autodie can now accept hints regarding how
user and module subroutines should be handled. See
autodie::hints for more information.
* INTERFACE: The calls to the internal subroutines
one_invocation() and write_invocation() have changed.
An additional argument (the user subroutine reference) is
passed as the second-last argument. This may break code
that previously tried to call these subroutines directly.
* BUGFIX: Calls to subroutines to File::Copy should now
correctly throw exceptions when called in a list context.
* BUGFIX: An internal error where autodie could potentially
fail to correctly report a dying function's name has been
fixed.
* BUGFIX: autodie will no longer clobber package scalars when
a format has the same name as an autodying function.
(Thanks to Ben Morrow)
* INTERFACE: The internal interfaces for fill_protos(),
one_invocation(), write_invocation() are now once again
backward compatible with legacy versions of Fatal. It is
still strongly recommended these interfaces are NOT called
directly. The _make_fatal() subroutine is not backwards
compatible.
* TEST: Added internal-backcompat.t to test backwards
compatibility of internal interfaces.
* DOCUMENTATION: Expanded documentation regarding how
autodie changes calls to system(), and how this must be
explicitly enabled.
* BUILD: Upgraded to Module::Install 0.91
* BUGFIX: A situation where certain compile-time diagnostics
and errors from autodie would not be displayed has been
fixed.
1.999 Sat Feb 28 18:36:55 AUSEDT 2009
* BUGFIX: Autodie now correctly propagates into string evals
under 5.10+. Autodie completely fails to propagate into
string evals under 5.8. No fix for 5.8 is known.
* BUGFIX: The caller() method on autodie::exception objects
should now always report the correct caller. While it
would always get the line, file, and package correct, previously
it would sometimes report less-than-helpful callers like
'__ANON__' or '(eval)'.
* BUGFIX: autodie was treating system() as a user-sub, not
a built-in. This could tigger extra (unnecessary) work
inside autodie, but otherwise had no user impact.
* DOCUMENTATION: The synopsis for autodie::exception::system
previously implied system() was made autodying by default.
This was not the case. It must still be enabled with
use autodie qw(system).
* DOCUMENTATION: Noted the 5.8 string eval bug in
autodie/BUGS.
* TEST: Added test for correct caller output on
autodie::exception objects. Thanks to Piers Harding
for spotting this bug at KiwiFoo.
* TEST: Added tests for user-defined autodying functions
changing behaviour depending upon context. This was
reported in http://perlmonks.org/?node_id=744246 .
* TEST: Tests for autodie propagating into string eval.
* TEST: Expanded tests to ensure autodie::exception returns
the correct line number and caller.
* TEST: Expanded tests to ensure autodie::exception returns
correct information when calling subroutines in external files.
1.998 Sat Jan 3 11:19:53 AUSEDT 2009
* BUILD: Removed Module::AutoInstall, which previously
was loaded but not used, but currently doesn't actually
do what we want.
* TEST: We manually stringify $@ for one test in
exception_class.t to avoid a bug involving overloaded
classes containing apostrophies.
* TEST: unlink.t and mkdir.t avoid changing directories,
which could cause spurious failures when @INC includes
paths relative to the current working directory.
* DOCUMENTATION: Spurious "used only once" messages are
documented in Fatal's documentation (as well as autodie's).
* TEST: truncate.t has been updated to avoid incorrect
test failures on VMS machines. Many thanks to Craig A
Berry for the bug report and fix. (RT #42110)
1.997 Thu Dec 4 15:14:00 AUSEDT 2008
* TEST: Test::More 0.86 (and possibly 0.85) appears to
dislike package names that contain the apostrophe
character (these occur in some tests for Klingon
localisation). We now skip these tests on systems
with Test::More >= 0.85 installed.
1.996 Thu Dec 4 09:07:39 AUSEDT 2008
* FEATURE: Child classes can now provide an exception_class()
method that returns the desired exception class, rather
than over-riding the whole throw() method. Existing classes
that over-ride throw() will still work as before.
* BUGFIX: Fixed a bug where multiple autodie-derived classes
would share the same subroutine cache. This could result
in excptions from the wrong class being thrown.
This bug did not affect programs which used only autodie,
or a single autodie-derived class.
* BUGFIX: Missing 1.995 version tag added to export list.
* TEST: Make sure that we always have a working version tag for
our current version.
1.995 Sun Nov 30 17:30:16 AUSEDT 2008
* FEATURE: Errors from 2-argument open now have more human
friendly error messages for reading, writing, and appending.
* FEATURE: autodie will never print unsightly references to
GLOB(0x...) structures in error messages; instead it uses
the placeholder '$fh'.
* BUILD: Bundled Module::AutoInstall makes it clear to users
they need to install IPC::System::Simple for autodying
system() support.
* TEST: truncate.t provides more diagnostics on failure.
* TEST: Tests for better formatted reports from connect().
* TEST: New 'open.t' contains specific tests for well-formatted
messages from open().
1.994 Thu Sep 25 16:18:56 AUSEST 2008
* BUGFIX: flock(), ioctl() and truncate() are now part of
the :file tag.
* BUGFIX: link(), mkdir(), rmdir(), symlink() and umask()
are now part of the :filesys tag.
* BUGFIX: The new :msg tag contains msgctl(), msgget(), msgrcv(),
and msgsnd().
* BUGFIX: The new :semaphore tag contains semctl(), semget()
and semop().
* BUGFIX: The new :shm tag contains shmget(), shmread() and
shmctl().
* BUGFIX: The new :ipc tag contains :msg, :semaphore, :shm and pipe().
* BUGFIX: The read(), seek(), sysread(), syswrite() and sysseek()
methods have been added to :io.
* BUGFIX: autodie produces more detailed messages on internal
faults, and is more aggressive about stopping code compilation.
* FEATURE: flock will not die on failure when called
with the LOCK_NB option and would return false
due to an EWOULDBLOCK. See function specific notes
in autodie documentation for more details.
* FEATURE: Stringified exceptions from flock() are significantly
nicer to read.
* FEATURE: use autodie qw(:1.994) can be used to specify the
:default tag from a particular version.
* DOCUMENTATION: flock() is documented as being in the :file tag.
* DOCUMENTATION: Added function-specific notes in autodie.pm
* TEST: New tests for rmdir(), mkdir(), and unlink(), thanks
to Jacinta Richardson.
* TEST: Added author-only perlcritic tests.
* META: META.yml has more correct author information.
1.993 Sun Sep 14 11:15:36 AUSEST 2008
* DOCUMENTATION: The :dbm tag is now correctly documented
in autodie/CATEGORIES. Thanks to Darren Duncan for spotting
this. (RT #39172)
* DOCUMENTATION: The README file has been updated to reflect
current minimum Perl versions (5.8.0) and current resources.
* DOCUMENTATION: The closedir() function is properly
documented as being included in the :filesys tag.
* DOCUMENTATION: Feedback section added to the autodie
documentation. If you find the module useful, consider
saying so on cpanratings.perl.org, or dropping me a note.
* BUILD: Upgrade to Module::Intstall 0.77
1.992 Sun Sep 7 15:51:32 AUSEST 2008
* BUGFIX: unlink(), rename(), chdir() and closedir() functions
are now included in the :filesys tag.
* BUGFIX: binmode() is now checked for failure as part of
the :file tag.
* BUGFIX: Using an unopened filehandle in an autodying
built-in no longer triggers a spurious warning.
* BUGFIX: RT #38845, corrected a missing space in the error
produced by autodie when called with the ':void' switch.
Many thanks to Matt Kraai for the patch!
* FEATURE: The dbmopen() and dbmclose() functions are now
supported in their own :dbm tag. This is part of :io
(and hence :default).
* FEATURE: The dbmopen() built-in has its own formatter,
which ensures errors always display the mask in octal,
not decimal.
* DOCUMENTATION: The :filesys tag is properly documented.
* DOCUMENTATION: Added link to Perl tip on autodie.
* TEST: RT #38845, t/internal.t updated to detect malformed error
messages involving the mixing of ':void' and autodie.
1.991 Fri Aug 22 23:57:24 AUSEST 2008
* BUGFIX: RT #38614, stringified autodie::exceptions objects
now always end with a newline. Thanks to Offer Kaye for the
report.
* BUGFIX: Makefile.PL is no longer executable.
* BUGFIX: 'chdir' added to defaults, and the :filesys group.
* BUGFIX: RT #38598, the errno attribute on autodie::exception
objects is now correctly set.
* BUGFIX: RT #38066, exceptions from system() now report
the correct line number.
* TEST: Internal tests changes to ease integration with core.
* TEST: Checks added for empty 'errno' string in basic_exceptions.t
* TEST: Errors should end with a newline.
* TEST: fork tests should no longer mysteriously fail
on Solaris.
* TEST: backcompat.t should no longer give strange failures on
old versions of 5.8.3 or earlier.
* TEST: system.t ensures the correct file is reported.
* BUILD: Upgrade to Module::Install 0.75
1.99 Mon Jul 21 02:25:23 PDT 2008
* RELEASE CODENAME: "jarich", in thanks for her giving
up pretty much a whole week of her life to do nothing
but help me work on my talks for OSCON.
* BUGFIX: autodie will now check open() for returning
undef, not merely false, as open() can legimiately
return zero for open(my $fh, '-|') || exec(...) style
calls.
* TEST: Added t/lethal.t, a test for basic subclassing.
* TEST: Added t/usersub.t, a test for correct handling
of user subroutines.
* DOCUMENTATION: Noted in autodie.pm that user subs can
only be made Fatal/autodying if they've been declared
first.
* FEATURE: Conflicts between 'no autodie' and 'use Fatal'
re-enabled.
* FEATURE: Added sysopen() and fcntl() to :file, and
exec() and system to :system. exec() doesn't yet work
due to its prototype;
* FEATURE: Vanilla 'use autodie' now implies
'use autodie qw(:default)'. This excludes system(),
which depends upon an optional module, and exec(),
which breaks its exotic form.
* TEST: Internal tests moved from Fatal.t to
internal.t
* FEATURE: Added support for fileno.
* FEATURE: Addded support for exec (although this
breaks the exotic form while autodie is in scope).
* BUGFIX: 'no autodie' now plays nicely with user subs.
* DOCUMENTATION: Added a brief mention of the category
system that autodie provides.
1.11_01 Fri Jul 4 12:53:11 AEST 2008
* RELEASE CODENAME: "Aristotle", in thanks for the many
long and detailed discussions about the autodie interface
and how it should interact with Fatal. Aristotle was
instrumental in ensuring autodie has the clean and
simple interface that it does now.
* FEATURE: 5.8 now has the ability to differentiate between calls
that return false to indicate failure, and those that
only return undef to indicate failure. CORE::send and
CORE::recv are examples of these.
* FEATURE: You can now 'use autodie qw(fork)' to make sure your
forks are successful (they must return defined).
* TEST: t/todo.t removed. We have passing tests (recv.t)
for the reminder I had stuffed into here.
* TEST: t/fork.t added, for testing autodying fork.
* INTERNAL: The internal subroutine _remove_lexical_subs has been
renamed to a much less misleading name of _install_subs,
since that's what it actually does now.
* BUGFIX: Found and fixed a nasty bug where autodie's internal
subroutine cache was being too agressive. This could result in
handles from the incorrect package being used. Scalar filehandles
have never been affected by this bug.
* BUGFIX: Autodying subroutines will no longer leak into other
files if they are used/required/done in the same lexical scope.
* BUILD: Fatal and autodie now install themselves with a
INSTALLDIRS=perl target, meaning they will now correctly
override (and possibly overwrite) your installed Fatal.pm
on 'make install'.
* DOCUMENTATION: Documented the 'used only once' bug when
using Fatal/autodie with package filehandles. This has
always existed in Fatal, and as far as I know it incurable
(but harmless).
* FEATURE: autodie and its exceptions can now be subclassed!
* TEST: Added t/crickey.t as an example of using fair dinkum
subclasses of autodie. Mate, I reckon it's time for a beer.
* INTERNAL: Moved exception architecture from inside-out
objects (which need lots of extra work under 5.8) to
regular hashes (which don't need extra work).
* INTERNAL: Inlined relevant portions of Scope::Guard, meaning
autodie can be installed with no dependencies. (It still
recommends IPC::System::Simple.)
1.10_07 Sun Jun 29 15:54:26 AEST 2008
* RELEASE CODENAME: "ikegami", in thanks for solving the problem
of getting lexical replacement of subroutines working for real
under Perl 5.8. As this works better than my 5.10 implementation,
it forms the foundation for this release.
* Removed inappropriate diagnostics about :lexical from Fatal.pm
* Moved can't mix lexical and void diagnostics to autodie.pm
* Added some basic tests for sysopen()
* Removed the 5.10 only way of tracking lexical hints with
%^H. Our code now exclusively uses the more portable
5.8 code that employs Scope::Guard (and has less side-effects).
* Exotic system is no longer clobbered under 5.10 outside of
autodie's scope.
* autodie::exception::match is better exercised in the 5.8
test suite.
* Re-enabled 'use autodie' vanilla tests.
* t/backcompat.t no longer fails under Devel::Cover
* Repeating function names in arguments to autodie no
longer causes those functions to become 'stuck' in
autodying mode.
* Wrong-version of Fatal.pm support added, along with basic
hints on how to get it working.
* Expanded documentation on autodie, particularly for
exception handling under Perl 5.8.
* Less warnings from t/exceptions.t when running under 5.10.
* All releases now really depend upon Scope::Guard, not just 5.8.
1.10_06 Sun Jun 22 21:50:39 AEST 2008
* RELEASE CODENAME: "Chocolateboy", in thanks for his wonderful
insights, and for letting me sound off way too many ideas
about how things may be done.
* Fixed speeling errors in context.t, thanks to Stennie.
* Fixed minor pod errors and omissions.
* Fixed bug in recv.t which resulted in an incorrect number
of skipped tests on systems using socketpair emulation.
* Fixed a bug that would cause unwanted interactions between
autodie and autobox. Thanks to chocolateboy. (5.8)
* Wrote a (failing) test case demonstrating that the
autodie pragma could leak across files. Many thanks to
chocolateboy for bringing this to my attention.