| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
This will make the CPAN dist easier. For the perl core, we still need
substitutions to get the right she-bang as we don't go through EU::MM to fix it
for us. For that, we add utils/pod2html.PL.
|
| |
|
|
|
|
|
|
|
|
| |
Originally, coresubs.t was going to be for generic tests and
coreinline.t was going to be for inlining. But the latter ended
up testing other things than inlining, the former testing just
&ersand() calls. So this commits renames coresubs.t to coreamp.t
and coreinline.t to coresubs.t.
|
|
|
|
|
|
|
|
| |
global.sym was a file listing the exported symbols, generated by regen/embed.pl
from embed.fnc and regen/opcodes, which was only used by makedef.pl
Move the code that generates global.sym from regen/embed.pl to makedef.pl,
and thereby eliminate the need to ship a 907 line generated file.
|
|
|
|
|
| |
Move setup_embed() and the helper functions add_level() and current_group()
to it from regen/embed.pl
|
| |
|
| |
|
|
|
|
|
|
|
| |
This adds to makedef.pl a new platform, "test".
Hopefully this change will catch most problems that previously had resulted
in build failures on Win32.
|
|
|
|
|
|
| |
This feature was deprecated in 5.14 and scheduled to remove in 5.16. A
CPAN module was written to provide better functionality without the
significant drawbacks of this implementation.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit makes nullary subs in the CORE package callable with
ampersand syntax and through references--except for wantarray, which
is more complicated and will have its own commit.
It does this by creating an op tree like this:
$ ./perl -Ilib -MO=Concise,CORE::times -e 'BEGIN{\&CORE::times}'
CORE::times:
3 <1> leavesub[1 ref] K/REFC,1 ->(end)
- <@> lineseq K ->3
1 <$> coreargs(IV 310) v ->2
2 <0> tms ->3
-e syntax OK
The coreargs op checks to make sure there are no arguments, for now.
The 310 is the op number for times (OP_TMS).
There is no nextstate op, because we want to inherit hints from
the caller.
The __FILE__, __LINE__ and __PACKAGE__ directives are implemented
like this:
$ ./perl -Ilib -MO=Concise,CORE::__FILE__ -e 'BEGIN{\&CORE::__FILE__}'
CORE::__FILE__:
7 <1> leavesub[1 ref] K/REFC,1 ->(end)
- <@> lineseq K ->7
1 <$> coreargs(PV "__FILE__") v ->2
6 <2> lslice K/2 ->7
- <1> ex-list lK ->4
2 <0> pushmark s ->3
3 <$> const(IV 1) s ->4
- <1> ex-list lK ->6
4 <0> pushmark s ->5
5 <0> caller[t1] l ->6
-e syntax OK
The lslice op and its children are equivalent to (caller)[1].
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit allows this to work:
BEGIN { *entangle = \&CORE::tie };
entangle $foo, $package;
And the entangle call gets inlined as a tie op, the resulting op tree
being indistinguishable.
These subs are not yet callable via &foo syntax or through a refer-
ence. That will come later, except for some functions, like sort(),
which will probably never support it.
Almost all overridable functions are supported. These few are not:
- infix operators
- not and getprotobynumber (can’t get the precedence right yet;
prototype problem)
- dump
Subsequent commits (hopefully!) will deal with those.
How this works:
gv_fetchpvn_flags is extended with hooks to create subs inside the
CORE package. Those subs are XSUBs (whose C function dies with an
error, for now at least) with a call checker that blows away the
entersub op and replaces it with whatever op the sub represents.
This is slightly inefficient right now, as gv_fetchpvn_flags calls
keyword(), only to have core_prototype call it again. That will
be fixed in a future refactoring.
|
|
|
|
|
|
| |
perlcompile.pod is now maintained with B::C, and much more complete there.
[Subsequent build and test fixes by the committer]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
2011-08-07 Andreas J. Koenig <andk@cpan.org>
* release 1.9800
* RT #69463: fix memory leak in CacheMgr (Serguei Trouchelle)
2011-06-27 Andreas J. Koenig <andk@cpan.org>
* release 1.97_51
* address #68835: Changed read_meta to ignore dynamic_config (David Golden)
* bugfix: refuse to store_persistent if the own build_dir is not
available (Andreas Koenig)
* cosmetics: remove "Going to" from the beginning of user-visible
strings (Jesse Vincent)
* flock adjustments for Win32 from activestate (Christian Walde)
|
|
|
|
|
|
|
| |
Dot is the directory delimiter on VMS, so it's awkward at best to use
it in directory names. 4eb81ef279, "Update Module-Metadata to CPAN
version 1.000005" introduced two new directories with dots in the
name, which confused the manifest checker and broke the build on VMS.
|
|
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
1.0.5 2011-08-02 09:45:00
- Localize $package::VERSION during version discovery (MIYAGAWA)
- Fix references to Module::Build::ModuleInfo [RT #66133] (DAGOLDEN)
- Added 'new_from_handle()' method [RT #68875] (DAGOLDEN)
- Improved documentation (SYNOPSIS, broke out class/object method, and
other minor edits) (DAGOLDEN)
|
|
|
|
|
| |
nearly all this work merged from brian d foy's briandfoy/perlexperiment branch,
tidied up and squished by rjbs
|
|
|
|
|
|
|
|
|
| |
The output of makedef.pl varies too much based on local configuration to allow
us to generate any useful pre-canned expectations of correctness. Hence the only
real option left is to generate "Golden" results for the local platform prior to
any modification, and then compare post modification output with them, to see
that nothing (unexpected) changed. exercise_makedef.pl captures all output for
(currently) 576 permutations of command line parameters, to enable this testing.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
2011-07-20 Russ Allbery <rra@stanford.edu>
* ANSIColor.pm: Version 3.01 released.
* Makefile.PL: Change the DISTNAME to Term-ANSIColor.
* ANSIColor.pm (colored): Only interpret an initial array
reference as a list of colors, not any initial reference, allowing
the colored function to work properly on objects with
stringification defined. Thanks, Revilo Reegiles.
* t/stringify.t: New test for proper behavior with non-array
references in colored.
2011-03-13 Russ Allbery <rra@stanford.edu>
* ANSIColor.pm: Fix two syntax errors in the SYNOPSIS. Thanks,
Jan Hartung.
2010-10-08 Russ Allbery <rra@stanford.edu>
* ANSIColor.pm: Warn in the documentation that attributes are not
supported in and will not work with Perl formats.
2010-04-11 Russ Allbery <rra@stanford.edu>
* ANSIColor.pm: Update the URL for ECMA-048 in the documentation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this commit, locking an lvalue subroutine no longer tries to lock
the subroutine itself (triggering an assertion in pp_lock). Instead,
the &foo syntax is treated as a scalar lvalue expression, as with tie,
so the return value gets locked. Non-lvalue sub calls still produce a
‘Can't modify’ error, as they are not modifiable.
This also stops lock from trying to return a sub as though it were a
scalar, thereby breaking this JAPH I’ve just written:-)
sub _:lvalue{$x}for(lock&_){$_
="Just another Perl hacker,\n"}
print+prototype"_"
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On Windows Vista, 7 and 2008, the win32 API call
GetEnvironmentVariableA() does not return environment values
with string length of greater than 32766, even though
such variables are supported in the environment.
This consequently caused @INC not to be populated for
such values of PERL5LIB on those OSes, as reported in
RT #87322.
This commit reworks the code so that GetEnvironmentStrings()
is called if GetEnvironmentVariableA() indicates the requested
value is set in the environmtn. The old fallback of consulting
the registry for variables beginning with "PERL" is retained, but
as a last-ditch fallback rather than the only recourse.
A new test file, t/win32/runenv.t has been added to validate
that the new behavior is working properly, as well as that
general environment variable handling is in accordance with
expectations, since t/run/runenv.t does not run on Win* platforms.
The new test file is essentially a non-forking clone of
t/run/runenv.t, with modifications to test cases to run properly
on Win* platforms, and with a new test case to test the new behavior.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
0.013 2011-07-17 23:14:22 America/New_York
[NEW FEATURES]
- $ENV{http_proxy} support added [Claes Jakobsson]
[OTHER]
- Internal/private errors converted from "croak" to "die" as internal
errors are caught by "eval"
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Plus the test case from t/run/fresh_perl.t, but in UTF-8,
in t/op/fresh_perl_utf8.t
That file currently has only that test, but I intend to
port others from fresh_perl.t to test clean stashes/GVs.
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Much of ExtUtils::ParseXS was rewritten and cleaned up.
It has been made somewhat more extensible and now finally
uses strictures.
The logic for parsing, merging, and dumping XS typemaps was extracted
from ExtUtils::ParseXS into a module of its own, ExtUtils::Typemaps.
ExtUtils::Typemaps offers an interface to typemap handling outside of
the scope of the XS compiler itself.
As a first use case of the improved API an extensibility, typemaps can now
be included inline into XS code with a HEREDOC-like syntax:
TYPEMAP: <<END_TYPEMAP
MyType T_IV
END_TYPEMAP
|
| | |
|
| |
| |
| |
| |
| | |
This is testing for string equivalency, not code equivalency. But it's
better than nothing.
|
| |
| |
| |
| |
| |
| |
| | |
This implements the 'first come first serve' style merging that
ExtUtils::ParseXS currently does: It prefers the typemap entries that
exist already over new ones. This is because the order of processed
typemaps is such that the default typemaps come last.
|
| |
| |
| |
| |
| | |
And by proxy, this had to be implemented in the three add_* methods.
Also adds more tests for merging with conflicts.
|
| |
| |
| |
| |
| | |
This is to prevent collisions on case-insensitive file systems with
lib/typemap.
|
| |
| |
| |
| |
| |
| | |
This was available from CPAN a while ago. The plan is to use it to make
the typemap parsing and manipulation saner and rip the parser from
ExtUtils::ParseXS' dead claws.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Rename sub print_preprocessor_statements() to
analyze_preprocessor_statements(). Modify interface to map_type() and
re-work tests as needed. Wrote documentation in Utilities.pm for
process_single_typemap(), map_type(), standard_XS_defs(),
assign_func_args(), analyze_preprocessor_statements(). Write tests
in t/109-standard_XS_defs.t, t/110-assign_func_args.t.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Namely: check_conditional_preprocessor_statements(), Warn(),
blurt() and death() to Utilities.pm.
Add file to test blurt, death and Warn. (death() is not
really testable yet due to hard-coded 'exit'.) ovid++, rjbs++,
xdg+++ for assistance in developing tests."
|
| |
| |
| |
| |
| |
| |
| |
| | |
... to be more self-documenting.
Also: Explicitly pass $self to Warn(), blurt() and death().
Add skeletons of files to test functions moved (or planned to be
moved) to Utilities.pm.
|
| |
| |
| |
| |
| |
| | |
Provide messages for some tests in 001-basic.t. Add file
t/004-nolinenumbers.t to test case where line numbers are not
requested.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add files to test EU::PXS::Utilities::map_type(), valid_proto_string(),
process_typemaps(). Extract code for processing a single typemap file
into its own sub, thereby permitting more focused testing. Eliminate some
unreachable branches and conditions in process_typemaps().
On the basis of coverage analysis, eliminate unreachable code.
Reformat some code for readability (shorter line length).
|
| | |
|
| | |
|
| |
| |
| |
| | |
Create test file for it.
|
| |
| |
| |
| |
| | |
and place it in ParseXS::Utilities. Write a file to test it.
Update MANIFEST.
|