Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
Hi Ken,

Looking at 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 not running under -T) into no-ops.
As such, I expect you'll need to build a perl with -DNO_TAINT_SUPPORT in order to measure any speed improvements.

I've built such a version of current blead (on Windows), but haven't yet run any benchmarks.
To build it, I just hacked perl.h by inserting
#define SILENT_NO_TAINT_SUPPORT 1
just before (the already existing)
#if defined(SILENT_NO_TAINT_SUPPORT) && !defined(NO_TAINT_SUPPORT) # define NO_TAINT_SUPPORT 1 #endif
and then built perl in the usual way.
That seems to have resulted in the desired build. To use your first example:
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
Note the absence of the "magic" flags.

Running make test on that build results in a number of failures. This is expected because some scripts do not cater for the possibility that -T is now a no-op.
Perhaps there are additional (ie unexpected) failures, too ... I don't know.
See below for the full test summary report.

Cheers,
Rob
Test Summary Report ------------------- run/switcht.t (Ws +tat: 0 Tests: 13 Failed: 4) Failed tests: 1, 3, 7, 9 op/taint.t (Ws +tat: 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 (Ws +tat: 0 Tests: 4 Failed: 2) Failed tests: 1, 3 win32/runenv.t (Ws +tat: 0 Tests: 45 Failed: 1) Failed test: 23 ../cpan/Encode/t/taint.t (Ws +tat: 64000 Tests: 498 Failed: 250) Failed tests: 1-248, 497-498 Non-zero exit status: 250 ../cpan/Module-Metadata/t/taint.t (Ws +tat: 256 Tests: 2 Failed: 1) Failed test: 1 Non-zero exit status: 1 ../cpan/Scalar-List-Utils/t/tainted.t (Ws +tat: 768 Tests: 5 Failed: 3) Failed tests: 3-5 Non-zero exit status: 3 ../cpan/Test-Harness/t/compat/test-harness-compat.t (Ws +tat: 1536Tests: 120 Failed: 6) Failed tests: 6-7, 98-99, 102-103 Non-zero exit status: 6 ../cpan/Test-Harness/t/regression.t (Ws +tat: 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 (Ws +tat: 0 Tests: 2 Failed: 2) Failed tests: 1-2 ../dist/Net-Ping/t/450_service.t (Ws +tat: 0 Tests: 26 Failed: 0) TODO passed: 9 ../ext/IPC-Open3/t/IPC-Open3.t (Ws +tat: 0 Tests: 45 Failed: 0) TODO passed: 25 ../lib/locale.t (Ws +tat: 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 (Ws +tat: 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 (Ws +tat: 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

In reply to Re^2: Proposed change regarding "Taint" support [overhead] by syphilis
in thread Proposed change regarding "Taint" support by syphilis

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (2)
As of 2022-05-21 06:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you prefer to work remotely?



    Results (76 votes). Check out past polls.

    Notices?