This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Karl Williamson [Sun, 21 May 2017 03:41:42 +0000 (21:41 -0600)]
perldelta: Add a C<> formatting code.
Karl Williamson [Sun, 21 May 2017 03:38:10 +0000 (21:38 -0600)]
perldelta: Cleanup documentation changes section
I looked at all the files in /pod for their changes since 5.24. I think
this action should be added to the RMG. I removed the changes that are
described elswhere in perldelta, adding boiler plate to that effect.
I removed the changes I thought would not be useful for someone reading
this, but added significant numbers of substantive changes that had been
omitted.
Karl Williamson [Sun, 21 May 2017 03:36:16 +0000 (21:36 -0600)]
perldelta: Add a section for undeprecations
and populate it.
Karl Williamson [Sun, 21 May 2017 03:31:57 +0000 (21:31 -0600)]
perldelta: Note that utf8_hop_safe is for XS code
I actually don't think this should be here. I think it should be in
Internal Changes. Note that there were a bunch more functions added
for XS code, and these are there. Perhaps there should be some separate
sections there, with one for enhancements.
Ævar Arnfjörð Bjarmason [Sat, 20 May 2017 13:53:04 +0000 (13:53 +0000)]
perldelta: remove the @INC blurb I added
Remove the @INC blurb I added in commit
90ed3b64f9 ("perldelta:
clarify what '.' and @INC is about", 2017-05-16).
I wrote this independently before seeing the RT bug that had a much
more complete overview, which I applied in commit
89853d76c8 ("Add
more extensive information about @INC changes into
perldelta (RT#131304)", 2017-05-17).
As a result we now have this section, and then right below it another
section authored by Dominic Hargreaves.
This needs to be resolved before release. As noted in
89853d76c8 some
things could arguably be salvaged from my section as it's more brief,
but I can't think of a good way to rewrite this, so just remove it.
Craig A. Berry [Sat, 20 May 2017 02:52:51 +0000 (21:52 -0500)]
More perldelta tweaks.
Streamline or omit some of the VMS changes. No need to mention
minor test refactorings or other tiny bits of work product that
don't represent notable user-visible changes from 5.24. And fix
one comma splice in the OS X section.
Karl Williamson [Fri, 19 May 2017 20:08:51 +0000 (14:08 -0600)]
perldelta: Note that part of perlre was rewritten
Karl Williamson [Fri, 19 May 2017 20:07:36 +0000 (14:07 -0600)]
perldelta: Fix wording about literal "{"
This clarifies the wording and corrects the various messages raised
about it.
Karl Williamson [Fri, 19 May 2017 20:04:56 +0000 (14:04 -0600)]
perldelta: Nits
This adds missing words, links, space, and format controls
Karl Williamson [Fri, 19 May 2017 19:58:53 +0000 (13:58 -0600)]
perldelta: Make version numbers more consistent
This removes unnecessary .0 from version numbers, and removes the intial
'v' for those following the word 'Perl'
Aaron Crane [Fri, 19 May 2017 14:07:38 +0000 (15:07 +0100)]
perldelta: tweaks to obituaries
Karl Williamson [Fri, 19 May 2017 03:25:28 +0000 (21:25 -0600)]
perldelta: Use two spaces after sentences.
Karl Williamson [Fri, 19 May 2017 03:17:43 +0000 (21:17 -0600)]
perldelta: Various nits.
Treat e.g. and i.e. Uniformly;
add some missing words;
spelling, commas, dashes.
Ævar Arnfjörð Bjarmason [Thu, 18 May 2017 08:02:35 +0000 (08:02 +0000)]
perldelta: don't dollar-quote an env variable like $ENV, should be ENV
The way it was before made it appear that perhaps we meant a Perl
variable.
Karl Williamson [Thu, 18 May 2017 05:10:08 +0000 (23:10 -0600)]
perldelta: This file is for 5.26, not 5.24
Karl Williamson [Thu, 18 May 2017 05:09:01 +0000 (23:09 -0600)]
perldelta: Rmv entry that applies just to a devel release
This is not applicable to someone upgrading from any prior stable
release.
Karl Williamson [Thu, 18 May 2017 05:07:10 +0000 (23:07 -0600)]
perldelta: Don't mention development release numbers
We have agreed in previous years that this is distracting detail to
someone reading the stable release notes.
There is still one left, but I ran out of time tonight to figure out
what to say.
Karl Williamson [Thu, 18 May 2017 05:05:32 +0000 (23:05 -0600)]
perldelta: Add unescaped "{" to Notice
On irc, we agreed that this is important enough to be highighted there.
Karl Williamson [Thu, 18 May 2017 05:02:33 +0000 (23:02 -0600)]
perldelta: Move some alleged 'enhancements' to 'incompatible changes'
I reordered the latter section so the most important things in my view
were earlier in it.
I also extensively reworded the unescaped { section to hopefully better
explain it.
I think the enhancements section should be reordered by importance. For
example I don't think /xx is the most important enhancement in 5.26.
But I'll let others decide.
Karl Williamson [Thu, 18 May 2017 05:00:47 +0000 (23:00 -0600)]
perldelta: Improve wording about Unicode scx property
Karl Williamson [Thu, 18 May 2017 04:51:46 +0000 (22:51 -0600)]
perldelta: Move section adjacent to similar one
These two sections about @INC and dot need to be combined into one,
and should be in Security.
I'll let someone else take a stab at that.
Karl Williamson [Thu, 18 May 2017 04:47:40 +0000 (22:47 -0600)]
perldelta: Remove duplicate entry
Sawyer X [Wed, 17 May 2017 19:15:54 +0000 (21:15 +0200)]
Fix another perldelta link
Sawyer X [Wed, 17 May 2017 19:15:45 +0000 (21:15 +0200)]
Fix perldelta link
Sawyer X [Wed, 17 May 2017 19:09:18 +0000 (21:09 +0200)]
Remove documentation of 5.25.4 fix in 5.26.0 delta
Sawyer X [Wed, 17 May 2017 19:09:07 +0000 (21:09 +0200)]
Fix git conflict indicator
Sawyer X [Sun, 14 May 2017 09:39:43 +0000 (11:39 +0200)]
Extra commas
Dominic Hargreaves [Wed, 17 May 2017 14:17:42 +0000 (15:17 +0100)]
Add more extensive information about @INC changes into perldelta (RT#131304)
This mainly takes existing text written by Dave Mitchell, Kent Fredric,
Sawyer X and James E Keenan.
[Ævar: I applied this from RT #131304. It had conflicts which I
resolved to the best of my ability.
The submitted patch removed the "'.' and @INC" section which I rewrote
in
90ed3b64f9 ("perldelta: clarify what '.' and @INC is about",
2017-05-16). I resolved the conflict to keep it.
Maybe this was the wrong move. We're now mentioning the removal of "."
in 3 prominent places, at the top in "Notice", "Core Enhancements",
and "Security".
Maybe the best move here is to remove the section I wrote, although as
noted in my commit I think one redeeming factor it if is the plain
language describing the change (i.e. not assuming knowledge of
variables like @INC right off the bat), but obviously I'm biased
there].
Karl Williamson [Wed, 17 May 2017 15:53:34 +0000 (09:53 -0600)]
perldelta: Fix broken link
Ævar Arnfjörð Bjarmason [Tue, 16 May 2017 18:30:10 +0000 (18:30 +0000)]
perldelta: clarify what '.' and @INC is about
The existing section we had here was totally misleading. I couldn't
understand "now provides a way to build" and "if you want it turn X
on" differently than meaning that '.' was still in @INC by default and
you had to compile perl with some optional switch to turn it on.
It turns out[1] that the exact opposite of that is the case. This is
on by default. Rewrite the entire section to make that clear to the
reader.
While I'm at it dumb it down a bit to be understandable to someone
who's just upgrading Perl. Not everyone knows what @INC is offhand,
but describing how we now load libraries is understandable to
everyone.
Then cover PERL_USE_UNSAFE_INC=1 and how it's set by various toolchain
modules now, and finally avoid talking about both
DEFAULT_INC_EXCLUDES_DOT and -Ddefault_inc_excludes_dot in the context
of a build option, just consistently mention only
-Ddefault_inc_excludes_dot.
We could go into much more detail here. See the "[RFC] We need prose
for perl526delta about "." in @INC removal" thread[2]. I think
including something like that probably makes sense later in the
document, but this should suffice for an intro section, and I'll let
others who proposed more detailed updates send their own patches for
further clarifying this feature.
1. "Re: Perl 5.26.0-RC1 is now
available!" (<CAATnKFABh0PjQK0WLqC-MTugj==O22zjwRgDapfb1EHvLr0tKw@mail.gmail.com>"
2. <CAATnKFCSeGh6Lcwux1CsGP=6pQSQtG7_bViZRGji3Soa5b=1ow@mail.gmail.com>
(http://www.nntp.perl.org/group/perl.perl5.porters/2017/03/msg243763.html)
Ævar Arnfjörð Bjarmason [Sat, 13 May 2017 22:14:50 +0000 (22:14 +0000)]
perldelta: clarify how undeffing HV/AV is faster now
There were better notes in the change that introduced this[1]. Copy
the performance numbers from there, and say "arrays and
hashes". instead of "AV and HV". Better to use the more familiar names
than the internal struct names which are mostly only familiar to core
devs.
1.
be98855787 ("speed up AV and HV clearing/undeffing", 2016-10-26)
Yves Orton [Sat, 13 May 2017 22:00:15 +0000 (22:00 +0000)]
perldelta: clarify what these new capture variables are for
[Ævar: I originally had a worse patch for this, but Yves had a better
one to fixup into mine. See "Re: Perl 5.26.0-RC1 is now available!"[1]
on list for context.].
1. <CANgJU+Uh0Kg_fS=3Ux5WvZtskOcOQT2Gjvy8tgYHjCTd0-d90Q@mail.gmail.com>
Ævar Arnfjörð Bjarmason [Sat, 13 May 2017 21:56:19 +0000 (21:56 +0000)]
perldelta: move the note about utf8_hop() to the bottom
A note about a relatively obscure internal API function really doesn't
belong so high up in the "Core Enhancements", before core visible user
changes.
Move this to the bottom, all of the other things in this section are
things normal Perl programmers might actually use/encounter/care
about, whereas this change is only relevant for some XS maintainers.
Ævar Arnfjörð Bjarmason [Sat, 13 May 2017 21:46:43 +0000 (21:46 +0000)]
perldelta: remove "maybe this won't be in 5.26" note about PERL_USE_UNSAFE_INC
This was originally added in commit
8bbdbfcb89 ("Perldelta updates in
prep for tomorrows release", 2016-11-19), we're now at RC1 so it's
pretty clear that this will be in the release.
Ævar Arnfjörð Bjarmason [Sat, 13 May 2017 22:06:44 +0000 (22:06 +0000)]
perldelta: mention when lexical_subs were introduced
Doesn't take up much space, and makes you aware that if you e.g. are
using 5.18 already you can now use this in all your code without fear.
Ævar Arnfjörð Bjarmason [Sat, 13 May 2017 22:01:51 +0000 (22:01 +0000)]
perldelta: 'for slightly more detail' -> 'for more details'
There's no need to inject "slightly" there, that documentation section
looks pretty complete to me.
Ævar Arnfjörð Bjarmason [Sat, 13 May 2017 21:41:54 +0000 (21:41 +0000)]
perldelta: grammar fix: "[process] do not function well" -> "does not ..."
H.Merijn Brand [Wed, 17 May 2017 13:44:46 +0000 (15:44 +0200)]
fixed couple of compilation failures with g++ (JHI)
H.Merijn Brand [Sat, 13 May 2017 16:11:53 +0000 (18:11 +0200)]
Restore _test make target
Sawyer X [Thu, 11 May 2017 22:26:54 +0000 (00:26 +0200)]
Fix META.json
Sawyer X [Thu, 11 May 2017 21:51:38 +0000 (23:51 +0200)]
Add epigraph
Sawyer X [Thu, 11 May 2017 17:22:49 +0000 (19:22 +0200)]
Merge branch 'release/5.26.0-RC1' into blead
Sawyer X [Thu, 11 May 2017 17:07:23 +0000 (19:07 +0200)]
disarm RCnnn bump
Sawyer X [Thu, 11 May 2017 15:20:16 +0000 (17:20 +0200)]
Regenerate last-second acknowledgements
David H. Gutteridge [Thu, 11 May 2017 15:01:52 +0000 (09:01 -0600)]
Add missing commas to perlfunc
Karl Williamson [Wed, 10 May 2017 04:28:15 +0000 (22:28 -0600)]
perldeprecation: Add imminent XS deprecations
The deprecated XS functions that have been scheduled to be removed did
not make it into this pod.
David H. Gutteridge [Thu, 11 May 2017 15:01:52 +0000 (09:01 -0600)]
Add missing commas to perlfunc
Karl Williamson [Wed, 10 May 2017 04:28:15 +0000 (22:28 -0600)]
perldeprecation: Add imminent XS deprecations
The deprecated XS functions that have been scheduled to be removed did
not make it into this pod.
Sawyer X [Thu, 11 May 2017 13:03:58 +0000 (15:03 +0200)]
Update META files
Sawyer X [Thu, 11 May 2017 13:03:12 +0000 (15:03 +0200)]
bump version to RCnnn
Sawyer X [Thu, 11 May 2017 13:00:42 +0000 (15:00 +0200)]
add new release to perlhist
Sawyer X [Thu, 11 May 2017 12:52:31 +0000 (14:52 +0200)]
Fix link
Sawyer X [Thu, 11 May 2017 12:36:27 +0000 (14:36 +0200)]
Pod fixes
Sawyer X [Thu, 11 May 2017 12:33:54 +0000 (14:33 +0200)]
Finalize perldelta with acknowledgements and updated modules
David Mitchell [Mon, 8 May 2017 20:06:38 +0000 (21:06 +0100)]
avoid a memory wrap in sv_vcatpvfn_flags()
RT #131260
When calculating the new size of PL_efloatbuf, avoid wrapping 'need'.
Sawyer X [Thu, 11 May 2017 11:28:59 +0000 (13:28 +0200)]
reorder
Sawyer X [Thu, 11 May 2017 11:28:51 +0000 (13:28 +0200)]
Correct links
Sawyer X [Thu, 11 May 2017 11:01:16 +0000 (13:01 +0200)]
Sorted with cool trickery help by arc
Sawyer X [Thu, 11 May 2017 10:59:11 +0000 (12:59 +0200)]
Manually replace 52513 with 5260 perldelta filename
Sawyer X [Thu, 11 May 2017 10:40:10 +0000 (12:40 +0200)]
For now it's just perldelta.pod
Sawyer X [Thu, 11 May 2017 10:35:57 +0000 (12:35 +0200)]
Cleanups
Sawyer X [Wed, 10 May 2017 22:06:13 +0000 (00:06 +0200)]
Reorder section
Sawyer X [Wed, 10 May 2017 21:55:27 +0000 (23:55 +0200)]
Merge perl52512delta.pod
Sawyer X [Wed, 10 May 2017 21:54:26 +0000 (23:54 +0200)]
Merge perl52511delta.pod
Sawyer X [Wed, 10 May 2017 14:01:08 +0000 (16:01 +0200)]
Merge perl52510delta.pod
Sawyer X [Wed, 10 May 2017 13:58:40 +0000 (15:58 +0200)]
Merge perl5259delta.pod
Sawyer X [Wed, 10 May 2017 13:48:23 +0000 (15:48 +0200)]
Merge perl5258delta.pod
Sawyer X [Wed, 10 May 2017 12:59:33 +0000 (14:59 +0200)]
Merge perl5257delta.pod
Sawyer X [Wed, 10 May 2017 12:20:38 +0000 (14:20 +0200)]
Merge perl5256delta.pod
Sawyer X [Wed, 10 May 2017 12:16:17 +0000 (14:16 +0200)]
Merge perl5255delta.pod
Sawyer X [Wed, 10 May 2017 12:13:10 +0000 (14:13 +0200)]
Merge perl5254delta.pod
Sawyer X [Wed, 10 May 2017 12:09:30 +0000 (14:09 +0200)]
Merge perl5253delta.pod
Sawyer X [Wed, 10 May 2017 11:58:55 +0000 (13:58 +0200)]
Merge perl5252delta.pod
Sawyer X [Wed, 10 May 2017 11:52:57 +0000 (13:52 +0200)]
Merge perl5251delta.pod
Sawyer X [Wed, 10 May 2017 11:48:22 +0000 (13:48 +0200)]
Creating perl5260delta.pod from perl5250delta.pod
David Mitchell [Mon, 8 May 2017 20:06:38 +0000 (21:06 +0100)]
avoid a memory wrap in sv_vcatpvfn_flags()
RT #131260
When calculating the new size of PL_efloatbuf, avoid wrapping 'need'.
Yves Orton [Fri, 28 Apr 2017 07:19:22 +0000 (09:19 +0200)]
Dave Rolsky [Wed, 26 Apr 2017 22:03:13 +0000 (17:03 -0500)]
Fix a typo in Kip Hampton's obituary
Yves Orton [Sun, 23 Apr 2017 09:59:34 +0000 (11:59 +0200)]
Revert "use a specific define for 64 bit hashing"
This reverts commit
a4283faf7092ec370914ee3e4e7afeddd0115689.
Accidental push. Sorry.
Yves Orton [Sun, 23 Apr 2017 09:58:24 +0000 (11:58 +0200)]
Revert "Tweak our hash bucket splitting rules"
This reverts commit
05f97de032fe95cabe8c9f6d6c0a5897b1616194.
Accidentally pushed while waiting for blead-unfreeze.
Yves Orton [Sun, 23 Apr 2017 09:53:00 +0000 (11:53 +0200)]
make fix for #131190 EBCDIC safe
Yves Orton [Sun, 23 Apr 2017 09:47:13 +0000 (11:47 +0200)]
Revert "Add new hashing and "hash with state" infrastructure"
This reverts commit
a3bf60fbb1f05cd2c69d4ff0a2ef99537afdaba7.
Accidentally pushed work pending unfreeze.
Yves Orton [Sun, 23 Apr 2017 09:47:10 +0000 (11:47 +0200)]
Revert "Move utility macros to their own file"
This reverts commit
259e968485f855f70472c8be9267efceca42b0fb.
Accidentally pushed work pending unfreeze.
Yves Orton [Sun, 23 Apr 2017 09:47:04 +0000 (11:47 +0200)]
Revert "get rid of USE_HASH_SEED_EXPLICIT"
This reverts commit
dd1b95f812312c85390f487887cdd55282fcd6ce.
Accidentally pushed work pending unfreeze.
Yves Orton [Sun, 23 Apr 2017 09:46:52 +0000 (11:46 +0200)]
Revert "improve and update hash algorithm configuration docs in INSTALL"
This reverts commit
e7e07d980872d020fd93a43cda96f72c8013af20.
Accidentally pushed work pending unfreeze.
Yves Orton [Sun, 23 Apr 2017 09:46:32 +0000 (11:46 +0200)]
Revert "remove dead comment"
This reverts commit
c25b844905729021ec43dcc6c244d99330d7260a.
Accidentally pushed work pending un-freeze.
Yves Orton [Sun, 23 Apr 2017 09:44:10 +0000 (11:44 +0200)]
Fix #131190 - UTF8 code improperly casting negative integer to U8 in comparison
Yves Orton [Thu, 23 Mar 2017 12:38:37 +0000 (13:38 +0100)]
remove dead comment
Yves Orton [Thu, 23 Mar 2017 10:57:36 +0000 (11:57 +0100)]
improve and update hash algorithm configuration docs in INSTALL
Updated to reflect new hash functions, along with some wordsmithing
tweaks to make things read more smoothly (hopefully).
Yves Orton [Thu, 23 Mar 2017 10:54:43 +0000 (11:54 +0100)]
get rid of USE_HASH_SEED_EXPLICIT
I think this has been outright broken for a long time, and it
doesnt make any sense to since mandatory randomization anyway,
so simply remove it.
Yves Orton [Thu, 23 Mar 2017 10:06:13 +0000 (11:06 +0100)]
Move utility macros to their own file
so that hv_func is left with only logic relating to selecting
and configuring the hash function we use, not the macros our
hash functions use.
Yves Orton [Wed, 22 Mar 2017 15:40:28 +0000 (16:40 +0100)]
Add new hashing and "hash with state" infrastructure
This adds support for three new hash functions: StadtX, Zaphod32 and SBOX,
and reworks some of our hash internals infrastructure to do so.
SBOX is special in that it is designed to be used in conjuction with any
other hash function for hashing short strings very efficiently and very
securely. It features compile time options on how much memory and startup
time are traded off to control the length of keys that SBOX hashes.
This also adds support for caching the hash values of single byte characters
which can be used in conjuction with any other hash, including SBOX, although
SBOX itself is as fast as the lookup cache, so typically you wouldnt use both
at the same time.
This also *removes* support for Jenkins One-At-A-Time. It has served us
well, but it's day is done.
This patch adds three new files: zaphod32_hash.h, stadtx_hash.h,
sbox32_hash.h
Yves Orton [Wed, 22 Mar 2017 14:59:31 +0000 (15:59 +0100)]
Tweak our hash bucket splitting rules
Prior to this patch we resized hashes when after inserting a key
the load factor of the hash reached 1 (load factor= keys / buckets).
This patch makes two subtle changes to this logic:
1. We split only after inserting a key into an utilized bucket,
2. and the maximum load factor exceeds 0.667
The intent and effect of this change is to increase our hash tables
efficiency. Reducing the maximum load factor 0.667 means that we should
have much less keys in collision overall, at the cost of some unutilized
space (2/3rds was chosen as it is easier to calculate than 0.7). On the
other hand, only splitting after a collision means in theory that we execute
the "final split" less often. Additionally, insertin a key into an unused
bucket increases the efficiency of the hash, without changing the worst
case.[1] In other words without increasing collisions we use the space
in our hashes more efficiently.
A side effect of this hash is that the size of a hash is more sensitive
to key insert order. A set of keys with some collisions might be one
size if those collisions were encountered early, or another if they were
encountered later. Assuming random distribution of hash values about
50% of hashes should be smaller than they would be without this rule.
The two changes complement each other, as changing the maximum load
factor decreases the chance of a collision, but changing to only split
after a collision means that we won't waste as much of that space we
might.
[1] Since I personally didnt find this obvious at first here is my
explanation:
The old behavior was that we doubled the number of buckets when the
number of keys in the hash matched that of buckets. So on inserting
the Kth key into a K bucket hash, we would double the number of
buckets. Thus the worse case prior to this patch was a hash
containing K-1 keys which all hash into a single bucket, and the post
split worst case behavior would be having K items in a single bucket
of a hash with 2*K buckets total.
The new behavior says that we double the size of the hash once inserting
an item into an occupied bucket and after doing so we exceeed the maximum
load factor (leave aside the change in maximum load factor in this patch).
If we insert into an occupied bucket (including the worse case bucket) then
we trigger a key split, and we have exactly the same cases as before.
If we insert into an empty bucket then we now have a worst case of K-1 items
in one bucket, and 1 item in another, in a hash with K buckets, thus the
worst case has not changed.
Yves Orton [Wed, 15 Mar 2017 14:03:42 +0000 (15:03 +0100)]
use a specific define for 64 bit hashing
Sawyer X [Fri, 21 Apr 2017 10:35:54 +0000 (12:35 +0200)]
Link to epigraph
Sawyer X [Thu, 20 Apr 2017 22:49:39 +0000 (00:49 +0200)]
Merge branch 'blead' of ssh://perl5.git.perl.org/perl into blead
Sawyer X [Thu, 20 Apr 2017 22:48:59 +0000 (00:48 +0200)]
Bump version: 5.25.12 -> 5.26.0
Sawyer X [Thu, 20 Apr 2017 22:48:48 +0000 (00:48 +0200)]
Bump Module::CoreList version
Chris 'BinGOs' Williams [Thu, 20 Apr 2017 22:21:28 +0000 (23:21 +0100)]
Corelist Morelist
Sawyer X [Thu, 20 Apr 2017 21:16:05 +0000 (23:16 +0200)]
Fix empty link problem