From 12679ab7d3c2a210f4123163671b532b8b55d5f9 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Fri, 15 Mar 2024 03:06:35 +0000 Subject: CTAN sync 202403150306 --- .../texlive/tlnet/tlpkg/tlperl/lib/CORE/feature.h | 145 ++++++++++++++++----- 1 file changed, 109 insertions(+), 36 deletions(-) (limited to 'systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/feature.h') diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/feature.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/feature.h index 501bc3a3b1..c862864a06 100644 --- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/feature.h +++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/feature.h @@ -1,4 +1,4 @@ -/* -*- buffer-read-only: t -*- +/* -*- mode: C; buffer-read-only: t -*- !!!!!!! DO NOT EDIT THIS FILE !!!!!!! This file is built by regen/feature.pl. Any changes made here will be lost! @@ -12,24 +12,28 @@ #define HINT_FEATURE_SHIFT 26 -#define FEATURE_BAREWORD_FILEHANDLES_BIT 0x0001 -#define FEATURE_BITWISE_BIT 0x0002 -#define FEATURE___SUB___BIT 0x0004 -#define FEATURE_MYREF_BIT 0x0008 -#define FEATURE_EVALBYTES_BIT 0x0010 -#define FEATURE_FC_BIT 0x0020 -#define FEATURE_INDIRECT_BIT 0x0040 -#define FEATURE_ISA_BIT 0x0080 -#define FEATURE_MULTIDIMENSIONAL_BIT 0x0100 -#define FEATURE_POSTDEREF_QQ_BIT 0x0200 -#define FEATURE_REFALIASING_BIT 0x0400 -#define FEATURE_SAY_BIT 0x0800 -#define FEATURE_SIGNATURES_BIT 0x1000 -#define FEATURE_STATE_BIT 0x2000 -#define FEATURE_SWITCH_BIT 0x4000 -#define FEATURE_TRY_BIT 0x8000 -#define FEATURE_UNIEVAL_BIT 0x10000 -#define FEATURE_UNICODE_BIT 0x20000 +#define FEATURE_BAREWORD_FILEHANDLES_BIT 0x0001 +#define FEATURE_BITWISE_BIT 0x0002 +#define FEATURE_CLASS_BIT 0x0004 +#define FEATURE___SUB___BIT 0x0008 +#define FEATURE_MYREF_BIT 0x0010 +#define FEATURE_DEFER_BIT 0x0020 +#define FEATURE_EVALBYTES_BIT 0x0040 +#define FEATURE_MORE_DELIMS_BIT 0x0080 +#define FEATURE_FC_BIT 0x0100 +#define FEATURE_INDIRECT_BIT 0x0200 +#define FEATURE_ISA_BIT 0x0400 +#define FEATURE_MODULE_TRUE_BIT 0x0800 +#define FEATURE_MULTIDIMENSIONAL_BIT 0x1000 +#define FEATURE_POSTDEREF_QQ_BIT 0x2000 +#define FEATURE_REFALIASING_BIT 0x4000 +#define FEATURE_SAY_BIT 0x8000 +#define FEATURE_SIGNATURES_BIT 0x10000 +#define FEATURE_STATE_BIT 0x20000 +#define FEATURE_SWITCH_BIT 0x40000 +#define FEATURE_TRY_BIT 0x80000 +#define FEATURE_UNIEVAL_BIT 0x100000 +#define FEATURE_UNICODE_BIT 0x200000 #define FEATURE_BUNDLE_DEFAULT 0 #define FEATURE_BUNDLE_510 1 @@ -37,10 +41,17 @@ #define FEATURE_BUNDLE_515 3 #define FEATURE_BUNDLE_523 4 #define FEATURE_BUNDLE_527 5 +#define FEATURE_BUNDLE_535 6 +#define FEATURE_BUNDLE_537 7 #define FEATURE_BUNDLE_CUSTOM (HINT_FEATURE_MASK >> HINT_FEATURE_SHIFT) -#define CURRENT_HINTS \ +/* this is preserved for testing and asserts */ +#define OLD_CURRENT_HINTS \ (PL_curcop == &PL_compiling ? PL_hints : PL_curcop->cop_hints) +/* this is the same thing, but simpler (no if) as PL_hints expands + to PL_compiling.cop_hints */ +#define CURRENT_HINTS \ + PL_curcop->cop_hints #define CURRENT_FEATURE_BUNDLE \ ((CURRENT_HINTS & HINT_FEATURE_MASK) >> HINT_FEATURE_SHIFT) @@ -54,21 +65,23 @@ #define FEATURE_FC_IS_ENABLED \ ( \ (CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_515 && \ - CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_527) \ + CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \ || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ FEATURE_IS_ENABLED_MASK(FEATURE_FC_BIT)) \ ) #define FEATURE_ISA_IS_ENABLED \ ( \ - CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ - FEATURE_IS_ENABLED_MASK(FEATURE_ISA_BIT) \ + (CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_535 && \ + CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \ + || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ + FEATURE_IS_ENABLED_MASK(FEATURE_ISA_BIT)) \ ) #define FEATURE_SAY_IS_ENABLED \ ( \ (CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_510 && \ - CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_527) \ + CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \ || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ FEATURE_IS_ENABLED_MASK(FEATURE_SAY_BIT)) \ ) @@ -79,10 +92,22 @@ FEATURE_IS_ENABLED_MASK(FEATURE_TRY_BIT) \ ) +#define FEATURE_CLASS_IS_ENABLED \ + ( \ + CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ + FEATURE_IS_ENABLED_MASK(FEATURE_CLASS_BIT) \ + ) + +#define FEATURE_DEFER_IS_ENABLED \ + ( \ + CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ + FEATURE_IS_ENABLED_MASK(FEATURE_DEFER_BIT) \ + ) + #define FEATURE_STATE_IS_ENABLED \ ( \ (CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_510 && \ - CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_527) \ + CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \ || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ FEATURE_IS_ENABLED_MASK(FEATURE_STATE_BIT)) \ ) @@ -97,7 +122,8 @@ #define FEATURE_BITWISE_IS_ENABLED \ ( \ - CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_527 \ + (CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_527 && \ + CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \ || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ FEATURE_IS_ENABLED_MASK(FEATURE_BITWISE_BIT)) \ ) @@ -112,25 +138,34 @@ #define FEATURE_EVALBYTES_IS_ENABLED \ ( \ (CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_515 && \ - CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_527) \ + CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \ || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ FEATURE_IS_ENABLED_MASK(FEATURE_EVALBYTES_BIT)) \ ) #define FEATURE_SIGNATURES_IS_ENABLED \ ( \ - CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ - FEATURE_IS_ENABLED_MASK(FEATURE_SIGNATURES_BIT) \ + (CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_535 && \ + CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \ + || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ + FEATURE_IS_ENABLED_MASK(FEATURE_SIGNATURES_BIT)) \ ) #define FEATURE___SUB___IS_ENABLED \ ( \ (CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_515 && \ - CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_527) \ + CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \ || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ FEATURE_IS_ENABLED_MASK(FEATURE___SUB___BIT)) \ ) +#define FEATURE_MODULE_TRUE_IS_ENABLED \ + ( \ + CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_537 \ + || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ + FEATURE_IS_ENABLED_MASK(FEATURE_MODULE_TRUE_BIT)) \ + ) + #define FEATURE_REFALIASING_IS_ENABLED \ ( \ CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ @@ -140,7 +175,7 @@ #define FEATURE_POSTDEREF_QQ_IS_ENABLED \ ( \ (CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_523 && \ - CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_527) \ + CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \ || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ FEATURE_IS_ENABLED_MASK(FEATURE_POSTDEREF_QQ_BIT)) \ ) @@ -148,7 +183,7 @@ #define FEATURE_UNIEVAL_IS_ENABLED \ ( \ (CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_515 && \ - CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_527) \ + CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \ || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ FEATURE_IS_ENABLED_MASK(FEATURE_UNIEVAL_BIT)) \ ) @@ -162,7 +197,7 @@ #define FEATURE_UNICODE_IS_ENABLED \ ( \ (CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_511 && \ - CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_527) \ + CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \ || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ FEATURE_IS_ENABLED_MASK(FEATURE_UNICODE_BIT)) \ ) @@ -176,11 +211,17 @@ #define FEATURE_BAREWORD_FILEHANDLES_IS_ENABLED \ ( \ - CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_527 \ + CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_535 \ || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ FEATURE_IS_ENABLED_MASK(FEATURE_BAREWORD_FILEHANDLES_BIT)) \ ) +#define FEATURE_MORE_DELIMS_IS_ENABLED \ + ( \ + CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \ + FEATURE_IS_ENABLED_MASK(FEATURE_MORE_DELIMS_BIT) \ + ) + #define SAVEFEATUREBITS() SAVEI32(PL_compiling.cop_features) @@ -204,6 +245,12 @@ S_enable_feature_bundle(pTHX_ SV *ver) SV *comp_ver = sv_newmortal(); PL_hints = (PL_hints &~ HINT_FEATURE_MASK) | ( + (sv_setnv(comp_ver, 5.037), + vcmp(ver, upg_version(comp_ver, FALSE)) >= 0) + ? FEATURE_BUNDLE_537 : + (sv_setnv(comp_ver, 5.035), + vcmp(ver, upg_version(comp_ver, FALSE)) >= 0) + ? FEATURE_BUNDLE_535 : (sv_setnv(comp_ver, 5.027), vcmp(ver, upg_version(comp_ver, FALSE)) >= 0) ? FEATURE_BUNDLE_527 : @@ -263,6 +310,22 @@ S_magic_sethint_feature(pTHX_ SV *keysv, const char *keypv, STRLEN keylen, } return; + case 'c': + if (keylen == sizeof("feature_class")-1 + && memcmp(subf+1, "lass", keylen - sizeof("feature_")) == 0) { + mask = FEATURE_CLASS_BIT; + break; + } + return; + + case 'd': + if (keylen == sizeof("feature_defer")-1 + && memcmp(subf+1, "efer", keylen - sizeof("feature_")) == 0) { + mask = FEATURE_DEFER_BIT; + break; + } + return; + case 'e': if (keylen == sizeof("feature_evalbytes")-1 && memcmp(subf+1, "valbytes", keylen - sizeof("feature_")) == 0) { @@ -293,7 +356,17 @@ S_magic_sethint_feature(pTHX_ SV *keysv, const char *keypv, STRLEN keylen, return; case 'm': - if (keylen == sizeof("feature_multidimensional")-1 + if (keylen == sizeof("feature_module_true")-1 + && memcmp(subf+1, "odule_true", keylen - sizeof("feature_")) == 0) { + mask = FEATURE_MODULE_TRUE_BIT; + break; + } + else if (keylen == sizeof("feature_more_delims")-1 + && memcmp(subf+1, "ore_delims", keylen - sizeof("feature_")) == 0) { + mask = FEATURE_MORE_DELIMS_BIT; + break; + } + else if (keylen == sizeof("feature_multidimensional")-1 && memcmp(subf+1, "ultidimensional", keylen - sizeof("feature_")) == 0) { mask = FEATURE_MULTIDIMENSIONAL_BIT; break; @@ -378,4 +451,4 @@ S_magic_sethint_feature(pTHX_ SV *keysv, const char *keypv, STRLEN keylen, #endif /* PERL_FEATURE_H_ */ -/* ex: set ro: */ +/* ex: set ro ft=c: */ -- cgit v1.2.3