perl/modules/indirect.git
11 years agoBump copyright year
Vincent Pit [Mon, 3 Jan 2011 21:10:21 +0000 (22:10 +0100)]
Bump copyright year

11 years agoUpdate ptable.h
Vincent Pit [Mon, 3 Jan 2011 21:10:07 +0000 (22:10 +0100)]
Update ptable.h

11 years agoThis is 0.23 v0.23
Vincent Pit [Sun, 3 Oct 2010 00:14:35 +0000 (02:14 +0200)]
This is 0.23

11 years agoSkip threads tests unless perl version is 5.13.4 or greater
Vincent Pit [Sat, 2 Oct 2010 23:35:11 +0000 (01:35 +0200)]
Skip threads tests unless perl version is 5.13.4 or greater

There was a long standing bug in the handling of GV <-> CV double linkage
that could (and explicitely did with a poisonous perl) cause segfaults at
thread destruction. It got fixed by Dave in commit 803f274 which went in
5.13.3, but the fix was amended for 5.13.4 in commit 09aad8f. Since it's
not really fair for the user to not be able to install the module because
of this, we skip the threads tests unless perl is at least 5.13.4.

11 years agoIgnore MYMETA.yml
Vincent Pit [Sat, 2 Oct 2010 23:27:47 +0000 (01:27 +0200)]
Ignore MYMETA.yml

11 years agoGet rid of CALL_FPTR()
Vincent Pit [Tue, 24 Aug 2010 20:57:51 +0000 (22:57 +0200)]
Get rid of CALL_FPTR()

11 years agoGet rid of indirect_is_indirect
Vincent Pit [Mon, 23 Aug 2010 10:39:22 +0000 (12:39 +0200)]
Get rid of indirect_is_indirect

Its check is redundant and not decisive at all.

11 years agoRefine indirect_find
Vincent Pit [Mon, 23 Aug 2010 09:53:50 +0000 (11:53 +0200)]
Refine indirect_find

11 years agoAlways get the hint directly from %^H
Vincent Pit [Mon, 23 Aug 2010 09:19:23 +0000 (11:19 +0200)]
Always get the hint directly from %^H

Since we explicitely ensure that we only fetch the hint at compile time, we
should always be able to get it from %^H. However, the require propagation
bug was fixed for %^H only in 5.12, while it was fixed in 5.10.1 for the
internal hint chain. So we also have to enable the require propagation
workaround on 5.10.1.

11 years agoDocument and test that the "-e without semicolon" bug is fixed on 5.12
Vincent Pit [Sat, 21 Aug 2010 12:23:59 +0000 (14:23 +0200)]
Document and test that the "-e without semicolon" bug is fixed on 5.12

11 years agoRename t/80-regressions.t to t/50-external.t
Vincent Pit [Sat, 21 Aug 2010 10:51:58 +0000 (12:51 +0200)]
Rename t/80-regressions.t to t/50-external.t

11 years agoRemove some dead code in indirect_ck_method
Vincent Pit [Thu, 19 Aug 2010 15:19:38 +0000 (17:19 +0200)]
Remove some dead code in indirect_ck_method

We already check that the first kid of the method op is a const op. Thus
it must have been checked before. Otherwise, someone has returned a const
op from a custom check function and haven't recalled in the old check
chain, which is bad and ultimately their fault.

11 years agoStore the offset from the source buffer beginning in the op info object
Vincent Pit [Thu, 19 Aug 2010 15:05:48 +0000 (17:05 +0200)]
Store the offset from the source buffer beginning in the op info object

This fixes potential errors where some indirect constructs are wrongly
reported (or failed to be) when the source buffer is grown between the
method and the object name.

Also, from now on, an op info object is never stored when the correct
position could not have been found in the source buffer. This is really
how it should have behaved from the beginning.

11 years agoProperly handle method_named ops
Vincent Pit [Thu, 19 Aug 2010 14:22:05 +0000 (16:22 +0200)]
Properly handle method_named ops

They are directly generated (i.e. without being mutated from a method op)
for use foo/no foo. This should solve the random failures of t/30-scope.t.

11 years agoThis is 0.22 v0.22
Vincent Pit [Mon, 16 Aug 2010 15:52:27 +0000 (17:52 +0200)]
This is 0.22

11 years agoYet more quotelike tests
Vincent Pit [Mon, 16 Aug 2010 15:47:48 +0000 (17:47 +0200)]
Yet more quotelike tests

11 years agoMore quotelike environments testing
Vincent Pit [Mon, 16 Aug 2010 15:21:17 +0000 (17:21 +0200)]
More quotelike environments testing

11 years agoGet rid of the linestr check
Vincent Pit [Mon, 16 Aug 2010 14:38:45 +0000 (16:38 +0200)]
Get rid of the linestr check

It simplifies the code, remove some potential breakage if the linestr
changes inside an indirect expression, and allows for reporting indirect
constructs in quotelike environments.

11 years agoTypos
Vincent Pit [Mon, 16 Aug 2010 13:20:26 +0000 (15:20 +0200)]
Typos

11 years agoAllow /^:?fatal$/ to specify the lethal behaviour rt59498
Vincent Pit [Mon, 16 Aug 2010 13:09:38 +0000 (15:09 +0200)]
Allow /^:?fatal$/ to specify the lethal behaviour

This fixes RT #59498.

11 years agoOnly check methods where the method name is a constant rt60378
Vincent Pit [Mon, 16 Aug 2010 12:53:34 +0000 (14:53 +0200)]
Only check methods where the method name is a constant

This fixes RT #60378.

12 years agoThis is 0.21 v0.21
Vincent Pit [Mon, 31 May 2010 23:08:22 +0000 (01:08 +0200)]
This is 0.21

12 years agoFix the thread destructor trick for 5.13.1 rt57699
Vincent Pit [Mon, 31 May 2010 22:28:24 +0000 (00:28 +0200)]
Fix the thread destructor trick for 5.13.1

This fixes RT #57699.

12 years agoRequire perl 5.8.1
Vincent Pit [Tue, 18 May 2010 21:21:50 +0000 (23:21 +0200)]
Require perl 5.8.1

5.8.0 seems to cause a lot of "Modification of a a read-only value" errors.

12 years agoUse a PPCODE: section in CLONE
Vincent Pit [Tue, 18 May 2010 21:14:45 +0000 (23:14 +0200)]
Use a PPCODE: section in CLONE

12 years agoMY_CXT_INIT can be a declaration, so put it in a block to be strictly conformant...
Vincent Pit [Sat, 24 Apr 2010 13:05:22 +0000 (15:05 +0200)]
MY_CXT_INIT can be a declaration, so put it in a block to be strictly conformant to C89

Thanks Jan Dubois for reporting.

12 years agoAdd Tatsuhiko Miyagawa's regression test
Vincent Pit [Sat, 24 Apr 2010 13:03:03 +0000 (15:03 +0200)]
Add Tatsuhiko Miyagawa's regression test

12 years agoDisable taint mode for t/30-scope.t
Vincent Pit [Sat, 24 Apr 2010 12:50:35 +0000 (14:50 +0200)]
Disable taint mode for t/30-scope.t

It prevents a regression test from failing with the old code.

12 years agoThis is 0.20 v0.20
Vincent Pit [Sun, 18 Apr 2010 21:13:10 +0000 (23:13 +0200)]
This is 0.20

12 years agoRemove an unused variable
Vincent Pit [Sun, 18 Apr 2010 21:16:32 +0000 (23:16 +0200)]
Remove an unused variable

12 years agoFix test failures with 5.12 on Windows where Strawberry Perl crashes because the...
Vincent Pit [Sun, 18 Apr 2010 20:53:42 +0000 (22:53 +0200)]
Fix test failures with 5.12 on Windows where Strawberry Perl crashes because the SystemRoot environment variable is missing

12 years agoProtect $@ in the regression test for RT #50570
Vincent Pit [Sun, 18 Apr 2010 16:09:45 +0000 (18:09 +0200)]
Protect $@ in the regression test for RT #50570

12 years agoAdd a regression test for a bug that appeared while fixing RT #50570 but got re-fixed...
Vincent Pit [Sun, 18 Apr 2010 16:07:40 +0000 (18:07 +0200)]
Add a regression test for a bug that appeared while fixing RT #50570 but got re-fixed in a4ebcbe07de579d5877df84c114f162f49019724

12 years agoAdd a regression test for RT #50570
Vincent Pit [Sun, 18 Apr 2010 15:53:20 +0000 (17:53 +0200)]
Add a regression test for RT #50570

12 years agoIdentify the require scope by the outmost cv outside of the current one
Vincent Pit [Sun, 18 Apr 2010 15:33:17 +0000 (17:33 +0200)]
Identify the require scope by the outmost cv outside of the current one

12 years ago{ENTER,LEAVE}_with_name are no longer needed starting perl 5.11.4
Vincent Pit [Thu, 15 Apr 2010 23:36:27 +0000 (01:36 +0200)]
{ENTER,LEAVE}_with_name are no longer needed starting perl 5.11.4

12 years agoBump copyright year
Vincent Pit [Thu, 15 Apr 2010 06:41:05 +0000 (08:41 +0200)]
Bump copyright year

12 years agoAdd a link to Matt's blog post
Vincent Pit [Sun, 3 Jan 2010 00:47:10 +0000 (01:47 +0100)]
Add a link to Matt's blog post

12 years agoUpdate ptable.h
Vincent Pit [Tue, 29 Dec 2009 17:17:01 +0000 (18:17 +0100)]
Update ptable.h

12 years agoFix for {ENTER,LEAVE}_with_name
Vincent Pit [Tue, 29 Dec 2009 16:27:38 +0000 (17:27 +0100)]
Fix for {ENTER,LEAVE}_with_name

12 years agoRe-indent WriteMakefile() arguments
Vincent Pit [Sun, 4 Oct 2009 09:18:03 +0000 (11:18 +0200)]
Re-indent WriteMakefile() arguments

12 years agoBuild the $name and the main $file from $dist
Vincent Pit [Sun, 4 Oct 2009 08:44:38 +0000 (10:44 +0200)]
Build the $name and the main $file from $dist

12 years agoPut prerequisites in their own separate hash
Vincent Pit [Sun, 4 Oct 2009 07:54:18 +0000 (09:54 +0200)]
Put prerequisites in their own separate hash

12 years agoGive an explicit value to dynamic_config
Vincent Pit [Sun, 4 Oct 2009 07:28:22 +0000 (09:28 +0200)]
Give an explicit value to dynamic_config

12 years agoOnly look up to the first require scope for the require propagation workaround rt50570
Vincent Pit [Wed, 30 Sep 2009 22:16:49 +0000 (00:16 +0200)]
Only look up to the first require scope for the require propagation workaround

12 years agoKwalitee test overhaul
Vincent Pit [Sat, 26 Sep 2009 09:53:10 +0000 (11:53 +0200)]
Kwalitee test overhaul

12 years agoThis is 0.19 v0.19
Vincent Pit [Fri, 28 Aug 2009 18:37:18 +0000 (20:37 +0200)]
This is 0.19

12 years agoIntroduce I_FORKSAFE
Vincent Pit [Fri, 28 Aug 2009 18:22:32 +0000 (20:22 +0200)]
Introduce I_FORKSAFE

12 years agoWe don't need this (wrong) macro wrapper for indirect_teardown()
Vincent Pit [Fri, 28 Aug 2009 17:28:45 +0000 (19:28 +0200)]
We don't need this (wrong) macro wrapper for indirect_teardown()

12 years agoReset the callbacks when the root interpreter is destroyed
Vincent Pit [Fri, 28 Aug 2009 17:18:24 +0000 (19:18 +0200)]
Reset the callbacks when the root interpreter is destroyed

This fix segfaults when the pragma is first loaded from inside a thread.
The global state for the root interpreter is also freed, so it won't leak
anymore.

12 years agoMake some room in t/4*.t
Vincent Pit [Fri, 28 Aug 2009 16:45:22 +0000 (18:45 +0200)]
Make some room in t/4*.t

12 years agoc07766a234204d78a80b6d75534e03ae3465b6f3 is a better fix for RT #47902 than 4cb0e2cc2...
Vincent Pit [Fri, 28 Aug 2009 11:09:33 +0000 (13:09 +0200)]
c07766a234204d78a80b6d75534e03ae3465b6f3 is a better fix for RT #47902 than 4cb0e2cc26fbe39a7a040b090b1a1e6c2380af0f

As the issue wasn't actually fixed for non-anonsubs.

12 years agoOnly remap the hint through the pointer table for threaded perls
Vincent Pit [Fri, 28 Aug 2009 09:29:45 +0000 (11:29 +0200)]
Only remap the hint through the pointer table for threaded perls

And just use the coderef as the hint when we don't need the require
workaround.

12 years agoI_THREADSAFE ought to be true when PERL_INDIRECT_PM_DISABLE is set
Vincent Pit [Thu, 27 Aug 2009 22:21:56 +0000 (00:21 +0200)]
I_THREADSAFE ought to be true when PERL_INDIRECT_PM_DISABLE is set

12 years agoUse the hint pointer as the unique identifier for the %^H entry
Vincent Pit [Thu, 27 Aug 2009 22:14:08 +0000 (00:14 +0200)]
Use the hint pointer as the unique identifier for the %^H entry

The previous solution (using the callback CV) could cause pragma leaks if
you specified the same "hook" (i.e. a reference to the same sub) in two
different require scopes.

12 years agoFix signedness of the pointer<->int conversions
Vincent Pit [Thu, 27 Aug 2009 21:48:32 +0000 (23:48 +0200)]
Fix signedness of the pointer<->int conversions

12 years agoSvIOK and SvROK imply SvOK
Vincent Pit [Thu, 27 Aug 2009 21:47:43 +0000 (23:47 +0200)]
SvIOK and SvROK imply SvOK

12 years agoThis is 0.18 v0.18
Vincent Pit [Sun, 23 Aug 2009 16:15:17 +0000 (18:15 +0200)]
This is 0.18

12 years agoMake sure PERL_INDIRECT_PM_DISABLE is not set before running tests
Vincent Pit [Sun, 23 Aug 2009 15:55:58 +0000 (17:55 +0200)]
Make sure PERL_INDIRECT_PM_DISABLE is not set before running tests

12 years agoAdd the PERL_INDIRECT_PM_DISABLE environment variable
Vincent Pit [Sun, 23 Aug 2009 15:28:58 +0000 (17:28 +0200)]
Add the PERL_INDIRECT_PM_DISABLE environment variable

12 years agoThis is 0.17 v0.17
Vincent Pit [Thu, 16 Jul 2009 12:10:24 +0000 (14:10 +0200)]
This is 0.17

12 years agoFreshen t/40-threads.t
Vincent Pit [Wed, 15 Jul 2009 17:09:08 +0000 (19:09 +0200)]
Freshen t/40-threads.t

12 years agoMore freshness for t/21-bad.t
Vincent Pit [Wed, 15 Jul 2009 16:59:31 +0000 (18:59 +0200)]
More freshness for t/21-bad.t

12 years agoFreshen t/10-args.t
Vincent Pit [Wed, 15 Jul 2009 16:54:51 +0000 (18:54 +0200)]
Freshen t/10-args.t

12 years agoDon't use 'Fatal' as a metasyntactic name
Vincent Pit [Wed, 15 Jul 2009 16:43:42 +0000 (18:43 +0200)]
Don't use 'Fatal' as a metasyntactic name

12 years agoFreshen t/30-scope.t
Vincent Pit [Wed, 15 Jul 2009 16:42:10 +0000 (18:42 +0200)]
Freshen t/30-scope.t

12 years agoReplace an occurrence of SvREFCNT_inc by SvREFCNT_inc_simple_NN
Vincent Pit [Wed, 15 Jul 2009 16:25:23 +0000 (18:25 +0200)]
Replace an occurrence of SvREFCNT_inc by SvREFCNT_inc_simple_NN

12 years agoTurn on CvCLONE for all anonymous subs passed as hooks rt47902
Vincent Pit [Wed, 15 Jul 2009 16:15:42 +0000 (18:15 +0200)]
Turn on CvCLONE for all anonymous subs passed as hooks

So that they're cloned later, which seems to fix some strange issues that arose with a5339a6ced4d5e3ad1541320476c3d6bf8ff9408 when the default callbacks were no longer capturing an external pad (which used to make them eligible for cloning).

This fixes RT #47902.

12 years agoFix t/80-regressions.t failing on Win32
Vincent Pit [Wed, 15 Jul 2009 13:25:11 +0000 (15:25 +0200)]
Fix t/80-regressions.t failing on Win32

The Windows shell doesn't like double quotes inside -e code.

12 years agoDocument and test constant folding
Vincent Pit [Wed, 15 Jul 2009 13:20:08 +0000 (15:20 +0200)]
Document and test constant folding

12 years agoThis is 0.16 v0.16
Vincent Pit [Tue, 14 Jul 2009 16:47:04 +0000 (18:47 +0200)]
This is 0.16

12 years agoCover ck_scope actually handling an OP_SCOPE
Vincent Pit [Tue, 14 Jul 2009 16:44:15 +0000 (18:44 +0200)]
Cover ck_scope actually handling an OP_SCOPE

This never happens unless taint mode is off.

12 years agoRemove ck_leave()
Vincent Pit [Tue, 14 Jul 2009 16:17:09 +0000 (18:17 +0200)]
Remove ck_leave()

We don't need to clean the map entries for leave ops because they can only be created by mutating from a lineseq.

12 years agoDocument the diagnostics
Vincent Pit [Tue, 14 Jul 2009 16:03:09 +0000 (18:03 +0200)]
Document the diagnostics

12 years agoThanks Andrew and Florian
Vincent Pit [Tue, 14 Jul 2009 15:57:17 +0000 (17:57 +0200)]
Thanks Andrew and Florian

12 years agoFreshen t/22-bad-mixed.t
Vincent Pit [Tue, 14 Jul 2009 15:42:29 +0000 (17:42 +0200)]
Freshen t/22-bad-mixed.t

12 years agoFreshen t/20-good.t
Vincent Pit [Tue, 14 Jul 2009 15:36:03 +0000 (17:36 +0200)]
Freshen t/20-good.t

12 years agoRename try() to zap() as we'll need try() for something else soon
Vincent Pit [Tue, 14 Jul 2009 15:31:50 +0000 (17:31 +0200)]
Rename try() to zap() as we'll need try() for something else soon

12 years agoSimplify the warning handler in t/21-bad.t
Vincent Pit [Tue, 14 Jul 2009 14:25:00 +0000 (16:25 +0200)]
Simplify the warning handler in t/21-bad.t

12 years agoDocument that we know handle blocks
Vincent Pit [Tue, 14 Jul 2009 14:22:12 +0000 (16:22 +0200)]
Document that we know handle blocks

12 years agoHandle indirect calls on blocks
Vincent Pit [Tue, 14 Jul 2009 14:00:19 +0000 (16:00 +0200)]
Handle indirect calls on blocks

12 years agoMake the default error message public
Vincent Pit [Tue, 14 Jul 2009 12:36:46 +0000 (14:36 +0200)]
Make the default error message public

12 years agoOnly enable the pragma during compile time rt47866
Vincent Pit [Tue, 14 Jul 2009 12:25:22 +0000 (14:25 +0200)]
Only enable the pragma during compile time

In particular, don't handle OPs that are created as part of load_module().
This solves RT #47866.

12 years agoRevamp t/21-bad.t
Vincent Pit [Tue, 14 Jul 2009 10:32:57 +0000 (12:32 +0200)]
Revamp t/21-bad.t

12 years agoThis is 0.15 v0.15
Vincent Pit [Wed, 8 Jul 2009 22:54:51 +0000 (00:54 +0200)]
This is 0.15

12 years agoFix "meth meth" not being correctly reported
Vincent Pit [Wed, 8 Jul 2009 14:07:24 +0000 (16:07 +0200)]
Fix "meth meth" not being correctly reported

12 years agoAdd a stress test
Vincent Pit [Tue, 7 Jul 2009 23:11:28 +0000 (01:11 +0200)]
Add a stress test

12 years agoFix line number for multiline indirect constructs
Vincent Pit [Tue, 7 Jul 2009 22:58:54 +0000 (00:58 +0200)]
Fix line number for multiline indirect constructs

12 years agoStore a proper op info instead of hijacking a SV
Vincent Pit [Tue, 7 Jul 2009 20:52:25 +0000 (22:52 +0200)]
Store a proper op info instead of hijacking a SV

12 years agoFactor the cloning logic in a separate function
Vincent Pit [Tue, 7 Jul 2009 19:57:04 +0000 (21:57 +0200)]
Factor the cloning logic in a separate function

13 years agoA few POD nits
Vincent Pit [Thu, 18 Jun 2009 12:13:59 +0000 (14:13 +0200)]
A few POD nits

13 years agoRemove unused variable.
Florian Ragwitz [Fri, 5 Jun 2009 05:08:19 +0000 (07:08 +0200)]
Remove unused variable.

13 years agoThis is 0.14 v0.14
Vincent Pit [Thu, 4 Jun 2009 21:54:31 +0000 (23:54 +0200)]
This is 0.14

13 years agoBe proud about our workarounds
Vincent Pit [Thu, 4 Jun 2009 21:47:48 +0000 (23:47 +0200)]
Be proud about our workarounds

13 years agoUse a better metasyntactic name instead of C<sub>
Vincent Pit [Thu, 4 Jun 2009 21:43:01 +0000 (23:43 +0200)]
Use a better metasyntactic name instead of C<sub>

13 years agoDon't actually create an entry when storing NULL in the ptable
Vincent Pit [Fri, 29 May 2009 09:52:20 +0000 (11:52 +0200)]
Don't actually create an entry when storing NULL in the ptable

This is actually unneeded because ptable_fetch() returns NULL when it can't find the entry. This way we can remove the short-lived ptable_delete().

13 years agoFix a small leak of hints objects
Vincent Pit [Thu, 28 May 2009 22:48:07 +0000 (00:48 +0200)]
Fix a small leak of hints objects

13 years agoPrevent bogus invalid syntaxes caused by reallocated memory chunks
Vincent Pit [Thu, 28 May 2009 22:34:04 +0000 (00:34 +0200)]
Prevent bogus invalid syntaxes caused by reallocated memory chunks

Make sure that all our check functions reset a possible previous entry in the pointer table. Then, check in ck_entersub that the object op (the first kid after the pushmark) is of a proper type, so that we are pretty sure that its map entry has been either reset or filled.

13 years agoThis is 0.13 v0.13
Vincent Pit [Sun, 24 May 2009 18:50:51 +0000 (20:50 +0200)]
This is 0.13

13 years agoTest the workaround more extensively
Vincent Pit [Sun, 24 May 2009 18:44:01 +0000 (20:44 +0200)]
Test the workaround more extensively