| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
As mentioned in https://lists.llvm.org/pipermail/llvm-dev/2015-July/088122.html
and https://github.com/llvm/llvm-project/issues/24625 building with clang-cl currently fails due to the declaration of __PL_nan_u.
By declaring it like this, cl and clang-cl are happy to parse it.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
minitest depends on $(MINIPERL_EXE) and minitest_prep, but
minitest_prep calls back into make to build lib/Config.pm which
indirectly depends on $(MINIPERL_EXE).
This can result in a race between the parallel work of the parent
make and the work of the child make, as they both try to build
$(MINIPERL_EXE) and its dependencies, causing some of the errors
described in the ticket.
Note that trying to `make -j6 minitest all` could lead to
similar conflicts, but I think that's an unlikely and not worth
supporting anyway.
Fixes #19829 (I think)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
On Win32 long is only 32-bits (even for x86_64), which meant
file sizes were limited to 2GB.
This successfully runs the example code, and can successfully read
all the keys back.
I didn't add a test, since creating a 2GB (or 8GB for the issue test)
would be unfriendly.
|
|
|
|
| |
No need to re-derive it
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Specifically, only where a new AV has just been created and it's therefore
obvious that av_push_simple is safe to use.
In many cases, nearby code does av_push to an existing array. It might
well be the case that these are simple arrays and av_push_simple could be
used instead. The necessary analysis has been left for the future.
|
|
|
|
|
|
|
| |
There was less benefit in doing this prior to newSV_type becoming an inline
function. Now that it is, inlining av_new_alloc can help compilers eliminate
redundant setting of AvMAX/AvFILLp and unnecessary branches of any following
inlined calls to av_store_simple.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A simplified version of av_push, along the lines of av_store_simple and
av_fetch_simple. This function is trivial, but having it makes refactoring
of existing code easier to read.
For example, changing:
av_push(some_av, val);
to:
av_push_simple(some_av,val);
is easier to read than:
av_store_simple(some_av, AvFILLp(some_av) + 1, val)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
and document two of them, which I had done before I realized they were
to be deprecated.
These functions are obsolete, and stemmed from a long-solved problem in
Windows. There are a couple of uses on cpan of a couple of them. But
people should just use PL_opnames[], for example, instead of the
function here that returns the address of that array.
|
|
|
|
|
| |
This removes the last core use of the trivial accessor functions
get_op_names() and get_op_descs().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We can also remove many dMY_CXT declarations, as they are no longer needed
(and generate a now unused variable in threaded builds, hence compiler
warnings).
Previously it was part of the module's my_cxt_t, because it was a value
calculated from the interpreter variable PL_maxo. But PL_maxo itself is *not*
a variable - it was converted to a #define in Aug 2016 by commit
8d89205aa6324e7d:
Remove PL_maxo
We have an interpreter variable using memory, PL_maxo, which is
defined to be the same as MAXO, a #defined constant. As far as I can
tell, it is never used in lvalue context, in core or on CPAN, except
for the initialisation in intrpvar.h.
It can simply be removed and replaced with a macro defined as equiva-
lent to MAXO.
It was added in this commit:
commit 84ea024ac9cdf20f21223e686dddea82d5eceb4f
Author: Perl 5 Porters <perl5-porters.nicoh.com>
Date: Tue Jan 2 23:21:55 1996 +0000
perl 5.002beta1h patch: perl.h
5.002beta1 attempted some memory optimizations, but unfortunately
they can result in a memory leak problem. This can be
avoided by #define STRANGE_MALLOC. I do that here until
consensus is reached on a better strategy for handling the
memory optimizations.
Include maxo for the maximum number of operations (needed
for the Safe extension).
But apparently it is not needed for the Safe extension (tests pass
without it).
What the author of that commit didn't realise was that Opcode had been split
out from Safe - the code in question is in this module not Safe.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When not set to be quiet, the system commands being run are printed out
before running them. This can assist with diagnosing issues. It is
implied that this is a command that could be run by a user.
Since the command is internally run with system using list form, it does not
involve the shell, and does not need any extra quoting. The printed out
command however, would be run by a user through a shell. Just joining
the arguments with spaces will not quote them correctly for use through
a shell.
Add a new method for quoting a string for the shell. And use this method
when printing out the command line that we are running.
|
|
|
|
| |
GitHub no longer supports git:// cloning because it is not encrypted.
|
| |
|
|
|
|
| |
delimiters
|
| |
|
| |
|
| |
|
|
|
|
|
| |
"ix" is a common variable name in XS code, and may be passed in as
part of a parameter.
|
|
|
|
|
|
|
|
|
| |
function
The new combined function, named `S_warn_elem_scalar_context()`, is much
more meaningful and useful to become exported in an intended subsequent
change, than the previous (poorly-named) `S_op_pretty()` would have
been.
|
|
|
|
|
|
|
|
| |
These use checksums to see if the generated data could be out of date.
The new NormTest.pl wasn't counted in this, and needn't be, but
excluding it and other similar ones is more trouble than it's worth, so
make a comment to that effect and update to include the NormTest.pl
digest value.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
These have been occasionally useful, but take quite a bit longer than
just the sameples normally used. Enabled by environment variable
$PERL_DEBUG_FULL_TEST
|
|
|
|
|
| |
This could trigger some optimisations, and makes it clear to maintainers
that they do not get modified.
|
|
|
|
|
| |
Most of these have been deprecated for a long time; and we've never
bothered to follow through in removing them. This commit does that.
|
| |
|
|
|
|
|
| |
One is supposed to access this functionality only through the documented
uppercase-named macros.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Originally this came up from a Coverity complaint.
GDBM_SETMAXMAPSIZE accepts any of unsigned, unsigned long or size_t,
but GDBM_GETMAXMAPSIZE only accepts size_t. Since this is the only
case that uses unsigned values we can safely switch it to size_t.
Unfortunately Coverity's analysis was pretty broken, it complained
about c_uv being uninitialised at the call to newSVuv, but its example
code flow went through the opt_dbname case, which sets vptr to != &c_uv
so the newSVuv() wouldn't execute anyway.
Before looking closely at the Coverity analysis and after finding the
bug fixed here I thought for a moment that Coverity had been tracing
into libgdbm, which could have caught the actual problem, but alas
that was not the case.
I expect this fix will not close CID 351943, and if it remains after
this is applied I'll close it as a false positive.
CID 351943.
|
|
|
|
| |
I read the code and added details previously missing.
|
|
|
|
| |
Easier to read
|
|
|
|
|
| |
The newer name is not misleading; the old name has been retained only
for backcompat; this removes its final use in the core.
|
|
|
|
|
|
|
|
| |
This names a flag bit whose meaning depends on context. The previous
name contained both meanings, and was simply too long to be
comprehensible. This commit splits it into two names, with the suffix
'_shared'. It's not necessary to know precisely what the other meaning
is when reading the code, only that it has another meaning.
|
|
|
|
| |
The old name had a negative in it, and its easier to grok positives
|