| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
| |
It's unlikely that XS_VERSION will contain a bogus version string (for long),
but the value passed in (or derived from $XS_VERSION or $VERSION) might well.
For that case, without this change, temporary SVs created within
xs_version_bootcheck() won't be freed (before interpreter exit).
|
| |
|
|
|
|
|
| |
Document that all arguments are passed on to the module's bootstrap function,
and the behaviour of the bootstrap function in modules built by xsubpp.
|
|
|
|
| |
This is left over from PERL_OBJECT (see beeff2, 16c915, and so on).
|
|
|
|
|
| |
Let ExtUtils::MakeMaker deal with running these extraction scripts, rather than
repeating the logic in (at least) 5 places.
|
| |
|
|
|
|
|
| |
New API function parse_stmtseq() parses a sequence of statements, up to
closing brace or EOF.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The attached text files contain patches to correct build problems on the
Stratus VOS (recently renamed "OpenVOS") operating system. I have tested
these changes on OpenVOS Release 17.0, which is the most-current
customer release. None of these changes should affect any other OS.
Makefile.SH: This patch removes the "miniperl" dependency of the "all"
target. On an operating system that does not require an executable
suffix, the miniperl$(EXE_EXT) dependency evaluates to "miniperl", too.
But on an operating system like VOS that does have an executable suffix,
miniperl$(EXE_EXT) evaluates to (in our case) "miniperl.pm" and the
"miniperl" target is unresolved.
ext/Socket/Socket.xs: Sadly, OpenVOS does not yet support IPv6. I edited
the code to allow for this case, while retaining IPv6 support for
operating systems that do support it.
|
|
|
|
|
|
| |
eval_sv(sv,G_KEEPERR) is supposed to warn on errors, rather than
set $@; but in the particular case of compile-time errors it still
set $@ instead. See [perl ##3719].
|
|
|
|
|
|
| |
[perl #3719] eval_sv("some syntax err") cleared $@ and didn't return
a failure indication. This also affected eval_pv() which calls eval_sv().
Fix this and add lots of tests.
|
|
|
|
|
|
|
| |
FD 1 is stdout, and the "<&1" redirect in the test sets the child to
read from its parent's stdout, on Linux (and presumably OS X) doesn't
let you read from stdout, but FreeBSD does, without the -e perl will
try to read its program from stdin, so provide one.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the POD docs it says:
"The filehandles may also be integers, in which case they are under-
stood as file descriptors."
However IPC::Open3 doesn't handle the file descriptors correctly.
As an example, if we try to dup STDIN in a child process by using it's
file descriptor, we get:
> perl -MIPC::Open3 -wle 'open3("<&1", my $out, undef, $^X)'
close() on unopened filehandle 1 at /usr/share/perl/5.10/IPC/Open3.pm line 70.
open3: close(1) failed: Bad file descriptor at -e line 1
This is because in IPC::Open3 the subroutines xpipe*, xclose* and
xopen don't cater for descriptors being passed in instead of
filehandles.
|
|
|
|
|
| |
XS-APItest-KeywordRPN has turned out to be less useful as an independent
module than expected, and less strictly about RPN than it originally was.
|
|
|
|
|
|
| |
Fix all the tests that were using quotes, and (by implication) working
because barewords are treated as strings, and one-liners aren't run under
strict.
|
|
|
|
| |
Not yet comprehensive - only tests the integer conversion code paths.
|
|
|
|
|
|
| |
Under Win32 the main perl source directory isn't in the C include
path, so as we do with the re source files, copy dquote_static.c to
the ext/re directory.
|
|
|
|
| |
by ext/XS-APItest/t/peep.t, so remove it from the test code.
|
| |
|
|
|
|
|
|
| |
There is a line in this .t which uses the old regex stringification.
The contents are not currently tested for, but for cleanliness, change
to the new.
|
|
|
|
| |
I overlooked these earlier in adding the caret notation.
|
| |
|
|
|
|
|
|
|
| |
This saves manually maintaining the export list, which is makework given that
the module is only used by its own tests. As the export now folds in symbols
from subpackages, this will allow refactoring/reordering/rationalisation of
the layout of testing routines in it.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds (?^...) to signify to use the default regex modifiers for the
cluster or embedded pattern-match modifier change. The major purpose of
this is to simplify regex stringification, so that "^" is output in
place of "-xism". As a result, the stringification will not change in
the future when new regex modifiers are added, so tests, etc. that rely
on a particular stringification will have to change now, but never
again.
Code that needs to work properly with both old- and new-style regexes
can use something like the following:
# Accept both old and new-style stringification
my $modifiers = (qr/foobar/ =~ /\Q(?^/) ? '^' : '-xism';
This construct is Ben Morrow's idea.
|
|
|
|
|
|
|
| |
If perl was configured without XS/APItest as an extension, make test and make
test_harness won't even run the tests anyway. Also, XS-APItest only lives in the
core, so it's only ever going to be tested there, making conditional tests
depending on $] unnecessary.
|
| |
|
|
|
|
|
| |
Not strictly necessary for these modules since they don't get installed
anyway, but their XS files have been changed since 5.13.4
|
|
|
|
| |
The XS file has been changed since 5.13.4
|
|
|
|
|
|
|
|
|
| |
Hash::Util used "reftype($v) eq 'HASH'" without checking for
undefinendness. This patch rectifies that. Also bumps Hash::Util
version.
Original patch and detective work by Chas. Owens. Modified by Steffen
Mueller.
|
| |
|
|
|
|
|
|
|
|
|
| |
This restores the perl 5.10/12 behaviour, making open treat \$foo as a
scalar reference if it is a glob copy (SvFAKE).
It also fixes an existing assertion failure that the test now trig-
gers. PerlIOScalar_pushed was not downgrading the sv before set-
ting SvCUR.
|
| |
|
| |
|
|
|
|
|
| |
It seems that the runtime hinthash isn't returned correctly when running
under the debugger, so mark those tests TODO for now.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
yyparse() becomes reentrant. The yacc stack and related resources
are allocated in yyparse(), rather than in lex_start(), and they are
localised to yyparse(), preserving their values from any outer parser.
yyparse() now takes a parameter which determines which production it
will parse at the top level. New API function parse_fullstmt() uses this
facility to parse just a single statement. The top-level single-statement
production that is used for this then messes with the parser's head so
that the parsing stops without seeing EOF, and any lookahead token seen
after the statement is pushed back to the lexer.
|
| |
|
|
|
|
|
|
| |
On a few machines (Win32/gcc using mingw64 headers) Errno.pm
will find a value that is not numeric for a proposed error
key. This change adds a sanity check to discard such keys.
|
|
|
|
|
|
|
|
|
| |
Commit 95ddc6755c1ff41d06e5afc2212c85f918ebcd28 attempted to add
-Wno-deprecated-declarations' to the ccflags for APItest.xs;
however it ended up deleting existing flags rather than appending.
Under -DDEBUG_LEAKING_SCALARS this caused the PerlInterpreter structure
to have different field alignments in core and APItest.xs. Ouch!
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, in code such as
use constant DEBUG=>0;
sub GAK {
warn if DEBUG;
print "stuff\n";
}
the ops for C<warn if DEBUG;> would be folded to a null op (ex-const), but
the nextstate op would remain, resulting in a runtime op dispatch of nextstate,
nextstate, ...
The execution of a sequence of nexstate ops is indistinguishable from just the
last nextstate op, so teach the peephole optimiser to eliminate the first of a
pair of nextstate ops. (Except where the first carries a label, as labels
mustn't be eliminated by the optimiser, and label usage isn't conclusively
known at compile time.)
|
|
|
|
|
| |
While one certainly can argue the merits of using a class name like "\0", it is legal
so lets avoid it confusing our primary debugging tool.
|
|
|
|
| |
New macro lex_stuff_pvs(), wrapping lex_stuff_pvn() for literal strings.
|