perl/modules/Scope-Upper.git
6 months agoUpdate VPIT::TestHelpers to 15e8aee3 rt123481
Vincent Pit [Sat, 4 Nov 2017 14:46:44 +0000 (15:46 +0100)]
Update VPIT::TestHelpers to 15e8aee3

23 months agoThis is 0.29 v0.29
Vincent Pit [Mon, 6 Jun 2016 12:00:34 +0000 (14:00 +0200)]
This is 0.29

23 months agoThanks, Dave
Vincent Pit [Mon, 6 Jun 2016 10:48:02 +0000 (12:48 +0200)]
Thanks, Dave

23 months agoBump copyright year
Vincent Pit [Mon, 6 Jun 2016 10:41:43 +0000 (12:41 +0200)]
Bump copyright year

23 months agoMinor stylistic nits
Vincent Pit [Mon, 6 Jun 2016 09:48:58 +0000 (11:48 +0200)]
Minor stylistic nits

No functional changes.

23 months agoRename su_debug_log() into xsh_debug_log()
Vincent Pit [Mon, 6 Jun 2016 09:28:00 +0000 (11:28 +0200)]
Rename su_debug_log() into xsh_debug_log()

As it should have been in the big refactor change.

23 months agoMerge perl 5.24 fixes from davem rt112246
Vincent Pit [Mon, 6 Jun 2016 09:24:40 +0000 (11:24 +0200)]
Merge perl 5.24 fixes from davem

23 months agoud_ is not unused in su_yield()
Vincent Pit [Mon, 6 Jun 2016 09:24:19 +0000 (11:24 +0200)]
ud_ is not unused in su_yield()

23 months agoAvoid partially braced if/else
Vincent Pit [Mon, 6 Jun 2016 09:18:14 +0000 (11:18 +0200)]
Avoid partially braced if/else

23 months agoHide aTHX in macros
Vincent Pit [Mon, 6 Jun 2016 09:15:18 +0000 (11:15 +0200)]
Hide aTHX in macros

23 months agoOnly define su_cxt_enter_count when XSH_DEBUG is set
Vincent Pit [Mon, 6 Jun 2016 09:02:52 +0000 (11:02 +0200)]
Only define su_cxt_enter_count when XSH_DEBUG is set

23 months agoRemove a couple of unused variable
Vincent Pit [Mon, 6 Jun 2016 08:59:07 +0000 (10:59 +0200)]
Remove a couple of unused variable

23 months agoPrevent a future possible declaration-after-code error
Vincent Pit [Mon, 6 Jun 2016 08:53:10 +0000 (10:53 +0200)]
Prevent a future possible declaration-after-code error

Right now SU_HAS_NEW_CXT implies defined(gv_fetchsv), but better
make this more obvious.

23 months agoActually restore old_cop in su_localize()
Vincent Pit [Mon, 6 Jun 2016 08:52:26 +0000 (10:52 +0200)]
Actually restore old_cop in su_localize()

23 months agoFix the build on perl 5.8.0
Vincent Pit [Sun, 5 Jun 2016 18:44:33 +0000 (20:44 +0200)]
Fix the build on perl 5.8.0

PERL_DEB() was not defined at that time.

23 months agoAlways define SU_HAS_NEW_CXT
Vincent Pit [Mon, 30 May 2016 13:12:35 +0000 (15:12 +0200)]
Always define SU_HAS_NEW_CXT

23 months agoMinor whitespace changes
Vincent Pit [Mon, 30 May 2016 13:05:54 +0000 (15:05 +0200)]
Minor whitespace changes

23 months agofixup t/13-reap-ctl.t for 5.23.8
David Mitchell [Sun, 29 May 2016 21:20:40 +0000 (22:20 +0100)]
fixup t/13-reap-ctl.t for 5.23.8

One test in this script failed under 5.23.8 due to a change in the way
the die while leaving an eval scope is now handled.

Consider the following code, where leaving an eval scope triggers a call
to STORE to unlocalise a tied scalar, and where STORE raises an exception:

    sub TIESCALAR { bless [] }
    sub FETCH { 1;  }
    sub STORE { die "died in store\n" if $_[1]  }

    tie $s, 'main';
    eval {
        local $s;
    };
    warn "caught: [$@]\n";

5.23.7 and earlier die, while 5.23.8 output:

    caught: [died in store
    ]

Similarly, one would expect the behaviour of "reap HERE" to change
in 5.23.8, with an exception raised in the reap handler to now be caught
be the innermost eval.

So fix up the test to reflect this new reality.

23 months agoeliminate CX_ARGARRAY() and CX_ARGARRAY_set()
David Mitchell [Sun, 29 May 2016 21:06:38 +0000 (22:06 +0100)]
eliminate CX_ARGARRAY() and CX_ARGARRAY_set()

I added these earlier as a way of compiling the code under both 5.23.7 and
5.23.8, since the latter no longer has the argarray field in the context
struct. I didn't know at the time whether they were logically correct
under 5.23.8 - I just wanted the code to compile.

Having now properly fixed uplevel() to work on 5.23.8, and since uplevel
under 5.23.8 uses an entirely separate code path, only 5.23.7 and earlier
make use of CX_ARGARRAY() and _set(), so eliminate these macros and
revert back to the original usage (i.e. cx->blk_sub.argarray).

23 months agofix uplevel() under 5.23.8+
David Mitchell [Tue, 17 May 2016 08:23:00 +0000 (09:23 +0100)]
fix uplevel() under 5.23.8+

The old method of creating a new curstackinfo containing the faked-up
new context stack no longer works. This is because leave_scope() is now
called just prior to each context stack entry popping, and so a destructor
which restores the old context array leaves a dangling pointer.

E.g. pp_leavesub() on 5.23.8 onwards looks something like:

    cx = CX_CUR();
    ....
    CX_LEAVE_SCOPE(cx);

    /* at this point the destructor has been called and the old context
     * stack back been restored; cx now points at freed garbage
    */
    cx_popsub(cx); /* SEGV */

Conversely, now that it's guaranteed that the save stack is always
processed prior to each context pop - regardless of whether its a normal
scope exit or an exception - it allows us to use a simpler method to fake
things up for uplevel(): just temporarily change the types of all the
higher contexts to CXt_NULL so that they won't be seen by caller() etc. On
scope exit the savestack destructor restores the old types, which are then
processed and popped as normal.

As well as setting each entry to CXt_NULL we set a flag,
CXp_SU_UPLEVEL_NULLED (whose bit is currently unused by the perl core)
to indicate that this is a temporarily ignored context.

We then introduce a distinction between logical and physical context stack
indices: functions like UP return a logical index which ignore all the
nulled-out contexts; when such a logical value is passed as an arg to a
function such as localize(), it is first converted back to a real index.

The other main change is how uplevel() doctors the sub's arg list as seen
by caller(): previously this was done by modifying the argarray field of
the context entry for the just-called sub. Since 5.23.8 onwards doesn't
have an argarray field, we instead modify the pad[0] of the running sub
(which is what caller() examines now). Since there's no longer a
possibility of getting argarray and pad[0] out of sync, the special fixups
formerly required in the presence of goto are no longer required.

Rather than rolling our own OP_ENTERSUB op, we just use call_sv()
instead, with a PL_runops pointing to a temporary hook that allows the
args to be fixed up on return from pp_entersub. After that, a normal
runops loop is called.

Since uplevel is so different under 5.23.8, I've split the original
functions into

    su_uplevel_old/su_uplevel_new
    su_uplevel_restore_old/su_uplevel_restore_new

with #defines compiling only one set.

23 months agosu_uplevel: populate lower stack frames properly
David Mitchell [Thu, 19 May 2016 11:03:48 +0000 (12:03 +0100)]
su_uplevel: populate lower stack frames properly

When creating a temporary new argument stack, su_uplevel() copies most of
the old stack to a new one. This isn't really needed, as the new stack
will be abandoned before it ever pops back to that level.  But it *is*
needed when debugging code prints out the stack, as in for example,
'perl -Dstv'.

However, the code didn't actually copy the old stack: it copied garbage
instead, since it was using PL_curstack rather than AvARRAY(PL_curstack)
as the address of of the old stack. Which was causing 'perl -Dstv' to
SEGV.

This commit fixes that.

23 months agofix unwind()
David Mitchell [Mon, 16 May 2016 13:52:07 +0000 (14:52 +0100)]
fix unwind()

Perl 5.23.4 debugging builds added asserts to POPMARK etc that nothing
was underflowing etc. At this point 52-unwind-context.t started failing
with

    Perl_pp_return: Assertion `((my_perl->Imarkstack_ptr) >
    (my_perl->Imarkstack)) || !"MARK underflow"' failed.

Properly pushing a new mark for pp_return to pop rather than doing it
manually seems to fix this.

23 months agoget su_init/su_pop working under 5.23.8
David Mitchell [Mon, 16 May 2016 12:38:21 +0000 (13:38 +0100)]
get su_init/su_pop working under 5.23.8

In 5.23.8 there are two big differences to the way perl's context system
manipulates the savestack. Firstly, pushing a scope no longer does one or
two ENTER's instead the old value of PL_savestack_ix is stored as
cx->blk_oldsaveix. This means that the boundaries of savestack frames are
now not only specified as scopestack entries, but also as blk_oldsaveix
entries.

Secondly, most values that need restoring are saved in new fields in the
CX structure rather than being pushed on the savestack; this means that it
is quite likely that two nested scopes can share the same savestack index.

This commit gets all the test scripts working that mainly test the
savestack manipulation code (su_init and su_pop).

It does this by:

*) allowing the offset by which a savestack frame boundary is adjusted to
be variable (rather than always SU_SAVE_DESTRUCTOR_SIZE), and by turning
the origin array into an array of structs, one field of which is the
offset for that depth. This allows multiple empty savestack frames
to all trigger, by ensuring that each adjusted boundary is higher than the
previous.

*) padding the savestack using SAVEt_ALLOC, which allows a variable-sized
chunk of savestack to be reserved, with minimal overhead during scope exit.

In addition,

*) the various SU_SAVE_AELEM_SIZE type macros have been rationalised and
better commented;
*) debugging output for su_init and su_pop has been improved
*) the names of context types (for debugging) have been updated for 5.23.8
and some errors fixes for older perl versions

23 months agoSome basic 5.23.8 fixes
David Mitchell [Mon, 16 May 2016 12:34:09 +0000 (13:34 +0100)]
Some basic 5.23.8 fixes

The context system has changed a lot in 5.23.8. This commit
just gets the code compiling again; it doesn';t attempt to fix any
breakage.

23 months agoTemporarily rename xsh_debug_log to su_debug_log
David Mitchell [Thu, 14 Apr 2016 14:39:37 +0000 (15:39 +0100)]
Temporarily rename xsh_debug_log to su_debug_log

In a previous commit that function was renamed, but none of its callers
were renamed. For now, revert the function back to its old name

2 years agoFix off-by-one error in su_uplevel_ud->si initialization
Vincent Pit [Mon, 9 Nov 2015 17:45:27 +0000 (15:45 -0200)]
Fix off-by-one error in su_uplevel_ud->si initialization

si->si_cxmax is the last available context slot, hence should be -1 if we
don't allocate any.

2 years agoThe Big Boilerplate Factorization
Vincent Pit [Wed, 4 Nov 2015 13:36:29 +0000 (11:36 -0200)]
The Big Boilerplate Factorization

2 years agoThis is 0.28 v0.28
Vincent Pit [Tue, 18 Aug 2015 15:01:22 +0000 (12:01 -0300)]
This is 0.28

2 years agoDon't hardcode the length of NEGATIVE_INDICES_VAR
Vincent Pit [Tue, 18 Aug 2015 13:53:27 +0000 (10:53 -0300)]
Don't hardcode the length of NEGATIVE_INDICES_VAR

2 years agoOnly dump debug info when $Scope::Upper::DEBUG is true
Vincent Pit [Tue, 18 Aug 2015 13:44:41 +0000 (10:44 -0300)]
Only dump debug info when $Scope::Upper::DEBUG is true

2 years agoFactor a part of the debugging logic into an helper function
Vincent Pit [Tue, 18 Aug 2015 13:40:09 +0000 (10:40 -0300)]
Factor a part of the debugging logic into an helper function

2 years agoAdd braces around a condition block
Vincent Pit [Tue, 18 Aug 2015 13:11:50 +0000 (10:11 -0300)]
Add braces around a condition block

2 years agoAdd a comment in the initializing loop in su_init()
Vincent Pit [Tue, 18 Aug 2015 13:05:29 +0000 (10:05 -0300)]
Add a comment in the initializing loop in su_init()

2 years agoDocument the new warnings and caveats
Vincent Pit [Mon, 3 Aug 2015 19:22:15 +0000 (16:22 -0300)]
Document the new warnings and caveats

2 years agoAdd some comments to the mysterious su_init()/su_pop()
Vincent Pit [Mon, 3 Aug 2015 19:00:16 +0000 (16:00 -0300)]
Add some comments to the mysterious su_init()/su_pop()

2 years agoRemove one level of indirection in the UID internal structure
Vincent Pit [Mon, 3 Aug 2015 18:21:15 +0000 (15:21 -0300)]
Remove one level of indirection in the UID internal structure

On top of the memory savings, this seems to make the UID stress test about
7% faster, even with a threaded build.

2 years agoPort t/79-uid-threads.t to the new threads interface
Vincent Pit [Mon, 3 Aug 2015 17:09:01 +0000 (14:09 -0300)]
Port t/79-uid-threads.t to the new threads interface

For some reason it was still calling threads->create(). This commit also
makes sure that the test is resilient to stray exits.

2 years agoHarden t/69-uplevel-threads.t against stray exits
Vincent Pit [Mon, 3 Aug 2015 17:06:18 +0000 (14:06 -0300)]
Harden t/69-uplevel-threads.t against stray exits

2 years agoHarden t/59-yield-threads.t against stray exits
Vincent Pit [Mon, 3 Aug 2015 17:04:59 +0000 (14:04 -0300)]
Harden t/59-yield-threads.t against stray exits

2 years agoHarden t/54-unwind-threads.t against stray exits
Vincent Pit [Mon, 3 Aug 2015 17:03:36 +0000 (14:03 -0300)]
Harden t/54-unwind-threads.t against stray exits

2 years agoHarden t/09-load-tests.t against stray exits
Vincent Pit [Mon, 3 Aug 2015 16:59:26 +0000 (13:59 -0300)]
Harden t/09-load-tests.t against stray exits

2 years agoUpdate VPIT::TestHelpers to ba865c42
Vincent Pit [Mon, 3 Aug 2015 16:58:42 +0000 (13:58 -0300)]
Update VPIT::TestHelpers to ba865c42

2 years agoAlso warn when SUB() and EVAL() cannot find an appropriate target
Vincent Pit [Mon, 3 Aug 2015 16:52:20 +0000 (13:52 -0300)]
Also warn when SUB() and EVAL() cannot find an appropriate target

2 years agoWarn when the words target a context outside of the current stack rt104751
Vincent Pit [Mon, 3 Aug 2015 16:00:08 +0000 (13:00 -0300)]
Warn when the words target a context outside of the current stack

Note that the check is done when the target context is defined and not
when the helpers use it.

This fixes RT #104751.

2 years agoStop copying the reap-ed coderef
Vincent Pit [Mon, 3 Aug 2015 14:03:13 +0000 (11:03 -0300)]
Stop copying the reap-ed coderef

2 years agoRemove some extraneous SU_UD_ORIGIN(ud) initializations
Vincent Pit [Mon, 3 Aug 2015 13:56:54 +0000 (10:56 -0300)]
Remove some extraneous SU_UD_ORIGIN(ud) initializations

2 years agoRevamp the different su_ud_* subtypes
Vincent Pit [Mon, 3 Aug 2015 13:42:36 +0000 (10:42 -0300)]
Revamp the different su_ud_* subtypes

For reap(), su_call() now only gets the SV cb and not the whole su_ud_reap
structure. This lets us free the ud in su_pop(), and likewise for
su_localize(). As for the uid feature, it gets its own su_ud_uid structure
instead of hijacking su_ud_reap, so that su_uid_bump() is no longer needed.

2 years agoReplace the su_handler[] dispatch table by a switch
Vincent Pit [Mon, 3 Aug 2015 13:15:30 +0000 (10:15 -0300)]
Replace the su_handler[] dispatch table by a switch

This lets us inline the handlers in su_pop(), which is somewhat clearer.

2 years agoRemove the code coverage link
Vincent Pit [Fri, 31 Jul 2015 19:01:42 +0000 (16:01 -0300)]
Remove the code coverage link

It's outdated and now covered by cpancover.

2 years agoRefactor the su_ud_common structure
Vincent Pit [Fri, 24 Jul 2015 20:20:18 +0000 (17:20 -0300)]
Refactor the su_ud_common structure

The handler member is replaced by a small integer index into a static array.
The pad member is shrank so that it can be packed together with the type.
In the remaining space, we fit a private member that can be used to remove
the type member of su_ud_localize.

2 years agoGreatly simplify the depth computation in su_init()
Vincent Pit [Fri, 24 Jul 2015 19:22:21 +0000 (16:22 -0300)]
Greatly simplify the depth computation in su_init()

In order to count how many scopes we will have to pop, it is enough to take
the difference between the current scope (PL_scopestack_ix) and the one
just below the target context (cxstack[cxix].blk_oldscopesp).

2 years agoGive a proper definition of SU_CXNAME() for non DEBUGGING builds
Vincent Pit [Wed, 22 Jul 2015 17:28:36 +0000 (14:28 -0300)]
Give a proper definition of SU_CXNAME() for non DEBUGGING builds

2 years agoRewrite the origin initialization loop in su_init()
Vincent Pit [Wed, 22 Jul 2015 14:24:48 +0000 (11:24 -0300)]
Rewrite the origin initialization loop in su_init()

It used to iterate downward, and then the indices used were of the form
a - i and b - i.

2 years agoSilence a 'shadowing' warning
Vincent Pit [Wed, 24 Jun 2015 13:10:17 +0000 (10:10 -0300)]
Silence a 'shadowing' warning

3 years agoUpdate t/09-load-threads.t
Vincent Pit [Mon, 20 Apr 2015 14:54:58 +0000 (11:54 -0300)]
Update t/09-load-threads.t

It now also exercises cloning.

3 years agoUpdate VPIT::TestHelpers to 2a6ac0f1
Vincent Pit [Mon, 20 Apr 2015 14:43:32 +0000 (11:43 -0300)]
Update VPIT::TestHelpers to 2a6ac0f1

3 years agoUpdate t/09-load-threads.t
Vincent Pit [Tue, 7 Apr 2015 00:05:03 +0000 (21:05 -0300)]
Update t/09-load-threads.t

It now has better diagnostics in case of failure, and it tests asymetrical
thread termination.

3 years agoAdd a missing volatile qualifier
Vincent Pit [Tue, 31 Mar 2015 17:34:26 +0000 (14:34 -0300)]
Add a missing volatile qualifier

3 years agoImprove scheduling for the parallel loading test
Vincent Pit [Tue, 31 Mar 2015 17:24:43 +0000 (14:24 -0300)]
Improve scheduling for the parallel loading test

3 years agoThis is 0.27 v0.27
Vincent Pit [Fri, 27 Mar 2015 22:10:45 +0000 (19:10 -0300)]
This is 0.27

3 years agoDocument that we can no longer die from uplevel in the debugger
Vincent Pit [Fri, 27 Mar 2015 21:34:26 +0000 (18:34 -0300)]
Document that we can no longer die from uplevel in the debugger

3 years agoAlso preserve PL_scopestack[cx->blk_oldscopesp - 1] in formats
Vincent Pit [Fri, 27 Mar 2015 19:45:02 +0000 (16:45 -0300)]
Also preserve PL_scopestack[cx->blk_oldscopesp - 1] in formats

3 years agoCorrectly use $TEST_VERBOSE in the testdeb target
Vincent Pit [Fri, 27 Mar 2015 19:08:14 +0000 (16:08 -0300)]
Correctly use $TEST_VERBOSE in the testdeb target

3 years agoPreserve PL_scopestack[cx->blk_oldscopesp - 1] in su_pop()
Vincent Pit [Fri, 27 Mar 2015 18:47:42 +0000 (15:47 -0300)]
Preserve PL_scopestack[cx->blk_oldscopesp - 1] in su_pop()

Starting from perl 5.19.4 commit 2537512, pp_leavesub does a second
leave_scope(PL_scopestack[cx->blk_oldscopesp - 1]) just after the usual
LEAVE call. However, this index in the scope stack may be overwritten
by our own "flush" leave_scope() call in su_pop(). More precisely, this
seems to happen in sv_clear() (called from sv_free2() called from
sv_unref_flags() called from sv_force_normal_flags() called from
leave_scope()) and only when the debugger is enabled.

3 years agoAdd POSIX to build requires
Vincent Pit [Tue, 24 Mar 2015 20:35:00 +0000 (17:35 -0300)]
Add POSIX to build requires

3 years agoUpdate the ActivePerl/gcc-3.4 hack for EUMM 7.04
Vincent Pit [Tue, 24 Mar 2015 19:54:30 +0000 (16:54 -0300)]
Update the ActivePerl/gcc-3.4 hack for EUMM 7.04

Starting from this version, PERL_ARCHIVE is quoted so we can no longer set
it to the empty string. Instead, we remove all occurrences of PERL_ARCHIVE
in the linking step section of the Makefile, which is OK since we specify
the perl DLL in other variables. This new technique is still valid for
older versions of EUMM.

3 years agoDon't compile su_uplevel_storage_delete() before perl 5.13.7
Vincent Pit [Tue, 24 Mar 2015 02:30:16 +0000 (23:30 -0300)]
Don't compile su_uplevel_storage_delete() before perl 5.13.7

As it is unused on these older perls.

3 years agoProtect t/09-load-threads.t against old relocated perls
Vincent Pit [Tue, 24 Mar 2015 02:25:29 +0000 (23:25 -0300)]
Protect t/09-load-threads.t against old relocated perls

3 years agoUpdate VPIT::TestHelpers to 4eeb5afc
Vincent Pit [Tue, 24 Mar 2015 02:24:10 +0000 (23:24 -0300)]
Update VPIT::TestHelpers to 4eeb5afc

3 years agoAlso test that the module can be loaded in the main body
Vincent Pit [Tue, 24 Mar 2015 00:15:43 +0000 (21:15 -0300)]
Also test that the module can be loaded in the main body

3 years agoIn t/09-load-threads.t, handle spawn() failures gracefully
Vincent Pit [Tue, 24 Mar 2015 00:14:16 +0000 (21:14 -0300)]
In t/09-load-threads.t, handle spawn() failures gracefully

3 years agoThoroughly test module loading in threads
Vincent Pit [Mon, 23 Mar 2015 19:21:23 +0000 (16:21 -0300)]
Thoroughly test module loading in threads

3 years agoUpdate VPIT::TestHelpers to 6ca15279
Vincent Pit [Mon, 23 Mar 2015 19:15:04 +0000 (16:15 -0300)]
Update VPIT::TestHelpers to 6ca15279

3 years agoUpdate VPIT::TestHelpers to 6cd68168
Vincent Pit [Thu, 19 Mar 2015 19:25:32 +0000 (16:25 -0300)]
Update VPIT::TestHelpers to 6cd68168

And port threads tests to its new interface. The new 'force threads test'
environment variable is PERL_FORCE_TEST_THREADS.

3 years agoRelease UID global memory at global teardown time
Vincent Pit [Thu, 19 Mar 2015 16:08:35 +0000 (13:08 -0300)]
Release UID global memory at global teardown time

3 years agoRevamp the setup boot logic
Vincent Pit [Thu, 19 Mar 2015 15:09:46 +0000 (12:09 -0300)]
Revamp the setup boot logic

3 years agoSilence an "unused label" compiler warning
Vincent Pit [Thu, 19 Mar 2015 14:23:09 +0000 (11:23 -0300)]
Silence an "unused label" compiler warning

3 years agoReplace STATIC by static
Vincent Pit [Thu, 19 Mar 2015 13:53:46 +0000 (10:53 -0300)]
Replace STATIC by static

3 years agoFix a memory leak with the uid() feature
Vincent Pit [Thu, 19 Mar 2015 13:52:58 +0000 (10:52 -0300)]
Fix a memory leak with the uid() feature

The user data token was never freed.

3 years agoThis is 0.26 v0.26
Vincent Pit [Thu, 12 Mar 2015 23:42:04 +0000 (20:42 -0300)]
This is 0.26

3 years agoBump copyright year
Vincent Pit [Thu, 12 Mar 2015 22:55:00 +0000 (19:55 -0300)]
Bump copyright year

3 years agoUpdate VPIT::TestHelpers to 3c878c7c
Vincent Pit [Thu, 12 Mar 2015 12:58:40 +0000 (09:58 -0300)]
Update VPIT::TestHelpers to 3c878c7c

3 years agoDon’t use CvPADLIST on XSUBs rt100264
Father Chrysostomos [Fri, 6 Feb 2015 13:48:46 +0000 (14:48 +0100)]
Don’t use CvPADLIST on XSUBs

That field has been repurposed for XSUBs in perl 5.21.7. It used to be
ignored for older perls.

This fixes RT #100264.

3 years agoRemove an unused variable declaration
Vincent Pit [Fri, 6 Feb 2015 13:44:31 +0000 (14:44 +0100)]
Remove an unused variable declaration

3 years agoReally be compatible with the OP_PARENT feature
Vincent Pit [Fri, 6 Feb 2015 13:40:15 +0000 (14:40 +0100)]
Really be compatible with the OP_PARENT feature

OP_SIBLING() has been renamed to OpSIBLING() in perl 5.21.7.

3 years agoThis is 0.25 v0.25
Vincent Pit [Sun, 21 Sep 2014 17:10:00 +0000 (19:10 +0200)]
This is 0.25

3 years agoUpdate VPIT::TestHelpers to 4fb18792
Vincent Pit [Sun, 21 Sep 2014 15:35:28 +0000 (17:35 +0200)]
Update VPIT::TestHelpers to 4fb18792

3 years agoBump copyright year
Vincent Pit [Sun, 21 Sep 2014 15:33:38 +0000 (17:33 +0200)]
Bump copyright year

3 years agoWork around an assertion failure in perl 5.21.4
Vincent Pit [Sat, 20 Sep 2014 16:11:14 +0000 (18:11 +0200)]
Work around an assertion failure in perl 5.21.4

This was fixed in perl by commit 5988f306, in which Father Chrysostomos
says "CvNAMED should never be on after calling [CvGV_set], regardless
of the previous state of the CV".

3 years agoAdd support for PERL_OP_PARENT
Vincent Pit [Sat, 20 Sep 2014 15:59:52 +0000 (17:59 +0200)]
Add support for PERL_OP_PARENT

This was introduced in perl 5.21.2.

4 years agoThis is 0.24 v0.24
Vincent Pit [Tue, 10 Sep 2013 11:10:35 +0000 (13:10 +0200)]
This is 0.24

4 years agoPreserve lexicals across dounwind() calls on perl 5.19.4 and above
Vincent Pit [Mon, 9 Sep 2013 17:07:53 +0000 (19:07 +0200)]
Preserve lexicals across dounwind() calls on perl 5.19.4 and above

unwind() used to rely on the stack being preserved when dounwind() is
called. However, starting with change 25375124, dounwind() can now call
leave_scope() which will clean up lexicals in the unwinded scopes. We
can work around this by temporarily bumping the refcount of possibly
problematic scalars before calling dounwind().

See also https://rt.perl.org/rt3/Ticket/Display.html?id=119681.

4 years agoThis is 0.23 v0.23
Vincent Pit [Mon, 2 Sep 2013 11:31:20 +0000 (13:31 +0200)]
This is 0.23

4 years agoStyle nits
Vincent Pit [Mon, 2 Sep 2013 10:34:59 +0000 (12:34 +0200)]
Style nits

4 years agoAdjust t/07-context_info.t for perl 5.19.3 rt88177
Andrew Main [Mon, 2 Sep 2013 10:28:16 +0000 (12:28 +0200)]
Adjust t/07-context_info.t for perl 5.19.3

This fixes RT #88177.

4 years agoUpdate bundled Test::Leaner to 0.05
Vincent Pit [Sat, 24 Aug 2013 19:29:12 +0000 (16:29 -0300)]
Update bundled Test::Leaner to 0.05

4 years agoEnforce the perl dependency in the module file
Vincent Pit [Sat, 24 Aug 2013 18:45:41 +0000 (15:45 -0300)]
Enforce the perl dependency in the module file

4 years agoMake Perl version numbers more readable
Vincent Pit [Sat, 24 Aug 2013 18:13:24 +0000 (15:13 -0300)]
Make Perl version numbers more readable

4 years agoRemove obsolete kwalitee workarounds
Vincent Pit [Sat, 24 Aug 2013 16:32:27 +0000 (13:32 -0300)]
Remove obsolete kwalitee workarounds

4 years agoNo tabs please
Vincent Pit [Fri, 23 Aug 2013 19:00:18 +0000 (16:00 -0300)]
No tabs please