| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
It was saying you had to use the Perl_foo(aTHX_ ...) form, which isn't
true.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
HeaderParser was designed to replace the old grouping code in embed.pl and
regen/embed_lib.pl, which is used to generate embed.h and proto.h and
embedvar.h
It can handle "elif" in embed.fnc, and produces more consistently structured
and formatted and readable output than the old code. It also has much better
logic to dedupe expressions. Adding or changing a constraint in embed.fnc
should no longer have any "action at a distance" effects on the output for
other functions which were not changed or obviously affected by the change.
The old code assumed that sorting the constraints applying to a given function
definition was acceptable, with the result that "elif" was impossible to
support properly, and creating the problem that adding a new constraint which
sorted into a different position could change a large amount of the
output, making it hard to verify that the change was correct.
The new logic should, once the initial normalization is applied, ensure that any
further changes are minimal.
This patch also includes a new tool regen/normalize_embed.pl which will be run
by make regen, which consistently formats embed.fnc itself, which should make
maintaining the file easier, especially during code splits and reorgs.
Function definitions can be lifted out, moved to the end, with new
constraints, and the `make regen` will put it all back into the correct place
and order.
A number of tools and tests which use embed_lib.pl to load embed.fnc data have
necessarily been changed to use the new HeaderParser based logic.
|
| |
|
|
|
|
|
| |
This is just to minimize difference listings between versions of this
file, as these don't actually get displayed in the pod.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This changes the dictionary sort to be closer to a standard dictionary
sort. Underscores and digits collate to after all other characters, and
sequences of digits collate numerically even if one sequence is shorter
than the other.
Unless a tie breaker is needed, non-trailing underscores and
digits are ignored.
The result is I8 comes before I16; IV before I8; __ASSERT_ before
ASSUME, etc.
The results look more intuitive to me, but could be tweaked if
advisable.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Those classes being: plain, experimental, and deprecated.
Suppose I'm an XS writer and I've found an undocumented function or
macro that I'd like to use. Should I use it?
Certainly not if it's deprecated.
Pretty iffy if it's experimental, but maybe worth a try to ask p5p about
it.
Less iffy if just plain, but the pod says to ask p5p to be sure.
These distinctions do matter some, and so this commit makes them. Prior
to it, perlapi experimental and deprecated elements weren't mentioned
anywhere, as if they had dropped off the face of the earth.
|
|
|
|
|
|
|
|
|
| |
Some minor API elements, such as flag values, in perlapi are mentioned
only in passing in the pod of some encompassing element.
This commit makes sure those minor elements have a X<> pod element
generated for them in the appropriate place. This makes sure that other
code that, say, indexes the API knows whereabouts to link, etc. to.
|
| |
|
|
|
|
|
| |
The terms 'guts' and 'intern' are conflated in this file prior to this
commit. perlguts and perlintern are separate entties.
|
|
|
|
|
| |
This indicates the symbol is accessed via #ifdef and is not a function
or a macro with a returned value
|
|
|
|
|
|
| |
This should be being used only in core, as its only use is for autodoc.
Change the flag name to be more mnemonic, freeing up its current name
for another use.
|
|
|
|
|
|
| |
A bunch of API (and perlintern) elements are actually documented in
perlguts. Add links to many of them. This entails a new section in
perlapi for Perl formats
|
|
|
|
|
| |
These include more than 'configuration values', so drop that from the
title
|
|
|
|
|
|
|
|
|
|
| |
The program attempts to make a table of some of the output for
compactness. But if there is room for only a single column, it was
using the number of rows that it calculated were necessary should two
columns have worked; hence the output was only displaying the first half
of the rows in perlintern.pod. What is needed is to do the loop a
partial final iteration, just enough to calculate the number of rows for
that final column.
|
|
|
|
| |
It was failing to account for the 1 column indent for verbatim lines
|
|
|
|
| |
Indent for clarification
|
| |
|
|
|
|
|
|
| |
There's really no need to do this esthetically, and it gets us close to
fitting an extra column in a standard terminal width to shorten the table.
Future commits will gain that column.
|
|
|
|
| |
So it can be easily changed
|
|
|
|
|
| |
This section of perlapi currently includes thread-related functions, but
that wasn't clear from the section heading.
|
|
|
|
|
|
| |
This section is about things that are used in I/O formats like
sprintf(%foo). This would be confusable with Perl formats used in
reports.
|
|
|
|
|
| |
In practice, like in perlguts, GVs and Stashes are lumped together, and
some API functions deal with both. So rename the section they go in.
|
|
|
|
|
| |
Previously it was just named "COP Hint Hashes", but it includes more
than that.
|
|
|
|
|
| |
One was for construction; the other for manipulation. In practice the
boundary is blurry, so just make them one plain optree section
|
| |
|
|
|
|
| |
A name earlier had changed, so was now out of order
|
|
|
|
|
|
| |
This defines a variable if not defined, and dates from earlier logic,
and wasn't removed when that logic changed. This line hid bugs that the
next line is supposed to catch.
|
| |
|
|
|
|
|
|
| |
Tainting is so specialized that things dealing with it are better
gathered together in one place. This commit moves the existing docs for
such API into the new section
|
|
|
|
|
|
|
|
| |
When different functions are grouped together in a single entry, some or
all of them may be deprecated or experimental. Prior to this commit
each such was listed individually as a separate paragraph. It is
shorter to say "All forms" if all are of the same ilk, or list just the
individual ones in a single sentence, otherwise.
|
|
|
|
|
| |
The only flags allowed are those affecting the display in perlapi and
perlintern. The 'x' flag previously omitted, fits this.
|
|
|
|
| |
The flags column is optional, and so no space is needed to delimit it.
|
|
|
|
|
|
|
|
|
|
| |
When several different functions are grouped together into one entry,
only the signature of the first one is output provided that all have the
same signature (except for the function name).
Until this commit, whether or not there was a hidden thread context
parameter was not considered in this calculation. This could lead to
confusion.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was meant to be looked at, but wasn't. It's skipping cpan, dist,
and ext, which it really should be, because we don't have much control
over those.
The comments indicated it expected to get generated files from
lib/ instead, but those wouldn't be in MANIFEST, so weren't getting
looked at. And it's not a good idea to look for them anyway, as one
could get relicts. Instead create an exception list of pods that could
have API elements that are documented.
The only current file on that list is what becomes lib/perlxs.pod
|
|
|
|
|
| |
It's needed in case a publicly visible PERL_STATIC_FORCE_INLINE
function is added.
|
| |
|
|
|
|
| |
perldoc takes up 4 column indent, not 7.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After decades of stability, the 'less' pager project decided to claim an
extra column for its own use when called with certain common options.
This commit changes some of the auto-generating tools to wrap one column
earlier to compensate, and changes podcheck to also whine on wide
verbatim text one column less. But it changes the podcheck data base
to grandfather-in all the many existing places that exceed that amount.
That means only changes made to pods after this commit will be held to
the stricter value.
Of course, what this means is those pods will wrap or truncate in these
places on an 80 column window, making them harder to read, when used
with 'less' and when it is called with the options that reserve those
two columns. Patches welcome.
I haven't seen the wrapping problem with perldoc, and haven't
investigated much.
|
|
|
|
|
| |
Instead of having a grab bag section of all interpreter variables, move
their documentation to the section that they actually fit under.
|
| |
|
|
|
|
| |
into Debugging and Display sections
|
| |
|
|
|
|
|
|
|
|
| |
Many of the files in perl are for one thing only, and hence their
embedded documentation will be for that one thing. By creating a hash
here of them, those files don't have to worry about what section that
documentation goes under, and so it can be completely changed without
affecting them.
|
|
|
|
|
|
|
|
| |
This reverts commit 0213d97dcda976f02ce257031d969e7964ecc545, and fixes
it up.
That commit failed to account for that there were extra components
needed in the calculation
|
|
|
|
|
|
|
|
|
|
|
| |
This feature allows documentation destined for perlapi or perlintern to
be split into sections of related functions, no matter where the
documentation source is. Prior to this commit the line had to contain
the exact text of the title of the section. Now it can be a $variable
name that autodoc.pl expands to the title. It still has to be an exact
match for the variable in autodoc, but now, the expanded text can be
changed in autodoc alone, without other files needing to be updated at
the same time.
|
| |
|
| |
|