|
| 1 | +<h1>cperl-5.22.0 / 2015-06-23</h1> |
| 2 | + |
| 3 | +<p>These are the changes above perl-5.22.1 |
| 4 | +See pod/perlcperl.pod for a summary, but note that perlcperl includes also |
| 5 | +still in work features.</p> |
| 6 | + |
| 7 | +<ul> |
| 8 | +<li>installperl uses PERLNAME=cperl with -Dusecperl</li> |
| 9 | +<li>installperl honors Configure -Dperlpath</li> |
| 10 | +<li>fixed some crashing cornercases found by the AFL fuzzer or similar: |
| 11 | +#125840: $x=*0; *x=$x |
| 12 | +protect from XSRETURN(-1) |
| 13 | +#125341: BEGIN <> |
| 14 | +fixed various off-by-one \0 errors with the new 5.16 GV code.</li> |
| 15 | +<li>merge SVf_PROTECT with SVf_READONLY, no double readonly system</li> |
| 16 | +<li>fix old OA_TARGLEX bug with TARGET_MY optim</li> |
| 17 | +<li>add shaped arrays and optimize certain accesses to omit run-time |
| 18 | +bounds checks. loops with static ranges, constant array indices.</li> |
| 19 | +<li>typed all internal ops and use them. |
| 20 | +provide upgrade and downgrade variant tables.</li> |
| 21 | +<li>re-instate pre-2002 exceptions for i_modulo and i_divide with constants |
| 22 | +and typed integers, as with use integer. |
| 23 | +[CHANGE] constant integer modulo now behaves as under use integer |
| 24 | +and deviates with one negative argument from post-2002 code.</li> |
| 25 | +<li>integer constants behave now as under use integer. provide upgrade |
| 26 | +exceptions with the u_ suffix for u_add and u_multiply.</li> |
| 27 | +<li>opcodes: re-arrange, add pure, boxret, typed and native variants. |
| 28 | +renamed some opcodes for harmonization and provide backcompat macros</li> |
| 29 | +<li>fix OP_SASSIGN to be a proper BINOP and remove the various exceptions</li> |
| 30 | +<li>coretypes as builtins, with type check and promotion. |
| 31 | +native types implemented, but not yet promoted</li> |
| 32 | +<li>convert static method calls to subs, as described in |
| 33 | +http://blogs.perl.org/users/rurban/2011/06/how-perl-calls-subs-and-methods.html |
| 34 | +4% faster</li> |
| 35 | +<li>DEBUG_k: -Dk for compiler checks and optimizations, also -Dkv</li> |
| 36 | +<li>rewrote Config as XS, as perfect hash</li> |
| 37 | +<li>change EUMM to depend on lib/Config_heavy.pl, not lib/Config/pm |
| 38 | +because of Config bootstrapping quirks with miniperl and perl variants</li> |
| 39 | +<li>utils: prefix perldoc, perlbug and perlivp with a 'c'. |
| 40 | +rewrote cperlbug to post to github.com/perl11/cperl/issues</li> |
| 41 | +<li>hash_func: add FNV1A, FNV1A_YOSHIMITSUTRIAD/FNV1A_YT, CRC32, METRO64CRC, METRO64, |
| 42 | +SPOOKY32 hashes</li> |
| 43 | +<li>hash_func: select FNV1A as new default. See https://github.com/rurban/perl-hash-stats</li> |
| 44 | +<li>allow Configure -Dhash_func=name</li> |
| 45 | +<li>DEBUG_H: prefix with HASH, and extend it</li> |
| 46 | +<li>fixup (void)INCMARK</li> |
| 47 | +<li>B::Deparse test fixup</li> |
| 48 | +<li>enterxssub: fix ext/Devel-Peek/t/Peek.t</li> |
| 49 | +<li>enterxssub: fix B::Deparse and tests</li> |
| 50 | +<li>enterxssub: fix B tests</li> |
| 51 | +<li>Safe 2.39_01c, Opcode 1.33c: disable enterxssub</li> |
| 52 | +<li>Safe 2.39_01c: Document XS inabilities</li> |
| 53 | +<li>add seperate enterxssub op, ~12% faster</li> |
| 54 | +<li>Safe: skip loading empty Carp::Heavy</li> |
| 55 | +<li>B-Deparse: skip DynaLoader::dl_load_flags on cperl</li> |
| 56 | +<li>Test-Harness: fix for cperl</li> |
| 57 | +<li>fastarith: on gcc and clang use fast overflow intrinsics</li> |
| 58 | +<li>perlcperl.pod: add build + install doc</li> |
| 59 | +<li>ExtUtils::Mkbootstrap: allow missing DynaLoader.pm</li> |
| 60 | +<li>apidoc: fix placing set_version in perlapi</li> |
| 61 | +<li>cperl: do not normalize PL_patchlevel</li> |
| 62 | +<li>cperl version: permit ending c in every cperl VERSION</li> |
| 63 | +<li>more Porting updates: skip DynaLoader for cmpVERSION</li> |
| 64 | +<li>regen Porting/checkcfgvar.pl</li> |
| 65 | +<li>fix t/porting/regen.t</li> |
| 66 | +<li>t/lib/warnings/op: fix for new DynaLoader</li> |
| 67 | +<li>DynaLoader: fix porting/diag.t</li> |
| 68 | +<li>DynaLoader: comment about t/comp/require.t test 53</li> |
| 69 | +<li>t/porting/args_assert.t: fix for set_version</li> |
| 70 | +<li>t/porting/podcheck.t: update for XSLoader/DynaLoader copies</li> |
| 71 | +<li>regen: Possible unintended interpolation of @Changed</li> |
| 72 | +<li>Makefile: improve DL_SRC dependency, touch ar lib</li> |
| 73 | +<li>XSLoader: fix XSLoader.t test 24</li> |
| 74 | +<li>Documentation: add cperl specific changes to *Loader.pod</li> |
| 75 | +<li>perlcall.pod: format flags with C<>, add more about SP vs MARK</li> |
| 76 | +<li>XSLoader: converted to compiled builtin</li> |
| 77 | +<li>DynaLoader.pod: formatting</li> |
| 78 | +<li>metaconf: add dl extensions and path_sep to config.h</li> |
| 79 | +<li>config.h: add LDLIBPTHNAME</li> |
| 80 | +<li>metaconf: add HAS_LIBNAME_UNIQUE to config.h</li> |
| 81 | +<li>metaconf: add d_vms_case_sensitive_symbols and HAS_VMS_CASE_SENSITIVE_SYMBOLS</li> |
| 82 | +<li>xsutils: boot_core_xsutils: boot_DynaLoader</li> |
| 83 | +<li>ExtUtils-Embed-1.33 usecperl variant to boot DynaLoader immediately</li> |
| 84 | +<li>DynaLoader: converted to compiled builtin</li> |
| 85 | +<li>attributes: regen lib/.gitignore via regen/lib_cleanup.pl</li> |
| 86 | +<li>attributes: fix t/porting/diag.t, add :-shared error to perldiag.pod</li> |
| 87 | +<li>attributes: fix tests for cperl</li> |
| 88 | +<li>attributes.pm: disable pp parts</li> |
| 89 | +<li>cperl: allow :const and coretype function return attributes</li> |
| 90 | +<li>lib/attributes.pm: do not bootstrap with cperl</li> |
| 91 | +<li>attributes 0.26_01c converted to XS</li> |
| 92 | +<li>Makefile.SH: replace CC with LD to link exes</li> |
| 93 | +<li>add use cperl pragma</li> |
| 94 | +<li>coretypes: fix t/op/stash.t omit deleting READONLY stash keys</li> |
| 95 | +<li>coretypes: declare Undef, Int, UInt, Num, Str</li> |
| 96 | +<li>ExtUtils-MakeMaker: fix repreq.t for builtin strict</li> |
| 97 | +<li>strict: fix test for cperl</li> |
| 98 | +<li>strict 1.10c converted to compiled builtin, re-add xsutils.c</li> |
| 99 | +<li>usecperl Deparse: lexical_subs is enabled</li> |
| 100 | +<li>mv README.cperl -> pod/perlcperl.pod</li> |
| 101 | +<li>cperl.pm: fix t/porting/maintainers.t</li> |
| 102 | +<li>cperl: display cperl specifics with -V</li> |
| 103 | +<li>Fix cperl pod_rules (readmes in the MANIFESTs)</li> |
| 104 | +<li>Update perldata/const from const qualifier to :const attribute</li> |
| 105 | +<li>perldata.pod: add const and coretypes</li> |
| 106 | +<li>pod: fix porting tests</li> |
| 107 | +<li>README.cperl: tailcall optimization (long term plan)</li> |
| 108 | +<li>README.cperl: We track stable upstream releases only</li> |
| 109 | +<li>README.cperl: php7 + => pod</li> |
| 110 | +<li>-DH debug hash fill, size and collisions</li> |
| 111 | +<li>Configure: set cperl as package, and use its installstyle</li> |
| 112 | +<li>Configure: support -Dusecperl, $Config{usecperl}, ifdef USE_CPERL</li> |
| 113 | +<li>add cperl documentation: pod/perltypes.pod README.cperl</li> |
| 114 | +<li>add CHECK_*_ATTRIBUTES for compile-time</li> |
| 115 | +<li>make -s: more Makefile silencing</li> |
| 116 | +<li>make -s: ExtUtils::Mkbootstrap 7.04_01c: silence Running Mkbootstrap</li> |
| 117 | +<li>fix RT#81332 744aaba059 bloats the B compilers</li> |
| 118 | +<li>test -D switches: add PERLIO_DEBUG changes</li> |
| 119 | +<li>test -D switches: new t/run/switchDBG.t</li> |
| 120 | +<li>DEBUG_I: add documentation for -DI and PERLIO_DEBUG</li> |
| 121 | +<li>PerlIO_debugio: reuse fd from PERLIO_DEBUG for PL_perlio_debug_fd</li> |
| 122 | +<li>DEBUG_I: add a seperate -DI instead of PERLIO_DEBUG</li> |
| 123 | +<li>schmorp stableperl patches for 5.22.0</li> |
| 124 | +<li>restricted hash error message with stashes</li> |
| 125 | +<li>[perl #125369] - Set correct flags for smartmatch in certain cases</li> |
| 126 | +<li>installperl: no strip with DEBUGGING</li> |
| 127 | +<li>parse unicode superscripts simplified (max 2 digits)</li> |
| 128 | +<li>parse unicode constant superscripts (one digit)</li> |
| 129 | +<li>parse sdot for multiply also</li> |
| 130 | +<li>parse some new unicode keywords</li> |
| 131 | +<li>hints/darwin.sh: document -no-cpp-precomp cargo cult</li> |
| 132 | +<li>Devel::Peek fix tests for changed core dump.c</li> |
| 133 | +<li>dump: adjust core tests for changed dump</li> |
| 134 | +<li>dump: add FLAGS values and PADLIST sizes</li> |
| 135 | +<li>MD5: static is not at beginning of declaration</li> |
| 136 | +<li>t/porting/globvar.t: skip PL_memory_debug_header also</li> |
| 137 | +<li>add warnings 7fatal testcase for #123398</li> |
| 138 | +<li>don't fatalize warnings during unwinding (#123398)</li> |
| 139 | +<li>lib/vars_carp.t: fix wrong test</li> |
| 140 | +<li>Ignore ENOTTY on open via the perlio buffer layer</li> |
| 141 | +<li>regen_lib: add some love for vim</li> |
| 142 | +<li>MARK -Ds debugging</li> |
| 143 | +<li>XSLoader 0.21: use dl_find_symbol 3rd optional argument</li> |
| 144 | +<li>DynaLoader: extend t/DynaLoader.t to be run from basedir also</li> |
| 145 | +<li>DynaLoader/dl_*.xs: Define all PERL_IN_DL_*_XS markers</li> |
| 146 | +<li>DynaLoader 1.33 dl_find_symbol add 3rd optional argument</li> |
| 147 | +<li>Configure: support non-perl5 package, and use its installstyle</li> |
| 148 | +<li>xs_boot_epilog (Xp): change ax from U32 to I32</li> |
| 149 | +<li>force_next: fix -Wsign-comp warning</li> |
| 150 | +<li>perl_hash_crc32: use HW hasher as default with SSE4.2</li> |
| 151 | +<li>Makefile: add TAGS target (etags, not ctags)</li> |
| 152 | +<li>EUMM: more make -s improvements</li> |
| 153 | +<li>make -s: silent means silent</li> |
| 154 | +<li>lib/h2ph.t: keep tmpfiles on error</li> |
| 155 | +</ul> |
| 156 | + |
| 157 | +<p>Perl 5</p> |
| 158 | + |
| 159 | +<p>For an overview of what's changed in this release, see pod/perldelta.pod.</p> |
| 160 | + |
| 161 | +<p>For the details of changes in previous releases, see the individual |
| 162 | +perlNNNdelta.pod files. For example, pod/perl588delta.pod describes the |
| 163 | +changes between versions 5.8.7 and 5.8.8.</p> |
| 164 | + |
| 165 | +<p>For a list of contributors to perl, see AUTHORS.</p> |
| 166 | + |
| 167 | +<p>If you need a detailed commit history (i.e. descriptions of each |
| 168 | +individual commit), you can view the git version control history online |
| 169 | +at http://perl5.git.perl.org/perl.git (follow the 'shortlog' link beside |
| 170 | +the relevant tag). Or, you can download a copy of the git repository and |
| 171 | +then run a command like</p> |
| 172 | + |
| 173 | +<pre><code>git log --name-status v5.12.0..v5.14.0 |
| 174 | +</code></pre> |
| 175 | + |
| 176 | +<p>to view all the changes between 5.12.0 and 5.14.0.</p> |
| 177 | + |
| 178 | +<p>See pod/perlgit.pod for more details on using git and accessing the |
| 179 | +commit history.</p> |
| 180 | + |
| 181 | +<p>In perl releases prior to 2009, the source tarball included a collection |
| 182 | +of Changes files that listed the individual commits that had gone into |
| 183 | +each release. Since these files had become very large, and since the |
| 184 | +same information is now freely available online, it was decided to remove |
| 185 | +them from subsequent releases.</p> |
| 186 | + |
| 187 | +<p>If you need access to these removed files, then they can be be found most |
| 188 | +recently in the 5.8.9 and 5.10.0 tarballs, at</p> |
| 189 | + |
| 190 | +<pre><code>http://www.cpan.org/src/perl-5.8.9.tar.gz |
| 191 | +http://www.cpan.org/src/5.0/perl-5.10.0.tar.gz |
| 192 | +</code></pre> |
| 193 | + |
| 194 | +<p>The contents of the files in question can mostly be regenerated using git |
| 195 | +commands. The following table shows the equivalents. Note that the files |
| 196 | +prior to Changes5.005 were not simple lists of commits, so can't be |
| 197 | +recreated just by running the git command. As it happens, even the latter |
| 198 | +ones are not exact equivalents. This is due to a combination of errors in |
| 199 | +the original Changes files, and "impedance mismatches" when the previous |
| 200 | +version control data was imported into git in December 2008.</p> |
| 201 | + |
| 202 | +<p>For example, the Changes5.005 file includes 206 spurious entries from the |
| 203 | +maint5.004 Perforce branch.</p> |
| 204 | + |
| 205 | +<p>Running the following command with the range argument shown in the table |
| 206 | +will produce <em>approximately</em> the same list of changes in the specified |
| 207 | +file shown from the listed tarball.</p> |
| 208 | + |
| 209 | +<pre><code>git log --name-status <range> |
| 210 | +</code></pre> |
| 211 | + |
| 212 | +<p>file tarball <range> argument to 'git log' |
| 213 | + ------------ ------ -------------------------------- |
| 214 | + Changes5.000 Either N/A |
| 215 | + Changes5.001 Either perl-5.000..perl-5.001 |
| 216 | + Changes5.002 Either perl-5.001..perl-5.002 |
| 217 | + Changes5.003 Either perl-5.002..perl-5.003 |
| 218 | + Changes5.004 Either perl-5.003..perl-5.004 |
| 219 | + Changes5.005 Either perl-5.004..perl-5.005_03 |
| 220 | + Changes5.6 Either perl-5.005_03..perl-5.6.0 |
| 221 | + Changes5.8 Either perl-5.6.0..perl-5.8.0 |
| 222 | + Changes5.8.1 5.8.9 perl-5.8.0..perl-5.8.1 ^1ede746b |
| 223 | + Changes5.8.2 5.8.9 perl-5.8.1..perl-5.8.2 |
| 224 | + Changes5.8.3 5.8.9 perl-5.8.2..perl-5.8.3 |
| 225 | + Changes5.8.4 5.8.9 perl-5.8.3..perl-5.8.4 |
| 226 | + Changes5.8.5 5.8.9 perl-5.8.4..perl-5.8.5 ^3a81978b |
| 227 | + Changes5.8.6 5.8.9 perl-5.8.5..perl-5.8.6 ^498d59dd |
| 228 | + Changes5.8.7 5.8.9 perl-5.8.6..perl-5.8.7 |
| 229 | + Changes5.8.8 5.8.9 perl-5.8.7..perl-5.8.8 |
| 230 | + Changes 5.8.9 perl-5.8.8..perl-5.8.9 |
| 231 | + Changes 5.10.0 perl-5.8.0..perl-5.10.0</p> |
0 commit comments