summaryrefslogtreecommitdiff
path: root/pod
Commit message (Collapse)AuthorAgeFilesLines
* Create perldelta for 5.23.5Steve Hay2015-10-204-321/+738
|
* Last-minute perldelta tweakv5.23.4Steve Hay2015-10-201-1/+1
|
* Perl 5.23.4 todaySteve Hay2015-10-201-0/+1
|
* Finalize perldeltaSteve Hay2015-10-201-3/+28
|
* perldelta for #126181Karl Williamson2015-10-201-0/+7
|
* perldelta for #126404Karl Williamson2015-10-191-1/+2
|
* fix pod error introduced in 65c4791fTony Cook2015-10-201-1/+1
|
* Mention the HP-UX cadvise (Code Advisor).Jarkko Hietaniemi2015-10-191-0/+8
|
* Add link for the Coverity perl5 project.Jarkko Hietaniemi2015-10-191-0/+3
|
* Mention http://sourceforge.net/p/predef/wiki/Home/Jarkko Hietaniemi2015-10-191-0/+4
|
* perldelta tweaksSteve Hay2015-10-201-15/+18
|
* PATCH: [perl #126177] Document /(?n)/Karl Williamson2015-10-191-12/+22
| | | | | This adds /n to various places in perlre where it was omitted, and adds a heading to better structure the document, and a clarifying sentence.
* perldelta for #126319Karl Williamson2015-10-191-0/+9
|
* perldelta: NitKarl Williamson2015-10-191-1/+1
|
* Fix broken link in perldelta added by f83db99040Steve Hay2015-10-191-1/+1
|
* Remove boilerplate stuff from perldeltaSteve Hay2015-10-191-232/+1
|
* Fill in perldeltaSteve Hay2015-10-191-7/+228
|
* perldelta copy-editingSteve Hay2015-10-191-65/+59
|
* reimplement $^WIN32_SLOPPY_STAT as a magic varDaniel Dragan2015-10-191-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original implementation in commit cba61fe146 was sloppy. It is named like a special var, it is listed as a special var, but it was a regular GV. Since nobody knows this var exists, and full stat is the default (which I disagree with see below). There will be alot more PP and C/XS perl stat() calls (atleast a couple to dozens or low 100s for short lived perl processes) than reads/writes to this global scalar (rounded to 0 R/Ws) in a Win32 perl process. So avoid the 1 usually failing GV package (hash) lookup for each PP/XS/PL C stat by using magic vars and a C bool. This is a perf increase. Use sv_true instead of SvTRUE_NN because this code is extremely rare to execute and the macro has large machine code. I disagree with the default being full stat with since this increases the number of kernel IO calls and ASCII->UTF16 conversions, and there was perf criticism in the original thread that implemented this this http://www.nntp.perl.org/group/perl.perl5.porters/2006/02/msg109917.html but why full stat is default is for another ticket. This patch lessens the overhead of full stat until something else is decided. Change the initial value of the sloppystat setting for miniperl to be true instead of doing it in buildcustomize.pl in PP. Revert part of commit 8ce7a7e8b0 "speed up miniperl require on Win32" to acomplish this. Unlike Unix perl, no object files are shared between mini and full perl, so changing the default is fine on Win32 Perl. If minitest/miniperl really need hard link testing/support, they can explictly turn off sloppy stat and enable full stat with the special var. Changing the stat default from C for miniperl avoids creating the special GV on each miniperl process start as it previously was with the buildcustomize.pl way. Changing stat setting in C and not PP also saves a couple IO calls in win32_stat when opening the first .pl if it isn't -e, and opening buildcustomize.pl in all permutations. The PP code in S_parse_body contains a -f. See ticket for this patch for details. Only CPAN use of this special var is File-Stat-Moose-0.06/lib/File/Stat/Moose.pm#L208 according to cpangrep.
* some perldelta entriesDavid Mitchell2015-10-181-0/+36
| | | | | | | | | | | for 6768377 make EXTEND() and stack_grow() safe(r) 052a7c7 fix up EXTEND() callers and a missed one (my fault) from 5.23.2: a5f4850 re-implement OPpASSIGN_COMMON mechanism
* fix NO_HASH_SEED buildDaniel Dragan2015-10-141-1/+3
| | | | | | | | | | | commit b1300a738f added PERL_HASH_FUNC_ONE_AT_A_TIME_HARD algo, which was the first one to introduce 8 byte seeds, previously all the algos used 4 or 16 byte seeds. No case was added to the CPP tree for 8 byte const seeds, so add one now. Otherwise the #error at the end of the tree runs and breaks the build. NO_HASH_SEED define was public API in the past and could be considered to still be public API, see commit f36626324a. My use for NO_HASH_SEED is reducing entropy for tracking down memory corruption.
* PATCH: [perl #126180] /(?[\ &!])/ segfaultsKarl Williamson2015-10-131-0/+7
|
* qr/\p{pkg1::...foo}/ must be a user-defined propertyKarl Williamson2015-10-132-0/+13
| | | | | | | | | | | | | | So, if it isn't found and 'foo' doesn't begin with 'In' or 'Is', we know that there would be a run-time error, which we can fail with at compile time instead. We use a different error message than if we don't know if it is a user-defined property. See thread beginning at http://nntp.perl.org/group/perl.perl5.porters/231658 I didn't make a perldelta entry, as I doubt that this has ever come up in the field, as I discovered the issue myself while playing around investigating other bugs.
* perldiag: Remove no-longer used message.Karl Williamson2015-10-131-7/+0
| | | | | I noticed that this message was there, but hasn't been used for some time, having been replaced, and I didn't look too hard for when.
* Fix \p followed by a non-alphaKarl Williamson2015-10-132-1/+8
| | | | | | | | | | | | | | | See threads beginning at http://nntp.perl.org/group/perl.perl5.porters/231263 http://nntp.perl.org/group/perl.perl5.porters/231389 Prior to this commit, these did not generate the pattern that would be expected, and displayed apparently irrelevant warnings. Now this is a fatal error. This resolves [perl #126187]. I don't think it's worth a perldelta entry for this ticket, as the new error message is now in perldelta, and this never worked properly anyway; it's just now we have a proper error message. Patches welcome if you disagree.
* regcomp.c: Make compile and run-time error msgs identicalKarl Williamson2015-10-131-16/+12
| | | | | | | | Prior to this commit, an unknown Unicode property gave different messages depending on when the problem was found. Prior to the previous commit, most were found at run-time, but now most are found at compile-time. Therefore use the runtime message everywhere, as it was the most often encountered before.
* perldelta for 0f948285b1d2Tony Cook2015-10-121-1/+4
|
* Include the name of the non-lvalue sub in error messageDagfinn Ilmari Mannsåker2015-10-121-1/+1
| | | | | This makes the cause of the error more obvious if you accidentally call a non-lvalue sub in the final position of an lvalue one.
* add Win32 USE_NO_REGISTRY build optionDaniel Dragan2015-10-121-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -the first arg of win32_get_privlib is not used if the registry is not queried, create a macro to allow the arg to drop out on WIN32_NO_REGISTRY builds for efficiency and not to have unused C litteral strings in the binary -This patch changes the ABI of PerlEnv_lib_path/PerlEnvLibPath/win32_get_privlib between USE_NO_REGISTRY and no USE_NO_REGISTRY. Since win32_get_privlib is not exported from perl523.dll, assume it and PerlEnv_lib_path are not public API, note technically PerlEnv_lib_path will be callable only on PERL_IMPLICIT_SYS builds, on no PERL_IMPLICIT_SYS builds it will fail at link time since win32_get_privlib isnt exported. Therefore place it in non-[affecting]-binary compatibility even though it does affect binary compatibility. -delay load advapi32.dll to save startup time (loading the DLL and the DLL calling its initializers in DllMain) and one 4 KB memory page for advapi32's .data section (doing "perl -E"sleep 100" on WinXP shows advapi32 has a 20KB long .data section, first 4 KB are unique to the process, the remaining 16KB are COW shared between processes according to vmmap tool), putting a DebugBreak() in pp_getlogin and doing a "nmake all" shows miniperl never calls getlogin during the build process. An nmake test shows only ext/POSIX/t/wrappers.t and lib/warnings.t execute pp_getlogin. Keeping advapi32.dll out of the perl process requires removing comctl32.dll, since comctrl32.dll loads advapi32.dll, from perl which I always do as a custom patch. filed as [perl #123658] XXXXXXXXXXXXXXXXXXXXXXX
* stop checking the Win32 registry if *"/Software/Perl" doesn't existDaniel Dragan2015-10-121-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This stops each ENV var lookup (and 16 calls to get_regstr, most of which are %ENV lookups, are done automatically each time a Win32 Perl process starts) from querying the registry for usually failing lookups. ActiveState is the only known major user of the Software/Perl reg key. details: -cache the root handles, so a typically failing env var lookup does only 1 system call instead of 3 if the parent key exists -if the key exists, looking it up is slightly faster since it is 4 registry syscall instead of previously 6 (open "*\Software\Perl", 2 RegQueryValueExAs(on "found" behavior each RegQueryValueExA does 2 RegQueryValueExW calls), close "*\Software\Perl") -dont make a system call to lookup a value if the parent key doesn't exist -change "Software\\Perl" to "SOFTWARE\\Perl" since the reg is case preserving but lookups are not case sensitive, this all caps casing is what regedit shows, and might save a couple cpu cycles in the DB lookup in the kernel -use RegOpenKeyExW instead of RegOpenKeyEx (actually RegOpenKeyExA), this avoids ansi to utf16 conversions at runtime -dont check HKEY handles for NULL before calling RegCloseKey. MS and ReactOS RegCloseKey checks for NULL (zero) handle first thing and returns ERROR_INVALID_HANDLE as the retval of RegCloseKey. MS App Verifier does not complain about NULL handles. -Dont check the retval of RegCloseKey, there is no way to dispatch an error at this point in the process, there are no interps, and no perlio, and maybe no console if its a GUI, and the process is probably exiting anyway. Calling Perl_noperl_die (no perl, no perlio, print to stderr) would not be friendly to an embedder. A crash box with RaiseException with EXCEPTION_INVALID_HANDLE is a bad UI. -Dont bother to zero the HKEY handles, after a PERL_SYS_TERM until the next (if any) PERL_SYS_INIT3, libperl is in an undefined state, it is the embedders responsibility to refcount and serialize calls to PERL_SYS_INIT3/PERL_SYS_TERM if necessary See details in [perl #123658]
* Allow (#...) anywhere white space is under qr//xKarl Williamson2015-10-111-1/+3
| | | | | | | | Wherever you can have white space under /x, you can also have a (#...) comment (even without /x). Prior to this commit, there were several places that allowed the white space but not the comments. This resolves [perl #116639].
* Restrict white space inside [] inside(?[ ]) to \hKarl Williamson2015-10-112-8/+13
| | | | | | | | | | This experimental construct has turned on /x processing for any interior bracketed character classes, except comments are not allowed. But, bracketed character classes have traditionally all been on one line, and I'm leery of the problems that could arise if we extend them to multiple. Therefore, restrict the white space to just spaces and tabs before this feature becomes non-experimental. If there is cause, we can later relax the prohibition.
* make sv_backoff tailcall friendlyDaniel Dragan2015-10-081-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reorder the body of Perl_sv_backoff slightly to make it more tail-call friendly, and change its signature from returning an int (always 0) to void. sv_backoff has only 1.5 function calls in it, there is a memcpy of a U32 * for alignment reasons (I wont discuss U32_ALIGNMENT_REQUIRED) inside of SvOOK_offset, and the explicit Move()/memmove. GCC and clang often inline memcpy/memmove when the length is a constant and is small. Sometimes a CC might also do unaligned memory reads if OS/CPU allows it http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20130513/174807.html so I'll assume memcpy by short constant isn't a func call for discussion. By moving SvFLAGS modification before the one and only func call, and changing the return type to void, there is no code to execute after the Move func call so the CC, if it wants (OS/ABI/CPU, specifically I am thinking about x86-64) can tailcall jump to memmove. Also var sv can be stored in a cheaper vol reg since it is not saved around any func calls (SvFLAGS set was moved) assuming the memcpy by short constant was inlined. The before machine code size of Perl_sv_backoff with VC 2003 -O1 was 0x6d bytes. After size is 0x61. .text section size of perl523.dll was after was 0xD2733 bytes long, before was 0xD2743 bytes long. VC perl does not inline memcpys by default. In commit a0d0e21ea6 "perl 5.000" the return 0 was added. The int ret type is from day 1 of sv_backoff function existing/day 1 of SV *s from commit 79072805bf "perl 5.0 alpha 2". str_backoff didn't exist AFAIK, only str_grow would retake the memory at the start of the block. Since sv_backoff is usually used in a "&& func()" macro (SvOOK_off), it needed a non void ret type, a simple ", 0" in the macro fixes that. All CCs optimize and remove "if(0)" machine instructions so the ", 0" is optimized away in the perl binary.
* perlgit.pod: how to unescape 'git am' From linesDavid Mitchell2015-10-081-0/+5
| | | | | Due to Reasons, some UNIX mail systems escape any leading 'From ' lines with a '>'. Explain how to un-escape them.
* perlsub.pod: note that anonymous subs can have signatures, tooRicardo Signes2015-10-061-1/+2
|
* fix perl #126186 make all verbs allow an optional argYves Orton2015-10-052-14/+14
| | | | | | | | | | | | In perl #126186 it was pointed out we had started allowing name arguments for verbs where we did not document them to be supported, albeit in an inconsistent way. The previous patch cleaned up some of the cause of this, but it seems better to just generally allow the existing verbs to all support a mark name argument. So this patch reverses the effect of the previous patch, and makes all verbs, FAIL, ACCEPT, etc, allow an optional argument, and set REGERROR/REGMARK appropriately as well.
* remove documentation for the now-removed lexical topicRicardo Signes2015-10-023-25/+2
|
* add removal of lexical topic to perldeltaRicardo Signes2015-10-021-1/+7
|
* document the specific value of $!{E...}Ricardo Signes2015-09-301-4/+6
| | | | ...and note that it is subject to change and not guaranteed
* perlfunc: NitKarl Williamson2015-09-291-1/+1
|
* killpg for VMS.Craig A. Berry2015-09-261-2/+2
| | | | | | | | | | | | Implement our own killpg by scanning for processes in the specified process group, which may not mean exactly the same thing as a Unix process group, but at least we can now send a signal to a parent (or master) process and all of its sub-processes. In Perl-land, this means we can now send a negative pid like so: kill SIGKILL, -$pid; to signal all processes in the same group as $pid.
* Clarify FIRSTKEY and NEXTKEY usage.Jarkko Hietaniemi2015-09-251-4/+11
|
* Porting/new-perldelta.pl regenerationsPeter Martini2015-09-214-187/+604
|
* Add 5.23.3 to perlhistv5.23.3Peter Martini2015-09-201-0/+1
|
* Finalize perldelta with AcknowledgmentsPeter Martini2015-09-201-3/+30
|
* perldelta updates for 5.23.3Peter Martini2015-09-201-207/+117
|
* Remove unneeded ", from perldiag entryPeter Martini2015-09-201-1/+1
|
* Add 2 books to perlbookZachary Storer2015-09-161-0/+8
|
* perlbook: Decrease indent of verbatim linesKarl Williamson2015-09-161-111/+111
| | | | so that fewer are likely to exceed 79 columns
* perlbook: Add some L<> linksKarl Williamson2015-09-161-5/+7
|