Skip to content

Commit ca25572

Browse files
committed
Further wording to clarify that this doc is concerned with C-level interpreter API, not Perl-level source syntax
1 parent 85f626f commit ca25572

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

ppcs/ppcTODO-attributes-v2.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212
Define a new way that attribute definitions can be introduced such that the parser can invoke the third-party custom logic they provide; and additionally permit them to be attached to more types of target than Perl currently allows.
1313

14+
This document is largely concerned with C-level details of how the interpreter works, and the interface it exposes to authors of third-party XS modules. A few small extensions to existing syntax are made by extending existing concepts. Any larger ideas of extending the Perl-visible syntax of attributes are left for future discussion at a later time.
15+
1416
Throughout this document, the term "third-party" means any behaviour provided by additional modules loaded into the interpreter; whether these modules are shipped with the core perl distribution, on CPAN, or privately implemented by other means. This is distinct from true "builtin" behaviours, which are provided by the interpreter itself natively.
1517

1618
## Motivation
@@ -37,7 +39,7 @@ The parser supports additional attributes that can be provided by modules, thoug
3739

3840
Many of these restrictions come from the way that third-party attributes are provided in the perl core, quite apart from its own built-in handling. Built-in attributes get to run their logic much earlier in the parser.
3941

40-
It is the aim of this specification to provide a better and more flexible way for third-party modules to declare and use attributes to allow authors to declare more interesting behaviours on elements of their code.
42+
It is the aim of this specification to provide a better and more flexible way for third-party modules to declare and use attributes to allow authors to declare more interesting behaviours on elements of their code. These extensions come in the form of additional elements of the interpreter that are visible to XS modules.
4143

4244
## Rationale
4345

@@ -91,8 +93,6 @@ As there is no interesting result returned from the attribute callback function,
9193
9294
## Backwards Compatibility
9395
94-
### Attributes
95-
9696
The new mechanism proposed here is entirely lexically scoped. Any attributes introduced into a scope will not be visible from outside. As such, it is an entirely opt-in effect that would not cause issues for existing code that is not expecting it.
9797
9898
## Security Implications

0 commit comments

Comments
 (0)