summaryrefslogtreecommitdiff
path: root/Changes
blob: 09af1ae62f4d085db5705edce9f1f3bd0dd8ebf9 (plain)
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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
Please note: This file provides a summary of significant changes
between versions and sub-versions of Perl, not necessarily a complete
list of each modification.  If you'd like more detailed information,
please consult the comments in the patches on which the relevant
release of Perl is based.  (Patches can be found on any CPAN
site, in the .../src/5.0 directory for full version releases,
or in the .../src/5/0/unsupported directory for sub-version
releases.)

----------------
Version 5.003_05
----------------

This patch was primarily to fix bugs and to clean up some of
the remaining issues from in 5.003_04.  The details are described below.
A very brief summary is:

o Visible Changes to Core Functionality

   -Add support for a READLINE method to tied filehandles.
    
   -times function now uses CLK_TCK if HZ is not available, rather
    than just defaulting to 60.  times output might change on some
    systems, but should be correct now.

   -AnyDBM_File (modifying ISA does not work as expected)
    Now behaves as documented:  Modifying ISA works to select
    order in which *DB* modules are tried.  The default is still
    the same.

o Configure and build enhancements

   -Enhance detection of [gs]etpgrp() variants.  Some systems have
    BSD-style behavior for one and POSIX for the other.  Use
    [gs]etpgid() instead, whenever possible.
  
   -You can now build a shared libperl.so without running through
    the LD_RUN_PATH hoops, if your system supports appropriate
    ld command-line options.  Solaris, NetBSD, and Linux are currently
    supported.  Others are easy to add.  (This makes like a lot easier
    for embedders.)

   -VMS updates.
    
   -Fix installperl and installman so that the -n option really only
    prints commands.  (previously, it would still do the mkdirs.)

o Bug fixes

   -debugger ought to work.

   -A new heredoc tag in Makefile.SH is now quoted.  This prevented
    5.003_04 from working most places.

   -numerous smaller ones, detailed below.

o Specific Changes

Here are the specific file-by-file changes.

# This is my patch perl5.003_05.pat to perl5.003_04
# The full description is below.
# Please execute the following commands before applying this patch.
# (You can feed this patch to 'sh' to do so.)
#  Andy Dougherty		<doughera@lafcol.lafayette.edu>

# We'll create a new test, but patch won't automatically make it
# executable.
touch t/io/read.t
chmod +x t/io/read.t

exit 0


This is patch perl5.003_05.pat to perl version 5.003_04.
This takes you from 5.003_04 to 5.003_05.

To apply this patch, run the above commands,
cd to your perl source directory and then type

	patch -p1 -N < perl5.003_05.pat

The changes are described after each /^Index/ line below.  This is
designed so you can examine each change with a command such as

	csplit -k perl5.003_05.pat '/^Index:/' '{99}'

Patch and enjoy,

    Andy Dougherty		doughera@lafcol.lafayette.edu
    Dept. of Physics
    Lafayette College, Easton PA 18042

Index: Changes

    Updated for 5.003_05.

Index: Configure

    Allow command line or hint-file overrides of $afs.

    Allow trailing spaces in nm output for HPUX10.

    Check for newer BIND 'search' directives in /etc/resolv.conf as well
    as older 'domain' directive.

    Enhance detection of [gs]etpgrp() variants.  Some systems have
    BSD-style behavior for one and POSIX for the other.  Use
    [gs]etpgid() instead, whenever possible.

    Include -s in the -h summary of available options.

    Allow command-line override of $afs.

    Handle trailing spaces in nm-output on HPUX10.

    Set shrpenv for handling LD_RUN_PATH, if needed. (This used to
    be in Makefile.SH.  Now it's available for other modules too.)

    When using shared libperl, avoid LD_RUN_PATH if possible by adding
    correct ld flags.  Currently, Solaris and NetBSD get the correct
    -R $archlibexp/CORE, and Linux gets its
    -Wl,-rpath,$archlibexp/CORE flag.  Other contributions are
    welcome.

Index: INSTALL

    Correct libperl5 -> libperl typo.

    Describe MakeMaker's Warning (will try anyway) messages.

    More info on where and how to send reports.

    Add info on non-Unix ports.


Index: MANIFEST

    Add new test t/io/read.t.

    Add new hints files for ODBM_File for ultrix and hpux.

    Add new pod checker script.

Index: Makefile.SH

    A new heredoc tag in Makefile.SH needs to be quoted.

    shrpenv stuff moved to Configure.

Index: Porting/Glossary

    Updated to match Configure.

Index: README.vms

    VMS 5.003_05 Update.

Index: av.h

    Subject: turbidity in av.[ch]
    Date: Sun, 10 Dec 1995 00:21:31 -0500
    From: Gurusamy Sarathy <gsar@engin.umich.edu>

    Some unclean code that I noticed today.

Index: config_H

    Updated to match newest config_h.SH.

Index: config_h.SH

    Updated to match Configure.

    Changed the DLSYM_NEEDS_UNDERSCORE comment to 
    /**/ to conform to metaconfig style.

Index: emacs/cperl-mode.el

    From: Ilya Zakharevich <ilya@math.ohio-state.edu>
    Subject: Newer CPerl-mode

Index: ext/DB_File/DB_File.pm

    Update to DB_File 1.03.

Index: ext/DB_File/DB_File.xs

    Update to DB_File 1.03.

Index: ext/Fcntl/Fcntl.pm

    Date: Thu, 5 Sep 1996 18:19:14 -0400 (EDT)
    From: Chip Salzenberg <salzench@nielsenmedia.com>
    Subject: No AutoLoader for Fcntl

    Just like Socket, Fcntl doesn't need splitting and AutoLoading.

Index: ext/FileHandle/FileHandle.pm

    From: Roderick Schertler <roderick@gate.net>
    Subject: FileHandle::DESTROY for fd 0

    This fixes FileHandle::DESTROY when called on stdin.

Index: ext/ODBM_File/ODBM_File.xs

    Attempt to correct for "Bad free" in Ultrix and HPUX versions of
    odbm.

Index: ext/ODBM_File/hints/hpux.pl

    Try to work around "bad free" in dbmclose().

Index: ext/ODBM_File/hints/ultrix.pl

    Try to work around "bad free" in dbmclose().

Index: ext/Socket/Socket.pm

    Date: Thu, 5 Sep 1996 09:58:08 +0200
    From: Andreas Koenig <k@anna.in-berlin.de>
    Subject: Patch to inhibit autosplit on Socket.pm

    This patch inhibits production and use of a completely useless
    auto/Socket/autosplit.ix.

Index: handy.h

    Make a little more C++-friendly for IBM's CSET++ compiler.

Index: hints/convexos.sh

    Remove [gs]etpgrp workaround.  Configure & perl.h should handle
    this now.

Index: hints/hpux.sh

    Add note about possible gcc GR3 warning message.

    Remove [gs]etpgrp workaround.  Configure & perl.h should handle
    this now.

Index: hints/sco.sh

    Turn off optimization for stock cc.  This appears to
    prevent miniperl core dumps.

Index: hints/solaris_2.sh

    Catch GNU ld even though it doesn't identify itself as a GNU tool.
    Thanks to Tim Pierce <twpierce@midway.uchicago.edu>.

Index: hints/sunos_4_1.sh

    Describe solution for the __lib_version problem with acc on
    SunOS.

Index: hv.c

    Date: Thu, 05 Sep 1996 00:25:28 -0400
    From: Gurusamy Sarathy <gsar@engin.umich.edu>
    Subject: minor misc. cleanup

    This patch makes some minor cleanups to the sources.  No change
    in functionality whatsoever.

    Date: Thu, 05 Sep 1996 02:52:21 -0400
    From: Gurusamy Sarathy <gsar@engin.umich.edu>

    Subject: debugger problems--another patch (was Re: 5.003_04)

    I have tried to avoid copying of hash keys that are passed to
    magical hashes, but it seems that copying may be unavoidable
    since the hv_*_ent() functions could be PADTMPs (and other
    SVs that may get reused) as keys.

    VMS dynamic %ENV fix

Index: installman

    From: scotth@sgi.com
    Subject: Re: installperl feature request (was: Re: Upgrade 4.0x to 5.001m)

    Fix installperl so that the -n option really only prints commands.
    (previously, it would still do the mkdirs.)

    an "ignore installed" option, so that it doesn't bother to check
    to see if the target already exists (an optimization that I
    *don't* want it to do when I do #1 above)

Index: installperl

    From: scotth@sgi.com
    Subject: Re: installperl feature request (was: Re: Upgrade 4.0x to 5.001m)

    Fix installperl so that the -n option really only prints commands.
    (previously, it would still do the mkdirs.)

    an "ignore installed" option, so that it doesn't bother to check
    to see if the target already exists (an optimization that I
    *don't* want it to do when I do #1 above)

Index: lib/AnyDBM_File.pm

    AnyDBM_File (modifying ISA does not work as expected)
    Now behaves as documented:  Modifying ISA works to select
    order in which *DB* modules are tried.  The default is still
    the same.


    Add helpful "die" message to end of AnyDBM_File.  Previously
    it would return a 0, and the failure would eventually show up
    somewhere else in the script and be hard to track down.  It is
    a failure if perl can't open AnyDBM_File.  The test regression
    suite is supposed to indicate this as a failure too.

Index: lib/ExtUtils/Install.pm

    Updated to MakeMaker-5.38.

    Fix for VMS utime.

Index: lib/ExtUtils/Liblist.pm

    Updated to MakeMaker-5.38.

Index: lib/ExtUtils/MM_Unix.pm
    Updated to MakeMaker-5.38.

Index: lib/ExtUtils/MakeMaker.pm

    Updated to MakeMaker-5.38.

    Updated to MakeMaker-5.39 to allow CFLAGS in hint files.

Index: lib/ExtUtils/Manifest.pm

    Updated to MakeMaker-5.38.

Index: lib/ExtUtils/Mkbootstrap.pm

    Updated to MakeMaker-5.38.

Index: lib/ExtUtils/Mksymlists.pm

    Updated to MakeMaker-5.38.

Index: lib/File/Find.pm

    From: Michael Mahan <mahanm@nextwork.rose-hulman.edu>
    Subject: Cwd::fastcwd in File::Find

    Is there a good reason why File::Find uses Cwd::fastcwd instead of
    Cwd:cwd when fastcwd isn't as portable?
    [In particular, fastcwd() doesn't work on AFS.]

Index: lib/Math/Complex.pm

    There was a mistake in the sqrt routine in lib/Math/Complex.pm that
    gave wrong answers when the magnitude of the imaginary part of the
    argument exceeded the magnitude of the real part.  Line 69 had too
    many sqrt($y)'s.  Further, expressions were re-arranged so that
    calls to the expensive real sqrt() routine were reduced from 4 to 2
    in this case.

Index: lib/open3.pl

    The I/O directions on the dad_wtr and kid_rdr were backwards.
    IO/Open3.pm didn't have this error.

Index: lib/syslog.pl

    Date: Tue, 03 Sep 1996 20:33:54 -0400
    From: Roderick Schertler <roderick@gate.net>
    Subject: syslog.pl `use Socket' lossage

    syslog.pl tries but fails to use
    Socket.pm, the problem is that use doesn't return a true value.  This
    module should be recast in terms of Sys::Syslog, of course.

Index: makedepend.SH

    This patch eliminates "\|" in sed patterns in makedepend.SH, since
    they're not really needed anyway in this one case.

Index: mg.c

    Ok, here's a tested patch for the debugger problem.
    I was missing the fact that DB::dbline magic is actually
    uppercase (which means hv_store_ent() etc., will pass SV keys
    to the vtbl_dbline handlers).

    Replace the oft-repeated mg_ptr incantation with
    the simple MgPVKEY macro.

    Rename MgPVKEY to MgPV (to match with HePV elsewhere).  Add
    additional parens around the "mg".

    (lines near 584) Part of VMS changes.  I don't know what this did.

    Date: Fri, 23 Aug 1996 17:20:22 -0400 (EDT)
    From: Chip Salzenberg <salzench@nielsenmedia.com>
    Subject: Integerize mg.c; eliminate warning on C< local($)) >

    This patch converts magic variables ($!, $^E, etc.) to use integers
    (C<sv_setiv>) instead of floats.  It also eliminates a warning from
    C< local($)) >, via a hack similar to $!.

Index: mg.h

    Replace the oft-repeated mg_ptr incantation with
    the simple MgPVKEY macro.

    Rename MgPVKEY to MgPV (to match with HePV elsewhere).  Add
    additional parens around the "mg".

Index: nostdio.h

    Add _STDIO_LOADED (VMS) to list of guard symbols.

Index: op.c

    From: Gurusamy Sarathy <gsar@engin.umich.edu>
    Subject: Re: \ ( @array ) busted for lexical @array (once more)

Index: patchlevel.h

    Change to subversion 5.

Index: perl.c

    Make floating point constants Locale-friendly.

Index: perl.h

    One last LONG & co. fix (yet another cut'n'paste error) and a few
    minor cleanups. Nothing crucial.

    Make a little more C++-friendly for IBM's CSET++ compiler.

    Enhance detection of [gs]etpgrp() variants.  Some systems have
    BSD-style behavior for one and POSIX for the other.  Use
    [gs]etpgid() instead, whenever possible.

Index: perlio.c

    Eliminate potential "signed vs. unsigned" warning

    Add PerlIO_reopen and PerlIO_cgetname functions.

Index: perlsdio.h

    Don't supply redundant parameters for PerlIO_open and PerlIO_fdopen.

    Include PerlIO_reopen and PerlIO_getname.

    s/FILE_(CNT|PTR)_LVALUE/STDIO_(CNT|PTR)_LVALUE to fix a typo.
    This had prevented SV_FAST_FGETS from working anywhere.

    Include PerlIO_canset_cnt.  I'm not sure how this is supposed to
    differ from STDIO_CNT_LVALUE.

Index: pod/Makefile

    Remove trailing spaces in pods.
    Include a call to the checkpods script in the Makefile (though it's
    not ordinarily used by users).

Index: pod/checkpods.PL

    New script to check for common errors in pods.  This is not
    normally called during the perl build process, but you can
    use it with  B<make check>.

Index: pod/perlfunc.pod

    Document correct C<use POSIX ":wait_h";> usage.

    Add notes about POSIX [gs]etpgrp.

Index: pod/perlipc.pod

    Document correct C<use POSIX ":wait_h";> usage.

Index: pod/perlref.pod

    From: Gurusamy Sarathy <gsar@engin.umich.edu>
    Subject: Re: \ ( @array ) busted for lexical @array (once more)

Index: pod/perltie.pod

    Date: Thu, 29 Aug 1996 15:14:51 +0200
    From: Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
    Subject: more TIEHANDLE

    This adds support for a READLINE method.

Index: pod/perltrap.pod

    Here's documentation on the change in split's behavior between Perl 4
    and Perl 5.

    Subject: More (and less!) 425traps

    Large integer traps

    Precedence

    warn STDERR

    Change blank lines to empty lines.

Index: pod/perlvar.pod

    Be explicit about $/="" matching empty lines, that is, lines
    with no spaces or tabs.

    Change blank lines to empty lines.

Index: pp.c

    Date: Fri, 23 Aug 1996 17:22:40 -0400 (EDT)
    From: Chip Salzenberg <salzench@nielsenmedia.com>
    Subject: Minor integer speedups in mathematics

    This patch provides minor speedups by using integer math and SVt_IV
    values when performing bitwise operations and modulus.

    Date: Tue, 3 Sep 1996 17:49:22 -0400 (EDT)
    From: Kenneth Albanowski <kjahds@kjahds.com>
    Subject: Pack Patch (was Re: 5.002 - pack/unpack does not do "I" right)

    (double)auint cast added for call to sv_setnv().

Index: pp_hot.c

    Date: Thu, 05 Sep 1996 00:25:28 -0400
    From: Gurusamy Sarathy <gsar@engin.umich.edu>
    Subject: minor misc. cleanup

    This patch makes some minor cleanups to the sources.  No change
    in functionality whatsoever.

    Date: Thu, 29 Aug 1996 15:14:51 +0200
    From: Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
    Subject: more TIEHANDLE

    This adds support for a READLINE method.

Index: pp_sys.c

    Clear any buffer space exposed by by read().
    This is almost certainly a bug-fix.

    Undef and then re-define my_chsize from Perl_my_chsize to
    just plain chsize if this system HAS_CHSIZE.  This probably only
    applies to SCO.  This shows the perils of having internal
    functions with the same name as external library functions :-).

    Use CLK_TCK if HZ is not available.

Index: sv.c

    Fix more spots where we had PerlIO_stderr() and should have had
    Perl_debug_log instead.

    Date: Fri, 23 Aug 1996 17:26:42 -0400 (EDT)
    From: Chip Salzenberg <salzench@nielsenmedia.com>
    Subject: Minor potential bug in AV creation

    I wasn't the one who originated this patch.  But it looks like it
    would improve the safety of AV creation.

    Remove potentially incorrect casts on PerlIO_set_ptrcnt.
    'ptr' is already STDCHAR, which is supposed to be the type of
    char used in stdio.h, so we shouldn't have to cast it.

Index: t/io/read.t

    Clear any buffer space exposed by by read().
    This is almost certainly a bug-fix.

Index: t/lib/db-btree.t

    Update to DB_File 1.03.

Index: t/lib/db-hash.t

    Update to DB_File 1.03.

Index: t/lib/db-recno.t

    Update to DB_File 1.03.

Index: t/lib/io_sock.t

    From: Lupe Christoph <lupe@alanya.m.isar.de>
    Subject: Perl 5.003.03: race condition in t/lib/io_sock.t

    io_sock.t works by forking a subprocess it can communicate with.
    It has the subprocess wait for the main process by sleeping 10
    seconds or until an alarm arrives.

    With my setup, the alarm signal arrives *before* the child
    has a chance to ignore the alarm signal.

    I fixed this by moving the "$SIG{ALRM} = sub {};" up before the
    fork. It does not hurt to have the parent ignore alarms, too.

Index: t/op/inc.t

    One last LONG & co. fix (yet another cut'n'paste error) and a few
    minor cleanups. Nothing crucial.

Index: t/op/misc.t

    Date: Thu, 29 Aug 1996 15:14:51 +0200
    From: Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
    Subject: more TIEHANDLE

    This adds support for a READLINE method.

Index: t/op/pack.t

    Date: Tue, 3 Sep 1996 17:49:22 -0400 (EDT)
    From: Kenneth Albanowski <kjahds@kjahds.com>
    Subject: Pack Patch (was Re: 5.002 - pack/unpack does not do "I" right)

Index: t/op/ref.t

    From: Gurusamy Sarathy <gsar@engin.umich.edu>
    Subject: Re: \ ( @array ) busted for lexical @array (once more)

Index: universal.c

    Date: Thu, 29 Aug 96 07:05:10 BST
    From: Graham Barr <bodg@tiuk.ti.com>
    Subject: Re: UNIVERSAL::class busted

    yes, but I also noticed that this does not check that the reference
    is an object, so the patch should be

Index: unixish.h

    Change comment style so that IBM's picky xlc compiler doesn't
    think we've mistakenly tried to nest comments.

Index: util.c

    One last LONG & co. fix (yet another cut'n'paste error) and a few
    minor cleanups. Nothing crucial.

Index: utils/h2xs.PL

    Date: Fri, 6 Sep 1996 06:09:20 -0400 (EDT)
    From: Ilya Zakharevich <ilya@math.ohio-state.edu>
    Subject: updated h2xs

    Changes:
	a) Docs and examples for -x updated;
	b) Path to xxxx.h would not be changed to /usr/include/xxxx.h
    unless this file exists (outside of VMS, I'm afraid to make an error
    there). - Useful with -x option, when the file may be eaten via -I
    inside -F.
	c) .h file would be scanned only if needed.
	d) typemap would be generated (with T_PTROBJ).
	e) Documentation (=list) for autogenerated guys would be
    included into POD.
	f) duplicated XSUBs would not be generated;
	g) arguments to XSUBs being arrays are recognized (note that
    xsubpp would probably choke on such guys).

    -x option requires C-Scan-0.3 (releases a couple of minutes ago to
	    ftp://ftp.math.ohio-state.edu/pub/users/ilya/perl
    should propagate to CPAN soon).

Index: utils/perlbug.PL

    Fix typo $Config{'has_sockets'} ought to be $Config{'d_socket'};

Index: utils/perldoc.PL

    More choices in the pager war.  Unfortunately, we can't rely on
    all users agreeing with the Sysadmin's choice, nor can we
    assign a default preference order, since opinions vary.  If the
    user doesn't have $ENV{PAGER} set, we do want to pick up one that
    at least works, so we'll try whatever Configure found.

Index: vms/Makefile

    VMS 5.003_05 Update.

Index: vms/config.vms

    VMS 5.003_05 Update.

Index: vms/descrip.mms

    VMS 5.003_05 Update.

Index: vms/ext/Stdio/Stdio.pm

    VMS 5.003_05 Update.

Index: vms/ext/filespec.t

    VMS 5.003_05 Update.

Index: vms/gen_shrfls.pl

    VMS 5.003_05 Update.

Index: vms/perlvms.pod

    VMS 5.003_05 Update.

Index: vms/vms.c

    VMS 5.003_05 Update.

Index: vms/vmsish.h

    VMS 5.003_05 Update.

----------------
Version 5.003_04
----------------

This patch was primarily to fix bugs and to clean up some of
the changes made in 5.003_03.  The details are described below.
A very brief summary is:

o Visible Changes to Core Functionality

   -Allow and document permissions for FileHandle::new and
    IO::File::new.
   -glob in Safe compartment used to allow shell access; now
    it's in the same category as `` and system().

o Configure and build enhancements
   
   -perl library name is again -lperl, not -lperl5 in some cases.
   -Several hint files no longer set -g -DDEBUGGING by default.
    Instead, they just turn off optimization, since that is
    probably what was intended.
   -Include OS/2 and Plan9 updates.

o Bug fixes

   -SEGV with $_[0] and circular references fixed.
   -Ilya's debugger patch.
   -FAKE typeglobs fixed.
   -truncate with file name now works.
   -lval substr() no longer coredumps with refs
   -lval substr now clears lexicals in re-entered scopes.
   -core dump in caller() for signal handler for __DIE__.

o Specific Changes

Here are the specific file-by-file changes.
    
# This is my patch perl5.003_04.pat to perl5.003_03
# The full description is below.
# Please execute the following commands before applying this patch.
# (You can feed this patch to 'sh' to do so.)
#  Andy Dougherty		<doughera@lafcol.lafayette.edu>

# Obsolete perl4 hint file.
rm -f hints/dnix.sh
# Obsolete
rm -f os2/notes

# We'll create a new test, but patch won't automatically make it
# executable.
touch t/op/gv.t
chmod +x t/op/gv.t

exit 0


This is patch perl5.003_04.pat to perl version 5.003_03.
This takes you from 5.003_03 to 5.003_04.

To apply this patch, run the above commands,
cd to your perl source directory and then type

	patch -p1 -N < perl5.003_04.pat

The changes are described after each /^Index/ line below.  This is
designed so you can examine each change with a command such as

	csplit -k perl5.003_04.pat '/^Index:/' '{99}'

Patch and enjoy,

    Andy Dougherty		doughera@lafcol.lafayette.edu
    Dept. of Physics
    Lafayette College, Easton PA 18042


Index: Changes

    Updated for 5.003_04.

Index: Configure

    Change name of shared libperl library back to libperl.so.xxx,
    so that a simple -lperl picks up either libperl.a or
    libperl.so.xxx.

    Check if $sh='' in case we've reloaded an old config.sh

Index: INSTALL

    Change name of shared perl library to libperl, instead of
    libperl5.

    Add notes about fragility of shared libperl and the usefulness
    of archlib to separate different binaries.

Index: MANIFEST

    os2/notes removed

    obsolete hints/dnix.sh removed.

    New typeglob test.

Index: Makefile.SH

    For building shared libperl, relocate whole rule to
    inside the if test -f $osname/Makefile.SHs case.

Index: Porting/Glossary

    Updated.

Index: README.os2

    Updated.

Index: av.c

    Subject: Re: SEGV with $_[0] and circular references

    Subject: random cleanup

    This patch removes a few obvious redundancies in the source.

Index: config_H

    Updated.  Note new comments to make AIX happy.

Index: config_h.SH

    Change /*#define../**/ into /*#define../ **/
    to make IBM's xlc compiler shut up about nested comments.
    The /*#define FOO /**/ is a perfectly legal un-nested comment, and
    I wish IBM would fix it's blasted compiler instead.  In the meantime
    we'll take mercy on the poor AIX user and get rid of the screenfulls
    of stupid warning messages.  Thanks to Hallvard B Furuseth
    <h.b.furuseth@usit.uio.no> for the fix.

Index: dump.c

    This patch changes neither behavior nor performance.  However, it does
    reduce code size and improve maintainability by combining some common
    code in gv_fullname() and gv_efullname().

Index: ext/FileHandle/FileHandle.pm

    This patch documents the behavior of FileHandle::{new,open} with
    regard to open modes.  It also documents the exportation of Fcntl
    constants.

    This patch fixes a bug observed by Tom Christiansen: FileHandle::new
    didn't allow for file permissions after the file mode.  Here's a patch.

Index: ext/IO/lib/IO/File.pm

    This patch fixes a bug observed by Tom Christiansen: IO::File::new
    didn't allow for file permissions after the file mode.  Here's a patch.

    This patch documents the behavior of IO::File::{new,open} with
    regard to open modes.  It also documents the exportation of Fcntl
    constants.

Index: ext/Opcode/Opcode.pm

    Subject: Re: glob in Safe compartment allows shell access

    I've moved the glob op into the same opcode tag as backticks and system
    and added a comment.

Index: gv.c

    This patch changes neither behavior nor performance.  However, it does
    reduce code size and improve maintainability by combining some common
    code in gv_fullname() and gv_efullname().

Index: handy.h

    Subject: Patch for LONG_MAX & co.

    Sorry about adding yet another #ifdef forest, but hopefully this
    should resolve the *_MAX issues permanently. It adds to the
    previously defined PERL_LONG_MAX, PERL_LONG_MIN, and PERL_ULONG_MAX
    symbols the complete set of
    /PERL_U?(CHAR|SHORT|INT|LONG)_(MAX|MIN)/, and installs aliases to
    those from /(I|U)(8|16|32|V)_(MAX|MIN)/ so that for any standard
    Perl typedef, like I32 or UV, you can reference I32_MAX or UV_MIN,
    and get appropriate figures. All references to LONG_(MIN|MAX) are
    changed appropriately.

    The .c changes have the side effect of making cast_uv properly use quad
    limits if quads are in use, but longs aren't 64 bit. Hopefully this all
    works, but I don't have any handy Crays to try it out on.

    Add notes on perl's internal types, specifically Quad_t and IV.

Index: hints/hpux.sh

    Remove the d_bsdpgrp hint.  The defaults should be ok.

Index: hints/irix_6_2.sh

    Change optimize=-g to optimize=none to avoid pulling in -DDEBUGGING,
    unless that's what the user really wants.

Index: hints/mpeix.sh

    Change optimize=-g to optimize=none to avoid pulling in -DDEBUGGING,
    unless that's what the user really wants.

Index: hints/os2.sh

    Fixes for sh vs. bin_sh + cleanup.

Index: hints/ultrix_4.sh

    Don't call optimize=-g, just call optimize=none.  The -g
    pulls in -DDEBUGGING, which might not be wanted.

Index: lib/ExtUtils/MM_Unix.pm

    .C$(obj_ext) removed under OS/2 - conflicts with .c$(obj_ext).

Index: lib/ExtUtils/xsubpp

    Fix SCOPE?  (See pod/perlxs.pod).
    Up version number to 1.938.

Index: lib/Test/Harness.pm

    Add a return value to runtests - non-zero if all tests ran ok,
    zero otherwise.

Index: lib/perl5db.pl

    Ilya's debugger patch.
	Undefined subroutine &Carp::longmess called at
	    /opt/perl5.003_03/lib/perl5db.pl line 1423.


    Make perl5db compatible with the recent 'strict refs' enforcement
    in %SIG.

Index: malloc.c

    A patch to perl5.003_02/malloc to give a sensible error abort() message
    in ANSI C, and to give it to stderr instead of stdout.

    Use config_h's STRINGIFY macro instead of pre-ANSI "p".

Index: mg.c

    Subject: FAKE typeglobs seriously busted (with patch)

    Handling of fake typeglobs (scalars that are really globs
    in disguise) is seriously busted since 5.002 (it wasn't
    so in 5.001n).
    The problem is that mg_get() on a glob calls gv_efullname()
    which might coerce its first arg to a string.

    Sub-critical patch to conceivably fix some %SIG problems. (Shared hash key
    weren't being properly detected by some of the sig magic, but as shared
    hash keys wouldn't normally be used in %SIG it's unlikely this is a
    significant problem.)

    This patch changes neither behavior nor performance.  However, it does
    reduce code size and improve maintainability by combining some common
    code in gv_fullname() and gv_efullname().

Index: myconfig

    Update perlio-related variables.

Index: op.c

    This patch changes neither behavior nor performance.  However, it does
    reduce code size and improve maintainability by combining some common
    code in gv_fullname() and gv_efullname().

Index: opcode.h

    Updated.  See opcode.pl.

Index: opcode.pl

    Subject: Re: truncate with file name does not work (with patch)

    The prototype for truncate was changed so that perl won't die
    with C<use strict;> when the first arg is a bareword (filehandle).
    I think it was Tom (as in "tchrist") who brought this up.

    Here's a patch that undoes the damage, makes it work with
    C<use strict;>, and adds to the testsuite.

Index: os2/Makefile.SHs

    perllib vs. LIBPERL

Index: os2/diff.configure

    Updated.

Index: os2/os2.c

    SH_PATH_INI vs. BIN_SH

Index: os2/os2ish.h

    SH_PATH_INI added (needed to redefine SH_PATH for binary
	    distribution).
    SH_PATH is redefined.

Index: patchlevel.h

    SUBVERSION 4.

Index: perl.h

    Subject: Patch for LONG_MAX & co.

    Sorry about adding yet another #ifdef forest, but hopefully this
    should resolve the *_MAX issues permanently. It adds to the
    previously defined PERL_LONG_MAX, PERL_LONG_MIN, and PERL_ULONG_MAX
    symbols the complete set of
    /PERL_U?(CHAR|SHORT|INT|LONG)_(MAX|MIN)/, and installs aliases to
    those from /(I|U)(8|16|32|V)_(MAX|MIN)/ so that for any standard
    Perl typedef, like I32 or UV, you can reference I32_MAX or UV_MIN,
    and get appropriate figures. All references to LONG_(MIN|MAX) are
    changed appropriately.

    The .c changes have the side effect of making cast_uv properly use quad
    limits if quads are in use, but longs aren't 64 bit. Hopefully this all
    works, but I don't have any handy Crays to try it out on.

    Add notes on perl's internal types, specifically Quad_t and IV.

Index: perlio.c

    Removes an incorrect prototype for setlinebuf from
    perlio.c because it conflicts with the correct declaration in
    MachTen's stdio.h (and possibly other stdio's as well).

    Secondly, the code in perlio.c is not handling the (!PERLIO_IS_STDIO &
    HAS_F[GS]ETPOS) case.  The patch fixes this omission (in a rather lumpen
    manner).  I don't think this should affect platforms which try to hack a
    different path through the #ifdef forest, but this assertion would benefit
    from testing...

    Dominic Dunlop

Index: plan9/config.plan9

    Updated.

Index: plan9/fndvers

    Updated.

Index: plan9/mkfile

    Updated.

Index: plan9/setup.rc

    Updated.

Index: pod/perldiag.pod

    Subject: lval substr() coredumps with refs (with patch)

    substr() coredumps with a target that is a ref, when it is used in
    an lvalue context.
    The patch below corrects the problem by stringifying the reference
    first (and emitting a warning when appropriate).

Index: pod/perlxs.pod

    document xsubpp SCOPE:

Index: pp.c

    Subject: lval substr() fails to clear lexicals in re-entered scopes (with patch)

    substr() in lvalue context interacts in buggy fashion with SVs that
    are !SvOK.  This manifests itself with lexicals that have a REFCNT of
    1, since these are merely "cleared in place" by setting SvOK_off.

    Subject: lval substr() coredumps with refs (with patch)

    substr() coredumps with a target that is a ref, when it is used in
    an lvalue context.
    The patch below corrects the problem by stringifying the reference
    first (and emitting a warning when appropriate).

    Subject: Patch for LONG_MAX & co.

Index: pp_ctl.c

    This patch changes neither behavior nor performance.  However, it does
    reduce code size and improve maintainability by combining some common
    code in gv_fullname() and gv_efullname().

Index: pp_hot.c

    Subject: Patch for LONG_MAX & co.

    This patch changes neither behavior nor performance.  However, it does
    reduce code size and improve maintainability by combining some common
    code in gv_fullname() and gv_efullname().

Index: pp_sys.c

    This patch changes neither behavior nor performance.  However, it does
    reduce code size and improve maintainability by combining some common
    code in gv_fullname() and gv_efullname().

Index: proto.h

    This patch changes neither behavior nor performance.  However, it does
    reduce code size and improve maintainability by combining some common
    code in gv_fullname() and gv_efullname().

Index: run.c

    This patch changes neither behavior nor performance.  However, it does
    reduce code size and improve maintainability by combining some common
    code in gv_fullname() and gv_efullname().

Index: sv.c

    Subject: random cleanup

    This patch removes a few obvious redundancies in the source.

    Subject: sv_setsv patch

    This patch changes neither behavior nor performance.  However, it does
    reduce code size and improve maintainability by combining some common
    code in gv_fullname() and gv_efullname().

    From: Chip Salzenberg <salzench@nielsenmedia.com>
    Subject: Track SVs for destruction when -DPURIFY

    When checking for memory leaks, I compiled Perl with "-DPURIFY".
    Although that flag improves the leak checking, it also breaks
    destruction of global objects, because SVs aren't kept in captive
    arenas any more.

    This patch rectifies the problem by providing an alternative
    method for keeping track of SVs when Perl is compiled for Purify.
    It has no effect on normal operation.


    Add comment about assert(len >=0) when len is unsigned anyway.

Index: t/io/fs.t

    Subject: Re: truncate with file name does not work (with patch)

    The prototype for truncate was changed so that perl won't die
    with C<use strict;> when the first arg is a bareword (filehandle).
    I think it was Tom (as in "tchrist") who brought this up.

    Here's a patch that undoes the damage, makes it work with
    C<use strict;>, and adds to the testsuite.

    The "not implemented" branch is missing a "\n".

Index: t/op/gv.t

    Subject: FAKE typeglobs seriously busted (with patch)

    Handling of fake typeglobs (scalars that are really globs
    in disguise) is seriously busted since 5.002 (it wasn't
    so in 5.001n).

    The problem is that mg_get() on a glob calls gv_efullname()
    which might coerce its first arg to a string.

Index: t/op/substr.t


    Subject: lval substr() fails to clear lexicals in re-entered scopes (with patch)

    substr() in lvalue context interacts in buggy fashion with SVs that
    are !SvOK.  This manifests itself with lexicals that have a REFCNT of
    1, since these are merely "cleared in place" by setting SvOK_off.

    Subject: lval substr() coredumps with refs (with patch)

    substr() coredumps with a target that is a ref, when it is used in
    an lvalue context.
    The patch below corrects the problem by stringifying the reference
    first (and emitting a warning when appropriate).

Index: toke.c

    Subject: Re: truncate with file name does not work (with patch)

    The prototype for truncate was changed so that perl won't die
    with C<use strict;> when the first arg is a bareword (filehandle).
    I think it was Tom (as in "tchrist") who brought this up.

    Here's a patch that undoes the damage, makes it work with
    C<use strict;>, and adds to the testsuite.

Index: util.c

    Subject: Re: Perl 5.003 dumps core executing caller() in signal handler for
	    __DIE__ (with patch)

    sv_2pv() might call croak() (which is not prepared to handle that
    when it calls sv_2pv(), itself).  Likewise for warn() (but under
    slightly more esoteric circumstances--mg_get() in sv_2pv() might
    trigger a call to warn()).


    Subject: Patch for LONG_MAX & co.

    PERL_BADLANG is examined by default before issuing a warning during
	    internationalization.

Index: utils/h2xs.PL

    Make leading =head NAME item a paragraph so pod2man finds it.

Index: utils/perldoc.PL

    Use col -x to filter out half-line feeds (ESC-9) from
    HP-UX nroff -man output.  (col -x isn't portable -- SunOS
    doesn't support the -x option.)

----------------
Version 5.003_03
----------------

Most of the changes in 5.003_03 are to make the build and installation
process more robust.  The details are described below.  A very brief
summary is:

o Visible Changes to Core Functionality

   -Support for tied filehandles.

o Configure enhancements

   -How to build and install a shared libperl.so is now documented
    and supported, though it's not the default for most platforms.

o Bug fixes

   -Support bit operations on strings longer than 15 bytes.

   -If a regex supplied to split() contains paranthesized subpatterns
    that can result in null matches, perl no longer coredumps.

   -Fix problems with each() on tied hashes.

   -Make h2ph architecture-independent by using Config at run-time
    rather than extraction time.

o Specific Changes

Here are the specific file-by-file changes.

# This is my patch perl5.003_03.pat to perl5.003_02
# The full description is below.
# Please execute the following commands before applying this patch.
# (You can feed this patch to 'sh' to do so.)
#  Andy Dougherty		<doughera@lafcol.lafayette.edu>

# Absorbed into Changes5.002
rm -f Changes.Conf

# Not needed.
rm -f ext/POSIX/mkposixman.pl

# Moved to README.os2.  I'm not sure why the README files are
# here rather than in the appropriate subdirectories.
rm -f os2/README

# Not needed.
rm -f pod/Makefile.PL

# New test for bit ops.
touch t/op/bob.t

# Patches that create new tests don't always make them executable.
chmod +x t/*/*.t

# Create a new directory for Porting and Patching info.
mkdir Porting

exit 0

This is patch perl5.003_03.pat to perl version 5.003_02.
This takes you from 5.003_02 to 5.003_03.

To apply this patch, run the above commands,
cd to your perl source directory and then type

	patch -p1 -N < perl5.003_03.pat

The changes are described after each /^Index/ line below.  This is
designed so you can examine each change with a command such as

	csplit -k perl5.003_03.pat '/^Index:/' '{99}'

Patch and enjoy,

    Andy Dougherty		doughera@lafcol.lafayette.edu
    Dept. of Physics
    Lafayette College, Easton PA 18042

Index: Changes

	Include 5.003_03 change notes.

	Move older change notes to separate files.

Index: Changes5.000

	New file.  Changes from perl4.036 to 5.000.

Index: Changes5.001

	New file.  Changes from 5.000 to 5.001

Index: Changes5.002

	New file.  Changes from 5.001 to 5.002

Index: Changes5.003

	New file.  Changes from 5.002 to 5.003

Index: Configure

	Relaxed warning about ksh on exotic machines.

	Changed usesafe to useopcode.

	Add search for gzip and zip.

	Look more carefully for $sh (the Bourne-ish shell).
	Use that info to set $startsh correctly.

	Change prompts for PerlIO interface.  See INSTALL
	for how this is supposed to work.  The default is
	still the same as in 5.003_02, namely don't use
	any fancy new PerlIO stuff.

	Don't look for sigvec() since we don't actually use it.
	(Plus, it used to print an alarming misleading message about
	race conditions.)

	Look for stdio's _filbuf under the possible names of
	_filbuf, __filbuf, and _fill.

	New $useshrplib variable to control whether we build a shared
	libperl.so.  The name of the library is in $libperl.
	Always install it in $installarchlib/CORE/$libperl.

	Check for <sys/resource.h> and <sys/wait.h> for NetBSD.

	Replace old $altmake stuff with newer autoconf-ish
	$make_set_make, which checks if $make sets $(MAKE).  Now you
	choose an alternate make with sh Configure -Dmake=gmake (or
	whatever).

	Remove 'ln' for the list of essential commands.  Simulate
	it with 'cp' if necessary.

	Change `logname` prompts to handle extra gratuitous spaces in
	Ultrix output.

	Autodetect os2.

	Fix silly bug in checking for fully-qualified names in /etc/hosts.

	Generalize Gconvert tests.  Give correct and more useful
	error messages.

	Use $obj_ext instead of literal '.o' in the dynaloader test.

	Include appropriate header files in bcopy() and memcpy()
	tests.  Note whether memmove is available.

	Check whether struct sigaction works (needed for Solaris 2.5
	with -Xc).

	Include appropriate header files for randbits test.

Index: INSTALL

	Add note about space requirements.

	Update to match Configure changes (Opcode vs. Safe,
	useperlio, useshrplib, etc.)

	Reorganize the structure of some of the hints.

	Miscellaneous clarifications.

Index: MANIFEST

	Updated.  5.003_02 introduced some massive patches, mostly
	due to spacing changes.  I didn't bother to sort them all out;
	I just started with 5.003's MANIEFST.

Index: Makefile.SH

	Support the new simplified shared libperl mechanism.

	Use new $make_set_make directive.

	Remove redundant libperl Make variable.

	Remove unnecessary MAB variable.

	Remove dependency of minitest on lib/Config.pm, since it could
	well have been a failure of configpm that inspired testing
	miniperl in the first place!

Index: Porting/Glossary

	New file describing all the config.sh variables.
	Eventually, I hope to fill this directory with other useful
	stuff.

Index: README.os2

	Replace old README.os2 with more up-to-date os2/README.

Index: config_H

	Updated to match current Configure and config_h.SH.
	Some rearrangement of parts has occurred due to new
	dependencies in the metaconfig units.

Index: config_h.SH

	Updated to match current Configure and config_h.SH.
	Some rearrangement of parts has occurred due to new
	dependencies in the metaconfig units.

	Include full descriptions of ARCHLIB, OLDARCHLIB, PRIVLIB,
	SITEARCH, and SITELIB.  Previous versions just included the
	~-expanded names (with unhelpful descriptions).  No functionality
	is changed, but maybe it's a little better documented now.

Index: doio.c

	Possibly Include <signal.h> and <unistd.h>

Index: doop.c

	No longer prefer bcmp over memcmp when order doesn't matter.

	Support bit operations on strings longer than 15 bytes.

Index: embed.h

	Auto-generated.

Index: embed.pl

	Expand warning at the top.

Index: ext/IO/IO.pm

	Clean up docmentation installation errors.

Index: ext/IO/lib/IO/Seekable.pm

	Clean up docmentation installation errors.

Index: ext/IO/lib/IO/Select.pm

	Clean up docmentation installation errors.

Index: ext/Opcode/Opcode.xs

	Add support for tied filehandles.

Index: ext/SDBM_File/sdbm/sdbm.h

	Change the Mymalloc to match Perl_malloc in perl.h.

Index: ext/util/make_ext

	Typo change.
	Get rid of unused altmake.

Index: global.sym

	Fix problems with each() on tied hashes.

Index: handy.h

	Change safe*alloc functions to have prototypes that
	match the system's malloc and free types.  That is, use
	Malloc_t instead of char *, and Free_t instead of void.
	This is necessary so . . .

	Safefree cast matches type of free() whether it's perl's
	malloc/free or the system's malloc/free.

Index: hints/README.hints

	Remove out-of-date info.

	Document a bit about how hint files work.

Index: hints/aix.sh

	qmaxmem hint doesn't apply to gcc.

Index: hints/dgux.sh

	Configure will now automatically detect shared libperl stuff.

Index: hints/dynixptx.sh

	Fix typo in comment.
	
	Configure will now automatically detect shared libperl stuff.

Index: hints/epix.sh

	Use glibpth instead of libpth.  This allows Configure to
	add local directories, such as /opt/local/lib, etc.

Index: hints/irix_6_2.sh

	Include some info on cc -n32 compile.

Index: hints/linux.sh

	Configure now tests gcvt() more thoroughly.

Index: hints/machten_2.sh

	Update where to find dld.

Index: hints/mips.sh

	Use glibpth instead of libpth.

Index: hints/next_3.sh

	Build up $mab dynamically.  Since $mab isn't used anywhere
	anymore, this is useless.  However, $mab was never used for
	next_3.sh anyway, so there's been no change in functionality.

Index: hints/next_4.sh

	Get rid of extraneous isnext_4 variable.  Configure and
	Makefile.SH will use $osname and $osvers instead.

	Build up $mab dynamically based on available architectures.

	Absorb $mab into ccflags and ccdlflags.  I hope that will
	cover everything.  (Configure should automatically remove
	the -arch stuff from cppflags.)

	Configure now knows next4 needs to use a shared libperl.5.so.

	Allow users to use -Dprefix.

Index: hints/os2.sh

	Try to update to reflect newer shared libperl stuff.
	I probably goofed :-).

Index: hints/sco.sh

	Additional notes on using icc.

	Additional flags for dynamic loading.

Index: hints/solaris_2.sh

	Perl.h no longer prefers bcmp, so it's again ok if Configure
	finds them, since perl will prefer the mem* versions anyway.

Index: hints/sunos_4_0.sh

	Don't include <unistd.h>

Index: hints/sunos_4_1.sh

	Add brief note about GNU as and ld.

	Don't include <unistd.h>

	Add notes about WHOA THERE messages.

Index: hints/titanos.sh

	Include sfio in libswanted.

	Don't set libpth any more.

Index: hints/umips.sh

	New hint file.

Index: hv.c

	Use memcmp even in cases where ordering doesn't matter.

	Fix problems with each() on tied hashes.

Index: installperl

	Simplify installation of shared libperl.so.

	Avoid reaching Command Failed!!! with /usr/bin/perl.

Index: lib/AutoSplit.pm

	Clean up docmentation installation errors.

Index: lib/ExtUtils/MM_Unix.pm

	Remove MAB references.

	Use 'useshrplib' instead of 'd_shrplib'

Index: lib/ExtUtils/MakeMaker.pm

	Remove mab references.

Index: lib/FindBin.pm

	Clean up docmentation installation errors.

Index: lib/Symbol.pm

	Put back in the BEGIN { require 5.002; }.  The version in
	5.003_02 wouldn't work in 5.002 anyway.  Further, the whole
	point of the construct is to catch 5.001m, so we can't use
	syntax introduced after 5.001m to do that.

Index: lib/Text/Wrap.pm

	Remove double 'use strict'.

Index: lib/perl5db.pl

	Add explicit '&' to avoid warnings under strict refs.

Index: lib/sigtrap.pm

	Clean up docmentation installation errors.

Index: makedepend.SH

	Use Configure's $sh and $make_set_make variables.

Index: mg.c

	Include <unistd.h>

	Use Safefree() macro instead of safefree() function with
	a (possibly) incorrect cast.  The whole point of the
	Safefree() macro is that it does the correct cast for you.


Index: patchlevel.h

	Change to SUBVERSION 3.

Index: perl.c

	Include <unistd.h>

Index: perl.h

	No longer prefer bcmp slightly for comparisons that don't care
	about ordering.

	Rely on Configure setting SH_PATH.

	Change the function name to Pause() instead of pause() to
	avoid potential prototype problems.  (This naming convention
	is similar to the Fwrite and Fflush macros.)

	Fix problems with each() on tied hashes.

	Work around crypt prototype problem on NeXT.

Index: perlio.c

	Fixes to support non-std stdio.

Index: perlio.h

	Try to document the various #defines a bit.  This is far from
	finished.

	Remove a lot of trailing whitespace.  (It's of no consequence, but
	but I'm not going to redo the patch just to put back in the trailing
	whitespace either.)

Index: perlsdio.h

	Fixes to support non-std stdio.

Index: perly.c

	Restore use of Safefree() macro.

Index: perly.c.diff

	Restore use of Safefree() macro.

Index: perly.h

	Delete duplicate line.

Index: plan9/buildinfo

	Update.

Index: pod/perlapio.pod

	Clean up docmentation installation errors.

Index: pod/perlipc.pod

	Fix typo.

	Untaint port number.

Index: pod/perlmod.pod

	Fix a minor nit regarding Exporter.

Index: pod/perlre.pod

	Clean up docmentation installation errors.

Index: pod/perltie.pod

	Add support for tied filehandles.

Index: pod/perltrap.pod

	Clean up docmentation installation errors.

Index: pod/perlxstut.pod

	Clean up docmentation installation errors.

Index: pod/pod2man.PL

	Clean up docmentation installation errors.

Index: pp.c

	Add support for tied filehandles.

	If a regex supplied to split() contains paranthesized subpatterns
	that can result in null matches, perl coredumps.

Index: pp_hot.c

	Use memcmp instead of bcmp even when we don't care about order.

	Add support for tied filehandles.

Index: pp_sys.c

	Include <unistd.h>, <sys/wait.h>, and <sys/resource.h>.
	(The latter two are especially for NetBSD.)

	Don't assume sys/time.h and sys/select.h can't coexist.

	Use Pause macro.

Index: proto.h

	Fix safe*alloc and safefree prototypes.

Index: regexec.c

	Use memcmp instead of bcmp even when we don't care about order.

Index: sv.c

	Use memcmp instead of bcmp even when we don't care about order.

Index: t/lib/opcode.t

	Add support for tied filehandles.

Index: t/op/bop.t

	Support bit operations on strings longer than 15 bytes.

Index: t/op/misc.t

	Add support for tied filehandles.

Index: t/op/split.t

	If a regex supplied to split() contains paranthesized subpatterns
	that can result in null matches, perl coredumps.

Index: toke.c

	Include <unistd.h>.

	Use memcmp instead of bcmp even when we don't care about order.

Index: util.c

	Include <unistd.h>.

	Use correct types for safe*alloc and safefree functions.

Index: utils/h2ph.PL

	Make h2ph architecture-independent by using Config at run-time
	rather than extraction time.

Index: writemain.SH

	Remove unnecessary curlies.  (They are a leftover from
	an older auto_init mechanism.)

Index: x2p/Makefile.SH

	Use Configure's $sh and $make_set_make.

	Remove MAB stuff, since it's now in ccflags.

	Keep 5.003's RCS info.

Index: x2p/a2p.h

	Keep 5.003's RCS info.

Index: x2p/str.c

	Use Configure's FILE_filbuf macro instead of a raw _filbuf.

----------------
Version 5.003_02
----------------
o Visible Changes to Core Functionality
  - Redefining constant subs, or changing sub's prototype now give warnings.
  - Fixes for ++/-- of values close to max/min size of an integer 
  - Warning for un-qualified bareword as handler in $SIG{}. 
  - UNIVERSAL::isa can now be called as static method. 

o Changes in Core Internals
  - PerlIO abstraction added.
    Perl core and standard extensions no longer assume ANSI C's stdio is IO
    mechanism, Default Configure mode is still to use stdio via set of C macros.
    Alternate modes are to use stdio via one perlio.c module, or 
    to use sfio if available.
    
  - Several bug fixs from perl5-porters
      - Make sources non-ANSI C correct again.
      - SUPER in gv.c 
      - Last of shared-hash-key patches
      - eval '(0,1..3)'; # --> SegFault
      - coredumps after simple subsitutes.
      - Correction to UNIVERSAL::VERSION docs.
      - Fixed io_udp test.
      - Fixed another abuse of malloc'ed memory.
  - Enabled DEBUGING_MSTATS whenever perl's malloc() is used.
  - Reverted to default of not hiding perl's malloc (if used). 

o Changes in the Standard Library and Utilities
  - Fixed MakeMaker for static SDBM and builing in a link tree.
  - Upgraded to IO-1.09, and includes latest (still experimental) IO::Select. 
  - Documentation/test tweak to DB_File
  - h2xs upgrade to allow use C::Scan module 

o Changes in OS-specific and Build-time Support
  - Attempted to re-created 5.003_01's NeXT support with metaconfig units.
  - Updated MANIFEST 
  - make minitest now depends on lib/Config.pm, as some of tests require it. 
  - Included latest plan9 sub-directory
  - Applied OS/2 patches.
  - Typo patch for VMS.

----------------
Version 5.003_01
----------------

Version 5.003_01 contains bugfixes and additions accumulated since
version 5.002_01, since the patch to version 5.003 was deliberately
kept simple.  In addition to numerous small bugfixes in the core,
library files, and documentation, this patch contains several
significant revisions, summarized below:

o Visible Changes to Core Functionality

  - A port to Plan9 has been started, and changes are integrated into
    the standard distribution.  As of this release, the Perl core
    and several common extensions are working.

  - A set of basic methods in the UNIVERSAL class have been added to
    the Perl core.  Since UNIVERSAL is an implicit member of every
    class's @ISA, the methods can be called via any object.

  - A mandatory warning has been added for 'declarations' of lexical
    variables using the "my" operator which mask an existing lexical
    variable declared in the same scope, making the previous variable
    inaccessible by its name.

  - The "use" and "require" operators have been extended to allow
    checking of the required module's version.  The "use" operator
    can now be used for an immediate version check of Perl itself.

  - A new "strict" pragma, "strict untie", has been added, which
    produces an error if a tied value is untied when other references
    exist to the internal object implementing the tie.

  - Barewords used as associative array keys (i.e. when specifying
    an associative array element like $foo{__BAR} or on the left
    side of the => operator) may now begin with an underscore as
    well as an alphabetic character.

  - Some of the configuration information previously produced by the
    -v switch has been moved to the -V switch, in order to keep -v
    output concise.

o Changes in Core Internals

  - Symbol table and method lookups have been made faster.

  - Perl subroutines which just return a constant value are now
    optimized at compile time into inline constants.

  - Management of keys for associative arrays has been improved to
    conserve space when the same keys are reused frequently, and
    to pass true Perl values to tie functions, instead of stringified
    representations.

  - Messages normally output to stderr may be directed to another
    stream when Perl is built.  This allows some platforms to
    present diagnostic output in a separate window from normal
    program results.

  - A bug which caused suiperl to fail silently, albeit securely,
    in version 5.003 on some systems has been fixed.

  - Management of Unix-style signal handlers via the %SIG associative
    array has been made safer.

  - Several global C symbols have been renamed to eliminate collisions
    with system C header files or libraries on some platforms.
    Unfortunately, this means that dynamic extensions compiled under
    previous versions of Perl will need to be rebuilt for Perl
    5.003_01.  We're in the process of cleaning up Perl's C
    namespace to make it easier to link Perl with other binaries,
    so this will probably happen again between now and version 5.004.
    After that, we'll do our best to maintain binary compatibility
    between versions.

  - An alternate allocation strategy has been added to Perl's
    optional private memory management routines.  This strategy,
    which may be selected when Perl is built, is designed to
    conserve memory in programs which allocate many small
    chunks of memory with sizes near a power of 2, as is often
    the case in Perl programs.

  - Several memory leaks in the creation and destruction of
    multiple interpreters have been fixed.

o Changes in the Standard Library and Utilities

  - The Opcode extension, which allows you to control a program's
    access to Perl operations, has been added to the standard
    distribution.  This extends the work begun in the original
    Safe extension, and subsumes it.  The Safe interface is still
    available.

  - The IO extension, which provides a set of classes for object-
    oriented handling of common I/O tasks, has been added to the
    standard distribution.  The IO classes will form the basis
    for future development of Perl's I/O interface, and will
    subsume the FileHandle class in the near future.  The default
    class to which all Perl I/O handles belong is now IO::Handle,
    rather than FileHandle.

  - The ExtUtils::Embed library module, which provides a set
    of utility function to help in embedding Perl in other
    applications, has been added to the standard distribution.

  - The Fatal library module, which provides a simple interface
    for creating "do-or-die" equivalents of existing functions,
    has been added to the standard distribution.

  - The FindBin library module, which determines the full path
    to the currently executing program, has been added to the
    standard distribution.

  - The DB_File extension, and the Getopt::Long, Test::Harness,
    Text::Tabs, Text::Wrap, Time::Local and sigtrap library modules
    have been updated to the authors' latest versions.

  - The Carp library module now considers the @ISA chain when
    determining the caller's package for inclusion in error messages.

  - The h2xs, perlbug, and xsubpp utilities have been updated.

  - The standard Perl debugger has been updated, and the information
    provided to the debugger when an XSUB is called has been improved,
    making it possible for alternate debuggers (such as Devel::DProf)
    to do a better job of tracking XSUB calls.

  - The pod documentation formatting tools in the standard distribution
    can now handle characters in the input stream whose high bit is set.

  - The cperl-mode EMACS editing mode has been updated.

o Changes in Documentation

  - Typographic and formatting errors have been corrected in the pod
    documentation for the core and standard library files

  - Explanations of several core operators have been improved

  - The perldebug, perlembed, perlipc, perlsec, and perltrap documents
    extensively revised.

o Changes in OS-specific and Build-time Support

  - Support for the NeXT platform has been extended through
    NeXTSTEP/OPENSTEP 4.0, and now includes the ability to create MABs.

  - Support for OS/2 has been extended as well, and now includes
    options for building a.out binaries.

  - Support for VMS has also been extended, incorporating improved
    processing of file specification strings, optional suppression of
    carriage control interpretation for record-structured files,
    improved support for the -S command line switch, a number of
    VMS-specific bugfixes, and significantly improved performance
    in line-oriented reading of files.

  - Several hints files have been added or updated: aux.sh (updated),
    convexos.sh (updated), irix_4.sh (updated), irix_5.sh (updated),
    irix_6_2.sh (updated), next_3.sh (updated), next_3_2.sh (new),
    next_3_3.sh (new), next_4.sh (new), os2/sh (updated),
    sco.sh (updated), and solaris_2.sh (updated).

  - The test driver for the regression tests now reports when a set
    of tests have been skipped (presumable because the operation
    they're designed to test isn't supported on the current system).