]> git.vpit.fr Git - perl/modules/Scope-Upper.git/log
perl/modules/Scope-Upper.git
19 months agoBump copyright year
Vincent Pit [Sun, 26 Mar 2023 12:54:19 +0000 (14:54 +0200)]
Bump copyright year

19 months agoAdd a CONTRIBUTING guidelines file
Vincent Pit [Sun, 26 Mar 2023 12:51:59 +0000 (14:51 +0200)]
Add a CONTRIBUTING guidelines file

19 months agoUpper.xs - in 5.37.6 cop_warnings became a char * (RCVP) rt146897
Yves Orton [Sat, 4 Mar 2023 08:00:37 +0000 (09:00 +0100)]
Upper.xs - in 5.37.6 cop_warnings became a char * (RCVP)

It is actually a RCPV (RefCounted PV), so we can use RCPV_LEN() to
find its length.

Unfortunately there is not currently a way to "mortalize" a RCPV,
an oversight that I will correct in a future release of Perl. But
for now this should do.

19 months agot/ - Given is deprecated in 5.37.10, do not test it
Yves Orton [Sat, 4 Mar 2023 07:54:04 +0000 (08:54 +0100)]
t/ - Given is deprecated in 5.37.10, do not test it

This silences vast numbers of warnings, and will prevent the module
from breaking in 5.42.

2 years agoThis is 0.33 v0.33
Vincent Pit [Mon, 20 Dec 2021 20:30:57 +0000 (21:30 +0100)]
This is 0.33

2 years agoUpdate Test::Leaner to f53f8d6
Vincent Pit [Mon, 20 Dec 2021 20:23:04 +0000 (21:23 +0100)]
Update Test::Leaner to f53f8d6

2 years agoUpdate META spec to 2.0 rt114816
Vincent Pit [Mon, 20 Dec 2021 18:52:27 +0000 (19:52 +0100)]
Update META spec to 2.0

See you, Kent.

This fixes [RT #114816].

2 years agoBump copyright year
Vincent Pit [Mon, 20 Dec 2021 18:29:55 +0000 (19:29 +0100)]
Bump copyright year

2 years agoMake the expected() utility more closely match context_info() rt139823
James E Keenan [Tue, 2 Nov 2021 23:13:39 +0000 (23:13 +0000)]
Make the expected() utility more closely match context_info()

context_info() returns $warnings::Bits{all} when the warnings for
a context is pWARN_ALL, while caller() returns WARN_ALLstring.

The test tried to avoid loading any modules that registered
warning categories to avoid this making a difference, but
DynaLoader is needed to load Scope::Upper, and DynaLoader uses
vars.pm which registers a warnings category.

This wasn't a problem when the default warning mask wasn't used up to a
byte boundary, but adding the experimental category in Perl 5 commit
3b54923c did align the warning mask on a byte boundary, leading to this
test failing.

Specifically, handle case where warnings mask contains only "\x55"
bytes.  Return $warnings::Bits{all} in that case.  As suggested by Tony
Cook in: https://rt.cpan.org/Ticket/Display.html?id=139823

BBC ticket: https://github.com/Perl/perl5/issues/19212

Most of commit message suggested by Tony Cook in:
https://github.com/jkeenan/p5-Scope-Upper/pull/1#issuecomment-968375955

5 years agoThis is 0.32 v0.32
Vincent Pit [Mon, 8 Jul 2019 12:49:08 +0000 (14:49 +0200)]
This is 0.32

5 years agoBump copyright year
Vincent Pit [Mon, 8 Jul 2019 12:40:19 +0000 (14:40 +0200)]
Bump copyright year

5 years agoUpdate Test::Leaner to 0080661
Vincent Pit [Mon, 8 Jul 2019 12:39:54 +0000 (14:39 +0200)]
Update Test::Leaner to 0080661

5 years agoUpdate VPIT::TestHelpers to 0bb3aa5
Vincent Pit [Mon, 8 Jul 2019 12:39:22 +0000 (14:39 +0200)]
Update VPIT::TestHelpers to 0bb3aa5

5 years agoUpdate contact info
Vincent Pit [Mon, 8 Jul 2019 12:38:18 +0000 (14:38 +0200)]
Update contact info

5 years agoFix breakage caused by core change f14cf363 rt129539
Vincent Pit [Mon, 8 Jul 2019 12:34:18 +0000 (14:34 +0200)]
Fix breakage caused by core change f14cf363

This fixes [RT #129539].

6 years agoThis is 0.31 v0.31
Vincent Pit [Sun, 26 Aug 2018 19:50:59 +0000 (21:50 +0200)]
This is 0.31

6 years agoBump copyright year
Vincent Pit [Sun, 26 Aug 2018 19:10:57 +0000 (21:10 +0200)]
Bump copyright year

6 years agoAlways apply localizations at the glob level rt125931
Vincent Pit [Sun, 26 Aug 2018 19:08:19 +0000 (21:08 +0200)]
Always apply localizations at the glob level

"localize '$x', $var" used to dereference $var and apply the localization
to $x directly. This did not set the IMPORTED flag on *x when necessary.
In order to fix this, we now follow the opposite logic : $var is now
referenced when the localization target is a scalar, and that reference is
assigned to *x so that localize now really behaves like "local *x = $var".

This fixes [RT #125931].

7 years agoThis is 0.30 v0.30
Vincent Pit [Sat, 4 Nov 2017 15:56:05 +0000 (16:56 +0100)]
This is 0.30

7 years agoUpdate VPIT::XSHelpers to 18554226
Vincent Pit [Sat, 4 Nov 2017 15:44:35 +0000 (16:44 +0100)]
Update VPIT::XSHelpers to 18554226

7 years agoProtect against d_cplusplus perls
Vincent Pit [Sat, 4 Nov 2017 15:41:35 +0000 (16:41 +0100)]
Protect against d_cplusplus perls

It's only a matter of time before someone uses this in the wild.

7 years agoBump copyright year
Vincent Pit [Sat, 4 Nov 2017 15:34:29 +0000 (16:34 +0100)]
Bump copyright year

7 years agoUpdate VPIT::TestHelpers to 15e8aee3 rt123481
Vincent Pit [Sat, 4 Nov 2017 14:46:44 +0000 (15:46 +0100)]
Update VPIT::TestHelpers to 15e8aee3

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

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

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

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

No functional changes.

8 years 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.

8 years 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

8 years 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()

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

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

8 years 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

8 years 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

8 years 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.

8 years 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()

8 years 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.

8 years 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

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

8 years 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.

8 years 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).

8 years 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.

8 years 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.

8 years 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.

8 years 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

8 years 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.

8 years 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

9 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.

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

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

9 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

9 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

9 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

9 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

9 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()

9 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

9 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()

9 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.

9 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.

9 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

9 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

9 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

9 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

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

9 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

9 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.

9 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

9 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

9 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.

9 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.

9 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.

9 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.

9 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).

9 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

9 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.

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

9 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.

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

9 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.

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

9 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

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

9 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

9 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

9 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

9 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.

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

9 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.

9 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.

9 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

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

9 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

9 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

9 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

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

9 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.

9 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

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

9 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

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