| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Near the start of link(), $output gets set to a blib\arch\auto path.
A little later that gets copied into $spec{output}, but $spec{manifest}
is left unset so it gets set later to a $spec{builddir} path, which is
not what $spec{output} was set to earlier.
The manifest file is always created alongside the DLL, so the correct
fix is simply to append '.manifest' to the DLL path to find the manifest.
(EU-MM does that too.)
Patch taken from [cpan #35943] which reported the same problem. The other
concern raised there, about the VC version being checked to deduce the
existence of the manifest file rather than testing that directly, has
long since been incorporated already and also explains why this problem
has not been seen recently: the faulty attempt to embed the manifest has
not been attempted ever since the existence test was added because it was
also failing and hence no 'mt' command was being run. [cpan #35943] is
thus resolved by this change too.
Bump $VERSION in all ExtUtils::CBuilder files (to 0.280208) to keep them
all in sync as before.
|
|
|
|
|
|
| |
Correct the test for the existence of the manifest file.
Bump $VERSION in all ExtUtils::CBuilder files (to 0.280207) to keep them
all in sync, as is currently the case.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
File::Spec::UNIX->abs2rel() returns wrong results in a few cases, most
of which involve ".." path components.
To reproduce, paste the following test cases into:
perl -MFile::Spec::Unix -n -e 'print File::Spec::Unix->abs2rel(split),"\n";'
../foo bar/bat
bar/bat ../foo
foo bar/../bat
. .
/ /
Correct results when run at /home/me and no symlinks in base path:
../../../foo
../me/bar/bat
../foo
.
.
Results for File::Spec::Unix from PathTols 3.33:
../../foo
../bar/bat
../../../foo
/
/
The error in the first test case is due to an optimisation applied when
both arguments are relative paths, which prepends "/" instead of the
current directory. "/../" is then converted to "/" by canonpath().
I have replaced this optimisation by a single call to _cwd() in the
following patch. This also fixes the fourth test case. Besides, I have
moved checks which make sense only for absolute path arguments to the
first branch of the if.
(hunk @@ -366,28 +367,32 @@)
The error in the last test case arises because a root dir $base is
treated specially, and catdir() does not work well for fewer than two
path components. The first added line in the following patch catches that.
As regards the second and third test case, they can be solved without
consulting the filesystem only if no symlinks are involved. Whereever
$path contains .. components, the corresponding directory has to be
descended into. The following patch does this.
(hunk @@ -395,19 +400,39 @@)
It can be impossible for abs2rel() to work correctly without looking at
the filesystem if $base contains symlinks. I understand from the
documentation that the File::Spec modules are not meant to consult the
filesystem. Even though the docs state that abs2rel() does not consult
the filesystem, the implications could perhaps be made clearer, for
example like this:
(hunk @@ -352,9 +352,10 @@)
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Originally, overload would not oven be checked for if
amagic_generation was 0, so it was necessary to do
PL_amagic_generation++, in case this was the first class to have over-
loading. Ever since perl-5.8.0-87-g439cb1c, PL_amagic_generation++
has been unnecessary, since the boot code for version objects incre-
ments it. Furthermore, newXS was already doing PL_sub_generation++
before that, and now does mro_method_changed_in. The code for check-
ing the staleness of the overload tables has always checked
sub_generation (and, later, the stash-specific generation numbers).
|
|
|
|
|
|
|
|
| |
Before any thaw hook is called Storable creates a new blessed object that
is stored in a seen cache and then is provided to the hook. That is fine
for STORABLE_thaw which fills in this object and returns it. STORABLE_attach
on the other hand can create entirely new object by itself, so one
memoized before should be thrown out to be replaced by that new object.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Otherwise assigning to it will cause the referent to be freed, because
nothing but Storable knows that it has no reference count.
Storable.xs was creating a new RV without increasing the refe-
rence count on the referent. It was then using it to call the
STORABLE_freeze method on the object. Since Perl passes arguments
by reference, it was possible to unref the reference by assigning to
$_[0] within STORABLE_freeze. That would cause the object’s reference
count to go down.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
These changes introduced some test failures on AIX and other platforms,
and rather than dig around for more failing platforms during the RCx
period, we will revert this to reapply later when it is more tested.
This reverts commit 01b71c89216c9f447494638a5d108e13c45c3863.
This reverts commit b6903614db213f07401367249dc84c896eb099b7.
This reverts commit 271d04eee1933df0971f54f7bf9a5ca3575e7e6a.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This was amended from the original Tony prepared in a parallel branch
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There appears to be a flaw in IO::Socket where some IO::Socket objects
are unable to properly report their socktype, sockdomain, or protocol
(they return undef, even when the underlying socket is sufficiently
initialized to have these properties).
The attached patch should cover IO::Socket objects created via accept(),
new_from_fd(), new(), and anywhere else whose details haven't been
properly cached.
No new code should be executed on IO::Socket objects whose details are
already cached and present.
|
|
|
|
| |
They want IPC::Open3::open3, which is not currently working.
|
|
|
|
|
|
|
|
|
|
|
|
| |
When PL_last_in_gv (and hence $.) is set, Carp::longmess uses
eval { die } to find out what handle and line number perl will append
to the error message.
It was not qualifying the die with CORE::, so a CORE::GLOBAL::die
override that itself calls Carp::longmess would result in infinite
recursion if that override were installed before Carp loaded.
This broke Class::Scaffold’s tests, which began to hang.
|
| |
|
| |
|
|
|
|
|
|
| |
There has been a release of 2.32 on CPAN with changes that are not in
blead. So what bleadperl has is 2.31 plus a tiny fix that does not
affect older perl versions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With commit b50b20584, strict.pm starting putting hints in %^H to
indicate that strict mode has been enabled or disabled explicitly, so
version declarations should not change the setting.
This causes ‘Unbalanced string table refcount’ warnings when Safe.pm
encounters prohibited ops.
This happens because ops are leaking when those ops point to HEKs (in
the internal form that %^H takes when attached to ops).
This commit moves those new strict hints into $^H, to avoid those
warnings. This does simply paper over the real problem (leaked ops),
but at least it gets the warnings back down to the 5.14 amount.
Because of the new hints in $^H, B::Concise has been updated to
account for them, and so have all its tests. I modified OptreeCheck
to avoid setting the hints with ‘no strict;’, as that resulted in
slightly fewer changes to the tests. It will also result in fewer
changes to the tests in future.
Two B::Deparse tests started failing due to %^H not being localised.
Apparently there is a bug somewhere (in perl, Deparse.pm or deparse.t)
that got triggered as a result. In fact, one of the tests exhibited
*two* bugs. But for now, I’ve simply added a workaround to the two
tests so they don’t trigger those bugs (which bugs will have to wait
till after 5.16).
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Instead of evaluating code under ‘no strict’, we should be evaluating
it with no pragmata at all by default.
This allows ‘use 5.012’ to enable strictures in reval. It also
has the side effect of suppressing the ‘Unbalanced string table
refcount’ warnings, at least in some cases. This was brought up in
ticket #107000.
|
|
|
|
|
|
| |
For the sake of tests in the next commit, it needs runperl(), which
test.pl provides. Since this script is only run in the perl core, it
should be fine.
|
| |
|
| |
|
|
|
|
|
| |
(this wasn't found earlier because this test file is only
run with perls <= 5.8.x)
|
|
|
|
| |
and improve diagnostics
|
| |
|
| |
|
|
|
|
| |
Changed Module::Corelist and perldelta.pod
|
|
|
|
| |
Updated Module::CoreList and perldelta to reflect the changes.
|
|
|
|
|
| |
These functions should be used in preference to the old ones which can
read beyond the end of the input string.
|
| |
|
|
|
|
|
|
|
|
|
| |
Instead, directly access feature's package variables, as B::Deparse already
does in 14 other places. (It also has its tentacles firmly into strict
and warning's package variables - it's not fussy)
feature::current_bundle() was not part of the documented API of feature
either, so B::Deparse wasn't clean previously.
|
|
|
|
|
|
|
|
| |
Also, require feature unconditionally.
Deparse already directly uses data from feature, switch and warnings, so
this isn't a new trend in encapsulation breakage. Previously Deparse copied
the value of $feature::hint_mask, and lazily loaded require in 4 places.
|
| |
|
|
|
|
| |
Converge the code, so that it's easy to extract out into a subroutine.
|
|
|
|
|
|
|
|
|
|
|
| |
Commit 6634bb9d0ed117be introduced a regression, causing this
use 5.10.0;
say "Perl rules";
to be deparsed as C<CORE::say>, not C<say>, etc. It wasn't actually possible
to write tests for this within the t/deparse.t framework until the recent
refactoring.
|
|
|
|
|
|
|
|
|
|
|
| |
These mostly codify the current output of B::Deparse, which is not invalid,
but might not be considered to be the optimal output. (It's defensive, in
that it uses C<no feature;> which will ensure consistent behaviour whatever
pragma context the output is evaluated in.)
Some are TODO for the cases where B::Deparse is wrongly outputting
C<CORE::say> instead of plain C<say> and C<CORE::__SUB__> instead of plain
C<__SUB__>.
|
|
|
|
|
| |
Only use feature ':5.10' in those tests that actually need it. This will let
us add tests for deparsing without any features enabled.
|
|
|
|
|
|
| |
Call ambient_pragmas() before each deparse test. This will allow use to remove
the constraints of the current default, which is to always run under
use feature ":5.10";
|