Skip to content

Commit 6f8ceed

Browse files
bookrjbs
authored andcommitted
Rename RFC to PPC in the actual Proposed Perl Changes
1 parent deb598c commit 6f8ceed

19 files changed

+37
-37
lines changed
File renamed without changes.
File renamed without changes.

rfcs/rfc0004.md renamed to ppcs/ppc0004.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ as in this case, if the `operation` function throws an exception the teardown do
2727

2828
It would be nice to offer a native core syntax for this common behaviour. A simple `defer { BLOCK }` syntax removes from the user any requirement to think about storing the guard object in a lexical variable, or worry about making sure it really does get released at the right time.
2929

30-
This syntax has already been implemented as a CPAN module, [`Syntax::Keyword::Defer`](https://metacpan.org/pod/Syntax::Keyword::Defer). This RFC formalizes an attempt implement the same in core.
30+
This syntax has already been implemented as a CPAN module, [`Syntax::Keyword::Defer`](https://metacpan.org/pod/Syntax::Keyword::Defer). This PPC formalizes an attempt implement the same in core.
3131

3232
## Rationale
3333

@@ -144,7 +144,7 @@ In this case, the caller will definitely see *an* exception thrown from the code
144144

145145
The new syntax `defer { BLOCK }` is guarded by a lexical feature guard. A static analyser that is not aware of that feature guard would get confused into thinking this is indirect call syntax; though this is no worse than basically any other feature-guarded keyword that controls a block (e.g. `try/catch`).
146146

147-
For easy compatibility on older Perl versions, the CPAN implementation already mentioned above can be used. If this RFC succeeds at adding it as core syntax, a `Feature::Compat::Defer` module can be created for it in the same style as [`Feature::Compat::Try`](https://metacpan.org/pod/Feature::Compat::Try).
147+
For easy compatibility on older Perl versions, the CPAN implementation already mentioned above can be used. If this PPC succeeds at adding it as core syntax, a `Feature::Compat::Defer` module can be created for it in the same style as [`Feature::Compat::Try`](https://metacpan.org/pod/Feature::Compat::Try).
148148

149149
## Security Implications
150150

@@ -180,7 +180,7 @@ I'm not happy with the way I implemented it yet (don't look at how I abused an S
180180

181181
## Future Scope
182182

183-
If this RFC becomes implemented, it naturally follows to enquire whether the same mechanism that powers it could be used to add a `finally` clause to the `try/catch` syntax added in Perl 5.34. This remains an open question: while it doesn't any new ability, is the added expressive power and familiarity some users will have enough to justify there now being two ways to write the same thing?
183+
If this PPC becomes implemented, it naturally follows to enquire whether the same mechanism that powers it could be used to add a `finally` clause to the `try/catch` syntax added in Perl 5.34. This remains an open question: while it doesn't any new ability, is the added expressive power and familiarity some users will have enough to justify there now being two ways to write the same thing?
184184

185185
Additionally, once `defer` exists and if core exceptions ever gain some sort of metadata or object-like representation beyond simple strings, then the double-exception case mentioned above can be addressed.
186186

rfcs/rfc0005.md renamed to ppcs/ppc0005.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44

55
Author: Ricardo Signes <[email protected]>
66
Sponsor: Ricardo Signes <[email protected]>
7-
ID: RFC 0005
7+
ID: 0005
88
Status: Rejected
99

1010
## Abstract
1111

1212
Perl's slice syntax lets the programmer get at a subset of values or key/value
13-
pairs in a hash or array. This RFC proposes a syntax get a slice that contains
13+
pairs in a hash or array. This PPC proposes a syntax get a slice that contains
1414
the complete set of values or key/values in the hash or array.
1515

1616
## Motivation
@@ -36,7 +36,7 @@ Note, too, the sigil variance.
3636
`%hash` in list context evaluates to a list of pairs, while `@array` in list
3737
context evalutes to the values. There's a means to get the values of a hash
3838
with `values`, but no existing built-in for (say) `kv @array`. Rather than
39-
propose adding a `kv`, which would only be useful on arrays, this RFC proposes
39+
propose adding a `kv`, which would only be useful on arrays, this PPC proposes
4040
adding a type of slice that includes all keys and values.
4141

4242
%hash{*}; # equivalent to %hash{ keys %hash }

rfcs/rfc0006.md renamed to ppcs/ppc0006.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
## Abstract
1111

12-
This RFC proposes a new built-in, "load\_module", to load modules by module
12+
This PPC proposes a new built-in, "load\_module", to load modules by module
1313
name (rather than filename) at runtime.
1414

1515
## Motivation
@@ -24,7 +24,7 @@ switch from using loader A to loader B."
2424

2525
## Rationale
2626

27-
This RFC proposes exactly one behavior: load a named module by module name or
27+
This PPC proposes exactly one behavior: load a named module by module name or
2828
die trying. Putting this in the core should allow using exactly the same
2929
loading logic as the core uses. Avoiding any further behaviors or add-ons
3030
eliminates argument about what or how.
@@ -50,7 +50,7 @@ C<load_module> is only available when requested.
5050

5151
Note: The "how" of "when requested" is to be determined. If implemented
5252
today, it would be provided behind "use feature". [Current p5p
53-
discussion](https://github.com/Perl/RFCs/blob/master/rfcs/rfc0009.md) suggests
53+
discussion](https://github.com/Perl/PPCs/blob/master/ppcs/ppc0009.md) suggests
5454
that in the future it would be imported with std.pm or builtin.pm.
5555

5656
## Backwards Compatibility
@@ -82,7 +82,7 @@ for my $module (keys $config->{prereq}->%*) {
8282

8383
## Prototype Implementation
8484

85-
Numerous prototype implementations exist, in effect. This RFC is the request
85+
Numerous prototype implementations exist, in effect. This PPC is the request
8686
to build the real deal.
8787

8888
## Future Scope
@@ -93,7 +93,7 @@ differentiation between failure to find the file, failure to compile, and other
9393
errors.
9494

9595
These problems already exist with `use` and `require`. Addressing them through
96-
more clearly-defined exceptions has been proposed in the past, and this RFC has
96+
more clearly-defined exceptions has been proposed in the past, and this PPC has
9797
not attempted to fix them just for `load_module`. Instead, a future fix should
9898
address all at once.
9999

rfcs/rfc0007.md renamed to ppcs/ppc0007.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
## Abstract
1111

12-
This RFC proposes a new pragma, `source::encoding`, to indicate the encoding of
12+
This PPC proposes a new pragma, `source::encoding`, to indicate the encoding of
1313
the source document.
1414

1515
## Motivation

rfcs/rfc0008.md renamed to ppcs/ppc0008.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Add to regular (defined and non-referential) scalars the ability to track whethe
1313

1414
## Motivation
1515

16-
Language interoperability concerns sometimes lead to situations where it is necessary to represent typed data - such as strings or numbers - in a way that can be reliably distinguished. Elsewhere in Perl there are attempts to add this distinction. This RFC attempts to address how to handle values of a boolean type; values that represent a simple true-or-false nature.
16+
Language interoperability concerns sometimes lead to situations where it is necessary to represent typed data - such as strings or numbers - in a way that can be reliably distinguished. Elsewhere in Perl there are attempts to add this distinction. This PPC attempts to address how to handle values of a boolean type; values that represent a simple true-or-false nature.
1717

1818
For example, JSON and MsgPack are commonly-encountered serialisation formats that Perl can generate and parse, though in both cases while the formats themselves can represent boolean truth values distinctly from numbers or strings, perl cannot preserve that distinction. Compare this to some other languages popular at the moment:
1919

@@ -73,7 +73,7 @@ For creating such values, in many cases it is sufficient to simply use any of th
7373
my $sv = 4 > 5; # The $sv now has SvIsBOOL
7474
```
7575

76-
It may be considered useful to provide two new zero-arity functions, `true` and `false`, to explicitly create these values (which are at least a little more obvious in intent than the equivalent `!!1` and `!!0`). These can be requested from the `builtin` module (RFC 0009):
76+
It may be considered useful to provide two new zero-arity functions, `true` and `false`, to explicitly create these values (which are at least a little more obvious in intent than the equivalent `!!1` and `!!0`). These can be requested from the `builtin` module (PPC 0009):
7777

7878
```perl
7979
use builtin 'true', 'false';
@@ -102,7 +102,7 @@ I accept that this is the weakest part of this suggestion so far, and welcome co
102102

103103
There are not expected to be any backwards compatiblity problems with this proposal. At the interpreter level, extra information is being added to certain SV values, without changing the meaning of any existing information currently stored. Code that is unaware of the new semantics will continue to see existing values unaltered.
104104

105-
Likewise at the Perl syntax level, the only new functionality being added consists of new functions in the `builtin` namespace (RFC 0009).
105+
Likewise at the Perl syntax level, the only new functionality being added consists of new functions in the `builtin` namespace (PPC 0009).
106106

107107
## Security Implications
108108

rfcs/rfc0009.md renamed to ppcs/ppc0009.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ or
3838
say "The reference type of ref is ", builtin::reftype($ref);
3939
```
4040

41-
**Note:** This proposal largely concerns itself with the overal *mechanism* used to provide these functions, and expressly does not go into a full detailed list of individual proposed functions that ought to be provided. A short list is given containing a few likely candidates to start with, in order to experiment with the overall idea. Once found stable, it is expected that more functions can be added on a case-by-case basis; perhaps by using the RFC process or not, as individual cases require. In any case, it is anticipated that this list would be maintained on an ongoing basis as the language continues to evolve, with more functions being added at every release.
41+
**Note:** This proposal largely concerns itself with the overal *mechanism* used to provide these functions, and expressly does not go into a full detailed list of individual proposed functions that ought to be provided. A short list is given containing a few likely candidates to start with, in order to experiment with the overall idea. Once found stable, it is expected that more functions can be added on a case-by-case basis; perhaps by using the PPC process or not, as individual cases require. In any case, it is anticipated that this list would be maintained on an ongoing basis as the language continues to evolve, with more functions being added at every release.
4242

4343
## Rationale
4444

@@ -139,7 +139,7 @@ As this proposal does not go into a full list of what specific functions might b
139139

140140
* Some of the `POSIX` functions that act abstractly as in-memory data utilities, such as `ceil` and `floor`. I would not recommend adding the bulk of the operating system interaction functions from POSIX.
141141

142-
* There are other RFCs or Pre-RFC discussions that suggest adding new named functions that would be good candidates for this module. They can be considered on their own merit, by reference to this RFC. At time of writing this may include new functions to handle core-supported boolean types (RFC 0008) or the new module-loading function (RFC 0006).
142+
* There are other PPCs or Pre-PPC discussions that suggest adding new named functions that would be good candidates for this module. They can be considered on their own merit, by reference to this PPC. At time of writing this may include new functions to handle core-supported boolean types (PPC 0008) or the new module-loading function (PPC 0006).
143143

144144
* Once a stable set of functions is defined, consider creating version-numbered bundles in a similar theme to those provided by `feature.pm`:
145145

@@ -194,17 +194,17 @@ This does initially seem attractive, until one considers the possibility that a
194194

195195
### Polyfill for Unavailable Semantics
196196

197-
While not directly related to the question of how to provide builtin functions to new perls, by offering to provide a dual-life module on CPAN as a polyfill for older perl releases, the question arises on what to do if older perls cannot support the semantics of a provided function. The current suggestion of copying existing functions out of places like `Scalar::Util` does not cause this problem, but when we consider some of the additional RFCs we run into some more complex edge-cases.
197+
While not directly related to the question of how to provide builtin functions to new perls, by offering to provide a dual-life module on CPAN as a polyfill for older perl releases, the question arises on what to do if older perls cannot support the semantics of a provided function. The current suggestion of copying existing functions out of places like `Scalar::Util` does not cause this problem, but when we consider some of the additional PPCs we run into some more complex edge-cases.
198198

199-
For example, RFC 0008 proposes adding new functions `true` and `false` to provide real language-level boolean values, and an `isbool` predicate function to enquire whether a given value has boolean intention. The first two can be easily provided on older perls, but polyfilling this latter function is not possible, because the question of "does this value have boolean intention?" is not a meaningful question to ask on such perls. There are a number of possible ways to handle this situation:
199+
For example, PPC 0008 proposes adding new functions `true` and `false` to provide real language-level boolean values, and an `isbool` predicate function to enquire whether a given value has boolean intention. The first two can be easily provided on older perls, but polyfilling this latter function is not possible, because the question of "does this value have boolean intention?" is not a meaningful question to ask on such perls. There are a number of possible ways to handle this situation:
200200

201201
1. Refuse to import the symbol - `use builtin 'isbool'` would fail at compiletime
202202

203203
2. Import, but refuse to invoke the function - `if( isbool $x ) { ... }` would throw an exception
204204

205205
3. Give a meaningful but inaccurate answer - `isbool $x` would always return false, as the concept of "boolean intention" does not exist here
206206

207-
Each of these could be argued as the correct behaviour. While it is not directly a question this RFC needs to answer, it is at least acknowledged that some added polyfill functions would have this question, and it would be encouraged that all polyfilled functions should attempt to act as consistently as reasonably possible in this regard.
207+
Each of these could be argued as the correct behaviour. While it is not directly a question this PPC needs to answer, it is at least acknowledged that some added polyfill functions would have this question, and it would be encouraged that all polyfilled functions should attempt to act as consistently as reasonably possible in this regard.
208208

209209
## Copyright
210210

rfcs/rfc0011.md renamed to ppcs/ppc0011.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ Hopefully none.
6060
## Rejected Ideas
6161

6262
- Long flag, e.g. `--slurp`. Perl currently doesn't support long flags and
63-
adding them would be beyond the scope of this RFC.
63+
adding them would be beyond the scope of this PPC.
6464

6565
- Alternative spellings of the flag, e.g. `-R`, `-o`. The author believes none
6666
of them are better or worse than `-g`. Unfortunately, the most natural choice,

rfcs/rfc0012.md renamed to ppcs/ppc0012.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ for example to see what the result is on CPAN.
155155

156156
1. **Do Nothing**. Many people on p5p weren't aware of the existing capability
157157
(the compile flag), but on learning of its existence were keen to use it.
158-
Extrapolating, the author of this RFC believes that a significant
158+
Extrapolating, the author of this PPC believes that a significant
159159
percentage of Perl developers / users would happily make the trade-off
160160
(of no taint support, for improved performance), if they had the option.
161161
2. **Default to non-taint support**. I think people would rightly be surprised
@@ -182,7 +182,7 @@ for example to see what the result is on CPAN.
182182
* Should the sense of the question be "exclude" or "include"?
183183
Include is easier for people to understand, but results in a default of "y".
184184

185-
I think these question have been resolved far enough here to make a decision on the RFC,
185+
I think these question have been resolved far enough here to make a decision on the PPC,
186186
and the final details of prompting etc can be left to the implementation.
187187

188188
## Copyright

0 commit comments

Comments
 (0)