summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Revert "[MERGE] add+use PL_curstackinfo->si_cxsubix field"v5.31.4Max Maischein2019-09-2019-111/+54
| | | | | | | | | | | | This reverts commit d2cd363728088adada85312725ac9d96c29659be, reversing changes made to 068b48acd4bdf9e7c69b87f4ba838bdff035053c. This change breaks installing Test::Deep: ... not ok 37 - Test 'isa eq' completed ok 38 - Test 'isa eq' no premature diagnostication ...
* add new release to perlhistMax Maischein2019-09-201-0/+1
|
* Update perldelta for 5.31.4Max Maischein2019-09-201-265/+47
|
* Update INSTALL fileMax Maischein2019-09-201-2/+2
|
* Update Module::CoreList for 5.31.4Max Maischein2019-09-203-2/+111
|
* makedef.pl: export symbols flagged as CCraig A. Berry2019-09-201-1/+1
| | | | | | | | | | 0923255565af0741 broke the build on any platform that does not promiscuously export all symbols from a shared library because it moved a bunch of symbols from being API (A flag) to core-only (C flag), but the new C flag was unknown to the program that generates the export list. Some of these functions are already used outside the core (such as by the Encode extension) so we can't simply pull the plug on them.
* [MERGE] add+use PL_curstackinfo->si_cxsubix fieldDavid Mitchell2019-09-1919-54/+111
|\ | | | | | | | | Makes determining context at runtime faster (e.g. last statement in a sub).
| * perldelta for PL_curstackinfo->si_cxsubixDavid Mitchell2019-09-191-1/+5
| |
| * Perl_gimme_V(): assume caller always provides cxtDavid Mitchell2019-09-191-5/+2
| | | | | | | | | | So we don't need to check whether (cxstack[cxix].blk_gimme & G_WANT), just use it. Replace the check with an assertion.
| * add Perl_gimme_V() static inline fn for GIMME_VDavid Mitchell2019-09-197-1/+35
| | | | | | | | | | | | This function makes use of PL_curstackinfo->si_cxsubix to avoid the overhead of a call to block_gimme() when the context of the op is unknown.
| * add PL_curstackinfo->si_cxsubix fieldDavid Mitchell2019-09-195-1/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | This tracks the most recent sub/eval/format context pushed onto the context stack. Then make dopopto_cursub use it. The previous value is saved in the cxt struct, and is restored whenever the context is popped. This adds a tiny overhead for every sub call, but speeds up other operations, such as determining the caller context when returning a value from a sub - this has to be dpne for every sub call where the last expression is context sensitive, so its often a win.
| * add dopopto_cursub() macro to pp_ctl.cDavid Mitchell2019-09-191-6/+7
| | | | | | | | short for dopoptosub(cxstack_ix), a common idiom in that file.
| * set VOID on OP_ENTERDavid Mitchell2019-09-198-46/+47
|/ | | | | | | | The OP_ENTER planted at the start of a program (and possibly elsewhere) gets left as UNKNOWN context rather than VOID context, due to op_scope() not honouring the current context. Fixing this makes things infinitesimally faster.
* VanL is now a perl authorTony Cook2019-09-191-0/+1
|
* update perl5-porters list informationVanL2019-09-191-5/+3
|
* perldelta: Add note that documentation has been added to perlapi,perlinternKarl Williamson2019-09-161-2/+3
|
* Add check for malloc_usable_size (Richard Leach)H.Merijn Brand2019-09-161-0/+6
|
* perldelta for 2cb5a7e8af11Tony Cook2019-09-161-0/+6
|
* (perl #125557) correctly handle overload for bin/oct floatsTony Cook2019-09-162-6/+31
| | | | | | | | | | | The hexfp code doesn't check that the shift is 4, and so also accepts binary and octal fp numbers. Unfortunately the call to S_new_constant() always passed a prefix of 0x, so overloading would be trying to parse the wrong number. Another option is to simply allow only hex floats, though some work was done in 131894 to improve oct/bin float support.
* regcomp.sym: Fix commentKarl Williamson2019-09-153-3/+4
| | | | | The length of an EXACTish node is the same bits as the FLAGS field in other nodes; it doesn't "precede the length", as previously claimed.
* Merge branch 'embed.fnc' into bleadKarl Williamson2019-09-1518-465/+1278
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This series of commits slightly improves XS code name space pollution from the core, and better documents what is happening. It adds a new C flag to embed.fnc which doesn't change the pollution problem, but makes it easier for downstream tools, like Devel::PPPort. Some of the inline.h functions didn't even have prefixes, contrary to our policy of having functions visible outside the core have a 'Perl_' prefix. The branch also documents a couple of API functions and macros. And better error checking of embed.fnc entries is now done.
| * regen/embed.pl: Enforce some flag restrictionsKarl Williamson2019-09-151-3/+14
| | | | | | | | | | embed.fnc now has been updated to not have these flaws, so can now enforce them for the future.
| * regen/embed.pl: Update a branch testKarl Williamson2019-09-151-1/+1
| | | | | | | | The two flags are now mutually exclusive, so no need to test for both.
| * embed.fnc: M and o flags don't make sense togetherKarl Williamson2019-09-151-5/+5
| | | | | | | | | | The M flag does what the o flag except add an incorrect warning. So remove the 'o' which gets rid of the warning.
| * embed.fnc: 'm' and 'p' flags don't make sense togetherKarl Williamson2019-09-153-12/+15
| | | | | | | | | | This is a macro, so doesn't have a Perl_ long form function call. Also forbid 'm' and 'S', but there weren't any current uses of that.
| * perlapi: Properly document Perl_custom_op_xop()Karl Williamson2019-09-153-4/+6
| | | | | | | | It requires the prefix and a thread context parameter.
| * autodoc.pl: Special case macros whose name begins with Perl_Karl Williamson2019-09-152-2/+4
| | | | | | | | | | The usage example for these will have the thread context parameter unless there is no thread context.
| * embed.fnc: Add some comment about name space pollutionKarl Williamson2019-09-151-0/+40
| |
| * embed.fnc: E, X flags don't make sense with mKarl Williamson2019-09-151-3/+3
| | | | | | | | Macros can't currently be restricted in scope.
| * Document IS_SAFE_SYSCALLKarl Williamson2019-09-151-2/+12
| |
| * perlapi: Improve description of is_safe_syscall()Karl Williamson2019-09-151-2/+6
| | | | | | | | Two parameters weren't described, nor the warnings category used.
| * embed.fnc: Add p flag for is_utf8_non_invariant_string()Karl Williamson2019-09-154-4/+4
| | | | | | | | | | This is because it has the X flag, which means the function is visible on ELF systems.
| * Add embed.fnc entry for ReANYKarl Williamson2019-09-153-0/+9
| | | | | | | | This inline function should have an entry.
| * Add embed.fnc entries for TOPMARK, POPMARKKarl Williamson2019-09-152-0/+10
| |
| * Add Perl_ to SvAMAGIC _off,_on namesKarl Williamson2019-09-154-2/+20
| | | | | | | | These function names need a Perl_ prefix to avoid namespace pollution.
| * Add embed.fnc entries for Cv inline fcnsKarl Williamson2019-09-154-3/+19
| | | | | | | | | | | | and change the name of one. CvDEPTH shouldn't have a trailing 'p' to indicate private memeber access. It may do so internally, but the name shouldn't indicate that.
| * Fix up get_regex_charset_name()Karl Williamson2019-09-154-1/+20
| | | | | | | | | | This inline function should not be visible outside certain core (and ext/re) functions. Make that happen.
| * inline.h: Move some fcn '{' to column 1Karl Williamson2019-09-151-3/+6
| | | | | | | | | | | | Traditionally, functions in perl have been written so their initial '{' is in column 1 after the prototype. This makes grepping easier. This commit brings 3 functions in this file into conformance.
| * Make PadnameIN_SCOPE() name begin with S_Karl Williamson2019-09-154-1/+16
| | | | | | | | All functions should have a prefix.
| * Some SvREFCNT_foo are no longer macrosKarl Williamson2019-09-154-6/+38
| | | | | | | | but are inline functions. They should be listed in embed.fnc.
| * Strip leading underscore _variant_byte_number()Karl Williamson2019-09-155-9/+9
| | | | | | | | Names with leading underscores are reserved for the C implementers.
| * Change name of _utf8_to_uvchr_buf()Karl Williamson2019-09-156-11/+11
| | | | | | | | | | A function name with a leading underscore is not legal in C. Instead add a suffix to differentiate this name from an otherwise identical one.
| * Strip leading underscore from is_utf8_char_helper()Karl Williamson2019-09-156-15/+15
| | | | | | | | Leading underscored name are reserved for the C implementers
| * inline.h: Change fcn name prefix from S_ to Perl_Karl Williamson2019-09-159-169/+169
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is being done only for those functions that don't have a guard preventing them from being seen outside of the Perl core. Talking to Tony Cook, we agreed that this was a good idea for two reasons: 1) The 'Perl_' prefix does not pollute XS caller's name space. The 'S_' one could be argued that it doesn't much either, but it does more so than 'Perl_', and the next reason is the clincher: 2) It allows us to change our minds about whether a function should be static inline or not, without affecting callers who use the Perl_ form, which they would be accustomed to anyway if they're using the full name form.
| * regen/embed.pl: Generally generate an ARGS_ASSERTKarl Williamson2019-09-154-7/+558
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to this commit, if you changed a pointer argument to allow it being a NULL, you had to go in and also remove the function's PERL_ARGS_ASSERT macro call. Now, such macros are generally defined even if they are empty, so you can add such a call to any function, and it will always compile. If there is no assertion needed, the macro expands to nothing. Thus now, the use of these macros is optional when no assert is needed; but still required by the porting test args_assert.t when an assert is needed. The generation of such a macro (when its use is optional) can be suppressed for individual entries by the new G flag in embed.fnc, also added by this commit.
| * regen/embed.pl: Wrap #if..#endif differentlyKarl Williamson2019-09-151-4/+3
| | | | | | | | | | | | | | | | By surrounding the interior stuff with these in one statement, it makes it easier to change that interior stuff without having dangling statements. This makes no difference in the current generated output
| * embed.fnc: Mark atof2, atof3 for internal use onlyKarl Williamson2019-09-151-2/+2
| | | | | | | | Now that we have Strtod, my_strtod, those should be used instead.
| * sv.h: SVt_INVLIST is core-onlyKarl Williamson2019-09-151-2/+2
| |
| * embed.fnc: Change some 'x' marked fcns to 'C'Karl Williamson2019-09-154-124/+128
| | | | | | | | | | | | | | The previous commit added the C flag, which is better to use in many instances than x. This commit changes the x entries in embed.fnc that I'm pretty sure would be better off being C, and removes some 'x' entries for internal only functions
| * Add 'C' flag to embed.fnc, for "core-only" fcnsKarl Williamson2019-09-154-5/+20
| | | | | | | | | | | | | | | | Previously the x flag was (mis-)used for this purpose. Some functions that are accessible by XS writers shouldn't be used by them, such as helper functions that an inline public function calls. This new flag alows that to be specified, without having to mark the function as experimental, which could be misleading to later core maintainers