| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
Turns out comparing a signed byte to values above 0x7f doesn't make
sense. *All* signed byte integers are less than or equal to 0x9f,
so the other two branches of the if could never be taken.
This code probably needs more review and testing, but we might as
well make it do what it intends to do before reviewing those
intentions and factoring out some of the copy-and-paste verbosity.
|
|
|
|
|
|
|
|
|
|
| |
Clearly this code is not well-tested. Especially the parts that
the compiler couldn't see because it was hidden by unclosed
comment blocks. Ouch.
I'm not going to name names or look too deep in the blame log, but
suffice it to say that this is why patches that add hundreds of
lines of new code without tests should not be accepted.
|
|
|
|
|
|
|
|
|
| |
A couple of empty parameter lists and a couple of unsigned -1
error statuses. Brought to you by
-Duser_c_flags=/WARN=(ENABLE=LEVEL4,INFORMATIONAL=ALL)
which is only the third highest warning level.
|
|
|
|
|
| |
A couple are only needed for the homegrown utime() replacement on
older systems. rmsdef.h is apparently not needed at all.
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When it sees the unixy ? as a single-character wildcard rather than
the native %, it intended to leave it alone when the CRTL's extended
character set processing was enabled, but it was actually checking
for a different and unrelated feature setting (case preservation),
meaning it would substitute % for ? in some cases where it meant
not to. This likely did no harm in most cases as LIB$FIND_FILE
will honor either, but if the pattern were to be re-used in a context
that required POSIX semantics, the ? really ought to be preserved
and now it is.
Broken in dca5a9130eb9e045fd52f88cf3dedee7093e19f7.
|
|
|
|
| |
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.
|
|
|
|
|
| |
sys_trnlnm was a copy-and-paste clone of simple_trnlnm and
sys_crelnm was never used, so nuke them.
|
| |
|
|
|
|
|
|
| |
Set $ENV{PERL_CORE_MINITEST} based on defined &DynaLoader::boot_DynaLoader,
instead of relying on a -minitest parameter. &DynaLoader::boot_DynaLoader is
undefined in miniperl, defined in perl, for both -Dusedl and -Uusedl
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
re-run pod/buildtoc to propagate the new file to the relevant platform
makefiles.
|
|
|
|
|
| |
pod/buildtoc knows which one is current, so we might as well
substitute it in one place and be done with it.
|
|
|
|
|
|
|
|
|
|
|
| |
Eliminate the #define pp_foo Perl_pp_foo(pTHX) macros, and update the 13
locations that relied on them.
regen/opcode.pl now generates prototypes for the PP functions directly, into
pp_proto.h. It no longer writes pp.sym, and regen/embed.pl no longer reads
this, removing the only ordering dependency in the regen scripts. opcode.pl
is now responsible for prototypes for pp_* functions. (embed.pl remains
responsible for ck_* functions, reading from regen/opcodes)
|
|
|
|
|
|
|
|
|
| |
# New Ticket Created by (Peter J. Acklam)
# Please include the string: [perl #81918]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=81918 >
Signed-off-by: Abigail <abigail@abigail.be>
|
| |
|