note
syphilis
Hi Ken,<br><br>
Looking at [https://www.nntp.perl.org/group/perl.perl5.porters/2012/10/msg193822.html|Steffen Mueller's original post] on the idea, it seems that it achieves its speed up by turning taint-related operations (that normally get processed even when <b>not</b> running under <c>-T</c>) into no-ops.
<br>As such, I expect you'll need to build a perl with -DNO_TAINT_SUPPORT in order to measure any speed improvements.
<br><br>I've built such a version of current blead (on Windows), but haven't yet run any benchmarks.
<br>To build it, I just hacked perl.h by inserting
<c>
#define SILENT_NO_TAINT_SUPPORT 1
</c>
just before (the already existing)
<c>
#if defined(SILENT_NO_TAINT_SUPPORT) && !defined(NO_TAINT_SUPPORT)
# define NO_TAINT_SUPPORT 1
#endif
</c>
and then built perl in the usual way.
<br>That seems to have resulted in the desired build. To use your first example:
<c>
perl -Te "use Devel::Peek; my $x = $ENV{PATH}; Dump $x;"
SV = PVMG(0x5d1fc8) at 0x56e6f8
REFCNT = 1
FLAGS = (POK,IsCOW,pPOK)
IV = 0
NV = 0
PV = 0x575628 "... long list of pathnames ..."\0
CUR = 852
LEN = 854
COW_REFCNT = 1
</c>
Note the absence of the "magic" flags.
<br><br>
Running <c>make test</c> on that build results in a number of failures. This is expected because some scripts do not cater for the possibility that <c>-T</c> is now a no-op.
<br>Perhaps there are additional (ie unexpected) failures, too ... I don't know.
<br>See below for the full test summary report.
<br><br>Cheers,<br>Rob
<br><READMORE>
<c>
Test Summary Report
-------------------
run/switcht.t (Wstat: 0 Tests: 13 Failed: 4)
Failed tests: 1, 3, 7, 9
op/taint.t (Wstat: 65280 Tests: 16 Failed: 1)
Failed test: 16
Non-zero exit status: 255
Parse errors: Bad plan. You planned 1054 tests but ran 16.
perf/taint.t (Wstat: 0 Tests: 4 Failed: 2)
Failed tests: 1, 3
win32/runenv.t (Wstat: 0 Tests: 45 Failed: 1)
Failed test: 23
../cpan/Encode/t/taint.t (Wstat: 64000 Tests: 498 Failed: 250)
Failed tests: 1-248, 497-498
Non-zero exit status: 250
../cpan/Module-Metadata/t/taint.t (Wstat: 256 Tests: 2 Failed: 1)
Failed test: 1
Non-zero exit status: 1
../cpan/Scalar-List-Utils/t/tainted.t (Wstat: 768 Tests: 5 Failed: 3)
Failed tests: 3-5
Non-zero exit status: 3
../cpan/Test-Harness/t/compat/test-harness-compat.t (Wstat: 1536Tests: 120 Failed: 6)
Failed tests: 6-7, 98-99, 102-103
Non-zero exit status: 6
../cpan/Test-Harness/t/regression.t (Wstat: 8704Tests: 7522 Failed: 34)
Failed tests: 2912, 2914-2915, 2917, 2922-2927, 2931-2932
2938, 2942-2944, 2949-2952, 6676, 6678-6679
6681, 6689-6692, 6698-6700, 6708, 6710-6711
Non-zero exit status: 34
../cpan/Text-ParseWords/t/taint.t (Wstat: 0 Tests: 2 Failed: 2)
Failed tests: 1-2
../dist/Net-Ping/t/450_service.t (Wstat: 0 Tests: 26 Failed: 0)
TODO passed: 9
../ext/IPC-Open3/t/IPC-Open3.t (Wstat: 0 Tests: 45 Failed: 0)
TODO passed: 25
../lib/locale.t (Wstat: 0 Tests: 726 Failed: 157)
Failed tests: 17-26, 32-37, 45-49, 57-61, 64-68, 71-75
78-82, 85-89, 92-96, 98-102, 116-120, 123-128
131-136, 155, 169, 171-176, 178-183, 185-190
192-197, 496, 498, 500, 502, 504, 506, 508
510, 512, 514, 516, 518, 520, 522, 552
554, 556, 558, 560, 562, 564, 566, 568
570, 572, 574, 576, 578, 608, 610, 612
614, 616, 618, 620, 622, 624, 626, 648
650, 652, 654, 656, 658, 660, 662, 664
666, 688, 690, 692, 694, 696, 698, 700
702, 704, 706
../lib/overload.t (Wstat: 0 Tests: 5363 Failed: 780)
Failed tests: 622-623, 628, 633, 636, 641, 646, 649-650
655, 660, 663, 668, 673, 676-677, 682, 687
690, 695, 700, 703-704, 709, 714, 717, 722
727, 730-731, 736, 741, 744, 749, 754, 757-758
763, 768, 771, 776, 781, 784-785, 790, 795
798, 803, 808, 811-812, 817, 822, 825, 830
835, 838-839, 844, 849, 852, 857, 862, 865-866
871, 876, 879, 884, 889, 892-893, 898, 903
906, 911, 916, 919-920, 925, 930, 933, 938
943, 946-947, 952, 957, 960, 965, 970, 973-974
979, 984, 987, 992, 997, 1000-1001, 1006
1011, 1014, 1019, 1024, 1027-1028, 1033
1038, 1041, 1046, 1051, 1054-1055, 1060
1065, 1068, 1073, 1078, 1081-1082, 1087
1092, 1095, 1100, 1105, 1108-1109, 1114
1119, 1122, 1127, 1132, 1135-1136, 1141
1146, 1149, 1154, 1159, 1162-1163, 1168
1173, 1176, 1181, 1186, 1189-1190, 1195
1200, 1203, 1208, 1213, 1216-1217, 1222
1227, 1230, 1235, 1240, 1243-1244, 1249
1254, 1257, 1262, 1267, 1270-1271, 1276
1281, 1284, 1289, 1294, 1297-1298, 1303
1308, 1311, 1316, 1321, 1324-1325, 1330
1335, 1338, 1343, 1348, 1351-1352, 1357
1362, 1365, 1370, 1375, 1378-1379, 1384
1389, 1392, 1397, 1402, 1405-1406, 1411
1416, 1419, 1424, 1429, 1432-1433, 1438
1443, 1446, 1451, 1456, 1459-1460, 1465
1470, 1473, 1478, 1483, 1486-1487, 1492
1497, 1500, 1505, 1510, 1513-1514, 1519
1524, 1527, 1532, 1537, 1540-1541, 1546
1551, 1554, 1559, 1564, 1567-1568, 1573
1578, 1581, 1586, 1591, 1594-1595, 1600
1605, 1608, 1613, 1618, 1621-1622, 1627
1632, 1635, 1640, 1645, 1648-1649, 1654
1659, 1662, 1667, 1672, 1675-1676, 1681
1686, 1689, 1694, 1699, 1702-1703, 1708
1713, 1716, 1721, 1726, 1729-1730, 1735
1740, 1743, 1748, 1753, 1756-1757, 1762
1767, 1770, 1775, 1780, 1783-1784, 1789
1794, 1797, 1802, 1807, 1810-1811, 1816
1821, 1824, 1829, 1834, 1837-1838, 1843
1848, 1851, 1856, 1861, 1864-1865, 1870
1875, 1878, 1883, 1888, 1891-1892, 1897
1902, 1905, 1910, 1915, 1918-1919, 1924
1929, 1932, 1937, 1942, 1945-1946, 1951
1956, 1959, 1964, 1969, 1972-1973, 1978
1983, 1986, 1991, 1996, 1999-2000, 2005
2010, 2013, 2018, 2023, 2026-2027, 2032
2037, 2040, 2045, 2050, 2053-2054, 2059
2064, 2067, 2072, 2077, 2080-2081, 2086
2091, 2094, 2099, 2104, 2107-2108, 2113
2118, 2121, 2126, 2131, 2134-2135, 2140
2145, 2148, 2153, 2158, 2161-2162, 2167
2172, 2175, 2180, 2185, 2188-2189, 2194
2199, 2202, 2207, 2212, 2215-2216, 2221
2226, 2229, 2234, 2239, 2242-2243, 2248
2253, 2256, 2261, 2266, 2269-2270, 2275
2280, 2283, 2288, 2293, 2296-2297, 2302
2307, 2310, 2315, 2320, 2323-2324, 2329
2334, 2337, 2342, 2347, 2350-2351, 2356
2361, 2364, 2369, 2374, 2377-2378, 2383
2388, 2391, 2396, 2401, 2404-2405, 2410
2415, 2418, 2423, 2428, 2431-2432, 2437
2442, 2445, 2450, 2455, 2458-2459, 2464
2469, 2472, 2477, 2482, 2485-2486, 2491
2496, 2499, 2504, 2509, 2512-2513, 2518
2523, 2526, 2531, 2536, 2539-2540, 2545
2550, 2553, 2558, 2563, 2566-2567, 2572
2577, 2580, 2585, 2590, 2593-2594, 2599
2604, 2607, 2612, 2617, 2620-2621, 2626
2631, 2634, 2639, 2644, 2647-2648, 2653
2658, 2661, 2666, 2671, 2674-2675, 2680
2685, 2688, 2693, 2698, 2701-2702, 2707
2712, 2715, 2720, 2725, 2728-2729, 2734
2739, 2742, 2747, 2752, 2755-2756, 2761
2766, 2769, 2774, 2779, 2782-2783, 2788
2793, 2796, 2801, 2806, 2809-2810, 2815
2820, 2823, 2828, 2833, 2836-2837, 2842
2847, 2850, 2855, 2860, 2863-2864, 2869
2874, 2877, 2882, 2887, 3538-3539, 3544
3549, 3552, 3557, 3562, 3565-3566, 3571
3576, 3579, 3584, 3589, 3592-3593, 3598
3603, 3606, 3611, 3616, 3619-3620, 3625
3630, 3633, 3638, 3643, 3646-3647, 3652
3657, 3660, 3665, 3670, 3673-3674, 3679
3684, 3687, 3692, 3697, 3700-3701, 3706
3711, 3714, 3719, 3724, 3727-3728, 3733
3738, 3741, 3746, 3751, 3754-3755, 3760
3765, 3768, 3773, 3778, 3781-3782, 3787
3792, 3795, 3800, 3805, 3808-3809, 3814
3819, 3822, 3827, 3832, 3835-3836, 3841
3846, 3849, 3854, 3859, 3862-3863, 3868
3873, 3876, 3881, 3886, 3889-3890, 3895
3900, 3903, 3908, 3913, 3916-3917, 3922
3927, 3930, 3935, 3940, 3943-3944, 3949
3954, 3957, 3962, 3967, 3970-3971, 3976
3981, 3984, 3989, 3994, 3997-3998, 4003
4008, 4011, 4016, 4021, 4024-4025, 4030
4035, 4038, 4043, 4048, 4051-4052, 4057
4062, 4065, 4070, 4075, 4078-4079, 4084
4089, 4092, 4097, 4102, 4105-4106, 4111
4116, 4119, 4124, 4129, 4186-4187, 4192
4197, 4200, 4205, 4210, 4213-4214, 4219
4224, 4227, 4232, 4237, 4789, 4803, 4845
4859, 4873, 4887, 4892-4893, 4898, 4903
4906, 4911-4912, 4917, 4922, 4925, 4930-4931
4936, 4941, 4944-4945, 4950, 4955
../lib/warnings.t (Wstat: 0 Tests: 925 Failed: 3)
Failed tests: 755-757
Files=2692, Tests=1140111, 1715 wallclock secs (69.89 usr + 6.40 sys = 76.28 CPU)
Result: FAIL
make: *** [GNUmakefile:1965: test] Error 1244
</c>
</READMORE>
11135810
11135833