| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Ubuntu has juggled lib paths so we get to play games to catch up with
them.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
So skip the test for now. Something like the Win32 mechanism
spawn_with_handles() may be workable but needs investigation.
|
|
|
|
|
| |
This fixes "use re '/aia'", and completes the sequence of commits
for this ticket.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this commit:
commit f07ec6dd59215a56bc1159449a9631be7a02a94d
Author: Zefram <zefram@fysh.org>
Date: Wed Oct 13 19:05:19 2010 +0100
remove filter inheritance option from lex_start
The only uses of lex_start that had the new_filter parameter false,
to make the new lexer context share source filters with the previous
lexer context, were uses with rsfp null, which therefore never invoked
source filters. Inheriting source filters from a logically unrelated
file seems like a silly idea anyway.
string evals could inherit the same source filter space as the cur-
rently compiling code. Despite what the quoted commit message says,
sharing source filters allows filters to be inherited in both direc-
tions: A source filter created when the eval is being compiled also
applies to the file with which it is sharing its space.
There are at least 20 CPAN distributions relying on this behaviour
(or, rather, what could be considered a Test::More bug). So this com-
mit restores the source-filter-sharing capability. It does not change
the current API or make public the API for sharing source filters, as
this is supposed to be a temporary stop-gap measure for 5.14.
|
|
|
|
|
|
|
|
|
| |
7319fd7 introduced lexical file handles but also switched to 3 arg
open; Pod::Html was relying on 2 arg open's behaviour to make '-' mean
STDOUT.
There was also a single quoted argument that obviously needed to be
interpolated.
|
|
|
|
|
|
|
| |
Retain the call to XSLoader::load() at BEGIN time, as we want the constants
loaded before the compiler meets OPf_KIDS below, as the combination of having
the constant stay a Proxy Constant Subroutine and its value being inlined
saves a little over .5K
|
|
|
|
|
|
|
| |
Typeglob aliasing saves just about 1.25K, because fewer internal structures are
created. In the general case the behaviour of the two differs, but as the
only package variables of these names are subroutines, and we are within our
own namespace, there is no difference here.
|
| |
|
|
|
|
|
| |
For threaded platforms, this reduces the object code size, and should slightly
reduce CPU usage.
|
|
|
|
|
| |
For threaded platforms, this reduces the object code size, and should slightly
reduce CPU usage.
|
| |
|
|
|
|
|
| |
For threaded platforms, this reduces the object code size, and should slightly
reduce CPU usage.
|
|
|
|
|
| |
For threaded platforms, this reduces the object code size, and should slightly
reduce CPU usage.
|
|
|
|
| |
For threaded platforms, this almost halves the object code size.
|
|
|
|
|
| |
For threaded platforms, this reduces the object code size, and should slightly
reduce CPU usage.
|
|
|
|
|
| |
For threaded platforms, this reduces the object code size, and should slightly
reduce CPU usage.
|
|
|
|
|
| |
For threaded platforms, this reduces the object code size, and should slightly
reduce CPU usage.
|
|
|
|
|
| |
For threaded platforms, this reduces the object code size, and should slight
reduce CPU usage.
|
|
|
|
|
| |
For threaded platforms, this reduces the object code size, and should slightly
reduce CPU usage.
|
|
|
|
|
|
| |
For threaded builds on platforms using dlopen() for dynamic loading, this
should reduce object size, and slightly reduce CPU usage when loading
extensions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Perl traditionally stores WinSock error codes (values above 10000) in
errno, with corresponding support for $! to stringify them properly.
In Visual Studio 2010 (and presumably newer Windows SDKs) Microsoft
has started to define additional errno constants in errno.h (values
between 100 and 200) with conflicting names (e.g. EWOULDBLOCK).
There are 2 ways to deal with this situation:
1) Redefine the errno.h constants back to the winsock values for
the Errno and POSIX modules.
2) Translate the winsock error codes to the new errno constants
in the socket implementation in win32/win32sck.c.
Solution 1) has the advantage that any existing Perl code that has
numeric error codes hard-coded in it will continue to work.
Solution 2) has the advantage that XS code using external libaries can
set errno to the new constants, and they will be handled consistently
in the Perl core. It will however need additional support for other
compilers and runtime libraries that don't support these new error
codes.
This commit implements solution 1).
Blame attribution: the commit message is from Jan Dubois,
the actual patch was created by Steve Hay.
Signed-off-by: Jan Dubois <jand@activestate.com>
|
|
|
|
| |
DynaLoader after 0a0b6c96e6.
|
| |
|
| |
|
|
|
|
|
|
| |
This will result in less work than using newSVrv(), as the character string
passed to that is used to walk the symbol table to find the stash. We already
have a fast way to get to the stash - via the CV's GV. So use that directly.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
A change post-5.12 (probably 42607a60df6df19b) caused the documented idiom not
to work if Errno was loaded after the C<exists> code had been compiled, as
the compiler implicitly creates typeglobs in the Errno symbol table when it
builds the optree for the C<exists code>.
|
|
|
|
|
|
|
| |
The test file is for functions in the re:: namespace implemented in
universal.c, but needs to load re, which isn't built for minitest. As none of
these functions are used as part of the core's build process, seems best to
move it with all the other tests related to the re extension.
|
| |
|
|
|
|
| |
The API calls are equivalent, but the object code is slightly smaller.
|
|
|
|
|
|
|
| |
Typeglob aliasing saves just over .5K, because fewer internal structures are
created. In the general case the behaviour of the two differs, but as the
only package variables of these names are subroutines, and we are within our
own namespace, there is no difference here.
|
|
|
|
|
|
|
|
|
|
| |
Before 0a0b6c96e6042658aa123b3990724be593a2bb63, dl_expandspec was
an autoloaded function that would never be called if an XS version
was already loaded. Without autoloading in DynaLoader anymore,
the pure Perl version gets loaded first, which causes trouble if
the XS version is what's expected. It looks as though VMS is the
only platform that has an XS version, so just avoid declaring the
Perl version there.
|
|
|
|
| |
It's not actually on CPAN yet, but it will be in the next couple of days.
|
| |
|
|
|
|
| |
This allows us to run the tests outside of the core.
|
|
|
|
|
| |
On perls that don't have deprecate::__loaded_from_core yet, dprofpp isn't
deprecated yet, so all is good.
|
|
|
|
|
|
|
| |
Recommend Devel::NYTProf over Devel::DProf.
[Devel::DProf isn't actually on CPAN quite yet, but will be well before 5.14.0
"escapes"]
|
|
|
|
|
|
| |
re::regmust would segfault if called on a Regexp belonging to a
pluggable regexp engine, only allow on the core and debugging engine.
Also correctly moralize the return values to avoid leaking.
|
|
|
|
|
| |
Now that AUTOLOAD has been removed from DynaLoader, some TODO
tests are passing, so unmark them as TODO.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DynaLoader currently uses Autoloader. This was an optimization going
back to perl 5.000 in 1994. However, this implementation detail leaks in
a rather troublesome way.
DynaLoader is used by subclassing it. Because of this, when you call
some undefined method on an instance of any class that derives from
DynaLoader (directly or indirectly) you do not get this error message:
Can't locate object method "undefined_method" via package "Foo"
But this rather cryptic error:
Can't locate auto/Foo/undefined_m.al in @INC (@INC contains:
/etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0
/usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10
/usr/local/lib/site_perl .)
This is totally incomprehensible for anyone who isn't familiar with
what's going on. It was rather a premature optimization anyway if you
ask me, on my machine it's just 66 non-empty lines of code that are
being autoloaded.
Therefore, I think AutoLoader should be removed from DynaLoader.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This way the script can easily be part of the CPAN distribution, where
ExtUtils::MakeMaker will do its shebang munging.
In the core, we still have utils/dprofpp.PL, which also does shebang munging and
takes care of creating `dprofpp.com' instead of just `dprofpp' on VMS, which
ExtUtils::MakeMaker doesn't seem to be up to yet.
To make this work, some things had to be moved from script-generation-time to
run-time:
* location of the stty binary
This is probably better for binary perl distributions anyway
* Devel::DProf version detection
This is needed for `dprofpp -V'. The version number used to be copied into
the script, but is now determined by actually loading Devel::DProf.
In order for this to work it's necessary to be able to load DProf without
causing profiling to start. For that, starting of the profiler has been moved
to `import', causing
require Devel::DProf;
to not trigger it anymore, while
use Devel::DProf;
(and therefore perl -d:DProf) still does.
|
|
|
|
|
|
| |
Nothing outside of Socket.pm uses them, and removing them from the symbol table
frees up about 12K. (And likely reduces the per-thread overhead under ithreads,
as their pads won't need cloning.)
|
|
|
|
|
| |
[Extracted by the committer from
<nntp://nntp.perl.org/19662.1297825146@chthon>]
|