| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
| |
This ensures that it gets re-run, and lib/Pod/Functions.pm rebuilt, if
perlfunc.pod is changed.
|
| |
|
|
|
|
|
|
|
|
| |
installperl now requires Porting/pod_lib.pl, which uses Digest::MD5,
which means we need something that can do dynamic loading (or has
extensions statically linked in). But it doesn't really matter
because presumably we wouldn't be installing Perl if we hadn't
built it, so use the perl we've built rather than miniperl.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
2.044 2 December 2011
* Moved FAQ.pod under the lib directory so it can get installed
* Added bin/zipdetails
* IO::Compress::Zip
- In one-shot mode enable Zip64 mode if the input file/buffer
>= 0xFFFFFFFF bytes.
* IO::Compress::FAQ
- Updates
|
|
|
|
|
| |
Commit dcff826f70bf3f64 renamed unpushed.h to git_version.h in early 2009.
So code to delete it is no longer needed :-)
|
|
|
|
|
|
| |
roffitall remains a shell script, identical apart from a dynamically
generated list of man pages (and removal of the comment from 2000 that
this should be done).
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pod/buildtoc now only generates pod/perltoc.pod, and only takes a --quiet
option. All the other file (re)generation code is now in Porting/pod_rules.pl.
This splits functionality which generates a new file at build time from
functionality for maintainers, which edits files in place. This permits the
unwinding of some of commit 02cc404a20a8a345, which achieved net
simplification in pod/buildtoc by merging code paths dealing with new files
(only pod/perltoc.pod) and existing files being edited.
pod_rules.pl has a --tap option, instead of buildtoc's non-standard --test
option, and defaults to --build-all if no arguments are passed. As buildtoc
now does one job, it no longer takes a --build-toc option, hence all the
Makefiles which call it need updating.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SOCKETSHR is/was an interface to abstract out TCP/IP calls for the
various vendors' networking implementations, including the freeware
CMU-IP stack. Neither SOCKETSHR nor CMU-IP has seen any maintenance
for over a decade and are likely not even C89-compliant. The CRTL
socket routines have been supported by the different vendors' stacks
for many years so there is no reason to maintain an alternative, and
there probably hasn't been a real working alternative for some years
anyway.
The code is still there in maint-5.14 and earlier branches if
anyone has need of it.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
uudmap.h bitcount.h mg_data.h are all generated by generate_uudmap, and all
need to be deleted as part of the clean targets, so it makes sense to
reference all 3 together using a single makefile macro.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's arduous to maintain all the dependency rules, and since
7eb47696de, which removed the only reference to $(pod), we don't
even *run* any of those rules, i.e., the directory does not even
get populated during the build. Its existence appears to be a
carryover from a time before installperl copied [.pods] in the
build directory to [.lib.pods] in the install directory.
Reducing the size of vms/descrip_mms.template by 44% probably
won't cause too many tears to be shed, either.
|
|
|
|
|
|
|
| |
It gets built and installed in [.utils], so there's no reason to
copy it into [.lib.pods], from whence it gets installed a second
time. Putting it in [.lib.pods] was introduced way back in
97abc6adff, well before installperl was even working on VMS.
|
|
|
|
|
| |
nearly all this work merged from brian d foy's briandfoy/perlexperiment branch,
tidied up and squished by rjbs
|
| |
|
| |
|
|
|
|
|
| |
This just does the general bookkeeping necessary when a new pod
(like the one in the previous commit) is added.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This replaces the latter's long-standing method of running
perl.h through the C preprocessor and parsing the output in
order to see what symbols need exporting in the linker options
file.
vms/gen_shrfls.pl remains part of the process for now since it
knows various things about generating linker options files on
different architectures and other VMS-specific gotchas such as
symbol case sensitivity and long symbol shortening. These
features could be added to makedef.pl but are unlike anything
currently done there.
This should slightly increase the chances that folks can modify
the API without breaking the build, and it should make us a bit
stricter about only exporting the symbols we intend to, but the
result is still far from optimal. It replaces one set of
heuristics and manually-maintained inclusion and exclusion lists
with different heuristics and even longer lists of inclusions and
exclusions.
|
| |
|
| |
|
| |
|
|
|
|
| |
Update a few missing or moved items in the realclean target.
|
|
|
|
|
|
|
|
|
| |
Even if that action says "Don't do anything." MMK silently ignores
this but MMS falls down hard with:
%MMS-F-GWKNOACTS, Actions to update PREPLIBRARY are unknown.
This was broken in ebca06e95b02d1a8cf073328af30c9f4b9af6891.
|
|
|
|
|
|
| |
This is a bug I introduced in 66b82e1fdff51a4c821a3a249fe707cf8014a185.
Surprising it hasn't caused more trouble. When building with MMS, it's
a hard error, whereas MMK silently ignores it.
|
| |
|
| |
|
| |
|
|
|
|
| |
It has been deprecated in 5.14. Now is the time to remove it.
|
|
|
|
| |
6f83ef0e5a45c465f83de3304c5818ba44492250.
|
|
|
|
|
|
|
|
|
|
|
| |
Use it to eliminate the large switch statement in Perl_sv_magic().
As the table needs to be keyed on magic type, which is expressed as C character
constants, the order depends on the compiler's character set. Frustratingly,
EBCDIC variants don't agree on the code points for '~' and ']', which we use
here. Instead of having (at least) 4 tables, get the local runtime to sort the
table for us. Hence the regen script writes out the (unsorted) mg_raw.h, which
generate_uudmap sorts to generate mg_data.h
|
|
|
|
|
|
|
|
|
|
|
| |
Previously perl.h contained a long section of MGVTBL_SET() macros declaring
the core's various magic vtables. Convert the information into data structures
in a new script regen/mg_table.pl, and use this to generate a new file
mg_vtable.h, included by perl.h
This is the first step in reducing the number of places that data relating to
magic vtables is declared (and has to be kept in sync), and will allow more
flexibility in parts of the core's implementation.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
We were only using the base archname (e.g., "VMS_AXP"), which is
ok for a default bulid, but if any additions were made to it,
such as "-thread", there would be a discrepancy between the
actual directory on disk and what perl.c:S_incpush would look for
when loading up @INC. The net effect was that the architecture-
specific directory would not get loaded into @INC.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Quoth Porting/perldelta_template.pod:
"Run C<perl pod/buildtoc --build-all> to update the F<perldelta>
version in the following files:
MANIFEST
Makefile.SH
pod.lst
pod/perl.pod
vms/descrip_mms.template
win32/Makefile
win32/makefile.mk
win32/pod.mak"
|
| |
|
|
|
|
|
|
|
| |
This avoids a build-time race condition where lib/re.pm might be read midway
through the *second* copy of it (when ext/re/Makefile is being run). It also
simplifies many [Mm]akefile* rules, which previously had a special case to
copy it early.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With the build tools now shipped in various subdirectories of cpan/ and dist/
we need to add several paths to @INC when invoking MakeMaker (etc) to build
extensions.
The previous approach of using $ENV{PERL5LIB} was fragile, because:
a: It was hitting the length limit for %ENV variables on VMS
b: It was running the risk of race conditions in a parallel build -
ExtUtils::Makemaker "knows" to add -I../..lib, which puts lib at the *front*
of @INC, but if one parallel process happens to copy a module into lib/
whilst another is searching for it, the second may get a partial read
c: Overwriting $ENV{PERL5LIB} breaks any system where any of the installed
build tools are actually implemented in Perl, if they are relying on
$ENV{PERL5LIB} for setup
This approach
a: Doesn't have %ENV length limits
b: Ensures that lib/ is last, so copy targets are always shadowing copy
sources
c: Only affects miniperl, and doesn't touch $ENV{PERL5LIB}
Approaches that turned out to have fatal flaws:
1: Using $ENV{PERL5OPT} with a module fails because ExtUtils::MakeMaker
searches for the build perl without setting lib, and treats the error
caused by a failed -M as "not a valid perl 5 binary"
2: Refactoring ExtUtils::MakeMaker to *not* use -I for lib, and instead rely
on $ENV{PERL5LIB} [which includes "../../lib"] fails because:
some extensions have subdirectories, and on these EU::MM correctly uses
-I../../../lib, where as $ENV{PERL5LIB} only has space for relative paths,
and only with two levels.
This approach actually takes advantage of ExtUtils::MakeMaker setting an -I
option correct for the depth of directory being built.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The existing perlhack is huge and takes a long time to get to key
information like "how to submit a patch". It also contains a massive
amount of (very useful) detail on the Perl interpreter, debugging,
portability issues, and so on.
Some parts of perlhack are just obsolete. For example, Larry really
isn't deeply involved on p5p any more.
Meanwhile, perlrepository _also_ contains a lot of useful information
on patching Perl, as well as a small git tutorial focused on working
with the Perl repository.
Taken together, the two documents overlap and conflict with each other.
This commit does the following:
== Reconcile conflicts and overlaps, remove obsolete information
I've separated out distinct pieces of information and organized them
into individual pod files. More on that below. I've also removed anything
that was obviously out of date.
== Make it easier for casual contributors to contribute.
The perlhack document now gets to "how to make a patch" very quickly. My
assumption is that most contributors to Perl are doing something small,
like fixing pod, adding a test, etc.
The documentation aimed at people doing more extensive hacking is still
there, but it's been moved so that it comes at the end of the document
or has been moved to another document.
I've made an effort to cross-reference the various documents so that
nothing gets lost.
== Get to the point
The perlhack document had a lot of discussion of general Perl culture.
I've trimmed a lot of this and moved some of it so it comes later.
== Per-file summary
=== perlrepository.pod
This is gone. Some of its content is now in perlhack. This includes
the bits on writing good commit messages, how (and where) to submit a
patch, etc.
The rest is now called perlgit, and is _only_ a git how-to.
=== perlhack.pod
This has been cut down quite a bit.
I changed the opening so it starts with a quick guide to submitting
small patches.
The document covers bug reporting, the p5p list, a quick how-to on
getting the source (including git, gitweb, and rsync), and a lot of
general information on patching perl and running tests.
Much of this material was already present, but I've done a fair amount
of editing for modernization and clarity.
Most of the information specific to C-level hacking has been moved to
other documents.
=== perlsource.pod
This is a guide to the Perl source tree. Most of the content was extracted
from perlhack. I've edited existing content and added details on some
parts of the tree that weren't covered.
=== perlinterp.pod
This is a tour of the Perl interpreter source and a walkthrough of
how it works that originally lived in perlhack. This has received very
little editing.
=== perlhacktut.pod
This is a walkthrough of creating a sample patch to the C core code that
originally lived in perlhack. This has received very little editing.
=== perlhacktips.pod
The perlhack document contained a lot of useful information on low-level
hacking details like debugging, compilation issues, portability, etc.
This has received very little editing.
I did remove some bits on ancient stuff related to Tru64 and IRIX.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Prepend + or - in front of all the keyword names in __DATA__ to mark weak and
strong keywords, needed for keyword.c
As keywords.c needs Devel::Tokenizer::C 0.05, not a core module (and not a
common module either) we can no longer run it as part of regen.pl. So store
the sha256 of the source in the generated files, and use this in to check that
they are not stale (in t/porting/regen.t)
|
|
|
|
|
|
|
|
| |
As it and Perl_yylex() both need FEATURE_IS_ENABLED, feature_is_enabled() is
no longer static, and the two macro definitions move from toke.c to perl.h
Previously, one had to cut and paste the output of perl_keywords.pl into the
middle of toke.c, and it was not clear that it was generated code.
|