Abigail [Wed, 14 Sep 2011 23:38:41 +0000 (01:38 +0200)]
Be more precise in the wording of how // works.
See the discussion starting with mail:9879.
1315954489@chthon
This rephrasing should avoid people getting the impression // is a
source filter, translating 'A // B' into 'defined(A) ? A : B', and
reparsing the result.
Father Chrysostomos [Wed, 14 Sep 2011 20:43:45 +0000 (13:43 -0700)]
[perl #92436] Make Filter::Simple match variables better
(This is the second bug reported in ticket #92436.)
Filter::Simple was using Text::Balanced’s extract_variable, which
...extracts any valid Perl variable or variable-
involved expression, including scalars, arrays, hashes, array
accesses, hash look-ups, method calls through objects, subrou-
tine calls through subroutine references, etc.
So it extracts things like $x->foo("blah lbah blah"). That means
that, when the user of Filter::Simple asks for everything except
strings, "blah lbah blah" is passed through anyway, because
Filter::Simple things it’s part of a variable name. That obviously
doesn’t work.
This commit makes Filter::Simple use a regular expression for varia-
bles, as it does for other things. It’s certainly not foolproof, but
Filter::Simple in general is not foolproof, and this regular expres-
sion is actually less foolproof than most parts of Filter::Simple. So
it’s a step in the right direction (unless you consider deletion to be
the right direction).
Father Chrysostomos [Wed, 14 Sep 2011 20:08:44 +0000 (13:08 -0700)]
Dear CoreList: Please note that 5.12.3 included VMS::Filespec.
Leon Timmermans [Tue, 13 Sep 2011 18:13:22 +0000 (20:13 +0200)]
Fix #98480 math when reading shared memory
shmread didn't unset SvIOK properly, causing a read into a SVIV to have
an incorrect numeric value. This patch fixes that and adds tests.
Leon Timmermans [Tue, 13 Sep 2011 16:34:28 +0000 (18:34 +0200)]
Added SysV shared memory tests
Tests are based on IPC-SysV's tests, though I had to remove a lot for it
not to rely on IPC::SharedMem.
Father Chrysostomos [Wed, 14 Sep 2011 16:32:53 +0000 (09:32 -0700)]
Dear CoreList: FYI, Errno was included in 5.6.0 and .1.
Father Chrysostomos [Wed, 14 Sep 2011 13:20:37 +0000 (06:20 -0700)]
Dear CoreList: 5.8.2 *did* include DB_File.
Father Chrysostomos [Tue, 13 Sep 2011 21:44:11 +0000 (14:44 -0700)]
Missing word in release managers’ guide
Dave Rolsky [Wed, 14 Sep 2011 15:39:21 +0000 (10:39 -0500)]
Mention that a method can be thought of as a verb for an object
Dave Rolsky [Wed, 14 Sep 2011 14:24:37 +0000 (09:24 -0500)]
Mention mutator as synonym for setter
Nicholas Clark [Wed, 14 Sep 2011 10:55:11 +0000 (12:55 +0200)]
Merge Storable improvements (XS tidying, test failures on older perls).
Nicholas Clark [Wed, 14 Sep 2011 10:53:18 +0000 (12:53 +0200)]
Note Storable changes in perldelta.
Nicholas Clark [Tue, 13 Sep 2011 15:37:10 +0000 (17:37 +0200)]
Simplify Storable.xs by providing a fallback definition of HvTOTALKEYS().
Longer term this should be added to ppport.h
Nicholas Clark [Sat, 10 Sep 2011 19:18:00 +0000 (21:18 +0200)]
Change Storable's code.t to serialise a subroutine under our control.
The test originally testing serialising and deserialising \&Test::ok. When
the test was converted from Test.pm to Test::More in 2009, it was changed to
use \&Test::More::ok. However, this turns out to be "works on my machine".
Test::More::ok from Test::Simple 0.61 onwards (2005,
b1ddf16980125497) will
deserialise correctly. The previous implementation of Test::More::ok uses a
lexical from an outer scope. Hence the textual representation of the
subroutine (in isolation) fails to deserialise, because it's not valid under
strict, because there is no visible declaration of the lexical.
Hence switch to testing a large subroutine under our control, _store(), to
avoid unpleasant surprises from dependencies we were not even aware of.
The comment "large scalar" dates from the original test using \&Test::ok.
It's not clear which large scalar it refers to.
Nicholas Clark [Sat, 10 Sep 2011 16:15:03 +0000 (18:15 +0200)]
Remove from Storable.xs all compatibility code that duplicates ppport.h
The rest should probably be migrated to Devel::PPPort.
Nicholas Clark [Sat, 10 Sep 2011 15:14:31 +0000 (17:14 +0200)]
Restore 5.004 and 5.005 support in Storable.
Add XSLoader as a prerequisite.
Use parentheses for the call to XSLoader::load().
Don't pass parameters that old ExtUtil::MakeMaker doesn't understand.
Avoid the T_BOOL typemap, as xsubpp will always mortalise the SV generated
by processing RETVAL, T_BOOL generates the SV using boolSV() which returns
PL_sv_yes or PL_sv_no, and on 5.004 Perl_sv_2mortal() will croak if passed
a readonly scalar. This is actually a small optimisation on later perls, as
the call to Perl_sv_2mortal() isn't actually needed.
Avoid repeating the PPCODE by merging last_op_in_netorder() with
is_storing() and is_retrieving(). (Which I didn't spot was easy to do
when commit
7cb18e1b020cd2e5 merged is_storing() and is_retrieving().)
Together these reduce the size of the shared object by about 200 bytes on
this platform. Small, but in the right direction.
Nicholas Clark [Sat, 10 Sep 2011 11:43:57 +0000 (13:43 +0200)]
Remove Symbian compatibility macros from Storable, now supplied by ppport.h
ppport.h provides default definitions for PERL_UNUSED_DECL, dNOOP and dVAR,
so no need to duplicate this in Storable.xs
Nicholas Clark [Tue, 13 Sep 2011 19:58:56 +0000 (21:58 +0200)]
Simplify S_set_caret_X() by returning early if we set caret_x.
This avoids duplicating the fallback code to set caret_x to PL_origargv[0].
Nicholas Clark [Tue, 13 Sep 2011 19:31:34 +0000 (21:31 +0200)]
Inline S_procself_val() into S_set_caret_x().
Possibly this should have been done as part of commit
3aa90d208c3bbfc1,
which broke S_set_caret_X() out from S_init_postdump_symbols().
[S_procself_val() was not inlined into S_init_postdump_symbols() because
Nick Ing-Simmons thought it unwise to hold on to MAXPATHLEN bytes of stack
longer than necessary.]
Nicholas Clark [Tue, 13 Sep 2011 19:07:06 +0000 (21:07 +0200)]
In S_set_caret_X(), use GvSV() consistently in all conditional code.
Commit
c69033f2a6291605 was inconsistent, in that it changed two instances
of GvSV() to GvSVn(), but not the third. The expansion of GvSV() is simpler,
and is appropriate here. Hoist the call to GvSV() out of the conditional
code.
Nicholas Clark [Tue, 13 Sep 2011 15:27:00 +0000 (17:27 +0200)]
Bump $Module::CoreList::VERSION after
77cc041da6484066.
Chris 'BinGOs' Williams [Tue, 13 Sep 2011 13:08:09 +0000 (14:08 +0100)]
Corrected the version of Module::CoreList shipped with v5.10.0
Nicholas Clark [Tue, 13 Sep 2011 10:10:18 +0000 (12:10 +0200)]
Merge POSIX improvements (refactoring, tests, bugfix for Solaris)
Nicholas Clark [Mon, 12 Sep 2011 12:11:05 +0000 (14:11 +0200)]
Change POSIX::Termios::setattr() to default to TCASNOW, not 0.
0 isn't valid on all operating systems. TCASNOW has the value 0 on most
operating systems, but on Solaris (at least) TCASNOW, TCSADRAIN and
TCSAFLUSH have the same values as the equivalent ioctls, TCSETS, TCSETSW and
TCSETSF. Solaris faults 0, setting errno to EINVAL. This isn't useful as a
default behaviour.
Nicholas Clark [Sat, 10 Sep 2011 11:28:19 +0000 (13:28 +0200)]
Remove unneeded fallback definitions of dNOOP, dVAR etc from POSIX.xs
As POSIX.xs is not dual life, we can always rely on these macros being
defined for us in perl.h. (And these days, dual life XS code should let
Devel::PPPort take care of this sort of thing.)
Nicholas Clark [Sat, 10 Sep 2011 10:20:08 +0000 (12:20 +0200)]
Update perldelta to note that POSIX.so is now 12% smaller.
Also record that there are more tests.
Nicholas Clark [Fri, 9 Sep 2011 21:55:25 +0000 (23:55 +0200)]
Merge the implementations of POSIX::{asctime,mktime} using ALIAS.
This shares identical code marshaling 6 to 9 input arguments into a
struct tm. However, as the return types differ we have to explicitly code
pushing the return value onto perl's stack.
Nicholas Clark [Fri, 9 Sep 2011 21:25:08 +0000 (23:25 +0200)]
Merge the implementations of POSIX::{access,mkfifo} using ALIAS.
Nicholas Clark [Fri, 9 Sep 2011 21:14:22 +0000 (23:14 +0200)]
Merge the implementations of POSIX::{close,dup,tcdrain} using ALIAS.
On this platform, this reduces the shared object size by about .5K.
Nicholas Clark [Fri, 9 Sep 2011 20:36:33 +0000 (22:36 +0200)]
Add tests for POSIX::{access,close,dup,dup2}.
Nicholas Clark [Fri, 9 Sep 2011 16:59:00 +0000 (18:59 +0200)]
In ext/POSIX/t/sysconf.t, make the tests more strict.
$! should always be 0 after each call, so test this whether the result is
defined or undefined. Match a defined result against a regex to ensure that
it is an integer, and give better diagnostics if it is not.
Nicholas Clark [Fri, 9 Sep 2011 16:36:15 +0000 (18:36 +0200)]
In ext/POSIX/t/sysconf.t, refactor the API of _check_and_report().
The new API removes a lot of code repetition in the callers.
Nicholas Clark [Fri, 9 Sep 2011 16:10:19 +0000 (18:10 +0200)]
In various POSIX tests, make better use of Test::More.
Avoid using ok() when alternatives are available, as ok() can't give useful
diagnostics on failure.
Nicholas Clark [Fri, 9 Sep 2011 12:57:19 +0000 (14:57 +0200)]
Merge the implementations of 11 is*() functions in POSIX using XSANY.
is{alnum,alpha,cntrl,digit,graph,lower,print,punct,space,upper,xdigit}
have identical structures, so replace them with one body to marshal
arguments between Perl and C, calling the C library is*() function via
a function pointer stored in the CV's XSANY.
Nicholas Clark [Fri, 9 Sep 2011 10:39:13 +0000 (12:39 +0200)]
Merge the implementations of 10 maths functions in POSIX using ALIAS.
10 functions take a single NV argument and return an NV result. Merging them
reduces the shared object size by over 2K on this platform. (Argument
marshalling code in XS is not free.)
Nicholas Clark [Thu, 8 Sep 2011 14:08:16 +0000 (16:08 +0200)]
Further tests for POSIX trigonometric and hyperbolic functions.
Nicholas Clark [Thu, 8 Sep 2011 13:28:04 +0000 (15:28 +0200)]
Change POSIX::localeconv() to a table-driven implementation.
This removes a lot of copy-paste code.
[with a tweak by Ilmari that removed residual duplication]
Nicholas Clark [Thu, 8 Sep 2011 12:37:09 +0000 (14:37 +0200)]
Add tests for POSIX::localeconv().
Nicholas Clark [Thu, 8 Sep 2011 11:05:05 +0000 (13:05 +0200)]
Merge the implementations of 2 sets of POSIX functions.
Using ALIAS to merge POSIX::sig{pending,suspend} and
POSIX::tc{flow,flush,sendbreak} reduces the size of POSIX.so by about 2K
on this platform.
Nicholas Clark [Thu, 8 Sep 2011 10:41:10 +0000 (12:41 +0200)]
Merge the implementations of 4 sets of POSIX::Termios methods.
Using ALIAS to merge cfget[io]speed(), get[cloi]flag(), cfset[io]speed()
and set[cloi]flag() reduces the size of POSIX.so by almost 2K on this
platform.
Nicholas Clark [Thu, 8 Sep 2011 10:05:06 +0000 (12:05 +0200)]
Merge the implementations of 2 pairs of POSIX::SigSet methods.
Using ALIAS to merge addset() with delset() and emptyset() with fillset()
reduces the shared object size, by removing duplicate marshaling code for
arguments and return values. On this platform the saving is over .5K
Nicholas Clark [Thu, 8 Sep 2011 08:11:55 +0000 (10:11 +0200)]
Add tests for POSIX::sigpending().
Nicholas Clark [Wed, 7 Sep 2011 16:52:36 +0000 (18:52 +0200)]
Store sigset_t used by POSIX::SigSet directly in the object SV.
Previously POSIX::SigSet was using the PTROBJ typemap to store a pointer to
a dynamically-allocated sigset_t as an IV (blessed into the class)
This requires an explicit DESTROY to free the dynamic allocation, but fails
badly if any POSIX::SigSet objects exist at ithread clone time, as the
dynamic allocation is not duplicated in the new thread. (DESTROY is called
in both threads, free-from-wrong pool or other jollity occurs.)
Removing dynamic allocation removes the need for a DESTROY method.
This change is analogous to the previous change in POSIX::Termios, and is
made for the same reason.
Nicholas Clark [Wed, 7 Sep 2011 14:57:03 +0000 (16:57 +0200)]
In POSIX.xs, extract allocate_struct() from POSIX::Termios::new().
The same code will be needed for POSIX::SigSet::new(), so share it as a small
static function.
Nicholas Clark [Wed, 7 Sep 2011 14:22:33 +0000 (16:22 +0200)]
Add tests for POSIX::SigSet.
Nicholas Clark [Wed, 7 Sep 2011 11:15:04 +0000 (13:15 +0200)]
Store struct termios used by POSIX::Termios directly in the object SV.
Previously POSIX::Termios was using the PTROBJ typemap to store a pointer to
a dynamically-allocated struct termios as an IV (blessed into the class).
This requires an explicit DESTROY to free the dynamic allocation, but fails
badly if any POSIX::Termios objects exist at ithread clone time, as the
dynamic allocation is not duplicated in the new thread. (DESTROY is called
in both threads, free-from-wrong pool or other jollity occurs.)
Removing dynamic allocation removes the need for a DESTROY method.
This introduces a new OPAQUEPTROBJ typemap, but currently doesn't use the
OUTPUT section, as that copies an existing structure, whereas
POSIX::Termios->new() only needs to zero-allocate the right space. Assuming
that this typemap should be of general applicability, it should be moved to
the main typemap file.
Nicholas Clark [Tue, 6 Sep 2011 20:22:36 +0000 (22:22 +0200)]
Add tests for POSIX::tc{drain,flow,flush,sendbreak}()
We don't want to mess with the user's terminal (as we might mess it up), so
attempt to call each function on a disk file, and verify that it fails with
ENOTTY.
Nicholas Clark [Tue, 6 Sep 2011 20:11:49 +0000 (22:11 +0200)]
Add tests for POSIX::Termios->setattr().
We don't want to mess with the user's terminal (as we might mess it up), so
attempt to call tcsetattr() on a disk file, and verify that it fails with
ENOTTY.
Nicholas Clark [Tue, 6 Sep 2011 19:58:09 +0000 (21:58 +0200)]
Add tests for POSIX::Termios->setcc().
Nicholas Clark [Tue, 6 Sep 2011 17:37:35 +0000 (19:37 +0200)]
Add tests for POSIX::Termios->get[iocf]flags().
Nicholas Clark [Tue, 6 Sep 2011 16:38:21 +0000 (18:38 +0200)]
Add tests for POSIX::Termios->get[io]speed().
Nicholas Clark [Tue, 6 Sep 2011 12:23:53 +0000 (14:23 +0200)]
Add tests for passing POSIX::Termios->getcc() out of range subscripts.
Nicholas Clark [Tue, 6 Sep 2011 12:12:22 +0000 (14:12 +0200)]
In termios.t, avoid reading uninitialised memory in the tests.
If no terminal devices are found, or getattr() fails on all of them, then
the struct termios wrapped by the POSIX:Termios object will consist of
initialised memory. In this case, it's not possible to use getcc() or the
other get*() methods on it.
Try harder to find a terminal device - as well as STDIN, STDOUT and STDERR
also try to open the controlling terminal directly.
Nicholas Clark [Tue, 6 Sep 2011 11:36:07 +0000 (13:36 +0200)]
Refactor ext/POSIX/t/termios.t
* Only import termios.h functions and constants from POSIX
* Loop over STDIN, STDOUT, STDERR instead of duplicating code.
* Avoid a needless defined? test, as isa_ok() handles undef.
* Switch to done_testing(), which also allows @getters to be inlined and
eliminated.
* The various get*() methods return integer values, so check this.
* Enable warnings.
Father Chrysostomos [Tue, 13 Sep 2011 06:31:18 +0000 (23:31 -0700)]
Remove if(isGV_with_GP(PL_defoutgv)) checks from mg.c
Commit
099be4f1d added code to cope with this:
my $x = *STDERR; select($x); $x = 1;
which would cause PL_defoutgv to hold something other than a GV,
resulting in various crashes.
Commit
2acc3314 changed the way rv2gv works on fake globs, and inad-
vertently fixed this problem, too, so PL_defoutgv can no longer end up
holding something other than a GV.
So the code that checks if(isGV_with_GP(PL_defoutgv)) can go.
Father Chrysostomos [Tue, 13 Sep 2011 06:01:52 +0000 (23:01 -0700)]
Fix misspellings in gv.t
Father Chrysostomos [Tue, 13 Sep 2011 05:42:54 +0000 (22:42 -0700)]
Make \&$tied call get-magic when it holds a glob
This is a follow-up to
ff55a0191f1, but this bug has probably existed
as long as ties.
\&$tied_scalar was ignoring get-magic on $tied if it happened to
hold a glob.
Father Chrysostomos [Tue, 13 Sep 2011 05:28:55 +0000 (22:28 -0700)]
Add diag_listed_as for lstat error msg
to let porting/diag.t know how it’s listed in perldiag.
Father Chrysostomos [Tue, 13 Sep 2011 03:41:07 +0000 (20:41 -0700)]
Make (l)stat respect get-magic on globs and globrefs
They were ignoring get-magic for those.
A side effect of this fix is that lstat filehandle warnings and errors
are now consistent:
lstat _ used to die if the previous stat was not an lstat, but
lstat *_ and lstat \*_ would happily return what was in the buffer.
Now they die.
lstat FH and \*FH used to warn, but not lstat *FH. Now it does.
See bug #98864.
Chris 'BinGOs' Williams [Mon, 12 Sep 2011 18:44:07 +0000 (19:44 +0100)]
Update CPAN-Meta-YAML to CPAN version 0.004
[DELTA]
0.004 2011-09-06 09:42:52 America/New_York
- Generated from ADAMK/YAML-Tiny-1.50.tar.gz
Chris 'BinGOs' Williams [Mon, 12 Sep 2011 18:19:35 +0000 (19:19 +0100)]
Update Exporter to CPAN version 5.65
[DELTA]
5.65 Tue Aug 30 2011 Todd Rinaldo
- No changes. Tests clean. Bumping to production release.
5.64_04 Wed Aug 24 2011 Todd Rinaldo
- Re-vamp module to work in Git.
- Update Makefile.PL with extra META bits.
- Point bugs to perl's RT.
- Add a README from Exporter.pm perldoc.
- Depend on Carp 1.05 now we're assuming a fix from 1.05
Chris 'BinGOs' Williams [Mon, 12 Sep 2011 17:57:18 +0000 (18:57 +0100)]
Update perlfaq to CPAN version 5.0150034
[DELTA]
5.0150034 Mon 12 Sep 2011 18:41:25 +0100
* Copy edit Perl 6 a bit more (ranguard)
* Add blog section (ranguard)
* Update much of the copy about emails in perlfaq9 (apeiron)
* Many small changes (bigpresh)
* Add descriptions to doc list (bigpresh)
* Start moving away from global file handles (shlomif)
* Typos, clarity and other cleanups (shlomif)
* Cleanup copy (ranguard)
* Start to add "my" to variables (shlomif)
* Remove verbose/history copy (ranguard)
* Switch to L<> around URLs (ranguard)
Father Chrysostomos [Mon, 12 Sep 2011 13:28:09 +0000 (06:28 -0700)]
Make tie_fetch_count.t pass on ‘broken’ platforms
by which I mean platforms on which some -X $file ops don’t work.
Jim Cromie [Mon, 12 Sep 2011 05:32:50 +0000 (23:32 -0600)]
t/TEST: clean up cachegrind.out.$pid intermediate files
running cachegrind leaves lots of intermediate files, delete them at
the end. Killing make test leaves them around, but this may be useful
for some debugging purposes.
Rework _find_tests($dir) into _find_files($patt,$dir) and wrapper,
to support existing uses and new one.
Jim Cromie [Sun, 11 Sep 2011 01:16:18 +0000 (19:16 -0600)]
add 3 test.valgrind outputs to .gitignore
Steffen Mueller [Mon, 12 Sep 2011 06:26:52 +0000 (08:26 +0200)]
Update CPAN tracking version of ExtUtils::ParseXS
Steffen Mueller [Mon, 12 Sep 2011 06:25:31 +0000 (08:25 +0200)]
perldelta galore for ExtUtils::ParseXS changes
This also rephrases the "XSUBs are now static" section since the
exact behaviour has changed since 5.15.2.
Steffen Mueller [Mon, 12 Sep 2011 06:25:04 +0000 (08:25 +0200)]
ExtUtils::ParseXS changelog
Father Chrysostomos [Mon, 12 Sep 2011 03:00:18 +0000 (20:00 -0700)]
Make cpan officially upstream for Text::Balanced
Father Chrysostomos [Sun, 11 Sep 2011 05:49:12 +0000 (22:49 -0700)]
Make truncate respect get-magic on globs and globrefs
It was ignoring get-magic for those.
Chris 'BinGOs' Williams [Sun, 11 Sep 2011 21:23:46 +0000 (22:23 +0100)]
Update Devel-PPPort to CPAN version 3.20
[DELTA]
3.20 - 2011-09-10
* fix CPAN #56749: isASCII and isCNTRL macros are buggy
(thanks to Karl Williamson for providing a patch and patiently
waiting almost two years for me to integrate it)
* fix CPAN #70427: RealPPPort.xs:1587: error: lvalue required as unary ‘&’ operand
3.19_03 - 2011-04-13
* keep up with latest core changes
3.19_02 - 2010-03-07
* fix a warning emitted by the test suite with older perls
* added support for the following API
newSVpvs_share
get_cvn_flags
get_cvs
(thanks to Goro Fuji for providing a patch to
implement all of these, fixes CPAN #47174)
3.19_01 - 2010-02-20
* fix CPAN #50763: mistaken use of $[
(thanks to Zefram for spotting this)
* remove spurious PUSHMARK from Perl_ppaddr_t
(thanks to Gerard Goossen for providing a patch)
* improved support for newer compilers in buildperl.pl
(thanks to Philippe Bruhat (BooK) for providing a patch)
* added support for the following API
memEQs
memNEs
* lots of small toolchain updates
Steve Hay [Sun, 11 Sep 2011 22:01:57 +0000 (23:01 +0100)]
Add links to Windows documentation of shell and CRT quote parsing rules
Steve Hay [Sun, 11 Sep 2011 18:50:33 +0000 (19:50 +0100)]
Remove Windows 95 support from win32/makefile.mk
All supporting code for Windows 95 was already removed in
8cbe99e5b6.
Nicholas Clark [Sat, 10 Sep 2011 15:10:55 +0000 (17:10 +0200)]
Eliminate warnings from XSLoader on 5.005 and 5.004.
Don't pass parameters that old ExtUtil::MakeMaker doesn't understand.
Ensure that $DynaLoader::dl_debug exists prior to calling into DynaLoader's
XS code.
Jesse Vincent [Sun, 11 Sep 2011 17:10:01 +0000 (13:10 -0400)]
updated podcheck data file to know about the changes from Leon's patch
Leon Timmermans [Sun, 11 Sep 2011 16:09:52 +0000 (12:09 -0400)]
Doc patch to perlipc
1. I've removed some erroneous code regarding signal names (it doesn't
handle signal aliases) with a reference to a module that does handle
it correctly.
2. Removed the sample on temporary signal ignoring; this is not likely
to do what users want it to do. Possibly this should be replaced by a
discussion on sigprocmask & friends, but perhaps we can skip in
altogether
3. Corrected the discussion on permissions to take the difference
between real, effective and saved UIDs into account.
4. Removed all mention of the SysV signaling issue. This was rather
relevant when perlipc was written 15 years ago but it isn't anymore
nowadays.
5. Removed the suggestion that you can longjmp out of a signal handler
(see CERT's SIG32-C).
Steve Hay [Sun, 11 Sep 2011 16:02:53 +0000 (17:02 +0100)]
Add missing win32/config_H.* files to Porting/makerel
Most Win32 shell environments take no notice of these permissions
anyway, but this seems like a safer option than removing them all.
Nicholas Clark [Sat, 10 Sep 2011 11:11:21 +0000 (13:11 +0200)]
Simplify generated XS code by emitting a compatibility version of dVAR.
If ExtUtils::ParseXS emits conditional C pre-processor code once per XS file
to provide a default for dVAR, then it doesn't need to emit 4 lines per
function to cater for dVAR not being present.
Father Chrysostomos [Sun, 11 Sep 2011 05:26:29 +0000 (22:26 -0700)]
Teach B::Concise about OPpFT_STACKING
Father Chrysostomos [Sun, 11 Sep 2011 05:10:19 +0000 (22:10 -0700)]
Collapse repetititive code in tie_fetch_count.t
Father Chrysostomos [Sun, 11 Sep 2011 05:03:32 +0000 (22:03 -0700)]
Make utime handle get-magic correctly for glob(ref)s
It used to ignore get-magic for globs and globrefs.
Father Chrysostomos [Sun, 11 Sep 2011 02:47:59 +0000 (19:47 -0700)]
Stop filetest ops from calling FETCH on parent op’s arg
This is a regression in 5.14.0.
Commit
6f1401dc made ops call get-magic before overloading, but it
ended up making filetest ops call get-magic on the topmost item of the
stack even if the filetest op was not going to use the stack (which
happens for ‘-r bareword’ and plain ‘-r’).
This would affect cases like:
push @foo, $tied, -r;
Father Chrysostomos [Sun, 11 Sep 2011 01:39:12 +0000 (18:39 -0700)]
Make filetest ops handle get-magic correctly for glob(ref)s
This patch uses the recently-added MAYBE_DEREF_GV macro which puts the
glob deref logic in one spot. It also adds _nomg and _flags varia-
tions of it. _flags understands the SV_GMAGIC flag.
Father Chrysostomos [Sat, 10 Sep 2011 21:08:25 +0000 (14:08 -0700)]
Restore changelog entry removed by 378eeda
Existence of this entry has nothing to do with Borland support. It
is merely history, that’s all.
Father Chrysostomos [Sat, 10 Sep 2011 21:02:45 +0000 (14:02 -0700)]
-l followed by bareword should leave the stack alone
$ ln -s /usr/bin/perl bar
$ perl -le' print "bar", -l foo'
1
The -l ate my bar.
It’s this naughty piece of code in doio.c:Perl_my_lstat_flags that is
the culprit:
if (ckWARN(WARN_IO)) {
Perl_warner(aTHX_ packWARN(WARN_IO), "Use of -l on filehandle %s",
GvENAME(cGVOP_gv));
return (PL_laststatval = -1);
}
When -l is followed by a bareward, it has no argument on the stack,
but the filetest op itself is a gvop. That snippet is from the bare-
word-handling code.
So, if warnings are off, it falls through to the argument-on-the-stack
code and pops off something does not belong to it (that belong to the
print, in the example above).
Chris 'BinGOs' Williams [Sat, 10 Sep 2011 20:18:14 +0000 (21:18 +0100)]
Update Archive-Tar to CPAN version 1.78
[DELTA]
* important changes in version 1.78 08/09/2011
- patch from Rocky Bernstein to add chown() method [rt#70623]
- blead patch from Alexandr Ciornii to resolve [perl#78708]
Father Chrysostomos [Sat, 10 Sep 2011 17:01:00 +0000 (10:01 -0700)]
Don’t call get-magic on a referenced array in chdir, etc.
Commit
557fbd17eb added the MAYBE_DEREF_GV macro, which 2ea1cce
applied to chdir, chmod and chown.
That macro calls get-magic on its arguments checks to see if it might
be a gv or ref and, if it’s a ref, calls get-magic on the referent,
to see whether it will turn into a gv. That means we’ll end up with
chdir($array_obj) calling get-magic on the array. While probably
harmless, calling get-magic is superfluous and probably incorrect. I
don’t know that there is a reasonable way to test this.
Steve Hay [Sat, 10 Sep 2011 20:02:58 +0000 (21:02 +0100)]
Another update to comments about regen_config_h target
(Support for gc64nox was added to the vc64 configurations by commit
925798f29c, and the gc64 and gc64nox files were not mentioned at all)
Steve Hay [Sat, 10 Sep 2011 19:52:49 +0000 (20:52 +0100)]
Update comments about regen_config_h target
(Support for disabling HAS_CRYPT via Makefile options was removed
by commit
9cef830622, so building with a "minimal configuration" no
longer involves switching that option off.)
Steve Hay [Sat, 10 Sep 2011 19:46:00 +0000 (20:46 +0100)]
Fix MSWin32 skip in porting/globvar.t
(With VC it skipped anyway due to 'nm' not being available, but with GCC
it ran further and crashed out on the open '-|' call.)
Steve Hay [Sat, 10 Sep 2011 16:21:58 +0000 (17:21 +0100)]
The Borland Chainsaw Massacre
Remove support for the Borland C++ compiler on Win32, as agreed here:
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2011-09/msg00034.html
Douglas Christopher Wilson [Sat, 10 Sep 2011 16:44:18 +0000 (09:44 -0700)]
Add plain ~ expansion for Windows system in File::Glob
Previously in File::Glob, a plain ~ expansion will check
the $HOME environment variable, but that does not normally
exist on Windows systems. There is another variable that
holds the appropriate home path value, which is $USERPROFILE.
This adds a fallback to check $USERPROFILE when $HOME is
not there, the system does not support checking the password
file and the system is DOSISH.
Father Chrysostomos [Sat, 10 Sep 2011 06:35:49 +0000 (23:35 -0700)]
Add Douglas Christopher Wilson to AUTHORS
Father Chrysostomos [Sat, 10 Sep 2011 13:17:53 +0000 (06:17 -0700)]
ch(dir|mod|own) should also call FETCH on refs to tied globs
Following on from commit
935647290357b277, which corrected the beha-
viour for tied globs, this commit corrects the behaviour for refer-
ences to tied globs.
(With tests by Nicholas Clark.)
Father Chrysostomos [Sat, 10 Sep 2011 13:09:26 +0000 (06:09 -0700)]
Add MAYBE_DEREF_GV macro
There are so many parts of the core (mostly pp functions or functions
they call) that need a glob or a globref, including many that call
get-magic at the wrong time (or not at all in some cases, that it
makes sense to add a macro to do it.
It can be used like this:
if (gv = MAYBE_DEREF_GV(sv)) /* calls get-magic */
{
}
else { /* avoid magic here */
}
Nicholas Clark [Sat, 10 Sep 2011 13:08:21 +0000 (06:08 -0700)]
Tweaks to tie_fetch_count.t
Improve error diagnostics by reporting the caller's line number if
check_count() fails, and correct a thinko in a test description.
Vincent Pit [Sat, 10 Sep 2011 13:20:55 +0000 (15:20 +0200)]
"state" in perlfunc should point to "Persistent Private Variables"
Nicholas Clark [Thu, 8 Sep 2011 08:35:48 +0000 (10:35 +0200)]
Add HOMEGROWN_POSIX_SIGNALS to PL_non_bincompat_options, and hence -V output.
HOMEGROWN_POSIX_SIGNALS is only relevant on VMS.
Jim Cromie [Thu, 2 Jun 2011 06:27:49 +0000 (00:27 -0600)]
regen/opcode.pl: generate OP_IS_DIRHOP, use in gv.c
Generate OP_IS_DIRHOP like other OP_IS_* macros,
use in gv.c:Perl_gv_add_by_type().
Modifies 'F' operand type to 'DF'.
This yields a micro-optimization.
Jim Cromie [Mon, 18 Apr 2011 20:05:35 +0000 (14:05 -0600)]
implement OP_IS_NUMCOMPARE like other OP_IS macros
other macros are written by regen/opcode.pl into opnames.h
Generate OP_IS_NUMCOMPARE the same way, and get a micro-optimization.
Adds a new 'S<' operand type for the numeric comparison ops.
Needs make regen.