Commit da1f6ffca3 for perl
commit da1f6ffca35e2f5cdd48068547c711cdf47241fe
Author: Karl Williamson <khw@cpan.org>
Date: Wed Oct 7 09:56:16 2026 -0600
embed.pl: Split list in two parts for convenience
An ongoing task is to look at the original list of symbols to determine
if they should be visible outside the perl core or not. I just
determined that certain of them do have to be visible to perl
extensions, but not necessarily beyond that. This commit splits the
original list so that there is a separate list for the extensions, so
that that knowledge isn't lost going forward. This is purely for
convenience. The goal is to get both lists to zero.
diff --git a/regen/embed.pl b/regen/embed.pl
index b69c562248..33e497b1a2 100755
--- a/regen/embed.pl
+++ b/regen/embed.pl
@@ -244,8 +244,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
assert_not_ROK
Atoul
AvARYLEN
- AvMAX
- AvREAL
AvREALISH
AvREAL_on
AvREAL_only
@@ -273,7 +271,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
CALLREGCOMP_ENG
CALLREGDUPE
CALLREGDUPE_PVT
- CALLREGEXEC
CALLREGFREE
CALLREGFREE_PVT
CALLREG_INTUIT_START
@@ -321,7 +318,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
CopFILE_setn_x
CopFILE_set_x
COPHH_EXISTS
- CopHINTHASH_get
CopHINTHASH_set
CopHINTS_get
CopHINTS_set
@@ -330,29 +326,21 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
CopLINE_inc
CopLINE_set
COP_SEQMAX_INC
- COP_SEQ_RANGE_HIGH
- COP_SEQ_RANGE_LOW
CopSTASH_ne
copy_length
CowREFCNT
CR_NATIVE
Ctl
CTYPE256
- CvANON
- CvANONCONST
- CvANONCONST_off
- CvANONCONST_on
CvANON_on
CvAUTOLOAD
CvAUTOLOAD_off
CvAUTOLOAD_on
CvCLONE
- CvCLONED
CvCLONED_off
CvCLONED_on
CvCLONE_off
CvCLONE_on
- CvCONST
CvCONST_off
CvCVGV_RC
CvCVGV_RC_off
@@ -383,12 +371,7 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
CvFILE_set_from_cop
CVf_IsMETHOD
CVf_ISXSUB
- CvFLAGS
- CVf_LEXICAL
- CVf_LVALUE
- CVf_METHOD
CVf_NODEBUG
- CVf_NOWARN_AMBIGUOUS
CVf_REFCOUNTED_ANYSV
CVf_SIGNATURE
CVf_UNIQUE
@@ -397,7 +380,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
CvHASEVAL
CvHASEVAL_off
CvHASEVAL_on
- CvHSCXT
CvIsMETHOD
CvIsMETHOD_off
CvIsMETHOD_on
@@ -406,9 +388,7 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
CvLEXICAL
CvLEXICAL_off
CvLEXICAL_on
- CvLVALUE
CvLVALUE_off
- CvLVALUE_on
CvMETHOD
CvMETHOD_off
CvMETHOD_on
@@ -425,9 +405,7 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
CvPADLIST_set
CvPROTO
CvPROTOLEN
- CvREFCOUNTED_ANYSV
CvREFCOUNTED_ANYSV_off
- CvREFCOUNTED_ANYSV_on
CvSIGNATURE
CvSIGNATURE_off
CvSIGNATURE_on
@@ -442,8 +420,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
CvWEAKOUTSIDE_off
CvWEAKOUTSIDE_on
CvXS_RCSTACK
- CvXS_RCSTACK_off
- CvXS_RCSTACK_on
CX_CURPAD_SAVE
CX_CURPAD_SV
CX_DEBUG
@@ -481,7 +457,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
CXt_DEFER
CxTRY
CxTRYBLOCK
- CxTYPE
CxTYPE_is_LOOP
CXTYPEMASK
dATARGET
@@ -515,9 +490,7 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
DM_RUID
DM_UID
do_exec
- DOSISH
DOUBLE_BIG_ENDIAN
- DOUBLE_IS_IEEE_FORMAT
DOUBLE_IS_VAX_FLOAT
DOUBLE_LITTLE_ENDIAN
DOUBLE_MIX_ENDIAN
@@ -540,7 +513,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
dPOPXiirl_ul_nomg
dPOPXnnrl
dPOPXssrl
- DPTR2FPTR
dSAVEDERRNO
dSAVE_ERRNO
dSS_ADD
@@ -560,8 +532,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
ENV_LOCK
ENV_READ_LOCK
ENV_READ_UNLOCK
- ENVr_LOCALEr_LOCK
- ENVr_LOCALEr_UNLOCK
ENV_TERM
ENV_UNLOCK
EVAL_INEVAL
@@ -573,7 +543,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
EXEC_ARGV_CAST
EXEC_PAT_MOD
EXEC_PAT_MODS
- EXPECT
EXTEND_HWM_SET
EXTEND_MORTAL
EXTEND_SKIP
@@ -611,19 +580,15 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
FIT_ARENA0
FIT_ARENAn
FITS_IN_8_BITS
- FmLINES
FOLD_FLAGS_FULL
FOLD_FLAGS_LOCALE
FOLD_FLAGS_NOMIX_ASCII
FP_PINF
FP_QNAN
- FPTR2DPTR
free_and_set_cop_warnings
free_c_backtrace
- FreeOp
FREE_THREAD_KEY
FSEEKSIZE
- Fstat
fwrite1
GCC_DIAG_IGNORE_DECL
GCC_DIAG_PRAGMA
@@ -635,7 +600,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
GETTARGETSTACKED
G_FAKINGEVAL
GLOBAL_PAT_MOD
- G_NODEBUG
GREEK_CAPITAL_LETTER_MU
GREEK_SMALL_LETTER_MU
G_RE_REPARSING
@@ -645,7 +609,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
GvASSUMECV_on
GV_AUTOLOAD
GV_CROAK
- GvCVGEN
GvCV_set
GvEGV
GvEGVx
@@ -653,12 +616,8 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
GvENAME_HEK
GvENAMELEN
GvENAMEUTF8
- GvESTASH
GVf_ASSUMECV
- gv_fetchmethod_flags
GvFILE
- GvFILEGV
- GvFILE_HEK
GvFILEx
GVf_IMPORTED
GVf_IMPORTED_AV
@@ -666,13 +625,10 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
GVf_IMPORTED_HV
GVf_IMPORTED_SV
GVf_INTRO
- GvFLAGS
GVF_NOADD
GVf_ONCE_FATAL
GvFORM
GVf_RESERVED
- GvGP
- GvGPFLAGS
GvGP_set
GvIMPORTED
GvIMPORTED_AV
@@ -693,8 +649,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
GvINTRO_off
GvINTRO_on
GvIOn
- GvIOp
- GvLINE
gv_method_changed
GvMULTI
GvMULTI_off
@@ -705,7 +659,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
GvONCE_FATAL
GvONCE_FATAL_off
GvONCE_FATAL_on
- GvREFCNT
GvXPVGV
G_WARN_ALL_MASK
G_WARN_ALL_OFF
@@ -729,7 +682,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
HAS_IOCTL
HAS_KILL
HAS_NONLATIN1_FOLD_CLOSURE
- HAS_PASSWD
HAS_POSIX_2008_LOCALE
HAS_PTHREAD_UNCHECKED_GETSPECIFIC_NP
HAS_UTIME
@@ -737,10 +689,8 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
hasWARNBIT
HEK_BASESIZE
HeKEY_sv
- HEKf
HEKf256
HEKf256_QUOTEDPREFIX
- HEKfARG
HeKFLAGS
HEKf_QUOTEDPREFIX
HeKLEN_UTF8
@@ -751,18 +701,15 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
HEK_WASUTF8_on
HINT_ALL_STRICT
HINT_ASCII_ENCODING
- HINT_BLOCK_SCOPE
HINT_BYTES
HINT_EXPLICIT_STRICT_REFS
HINT_EXPLICIT_STRICT_SUBS
HINT_EXPLICIT_STRICT_VARS
HINT_FEATURE_MASK
HINT_FILETEST_ACCESS
- HINT_INTEGER
HINT_LEXICAL_IO_IN
HINT_LEXICAL_IO_OUT
HINT_LOCALE
- HINT_LOCALIZE_HH
HINT_NEW_BINARY
HINT_NEW_FLOAT
HINT_NEW_INTEGER
@@ -780,7 +727,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
HINT_UNI_8_BIT
HINT_UTF8
HS_APIVERLEN_MAX
- HS_CXT
HSf_IMP_CXT
HSf_NOCHK
HSf_POPMARK
@@ -789,7 +735,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
HS_GETINTERPSIZE
HS_GETXSVERLEN
HS_KEY
- HS_KEYp
HSm_APIVERLEN
HSm_INTRPSIZE
HSm_KEY_MATCH
@@ -798,22 +743,18 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
htoni
htovl
htovs
- HvAUX
HvAUXf_IS_CLASS
HvAUXf_NO_DEREF
HvAUXf_SCAN_STASH
HvCLASSf_SEALED
HvCLASS_IS_SEALED
- HV_DELETE
HV_DISABLE_UVAR_XKEY
HvEITER
HvENAME_get
- HvENAME_HEK
HvENAME_HEK_NN
HvENAMELEN_get
HV_FETCH_ISEXISTS
HV_FETCH_JUST_SV
- HvHasENAME
HvHasENAME_HEK
HvHASKFLAGS_off
HvHASKFLAGS_on
@@ -828,18 +769,13 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
HvLAZYDEL_on
HvNAME_HEK_NN
HvPLACEHOLDERS_set
- HvRAND_get
- HvRITER
HvSHAREKEYS
- HvSHAREKEYS_on
HvSTASH_IS_CLASS
HYPHEN_UTF8
I16_MAX
I16_MIN
I32_MAX_P1
- I32_MIN
I8_TO_NATIVE
- I8_TO_NATIVE_UTF8
IGNORE_PAT_MOD
ILLEGAL_UTF8_BYTE
IN_BYTES
@@ -856,7 +792,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
IN_LC_PARTIAL_COMPILETIME
IN_LC_PARTIAL_RUNTIME
IN_LC_RUNTIME
- inRANGE
IN_SOME_LOCALE_FORM
IN_SOME_LOCALE_FORM_COMPILETIME
IN_SOME_LOCALE_FORM_RUNTIME
@@ -889,41 +824,31 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
isALNUM_LC_utf8
isALNUM_LC_utf8_safe
isALNUMU
- isALNUM_uni
isALNUM_utf8
isALNUM_utf8_safe
isALPHA_FOLD_EQ
isALPHA_FOLD_NE
isALPHA_LC_utf8
isALPHANUMERIC_LC_utf8
- isALPHANUMERIC_uni
isALPHAU
- isALPHA_uni
isASCII_LC_utf8
- isASCII_uni
ISA_VERSION_OBJ
isBLANK_LC_uni
isBLANK_LC_utf8
- isBLANK_uni
isCASED_LC
isCHARNAME_CONT
isCNTRL_LC_utf8
- isCNTRL_uni
isDIGIT_LC_utf8
- isDIGIT_uni
is_FOLDS_TO_MULTI_utf8
isGRAPH_LC_utf8
- isGRAPH_uni
isGV_with_GP_off
isGV_with_GP_on
is_HANGUL_ED_utf8_safe
is_HORIZWS_cp_high
is_HORIZWS_high
isIDCONT_LC_utf8
- isIDCONT_uni
isIDFIRST_lazy_if_safe
isIDFIRST_LC_utf8
- isIDFIRST_uni
is_LARGER_NON_CHARS_utf8
is_LAX_VERSION
isLEXWARN_off
@@ -932,7 +857,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
is_LNBREAK_safe
is_LNBREAK_utf8_safe
isLOWER_LC_utf8
- isLOWER_uni
is_MULTI_CHAR_FOLD_latin1_safe
is_MULTI_CHAR_FOLD_utf8_safe
is_NONCHAR_utf8_safe
@@ -955,20 +879,15 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
is_posix_WORDCHAR
is_posix_XDIGIT
isPRINT_LC_utf8
- isPRINT_uni
is_PROBLEMATIC_LOCALE_FOLD_cp
is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp
is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8
is_PROBLEMATIC_LOCALE_FOLD_utf8
isPSXSPC_LC_utf8
- isPSXSPC_uni
isPUNCT_LC_utf8
- isPUNCT_uni
is_QUOTEMETA_high
- isREGEXP
is_SHORTER_NON_CHARS_utf8
isSPACE_LC_utf8
- isSPACE_uni
is_SPACE_utf8_safe_backwards
is_STRICT_VERSION
is_SURROGATE_utf8
@@ -995,24 +914,17 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
isU8_XDIGIT_LC
isUNICODE_POSSIBLY_PROBLEMATIC
isUPPER_LC_utf8
- isUPPER_uni
- isUTF8_POSSIBLY_PROBLEMATIC
is_VERTWS_cp_high
is_VERTWS_high
- isVERTWS_uni
isVERTWS_utf8
- isVERTWS_utf8_safe
- isVERTWS_uvchr
isWARNf_on
isWARN_on
isWARN_ONCE
isWORDCHAR_lazy_if_safe
isWORDCHAR_LC_utf8
- isWORDCHAR_uni
is_XDIGIT_cp_high
is_XDIGIT_high
isXDIGIT_LC_utf8
- isXDIGIT_uni
is_XPERLSPACE_cp_high
is_XPERLSPACE_high
IV_MAX_P1
@@ -1027,12 +939,10 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
KEEPCOPY_PAT_MODS
KELVIN_SIGN
KEYWORD_PLUGIN_DECLINE
- KEYWORD_PLUGIN_EXPR
KEYWORD_PLUGIN_MUTEX_INIT
KEYWORD_PLUGIN_MUTEX_LOCK
KEYWORD_PLUGIN_MUTEX_TERM
KEYWORD_PLUGIN_MUTEX_UNLOCK
- KEYWORD_PLUGIN_STMT
kGVOP_gv
kLISTOP
kLOGOP
@@ -1043,7 +953,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
kPVOP
kSVOP
kSVOP_sv
- kUNOP
kUNOP_AUX
LARGE_HASH_HEURISTIC
LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE
@@ -1068,14 +977,10 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
LATIN_SMALL_LIGATURE_LONG_S_T_UTF8
LATIN_SMALL_LIGATURE_ST
LATIN_SMALL_LIGATURE_ST_UTF8
- LC_COLLATE_LOCK
- LC_COLLATE_UNLOCK
LC_NUMERIC_LOCK
LC_NUMERIC_UNLOCK
- LEAVE_SCOPE
LEX_NOTPARSING
LF_NATIVE
- LINE_Tf
LOCALE_INIT
LOCALE_LOCK
LOCALE_PAT_MOD
@@ -1088,7 +993,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
LOCK_DOLLARZERO_MUTEX
LOCK_LC_NUMERIC_STANDARD
LONGDOUBLE_BIG_ENDIAN
- LONGDOUBLE_DOUBLEDOUBLE
LONG_DOUBLE_EQUALS_DOUBLE
LONGDOUBLE_LITTLE_ENDIAN
LONGDOUBLE_MIX_ENDIAN
@@ -1102,10 +1006,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
LVf_OUT_OF_RANGE
LVRET
LvSTARGOFF
- LvTARG
- LvTARGLEN
- LvTARGOFF
- LvTYPE
MALFORMED_UTF8_DIE
MALFORMED_UTF8_WARN
MALLOC_CHECK_TAINT
@@ -1118,40 +1018,17 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
MAX_FOLD_FROMS
MAX_LEGAL_CP
MAX_MATCHES
- MAXO
MAX_PORTABLE_UTF8_TWO_BYTE
MAX_RECURSE_EVAL_NOCHANGE_DEPTH
MAX_SAVEt
MAXSYSFD
MAX_UNICODE_UTF8
MAX_UTF8_TWO_BYTE
- MDEREF_ACTION_MASK
- MDEREF_AV_gvav_aelem
- MDEREF_AV_gvsv_vivify_rv2av_aelem
- MDEREF_AV_padav_aelem
- MDEREF_AV_padsv_vivify_rv2av_aelem
- MDEREF_AV_pop_rv2av_aelem
- MDEREF_AV_vivify_rv2av_aelem
- MDEREF_FLAG_last
- MDEREF_HV_gvhv_helem
- MDEREF_HV_gvsv_vivify_rv2hv_helem
- MDEREF_HV_padhv_helem
- MDEREF_HV_padsv_vivify_rv2hv_helem
- MDEREF_HV_pop_rv2hv_helem
- MDEREF_HV_vivify_rv2hv_helem
- MDEREF_INDEX_const
- MDEREF_INDEX_gvsv
- MDEREF_INDEX_MASK
- MDEREF_INDEX_none
- MDEREF_INDEX_padsv
MDEREF_MASK
- MDEREF_reload
- MDEREF_SHIFT
memGE
memGT
memLE
memLT
- MEM_SIZE
MEM_SIZE_MAX
MEM_WRAP_CHECK
MEM_WRAP_CHECK_1
@@ -1212,7 +1089,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
new_body_from_arena
new_NOARENA
new_NOARENAZ
- NewOp
NewOpSz
new_SV
NEW_VERSION
@@ -1223,7 +1099,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
NOARENA
NOCAPTURE_PAT_MOD
NOCAPTURE_PAT_MODS
- NO_ENV_ARRAY_IN_MAIN
NO_ENVIRON_ARRAY
NofAMmeth
NOLINE
@@ -1231,15 +1106,12 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
NONDESTRUCT_PAT_MODS
NONV
NOTE3
- NOT_REACHED
- NSIG
ntohi
Nullfp
NUM_ANYOF_CODE_POINTS
NV_BIG_ENDIAN
NV_EPSILON
NV_IMPLICIT_BIT
- NV_INF
NV_LITTLE_ENDIAN
NV_MANT_DIG
NV_MAX
@@ -1249,17 +1121,13 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
NV_MIN_10_EXP
NV_MIN_EXP
NV_MIX_ENDIAN
- NV_NAN
NV_NAN_BITS
NV_NAN_IS_QUIET
- NV_NAN_IS_SIGNALING
- NV_NAN_PAYLOAD_MASK
NV_NAN_PAYLOAD_MASK_IEEE_754_128_BE
NV_NAN_PAYLOAD_MASK_IEEE_754_128_LE
NV_NAN_PAYLOAD_MASK_IEEE_754_64_BE
NV_NAN_PAYLOAD_MASK_IEEE_754_64_LE
NV_NAN_PAYLOAD_MASK_SKIP_EIGHT
- NV_NAN_PAYLOAD_PERM
NV_NAN_PAYLOAD_PERM_0_TO_7
NV_NAN_PAYLOAD_PERM_7_TO_0
NV_NAN_PAYLOAD_PERM_IEEE_754_128_BE
@@ -1277,14 +1145,12 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
NV_NAN_QS_TEST
NV_NAN_QS_XOR
NV_NAN_SET_QUIET
- NV_NAN_SET_SIGNALING
NV_VAX_ENDIAN
NV_WITHIN_IV
NV_WITHIN_UV
NV_X86_80_BIT
OA_AVREF
OA_BASEOP_OR_UNOP
- OA_CLASS_MASK
OA_CVREF
OA_DANGEROUS
OA_DEFGV
@@ -1316,16 +1182,10 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
opASSIGN
OP_CHECK_MUTEX_INIT
OP_CHECK_MUTEX_TERM
- OPCODE
OPf_FOLDED
OPf_KNOW
OPf_LIST
- OPf_MOD
- OPf_PARENS
OP_FREED
- OPf_REF
- OPf_SPECIAL
- OPf_WANT
OP_GIMME
OP_GIMME_REVERSE
OP_IS_DIRHOP
@@ -1355,8 +1215,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
OPpASSIGN_TRUEBOOL
OPpAVHVSWITCH_MASK
OPpCONCAT_NESTED
- OPpCONST_BARE
- OPpCONST_ENTERED
OPpCONST_NOVER
OPpCONST_SHORTCIRCUIT
OPpCONST_STRICT
@@ -1419,8 +1277,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
OPpMAYBE_TRUEBOOL
OPpMAY_RETURN_CONSTANT
OPpMETH_NO_BAREWORD_IO
- op_pmflags
- op_pmoffset
OPpMULTICONCAT_APPEND
OPpMULTICONCAT_FAKE
OPpMULTICONCAT_STRINGIFY
@@ -1431,12 +1287,9 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
OPpOPEN_IN_RAW
OPpOPEN_OUT_CRLF
OPpOPEN_OUT_RAW
- OPpOUR_INTRO
OPpPADHV_ISKEYS
- OPpPADRANGE_COUNTMASK
OPpPADRANGE_COUNTSHIFT
OPpPAD_STATE
- OPpPV_IS_UTF8
OPpREFCOUNTED
OPpREPEAT_DOLIST
OPpREVERSE_INPLACE
@@ -1448,9 +1301,7 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
OPpSORT_INTEGER
OPpSORT_NUMERIC
OPpSORT_REVERSE
- OPpSPLIT_ASSIGN
OPpSPLIT_IMPLIM
- OPpSPLIT_LEX
OPpSTATEMENT
OPpSUBSTR_REPL_FIRST
OPpTARGET_MY
@@ -1488,29 +1339,23 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
OpTYPE_set
OutCopFILE
padadd_FIELD
- padadd_NO_DUP_CHECK
padadd_OUR
padadd_STALEOK
- padadd_STATE
padalloc_NO_SV
PAD_BASE_SV
PAD_CLONE_VARS
PAD_COMPNAME
PAD_COMPNAME_FLAGS
- PAD_COMPNAME_FLAGS_isOUR
PAD_COMPNAME_GEN
PAD_COMPNAME_GEN_set
PAD_COMPNAME_OURSTASH
PAD_COMPNAME_PV
PAD_COMPNAME_SV
PAD_COMPNAME_TYPE
- PAD_FAKELEX_ANON
- PAD_FAKELEX_MULTI
padfind_FIELD_OK
padname_dup_inc
PADNAMEf_FIELD
PadnameFIELDINFO
- PadnameFLAGS
PADNAMEf_LVALUE
PADNAMEf_OUR
PADNAME_FROM_PV
@@ -1528,9 +1373,7 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
PadnameLVALUE_on
PadnameOURSTASH
PadnameOURSTASH_set
- PadnameOUTER
PadnamePROTOCV
- PadnameTYPE
PadnameTYPE_set
padnew_CLONE
padnew_SAVE
@@ -1543,8 +1386,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
PAD_SETSV
PAD_SVl
panic_write2
- PARENT_FAKELEX_FLAGS
- PARENT_PAD_INDEX
PerlEnv_putenv
PIPE_OPEN_MODE
PIPESOCK_MODE
@@ -1579,39 +1420,27 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
PMf_USED
PMf_USE_RE_EVAL
PMf_WILDCARD
- PM_GETRE
PM_GETRE_raw
- PmopSTASH
- PmopSTASHPV
PmopSTASHPV_set
PmopSTASH_set
PM_SETRE
PM_SETRE_raw
- PNf
- PNfARG
PoisonPADLIST
POISON_SV_HEAD
POPpconstx
- POPSTACK_TO
POSIX_CC_COUNT
POSIX_SETLOCALE_LOCK
POSIX_SETLOCALE_UNLOCK
PRESCAN_VERSION
PRIVSHIFT
- PTHREAD_ATFORK
PTHREAD_CREATE
PTHREAD_GETSPECIFIC
PTHREAD_GETSPECIFIC_INT
PTHREAD_INIT_SELF
PUSH_MULTICALL_FLAGS
- PUSHSTACK
PUSHSTACK_INIT_HWM
PVf_QUOTEDPREFIX
- pWARN_ALL
- pWARN_NONE
- pWARN_STD
QR_PAT_MODS
- QUESTION_MARK_CTRL
RCPVf_ALLOW_EMPTY
RCPVf_NO_COPY
RCPVf_USE_STRLEN
@@ -1716,11 +1545,7 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
RMS_FNF
RMS_ISI
RMS_PRV
- ROTL32
- ROTL64
ROTL_UV
- ROTR32
- ROTR64
ROTR_UV
RsPARA
RsRECORD
@@ -1730,11 +1555,7 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
RV2CVOPCV_FLAG_MASK
RV2CVOPCV_RETURN_STUB
RX_CHECK_SUBSTR
- RX_COMPFLAGS
- RX_ENGINE
- RX_EXTFLAGS
RXf_BASE_SHIFT
- RXf_CHECK_ALL
RXf_COPY_DONE
RXf_EVAL_SEEN
RXf_INTUIT_TAIL
@@ -1813,9 +1634,7 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
RXp_PRE_PREFIX
RX_PPRIVATE
RXp_QR_ANONCV
- RX_PRECOMP
RX_PRECOMP_const
- RX_PRELEN
RX_PRE_PREFIX
RXp_SAVED_COPY
RXp_SUBBEG
@@ -1833,10 +1652,7 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
RX_SUBOFFSET
RX_SUBSTRS
RX_TAINT_on
- RX_UTF8
RX_WRAPLEN
- RX_WRAPPED
- RX_WRAPPED_const
RX_ZERO_LEN
SAVEADELETE
SAVECLEARSV
@@ -1849,11 +1665,9 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
SAVECOPSTASH_FREE
SAVECURCOPWARNINGS
SAVE_ERRNO
- SAVEFREECOPHH
SAVEFREEPADNAME
SAVEGENERICPV
SAVEHDELETE
- SAVEHINTS
SAVE_MASK
SAVEPADSVANDMORTALIZE
SAVEPARSER
@@ -1949,7 +1763,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
SET_NUMERIC_STANDARD
SET_NUMERIC_UNDERLYING
SETp
- SETs
SET_SVANY_FOR_BODYLESS_IV
SET_SVANY_FOR_BODYLESS_NV
SETTARG
@@ -1957,7 +1770,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
SET_THREAD_SELF
SETu
share_hek_hek
- sharepvn
SHUTDOWN_TERM
SINGLE_PAT_MOD
SIPHASH_SEED_STATE
@@ -2069,11 +1881,9 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
SvNOK_nogthink
SvNOKp_on
SvNVXx
- SvOK_off
SvOK_off_exc_UV
SvOKp
SvOOK_on
- SvPADMY
SvPADSTALE
SvPADSTALE_off
SvPADSTALE_on
@@ -2119,12 +1929,9 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
SvSMAGICAL_off
SvSMAGICAL_on
SvTAIL
- SvTEMP
SvTEMP_on
- SvTHINKFIRST
SVt_MASK
SvTRUEx_nomg
- SVTYPEMASK
SV_UNDEF_RETURNS_NULL
SvUOK_nog
SvUOK_nogthink
@@ -2139,9 +1946,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
TARGn
TARGu
THR
- toFOLD_LC
- toFOLD_uni
- toLOWER_uni
TOO_LATE_FOR
TOPi
TOPl
@@ -2156,18 +1960,13 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
TOPpx
TOPu
TOPul
- toTITLE_uni
toU8_FOLD_LC
toU8_LOWER_LC
toU8_UPPER_LC
toUPPER_LATIN1_MOD
- toUPPER_LC
- toUPPER_uni
tryAMAGICbin_MG
- tryAMAGICunDEREF
tryAMAGICun_MG
TS_W32_BROKEN_LOCALECONV
- tTHX
TWO_BYTE_UTF8_TO_NATIVE
TWO_BYTE_UTF8_TO_UNI
TYPE_CHARS
@@ -2180,9 +1979,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
U32_MIN
U8_MAX
U8_MIN
- U8TO16_LE
- U8TO32_LE
- U8TO64_LE
U_I
U_L
UNICODE_BYTE_ORDER_MARK
@@ -2206,7 +2002,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
UNLINK
UNLOCK_DOLLARZERO_MUTEX
UNLOCK_LC_NUMERIC_STANDARD
- UNOP_AUX_item_sv
unpackWARN1
unpackWARN2
unpackWARN3
@@ -2270,20 +2065,13 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
UTF8_EIGHT_BIT_HI
UTF8_EIGHT_BIT_LO
UTF8_GOT_LONG_WITH_VALUE
- UTF8_IS_ABOVE_LATIN1
UTF8_IS_ABOVE_LATIN1_START
- UTF8_IS_CONTINUATION
- UTF8_IS_CONTINUED
- UTF8_IS_DOWNGRADEABLE_START
UTF8_IS_NEXT_CHAR_DOWNGRADEABLE
UTF8_IS_NONCHAR_GIVEN_THAT_NON_SUPER_AND_GE_PROBLEMATIC
- UTF8_IS_START
UTF8_IS_START_base
UTF8_MAX_FOLD_CHAR_EXPAND
UTF8_MAXLEN
UTF8_MIN_CONTINUATION_BYTE
- utf8_to_utf16
- utf8_to_utf16_reversed
UTF8_TWO_BYTE_HI
UTF8_TWO_BYTE_HI_nocast
UTF8_TWO_BYTE_LO
@@ -2333,26 +2121,17 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
XDIGIT_VALUE
xio_any
xio_dirp
- xiv_iv
- xlv_targoff
XOPd_xop_class
XOPd_xop_desc
XOPd_xop_dump
XOPd_xop_name
XOPd_xop_peep
- XOPf_xop_class
- XOPf_xop_desc
XOPf_xop_dump
- XOPf_xop_name
XOPf_xop_peep
XORSHIFT128_set
- XPUSHTARG
XPUSHundef
- xpv_len
- XS_DYNAMIC_FILENAME
XS_INTERNAL
XTENDED_PAT_MOD
- xuv_uv
xV_FROM_REF
YYEMPTY
YYSTYPE_IS_DECLARED
@@ -2398,7 +2177,6 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
CC_XDIGIT_
CHECK_AND_OUTPUT_WIDE_LOCALE_CP_MSG_
CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG_
- CHECK_AND_WARN_PROBLEMATIC_LOCALE_
CHECK_MALLOC_TOO_LATE_FOR_
DEBUG_LOCALE_INITIALIZATION_
DFA_RETURN_FAILURE_
@@ -2485,6 +2263,240 @@ my %unresolved_visibility_overrides = map { $_ => 1 } qw(
XPV_HEAD_
);
+# These are separated out from the above list while working on getting both to
+# be empty. The uses in here can be changed without worrying about backwards
+# compatibility. That's not to say that there aren't uses in cpan that can't
+# be so easily changed.
+my @unresolved_visibility_overrides_but_extensions_definitely_need_these =
+ qw(
+ AvMAX
+ AvREAL
+ CALLREGEXEC
+ CHECK_AND_WARN_PROBLEMATIC_LOCALE_
+ CopHINTHASH_get
+ COP_SEQ_RANGE_HIGH
+ COP_SEQ_RANGE_LOW
+ CvANON
+ CvANONCONST
+ CvANONCONST_off
+ CvANONCONST_on
+ CvCLONED
+ CvCONST
+ CvFLAGS
+ CVf_LEXICAL
+ CVf_LVALUE
+ CVf_METHOD
+ CVf_NOWARN_AMBIGUOUS
+ CvHSCXT
+ CvLVALUE
+ CvLVALUE_on
+ CvREFCOUNTED_ANYSV
+ CvREFCOUNTED_ANYSV_on
+ CvXS_RCSTACK_off
+ CvXS_RCSTACK_on
+ CxTYPE
+ DOSISH
+ DOUBLE_IS_IEEE_FORMAT
+ DPTR2FPTR
+ ENVr_LOCALEr_LOCK
+ ENVr_LOCALEr_UNLOCK
+ EXPECT
+ FmLINES
+ FPTR2DPTR
+ FreeOp
+ Fstat
+ G_NODEBUG
+ GvCVGEN
+ GvESTASH
+ gv_fetchmethod_flags
+ GvFILEGV
+ GvFILE_HEK
+ GvFLAGS
+ GvGP
+ GvGPFLAGS
+ GvIOp
+ GvLINE
+ GvREFCNT
+ HAS_PASSWD
+ HEKf
+ HEKfARG
+ HINT_BLOCK_SCOPE
+ HINT_INTEGER
+ HINT_LOCALIZE_HH
+ HS_CXT
+ HS_KEYp
+ HvAUX
+ HV_DELETE
+ HvENAME_HEK
+ HvHasENAME
+ HvRAND_get
+ HvRITER
+ HvSHAREKEYS_on
+ I32_MIN
+ I8_TO_NATIVE_UTF8
+ inRANGE
+ isALNUM_uni
+ isALPHANUMERIC_uni
+ isALPHA_uni
+ isASCII_uni
+ isBLANK_uni
+ isCNTRL_uni
+ isDIGIT_uni
+ isGRAPH_uni
+ isIDCONT_uni
+ isIDFIRST_uni
+ isLOWER_uni
+ isPRINT_uni
+ isPSXSPC_uni
+ isPUNCT_uni
+ isREGEXP
+ isSPACE_uni
+ isUPPER_uni
+ isUTF8_POSSIBLY_PROBLEMATIC
+ isVERTWS_uni
+ isVERTWS_utf8_safe
+ isVERTWS_uvchr
+ isWORDCHAR_uni
+ isXDIGIT_uni
+ KEYWORD_PLUGIN_EXPR
+ KEYWORD_PLUGIN_STMT
+ kUNOP
+ LC_COLLATE_LOCK
+ LC_COLLATE_UNLOCK
+ LEAVE_SCOPE
+ LINE_Tf
+ LONGDOUBLE_DOUBLEDOUBLE
+ LvTARG
+ LvTARGLEN
+ LvTARGOFF
+ LvTYPE
+ MAXO
+ MDEREF_ACTION_MASK
+ MDEREF_AV_gvav_aelem
+ MDEREF_AV_gvsv_vivify_rv2av_aelem
+ MDEREF_AV_padav_aelem
+ MDEREF_AV_padsv_vivify_rv2av_aelem
+ MDEREF_AV_pop_rv2av_aelem
+ MDEREF_AV_vivify_rv2av_aelem
+ MDEREF_FLAG_last
+ MDEREF_HV_gvhv_helem
+ MDEREF_HV_gvsv_vivify_rv2hv_helem
+ MDEREF_HV_padhv_helem
+ MDEREF_HV_padsv_vivify_rv2hv_helem
+ MDEREF_HV_pop_rv2hv_helem
+ MDEREF_HV_vivify_rv2hv_helem
+ MDEREF_INDEX_const
+ MDEREF_INDEX_gvsv
+ MDEREF_INDEX_MASK
+ MDEREF_INDEX_none
+ MDEREF_INDEX_padsv
+ MDEREF_reload
+ MDEREF_SHIFT
+ MEM_SIZE
+ NewOp
+ NO_ENV_ARRAY_IN_MAIN
+ NOT_REACHED
+ NSIG
+ NV_INF
+ NV_NAN
+ NV_NAN_IS_SIGNALING
+ NV_NAN_PAYLOAD_MASK
+ NV_NAN_PAYLOAD_PERM
+ NV_NAN_SET_SIGNALING
+ OA_CLASS_MASK
+ OPCODE
+ OPf_MOD
+ OPf_PARENS
+ OPf_REF
+ OPf_SPECIAL
+ OPf_WANT
+ OPpCONST_BARE
+ OPpCONST_ENTERED
+ op_pmflags
+ op_pmoffset
+ OPpOUR_INTRO
+ OPpPADRANGE_COUNTMASK
+ OPpPV_IS_UTF8
+ OPpSPLIT_ASSIGN
+ OPpSPLIT_LEX
+ padadd_NO_DUP_CHECK
+ padadd_STATE
+ PAD_COMPNAME_FLAGS_isOUR
+ PAD_FAKELEX_ANON
+ PAD_FAKELEX_MULTI
+ PadnameFLAGS
+ PadnameOUTER
+ PadnameTYPE
+ PARENT_FAKELEX_FLAGS
+ PARENT_PAD_INDEX
+ PM_GETRE
+ PmopSTASH
+ PmopSTASHPV
+ PNf
+ PNfARG
+ POPSTACK_TO
+ PTHREAD_ATFORK
+ PUSHSTACK
+ pWARN_ALL
+ pWARN_NONE
+ pWARN_STD
+ QUESTION_MARK_CTRL
+ ROTL32
+ ROTL64
+ ROTR32
+ ROTR64
+ RX_COMPFLAGS
+ RX_ENGINE
+ RX_EXTFLAGS
+ RXf_CHECK_ALL
+ RX_PRECOMP
+ RX_PRELEN
+ RX_UTF8
+ RX_WRAPPED
+ RX_WRAPPED_const
+ SAVEFREECOPHH
+ SAVEHINTS
+ SETs
+ sharepvn
+ SvOK_off
+ SvPADMY
+ SvTEMP
+ SvTHINKFIRST
+ SVTYPEMASK
+ toFOLD_LC
+ toFOLD_uni
+ toLOWER_uni
+ toTITLE_uni
+ toUPPER_LC
+ toUPPER_uni
+ tryAMAGICunDEREF
+ tTHX
+ U8TO16_LE
+ U8TO32_LE
+ U8TO64_LE
+ UNOP_AUX_item_sv
+ UTF8_IS_ABOVE_LATIN1
+ UTF8_IS_CONTINUATION
+ UTF8_IS_CONTINUED
+ UTF8_IS_DOWNGRADEABLE_START
+ UTF8_IS_START
+ utf8_to_utf16
+ utf8_to_utf16_reversed
+ xiv_iv
+ xlv_targoff
+ XOPf_xop_class
+ XOPf_xop_desc
+ XOPf_xop_name
+ XPUSHTARG
+ xpv_len
+ XS_DYNAMIC_FILENAME
+ xuv_uv
+ );
+
+# Add to main list
+$unresolved_visibility_overrides{$_} = 1
+ for @unresolved_visibility_overrides_but_extensions_definitely_need_these;
+
# The keys of this hash are the header files that aren't automatically pulled
# in by the typical module which uses: EXTERN.h, perl.h, and XSUB.h. The
# values of each header are the symbols in it whose visibility is unresolved.
diff --git a/t/porting/symbol_visibility.t b/t/porting/symbol_visibility.t
index 8675f62634..1a9a87ec7b 100644
--- a/t/porting/symbol_visibility.t
+++ b/t/porting/symbol_visibility.t
@@ -10,27 +10,36 @@ require './test.pl';
plan(1);
my $regen = '../regen/embed.pl';
-my $hash_name = '%unresolved_visibility_overrides';
+
+# Make sure the sum of the lengths of the contents of the lists hasn't
+# changed.
+my %list_names = (
+ '%unresolved_visibility_overrides' => 1,
+ '@unresolved_visibility_overrides_but_extensions_definitely_need_these' => 1,
+);
+my $list_re = join '|', keys %list_names;
open my $regen_fh, '<', $regen or die "Can't open $regen: $!";
my $string = "";
-while (<$regen_fh>) {
- next unless /my \s+ $hash_name \s+ = \s+ /x;
- <$regen_fh>; # Don't include the header
+LIST:
+while (keys %list_names) {
+ while (defined (my $line = <$regen_fh>)) {
+ next unless $line =~ /my \s+ ($list_re) \s+ = \s+ /x;
+ delete $list_names{$1};
- while (<$regen_fh>) {
- goto found if / ^ \s* \); /x;
- $string .= $_;
- }
-
- last;
-}
+ <$regen_fh>; # Don't include the header
-die "Could not parse $regen";
+ while (defined ($line = <$regen_fh>)) {
+ next LIST if $line =~ / ^ \s* \); /x;
+ $string .= $line;
+ }
-found:
+ last;
+ }
+}
+die "Could not parse $regen" if keys %list_names;
close $regen_fh or die "Couldn't close $regen: $!";
@@ -44,13 +53,13 @@ close $data_fh or die "Couldn't close $length_file: $!";
chomp $stored_length;
if (! is($new_length, $stored_length,
- "regen/embed.pl: '$hash_name' length unchanged"))
+ "regen/embed.pl: unresolved lists length unchanged"))
{
if ($new_length < $stored_length) {
open my $data_fh, '>', $length_file
or die "Can't open $length_file: $!";
diag(<<~"EOT");
- Thank you for removing symbol(s) from '$hash_name'.
+ Thank you for removing unresolved symbols.
Now you must commit the change.
EOT
@@ -58,10 +67,10 @@ if (! is($new_length, $stored_length,
close $data_fh or die "Couldn't close $length_file: $!";
}
else {
- diag(<<EOT);
-Thou shalt not add anything to $hash_name in
-$regen. See "Symbol visibility" in perlhacktips.
-
+ my $msg = "Thou shalt not add any symbols to any of: "
+ . join " or ", keys(%list_names)
+ . "\nin $regen. See \"Symbol visibility\" in perlhacktips.";
+ $msg .= <<EOT;
The preferred solution is to document the symbols, as described in
'embed.fnc'. If you don't have time for that immediately, add them instead
to '\@pending_documentation_symbols' for now.