| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
"Sane" means that it works correctly on bytes with their high bit set, as
C89 also requires.
We therefore no longer need to probe for and/or use BSD bcmp().
|
|
|
|
|
| |
It is almost impossible to find any information about this platform on the
internet, which strongly suggests that it's as dead as dead can be.
|
|
|
|
| |
We can therefore also avoid probing for and/or using BSD bcopy().
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
C89 says that, if you want to copy overlapping memory blocks, you must use
memmove(), and that attempt to copy overlapping memory blocks using memcpy()
yields undefined behaviour. So we should never even attempt to probe for a
system memcpy() implementation that just happens to handle overlapping
memory blocks. In particular, the compiler might compile the probe program
in such a way that Configure thinks overlapping memcpy() works even when it
doesn't.
This has the additional advantage of removing a Configure probe that needs
to execute a target-platform program on the build host.
|
|
|
|
| |
This means we also never need to consider using BSD bzero().
|
|
|
|
|
| |
At least for now, we retain the StructCopy() macro, but its definition
always just uses struct assignment.
|
|
|
|
| |
This corresponds to metaconfig ad82f5bfbeafc125c0aed2b83391ed8d43bf31b2.
|
| |
|
|
|
|
|
|
|
| |
This is a merge off several new probes in metaconfig done in the new
shared developing environment by several authors
Thanks to all that contributed!
|
| |
|
| |
|
| |
|
|
|
|
|
| |
And fix the template file so that the impending version bump will leave it
correct for next time too.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The revert two commits ago causes B::Deparse to go through a different
code path when dumping the constant. Ideally the output should be the
same either way (i.e., consistently with or without a semicolon, not
sometimes one way and sometimes the other). But for now, just make
the test more lenient.
|
| |
|
|
|
|
|
| |
This reverts two hunks from 6881372e19 to allow CPAN modules some time
to conform to the optimisation.
|
|
|
|
|
|
|
|
|
|
| |
This is done using the regen_config_h targets in the Windows makefiles,
being careful to restore a couple of things otherwise lost from the
config_H.gc file (a couple of STRINGIFY #undefs, comments above the
HASATTRIBUTE_* #defines, and the #define of HAS_MKSTEMP).
The files are now in sync with the top-level master configuration file,
config_h.SH.
|
|
|
|
|
|
| |
SvLEN was set without using the generic macro SvLEN_set.
Use it in three extra locations, and also use SvCUR_set
instead of SvCUR.
|
|\ |
|
| | |
|
| |
| |
| |
| |
| | |
Only when being Unixish, because I have no idea if
setup_argstr()/vms_do_exec() handle it.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This should call execvp() with an empty argv array (containing only the
terminating NULL pointer), but was instead just returning false (and not
setting $!).
Executing a program with an empty argv array is valid ISO C: it merely
requires argc to be nonnegative and argv[argc] to be NULL. POSIX states
that that argv[0] "should point to a filename string that is associated
with the process being started", but "should" only applies to
applications claiming strict POSIX conformance. Perl does not, and
certainly should not impose it on perl programs.
This also requires handling the case where both PROGRAM and LIST are
empty, to avoid calling execvp(NULL, …), which _is_ invalid. I've made
it return ENOENT, which it the error POSIX specifies for execvp("", …).
|
| |
|
|
|
|
| |
used a name and added a comment so this isn't broken again
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Pod::Perldoc has, since version 3.20, exhibited various kinds of
misbehaviour relating to a bad default choice of formatter. Output has
sometimes appeared mangled due to the newly-default formatter emitting
unportable escape sequences, and sometimes there has been a more
severe output failure due to perldoc making unportable changes to pager
configuration in an attempt to make the escape sequences work. This is
discussed in [perl #131762]. In the upstream instance of the module
there have been tweaks to the unportable behaviour, but not an actual fix.
In order to make the core distro ship a reliably-working version of
perldoc, this patch customises Pod::Perldoc to implement the obvious
fix for the portability problems. The fixed version defaults to the
ToText formatter, which produces properly plain text that will go through
any pager. It never attempts any change to pager configuration.
|
| |
|
|
|
|
|
|
|
|
|
| |
Most of the DEBUG_?_TEST calls are already protected
by one '#idef DEBUGGING' check, but noticed a few of them
which were not protected in sv.c and toke.c
We should avoid these extra 'if' statements if perl
is not compiled with debug option: -DDEBUGGING.
|
| |
|
|
|
|
|
|
| |
<sys/time.h> isn't necessarily needed, but apparently increases
portability, since the rusage structure defined in <sys/resource.h>
has struct timeval members.
|
|
|
|
|
|
|
|
| |
argument.
Reformat code in one foreach block for readability. Make podcheck happy.
For: RT #132145
|
|
|
|
|
|
|
|
| |
This was added in commit dfe9444ca7881e716e9e8feaf20b55da491363ca (February
1998, for Perl 5.004_60) by Andy Dougherty, and its comment says that, even
then, he thought it was unneeded. But the perl5 repo has ever defined the
NEED_GETPID_PROTO cpp symbol that guards this declaration, so this ability
has clearly never been used.
|
|
|
|
|
| |
Avoid having to continue to update this every time the president changes
by replacing Barack Obama with Ada Lovelace.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The push and unshift builtins were correctly throwing a "Modification of a
read-only value attempted" exception when modifying a read-only array, but
splice was silently modifying the array. This commit adds tests that all
three builtins throw such an exception.
One discrepancy between the three remains: push has long silently accepted
a push of no elements onto an array, whereas unshift throws an exception in
that situation. This seems to have been originally a coincidence. The
pp_unshift implementation first makes space for the elements it unshifts
(which croaks for a read-only array), then copies the new values into the
space thus created. The pp_push implementation, on the other hand, calls
av_push() individually on each element; that implicitly croaks, but only one
there's at least one element being pushed.
The pp_push implementation has subsequently been changed: read-only checking
is now done first, but that was done to fix a memory leak. (If the av_push()
itself failed, then the new SV that had been allocated for pushing onto the
array would get leaked.) That leak fix specifically grandfathered in the
acceptance of empty-push-to-readonly-array, to avoid changing behaviour.
I'm not fond of the inconsistency betwen push on the one hand and unshift &
splice on the other, but I'm disinclined to make empty-push-to-readonly
suddenly start throwing an exception after all these years, and it seems
best not to extend that exemption-from-exception to the other builtins.
|
|
|
|
|
|
|
|
| |
Committer: minor corrections to descriptions.
Dmitry Ulanov is now a Perl author.
For: RT #132276
|