Skip to content

Commit 89181ab

Browse files
committed
embed.fnc: Need p flag for non-static public elements
If a function or macro 'foo' is publicly accessible, there should be a 'Perl_foo' form available for callers to use so as to avoid any name collisions with their own names. Now that we can automatically generate Perl_foo equivalents for macros, make sure that the flags indicate that. I first thought to add the p flag automatically, but that would require a bunch of restructuring. By requiring the flag, in embed.fnc, the true state of things doesn't get hidden.
1 parent 2d0e346 commit 89181ab

File tree

4 files changed

+184
-89
lines changed

4 files changed

+184
-89
lines changed

embed.fnc

Lines changed: 51 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -99,14 +99,18 @@
9999
: placed in perlapi. If no documentation exists, that fact is also
100100
: noted in perlapi.
101101
:
102+
: These require one of the /[iIpS]/ flags to give callers a name to use
103+
: that won't possibly collide with their own
104+
:
102105
: The 'C' flag is used instead for functions and their short names that need to
103106
: be accessible everywhere, typically because they are called from a
104107
: publicly available macro or inline function, but they are not for
105108
: public use by themselves. The documentation for these is placed in
106109
: perlintern. If no documentation exists, that fact is also noted in
107110
: perlintern.
108111
:
109-
: These really need the 'p' flag to avoid name space collisions.
112+
: These require one of the /[iIpS]/ flags to give callers a name to use
113+
: that won't possibly collide with their own
110114
:
111115
: Some of these have been constructed so that the wrapper macro names
112116
: begin with an underscore to lessen the chances of a name collision.
@@ -327,8 +331,8 @@
327331
: The remainder of these introductory comments detail all the possible flags:
328332
:
329333
: 'A' Both long and short names are accessible fully everywhere (usually
330-
: part of the public API). If the function is not part of the public
331-
: API, instead use 'C', 'E', or 'X'.
334+
: part of the public API). Requires one of /[iIpS]/ flags. If the
335+
: function is not part of the public API, instead use 'C', 'E', or 'X'.
332336
:
333337
: * adds entry to the list of symbols available on all platforms unless
334338
: 'e' or 'm' are also specified;
@@ -384,6 +388,7 @@
384388
: for example. Some functions have to be accessible everywhere even if
385389
: they are not intended for public use. An example is helper functions
386390
: that are called from inline ones that are publicly available.
391+
: Requires one of /[iIpS]/ flags.
387392
:
388393
: * add entry to the list of symbols available on all platforms unless e
389394
: or m are also specified;
@@ -1229,7 +1234,7 @@ Cip |I32 |foldEQ_latin1 |NN const char *a \
12291234
Adip |I32 |foldEQ_locale |NN const char *a \
12301235
|NN const char *b \
12311236
|I32 len
1232-
Adm |I32 |foldEQ_utf8 |NN const char *s1 \
1237+
Admp |I32 |foldEQ_utf8 |NN const char *s1 \
12331238
|NULLOK char **pe1 \
12341239
|UV l1 \
12351240
|bool u1 \
@@ -1367,11 +1372,11 @@ Adp |GV * |gv_fetchfile_flags \
13671372
|NN const char * const name \
13681373
|const STRLEN len \
13691374
|const U32 flags
1370-
Adm |GV * |gv_fetchmeth |NULLOK NOCHECK HV *stash \
1375+
Admp |GV * |gv_fetchmeth |NULLOK NOCHECK HV *stash \
13711376
|NN const char *name \
13721377
|STRLEN len \
13731378
|I32 level
1374-
Adm |GV * |gv_fetchmeth_autoload \
1379+
Admp |GV * |gv_fetchmeth_autoload \
13751380
|NULLOK NOCHECK HV *stash \
13761381
|NN const char *name \
13771382
|STRLEN len \
@@ -1447,7 +1452,7 @@ Adp |void |gv_fullname4 |NN SV *sv \
14471452
CRdp |CV * |gv_handler |NULLOK HV *stash \
14481453
|I32 id
14491454
Admp |GV * |gv_HVadd |NULLOK GV *gv
1450-
Adm |void |gv_init |NN GV *gv \
1455+
Admp |void |gv_init |NN GV *gv \
14511456
|NULLOK HV *stash \
14521457
|NN const char *name \
14531458
|STRLEN len \
@@ -1603,19 +1608,19 @@ Ampx |SV ** |hv_store_flags |NULLOK HV *hv \
16031608
|NULLOK SV *val \
16041609
|U32 hash \
16051610
|int flags
1606-
Adm |SV ** |hv_stores |NULLOK HV *hv \
1611+
Admp |SV ** |hv_stores |NULLOK HV *hv \
16071612
|"key" \
16081613
|NULLOK SV *val
1609-
Adm |void |hv_undef |NULLOK HV *hv
1614+
Admp |void |hv_undef |NULLOK HV *hv
16101615
Xop |void |hv_undef_flags |NULLOK HV *hv \
16111616
|U32 flags
1612-
APdm |I32 |ibcmp |NN const char *a \
1617+
APdmp |I32 |ibcmp |NN const char *a \
16131618
|NN const char *b \
16141619
|I32 len
1615-
APdm |I32 |ibcmp_locale |NN const char *a \
1620+
APdmp |I32 |ibcmp_locale |NN const char *a \
16161621
|NN const char *b \
16171622
|I32 len
1618-
Adm |I32 |ibcmp_utf8 |NN const char *s1 \
1623+
Admp |I32 |ibcmp_utf8 |NN const char *s1 \
16191624
|NULLOK char **pe1 \
16201625
|UV l1 \
16211626
|bool u1 \
@@ -1662,10 +1667,10 @@ p |bool |io_close |NN IO *io \
16621667
ARTdip |Size_t |isC9_STRICT_UTF8_CHAR \
16631668
|NN const U8 * const s0 \
16641669
|NN const U8 * const e
1665-
ARTdm |bool |is_c9strict_utf8_string \
1670+
ARTdmp |bool |is_c9strict_utf8_string \
16661671
|NN const U8 *s \
16671672
|STRLEN len
1668-
ATdm |bool |is_c9strict_utf8_string_loc \
1673+
ATdmp |bool |is_c9strict_utf8_string_loc \
16691674
|NN const U8 *s \
16701675
|STRLEN len \
16711676
|NN const U8 **ep
@@ -1689,10 +1694,10 @@ ARdip |bool |is_safe_syscall|NN const char *pv \
16891694
ARTdip |Size_t |isSTRICT_UTF8_CHAR \
16901695
|NN const U8 * const s0 \
16911696
|NN const U8 * const e
1692-
ARTdm |bool |is_strict_utf8_string \
1697+
ARTdmp |bool |is_strict_utf8_string \
16931698
|NN const U8 *s \
16941699
|STRLEN len
1695-
ATdm |bool |is_strict_utf8_string_loc \
1700+
ATdmp |bool |is_strict_utf8_string_loc \
16961701
|NN const U8 *s \
16971702
|STRLEN len \
16981703
|NN const U8 **ep
@@ -1724,11 +1729,11 @@ CPRTp |Size_t |is_utf8_FF_helper_ \
17241729
|NN const U8 * const s0 \
17251730
|NN const U8 * const e \
17261731
|const bool require_partial
1727-
ATdm |bool |is_utf8_fixed_width_buf_flags \
1732+
ATdmp |bool |is_utf8_fixed_width_buf_flags \
17281733
|NN const U8 * const s \
17291734
|STRLEN len \
17301735
|const U32 flags
1731-
ATdm |bool |is_utf8_fixed_width_buf_loc_flags \
1736+
ATdmp |bool |is_utf8_fixed_width_buf_loc_flags \
17321737
|NN const U8 * const s \
17331738
|STRLEN len \
17341739
|NULLOK const U8 **ep \
@@ -1752,7 +1757,7 @@ CRp |bool |_is_utf8_perl_idcont \
17521757
CRp |bool |_is_utf8_perl_idstart \
17531758
|NN const U8 *p \
17541759
|NN const U8 * const e
1755-
ARTdm |bool |is_utf8_string |NN const U8 *s \
1760+
ARTdmp |bool |is_utf8_string |NN const U8 *s \
17561761
|STRLEN len
17571762
ARTdip |bool |is_utf8_string_flags \
17581763
|NN const U8 *s \
@@ -1762,7 +1767,7 @@ ATdmp |bool |is_utf8_string_loc \
17621767
|NN const U8 *s \
17631768
|const STRLEN len \
17641769
|NN const U8 **ep
1765-
ATdm |bool |is_utf8_string_loc_flags \
1770+
ATdmp |bool |is_utf8_string_loc_flags \
17661771
|NN const U8 *s \
17671772
|STRLEN len \
17681773
|NN const U8 **ep \
@@ -1778,7 +1783,7 @@ ATdip |bool |is_utf8_string_loclen_flags \
17781783
|NULLOK const U8 **ep \
17791784
|NULLOK STRLEN *el \
17801785
|const U32 flags
1781-
APTdm |bool |is_utf8_valid_partial_char \
1786+
APTdmp |bool |is_utf8_valid_partial_char \
17821787
|NN const U8 * const s0 \
17831788
|NN const U8 * const e
17841789
ARTdip |bool |is_utf8_valid_partial_char_flags \
@@ -2170,7 +2175,7 @@ ARdp |OP * |newASSIGNOP |I32 flags \
21702175
|NULLOK OP *left \
21712176
|I32 optype \
21722177
|NULLOK OP *right
2173-
Adm |CV * |newATTRSUB |I32 floor \
2178+
Admp |CV * |newATTRSUB |I32 floor \
21742179
|NULLOK OP *o \
21752180
|NULLOK OP *proto \
21762181
|NULLOK OP *attrs \
@@ -2182,11 +2187,11 @@ Xdp |CV * |newATTRSUB_x |I32 floor \
21822187
|NULLOK OP *block \
21832188
|bool o_is_gv
21842189
ARdmp |AV * |newAV
2185-
ARdm |AV * |newAV_alloc_x |SSize_t size
2186-
ARdm |AV * |newAV_alloc_xz |SSize_t size
2190+
ARdmp |AV * |newAV_alloc_x |SSize_t size
2191+
ARdmp |AV * |newAV_alloc_xz |SSize_t size
21872192
ARdp |AV * |newAVav |NULLOK AV *oav
21882193
ARdp |AV * |newAVhv |NULLOK HV *ohv
2189-
ARdm |AV * |newAV_mortal
2194+
ARdmp |AV * |newAV_mortal
21902195
ARdp |OP * |newAVREF |NN OP *o
21912196
ARdp |OP * |newBINOP |I32 type \
21922197
|I32 flags \
@@ -2223,7 +2228,7 @@ ARdp |OP * |newGIVENOP |NN OP *cond \
22232228
|PADOFFSET defsv_off
22242229
: Used in scope.c
22252230
eopx |GP * |newGP |NN GV * const gv
2226-
Adm |GV * |newGVgen |NN const char *pack
2231+
Admp |GV * |newGVgen |NN const char *pack
22272232
ARdp |GV * |newGVgen_flags |NN const char *pack \
22282233
|U32 flags
22292234
ARdp |OP * |newGVOP |I32 type \
@@ -2342,7 +2347,7 @@ Adp |SV * |newSVrv |NN SV * const rv \
23422347
ARdmp |SV * |newSVsv |NULLOK SV * const old
23432348
ARdp |SV * |newSVsv_flags |NULLOK SV * const old \
23442349
|I32 flags
2345-
ARdm |SV * |newSVsv_nomg |NULLOK SV * const old
2350+
ARdmp |SV * |newSVsv_nomg |NULLOK SV * const old
23462351
ARdp |SV * |newSV_true
23472352
ARdip |SV * |newSV_type |const svtype type
23482353
AIRdp |SV * |newSV_type_mortal \
@@ -2434,7 +2439,7 @@ Adfp |void |opdump_printf |NN struct Perl_OpDumpContext *ctx \
24342439
Adp |OP * |op_force_list |NULLOK OP *o
24352440
Adp |void |op_free |NULLOK OP *arg
24362441
Adp |OP * |op_linklist |NN OP *o
2437-
Admx |OP * |op_lvalue |NULLOK OP *o \
2442+
Admpx |OP * |op_lvalue |NULLOK OP *o \
24382443
|I32 type
24392444
Xop |OP * |op_lvalue_flags|NULLOK OP *o \
24402445
|I32 type \
@@ -2588,7 +2593,7 @@ CTp |Signal_t|perly_sighandler \
25882593
|NULLOK void *uap \
25892594
|bool safe
25902595

2591-
Adm |const char * const|phase_name \
2596+
Admp |const char * const|phase_name \
25922597
|enum perl_phase
25932598
Adp |void |pmop_dump |NULLOK PMOP *pm
25942599
: Used in perly.y
@@ -2822,9 +2827,9 @@ p |void |report_wrongway_fh \
28222827
AOdp |void |require_pv |NN const char *pv
28232828
Cop |void |resume_compcv |NN struct suspended_compcv *buffer \
28242829
|bool save
2825-
Adm |void |resume_compcv_and_save \
2830+
Admp |void |resume_compcv_and_save \
28262831
|NN struct suspended_compcv *buffer
2827-
Adm |void |resume_compcv_final \
2832+
Admp |void |resume_compcv_final \
28282833
|NN struct suspended_compcv *buffer
28292834
APTdp |char * |rninstr |NN const char *big \
28302835
|NN const char *bigend \
@@ -2916,7 +2921,7 @@ ARTdp |Malloc_t|safesysrealloc|Malloc_t where \
29162921
|MEM_SIZE nbytes
29172922
Cdp |void |save_adelete |NN AV *av \
29182923
|SSize_t key
2919-
Adm |void |save_aelem |NN AV *av \
2924+
Admp |void |save_aelem |NN AV *av \
29202925
|SSize_t idx \
29212926
|NN SV **sptr
29222927
Adp |void |save_aelem_flags \
@@ -2952,7 +2957,7 @@ Adp |void |save_gp |NN GV *gv \
29522957
Adhp |HV * |save_hash |NN GV *gv
29532958
Cdp |void |save_hdelete |NN HV *hv \
29542959
|NN SV *keysv
2955-
Adm |void |save_helem |NN HV *hv \
2960+
Admp |void |save_helem |NN HV *hv \
29562961
|NN SV *key \
29572962
|NN SV **sptr
29582963
Adp |void |save_helem_flags \
@@ -3182,7 +3187,7 @@ Admp |void |sv_copypv |NN SV * const dsv \
31823187
Adp |void |sv_copypv_flags|NN SV * const dsv \
31833188
|NN SV * const ssv \
31843189
|const I32 flags
3185-
Adm |void |sv_copypv_nomg |NN SV * const dsv \
3190+
Admp |void |sv_copypv_nomg |NN SV * const dsv \
31863191
|NN SV * const ssv
31873192
Adp |CV * |sv_2cv |NULLOK SV *sv \
31883193
|NN HV ** const st \
@@ -3303,7 +3308,7 @@ Cdp |SV * |sv_newref |NULLOK SV * const sv
33033308
Adp |void |sv_nosharing |NULLOK SV *sv
33043309
: Used in pp.c, pp_hot.c, sv.c
33053310
dpx |SV * |sv_2num |NN SV * const sv
3306-
Adm |bool |sv_numeq |NULLOK SV *sv1 \
3311+
Admp |bool |sv_numeq |NULLOK SV *sv1 \
33073312
|NULLOK SV *sv2
33083313
Adp |bool |sv_numeq_flags |NULLOK SV *sv1 \
33093314
|NULLOK SV *sv2 \
@@ -3385,7 +3390,7 @@ AMdip |void |SvREFCNT_dec |NULLOK SV *sv
33853390
AMdip |void |SvREFCNT_dec_NN|NN SV *sv
33863391
Adip |SV * |SvREFCNT_dec_ret_NULL \
33873392
|NULLOK SV *sv
3388-
Adm |void |SvREFCNT_dec_set_NULL \
3393+
Admp |void |SvREFCNT_dec_set_NULL \
33893394
|NULLOK SV *sv
33903395
AMTdip |SV * |SvREFCNT_inc |NULLOK SV *sv
33913396
AMTdip |SV * |SvREFCNT_inc_NN|NN SV *sv
@@ -3491,7 +3496,7 @@ Adp |void |sv_setuv |NN SV * const sv \
34913496
|const UV num
34923497
Adp |void |sv_setuv_mg |NN SV * const sv \
34933498
|const UV u
3494-
Adm |bool |sv_streq |NULLOK SV *sv1 \
3499+
Admp |bool |sv_streq |NULLOK SV *sv1 \
34953500
|NULLOK SV *sv2
34963501
Adp |bool |sv_streq_flags |NULLOK SV *sv1 \
34973502
|NULLOK SV *sv2 \
@@ -3551,19 +3556,19 @@ Adp |bool |sv_utf8_downgrade_flags \
35513556
|NN SV * const sv \
35523557
|const bool fail_ok \
35533558
|const U32 flags
3554-
Adm |bool |sv_utf8_downgrade_nomg \
3559+
Admp |bool |sv_utf8_downgrade_nomg \
35553560
|NN SV * const sv \
35563561
|const bool fail_ok
35573562
Adp |void |sv_utf8_encode |NN SV * const sv
35583563
Admp |STRLEN |sv_utf8_upgrade|NN SV *sv
3559-
Adm |STRLEN |sv_utf8_upgrade_flags \
3564+
Admp |STRLEN |sv_utf8_upgrade_flags \
35603565
|NN SV * const sv \
35613566
|const I32 flags
35623567
Adp |STRLEN |sv_utf8_upgrade_flags_grow \
35633568
|NN SV * const sv \
35643569
|const I32 flags \
35653570
|STRLEN extra
3566-
Adm |STRLEN |sv_utf8_upgrade_nomg \
3571+
Admp |STRLEN |sv_utf8_upgrade_nomg \
35673572
|NN SV *sv
35683573
Adip |UV |SvUV |NN SV *sv
35693574
Cmp |UV |sv_2uv |NN SV *sv
@@ -3631,7 +3636,7 @@ Fpv |OP * |tied_method |NN SV *methname \
36313636
|...
36323637
Xp |SSize_t|tmps_grow_p |SSize_t ix
36333638
Xiop |Stack_off_t|TOPMARK
3634-
Cm |UV |to_uni_fold |UV c \
3639+
Cmp |UV |to_uni_fold |UV c \
36353640
|NN U8 *p \
36363641
|NN STRLEN *lenp
36373642
Cp |UV |_to_uni_fold_flags \
@@ -3839,13 +3844,13 @@ p |void |utilize |int aver \
38393844
|NN OP *idop \
38403845
|NULLOK OP *arg
38413846

3842-
Adm |U8 * |uvchr_to_utf8 |NN U8 *d \
3847+
Admp |U8 * |uvchr_to_utf8 |NN U8 *d \
38433848
|UV uv
3844-
Adm |U8 * |uvchr_to_utf8_flags \
3849+
Admp |U8 * |uvchr_to_utf8_flags \
38453850
|NN U8 *d \
38463851
|UV uv \
38473852
|UV flags
3848-
Adm |U8 * |uvchr_to_utf8_flags_msgs \
3853+
Admp |U8 * |uvchr_to_utf8_flags_msgs \
38493854
|NN U8 *d \
38503855
|UV uv \
38513856
|UV flags \
@@ -3936,7 +3941,7 @@ Adp |void |warn_sv |NN SV *baseex
39363941
RXop |I32 |was_lvalue_sub
39373942
: FIXME
39383943
p |void |watch |NN char **addr
3939-
Adm |I32 |whichsig |NN const char *sig
3944+
Admp |I32 |whichsig |NN const char *sig
39403945
Adp |I32 |whichsig_pv |NN const char *sig
39413946
Adp |I32 |whichsig_pvn |NN const char *sig \
39423947
|STRLEN len
@@ -6398,7 +6403,7 @@ p |void |op_relocate_sv |NN SV **svp \
63986403
|NN PADOFFSET *targp
63996404
# endif
64006405
#else /* if !defined(USE_ITHREADS) */
6401-
Adm |void |CopFILEGV_set |NN COP *c \
6406+
Admp |void |CopFILEGV_set |NN COP *c \
64026407
|NN GV *gv
64036408
#endif
64046409
#if defined(USE_LOCALE_COLLATE)

0 commit comments

Comments
 (0)