summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* express DM_[GU]ID flags in terms of componentsDavid Mitchell2010-06-041-2/+2
|
* rename DM_ARRAY flag to DM_ARRAY_ISADavid Mitchell2010-06-045-6/+6
| | | | | This better represents its current role as specifically delaying magic on @ISA as opposed to a general array magic delay mechanism.
* belatedly add a test for RT #51636:David Mitchell2010-06-041-0/+16
| | | | segmentation fault with array ties
* Revert "Re: [perl #51636] segmentation fault with array ties"David Mitchell2010-06-041-19/+3
| | | | | | | | | | | | | | | | This reverts commit 90630e3c741716305d7f1da4df5eab5c1bee42cc. This fix turns out to be wrong, and also made ($<,$>)=(...) fail (RT #75212). The original problem was a SEGV in av_clear(). This was mis-diagnosed as recursive PL_delaymagic issue, and the fix was to temprarily reset PL_delaymagic to zero. This stopped the mg_set() of $> and $> being delayed. The real problem was that mg_free wasn't clearing the [GSR]MG flags after freeing xmg_magic. This was independently fixed by commit 68f8932eb570af656553ed44c11a23f0a216a3ec.
* threads::shared: veto signal despatch if lockedDavid Mitchell2010-06-041-0/+23
| | | | | | | | | | | | | | This fixes RT #74868: Safe signals changes causing hangs with threads. The basic issue is that due to changes in where safe signals can be despatched, (including now on leaving scope), it's possible for a perl-level signal handler to be called while PL_sharedsv_lock is held. If the handler does locking or manipulation of shared vars, then deadlock can occur. A robust fix for this is to ensure that the signal handler isn't called while we have the lock. This is done using the signal handler hook added in the previous commit.
* add PL_signalhook to hook into signal dispatchDavid Mitchell2010-06-045-1/+9
| | | | | This is initially intended for threads::shared and shouldn't (yet) be considered part of the public API.
* Do not advertise Math::TrulyRandom, which hasn't been updated since 1996Rafael Garcia-Suarez2010-06-031-2/+2
| | | | (Spotted by Giel Goudsmit)
* Remove extraneous semicolon from OP_PRIVATE_ONCE.Craig A. Berry2010-06-031-1/+1
| | | | | | | | | Thus silencing compiler noise like: OP_PRIVATE_ONCE(op_aassign, OPpASSIGN_COMMON, ",COMMON"); ........................................................^ %CC-I-EXTRASEMI, Extraneous semicolon. at line number 846 in file D0:[craig.blead]dump.c;1
* Deprecate find_rundefsvoffset()Vincent Pit2010-06-033-2/+13
|
* The UNDERBAR macro should use find_rundefsv() as wellVincent Pit2010-06-032-6/+10
|
* Make pp_reverse fetch the lexical $_ from the correct padVincent Pit2010-06-038-10/+43
| | | | | | This is achieved by introducing a new find_rundefsv() function in pad.c This fixes [perl #75436].
* Skip two Japhs that use the fact that split in void context splittedAbigail2010-06-011-0/+2
| | | | to @_. This is no longer true in 5.12.0 and upwards.
* Document IO::Socket getsockopt and setsockoptSlaven Rezic2010-05-311-0/+10
| | | | | | get/setsockopt are not explicitly documented. Note that the documented sockopt() method is a wrapper around get/setsockopt, but does not cover all cases because of the hardcoded level (= SOL_SOCKET).
* move the fresh_perl() tests above the environment testsTony Cook2010-06-011-12/+13
| | | | | the environment tests were resetting environment variables useful for running fresh perls, like LD_LIBRARY_PATH.
* PATCH: teach diag.t new warning function namesKarl Williamson2010-06-013-23/+65
| | | | | | | | | | | | | | | | | A number of function names that do warnings have been added, but diag.t hasn't kept up. This patch changes it to look for likely function names in embed.fnc, so it will automatically keep up in the future. There's no need to worry about it looking for inappropriate functions, as the syntax of messages that it looks for is so restrictive, that there won't be false positives. Instead there are still many messages it fails to catch. As a result of it's falling behind several issues have crept in. I resolved the couple I thought were clear (including one in a comment; diag.t doesn't strip comments, but mostly it doesn't matter), and added the others to the <DATA> section to ignore. are
* State the requirement of a C89 compliant ANSI C-compilerH.Merijn Brand2010-05-311-0/+5
|
* In Perl_pad_add_name(), use sv_upgrade() directly rather than new[AH]V().Nicholas Clark2010-05-311-5/+5
| | | | | | | | | | As newAV() and newHV() are now merely wrappers around sv_upgrade(), and the existing SV is always brand new and of type SVt_NULL, call them on it, rather than disposing of it as a side effect of storing a(nother new) SV. Also, no need to set SvPADMY() again, as it is already set. Resolves RT #73092.
* Reorder the entry for die, moving discussion of the exit code later.Nicholas Clark2010-05-311-9/+20
| | | | | | | | Change to start with "C<die> raises an exception." and phrase in terms of handling exceptions, and then how uncaught exceptions result in process exit. Do not give details of the exit code in the first paragraph. Move this to a later paragraph, clarify that $! is often unpredictable, and stress that 255 is the last resort exit code.
* handle perl extended utf8 start bytesTony Cook2010-05-312-2/+23
| | | | | perl uses UTF8_IS_START() to test if a byte is a valid start byte, this didn't take perl's extended UTF-8 range into account.
* [perl #70075] no 6; brokenFather Chrysostomos2010-05-311-0/+4
| | | | | the original patch included a fix, but this problem was fixed in faee19b5, so only apply the test.
* PATCH: [perl #75138] "\c`" -> " "Karl Williamson2010-05-304-9/+23
| | | | | | | | | | | | | | | | | | | Attached is a patch for some of this issue. I took Nicholas' advice, and if the result of \cX isn't a word character, the output message will precede it with a backslash, so the message in the example would be "\c`" more clearly written simply as "\ " at -e line 1. I think that message is true. I also added tests. There is a test that guarantees that we won't ship 5.14 with things as they are now in it. I added wording to the comments next to that test to be sure to verify with this email thread if we should remove the deprecation, and mentioned that in the explanatory wording in the pod. I support removing the deprecation, but for now I'm not touching that, to see what other issues may yet arise before 5.14.
* Document tricks, work-arounds for user-defined casingKarl Williamson2010-05-303-7/+171
| | | | And add a .t file to verify that it works.
* Un-TODO a threads-shared test that now passesJerry D. Hedden2010-05-302-2/+4
| | | | | Commit bb1bc619ea68d9703fbd3fe5bc65ae000f90151f has fixed a threads-shared TODO test in t/object.t.
* Add mktables option for development useKarl Williamson2010-05-301-0/+20
| | | | | | | | The -output_names option was added. It will cause the generated file tables to not have ranges, and each line will have the character name. This makes it easier to compare what characters are in given tables, from version to version, or to compare the differences between properties.
* mktables -- don't create Names table unless askedKarl Williamson2010-05-301-60/+94
| | | | | | | | This speeds up mktables by not creating the Names table unless asked to, by someone adding it to the list of tables to be output. Perl uses a different table than this one for charnames, so the one being suppressed isn't generally used. Previously it was created but not output. Now, we skip the useless creation step.
* Fix priority of suppressed vs. explicitly outputKarl Williamson2010-05-301-1/+5
| | | | | | | | It's not clear this is a real bug, but it is a surprise. If a table is in the suppressed list, it isn't output, even if it is in the to-be-output override list. This latter list is non-empty only if the user has hand-edited the the program to force an output. So this patch makes that list have priority.
* Remove obsolete commentKarl Williamson2010-05-301-7/+0
| | | | | Commit: 6c4b69c35161f79a5088d6c3070cc17a0e4978b2 made this comment obsolete; forgot to remove it then.
* Generate simple case folding tables only if askedKarl Williamson2010-05-301-13/+22
| | | | | | | | | | | | Speed up mktables by not generating the simple case folding tables unless asked to. Previously the simple tables were generated, and then the full tables were initialized with them, and then overwritten with the full mappings. This is an artifact from the fact that the data comes to us in two files, one with the simple mappings (among other things), and another with the full mapping overrides. Now, the full tables are initialized from the first file, and the second file overrides the full mappings. The simple tables are not generated by default, so this saves, copying them.
* Add comment about objaddr in mktablesKarl Williamson2010-05-301-0/+3
| | | | Slightly modified to include the commit id by Steffen.
* Use in-line 'no overloading' for speedKarl Williamson2010-05-301-118/+142
| | | | | | | | | | | | | | | An earlier performance enhancement was to change the subroutine that gets the address of a ref to using 'no overloading' and then numifying the ref, which returns its address. This patch speeds things up slightly by in-lining the "no overloading" so that the function call overhead is avoided. It also gets rid of the kludge that was done before the original speed-up that created a local in the call stack of one of the classes so that the address would only have to be executed once per call stack; This was subject to failure if maintenance of the code perturbed things so it didn't work; now the overhead is minimal, so the address is gotten in each call.
* Don't require doubled backslashes in perldiag.podKarl Williamson2010-05-302-18/+19
| | | | | Prior to this patch, messages in perldiag.pod had to have \\ instead of the correct single backslash in order for diag.t to not complain.
* Eliminate some newSV(0)s by merging the SV allocation with first modification.Nicholas Clark2010-05-302-15/+10
|
* Only allocate entries for @_ when the subroutine is first called.Nicholas Clark2010-05-301-3/+0
| | | | | | | | | | | | | | Previously, @_ was allocated for every subroutine at compile time, with a default sized AV, hence space for 4 entries. We don't actually need to allocate the space for entries, as there is already a check at call time as to whether @_ is long enough. valgrind suggests that this saves allocating 23K (on a 64 bit platform) when running pod2man on perlfunc.pod. As well as the absolute saving, there is also benefit in deferring allocation for subroutines actually called - for a program which forks, @_ is less likely to be in pages shared COW with the parent. Resolves RT #72416.
* Fix the regexp in t/porting/args_assert.t, and add 3 missing macros.Nicholas Clark2010-05-293-2/+7
| | | | Resolves RT #72800.
* Properly free paren_name_list with its regexp.Nicholas Clark2010-05-292-2/+5
| | | | | Previously the AV paren_name_list would "leak" until global destruction. This was only an issue under -DDEBUGGING. Fixes RT #73438.
* Clarify that count is bytes not unicode charactersKarl Williamson2010-05-291-1/+1
|
* Display characters as Unicode for clarityKarl Williamson2010-05-291-0/+1
|
* Add tested for corrupted regnodeKarl Williamson2010-05-291-0/+4
|
* Use sizeof instead of hard-coded array sizeKarl Williamson2010-05-291-1/+1
| | | | The array should be declared with its actual size.
* TypoKarl Williamson2010-05-291-1/+1
|
* When assigning to $^P, don't zero $DB::single, $DB::trace and $DB::signal.Nicholas Clark2010-05-292-4/+20
| | | | | | | Previously, whenever a true value was assigned to $^P, all 3 were set to 0. Now only set them to 0 if they aren't already SvIOK(). Resolves RT #72422.
* Migrate most other op_private to name conversion into S_op_private_to_names().Nicholas Clark2010-05-281-57/+38
|
* In Perl_do_op_dump(), move calls to append_flags() into S_op_private_to_names()Nicholas Clark2010-05-281-12/+34
|
* Add C_ARRAY_END(), returning a pointer to after the last element of an array.Nicholas Clark2010-05-282-1/+2
| | | | Refactor the macro append_flags() in dump.c to use it.
* In Perl_do_op_dump(), reorder the ops within the if (o->op_private) clause.Nicholas Clark2010-05-281-29/+29
|
* In Perl_do_sv_dump(), use append_flags() for PVCV, PVFM and PVGP flags.Nicholas Clark2010-05-281-22/+38
|
* In Perl_do_sv_dump(), for PVCV and PVFM, test for SvCOMPILED(sv) last.Nicholas Clark2010-05-281-1/+1
|
* In Perl_do_op_dump(), move runs of op_private name tests to S_append_flags().Nicholas Clark2010-05-281-47/+44
|
* Create S_append_flags() from a common code pattern in dump.c.Nicholas Clark2010-05-281-44/+64
| | | | | | | | Convert repetitive sequences of "if this bit is set, append that string" into structures and a function call. Use a custom macro append_flags() to make calling it easer. This makes the object code slightly smaller.
* InPerl_boot_core_UNIVERSAL() use a data structure for calls to newXS{,proto}Nicholas Clark2010-05-281-118/+81
| | | | | Replacing the longhand list of calls to newXS{,proto} with loop over a data structure reduces the object size by over 1K.