Skip to content

Commit a93754b

Browse files
committed
Remove PERL_CREATE_GVSV
PERL_DONT_CREATE_GVSV has been the default for more than 20 years now (since bdf3085). There's no real reason to enable PERL_CREATE_GVSV and it was almost undocumented, perlapi mentions it once in passing. It doesn't seem that any code on CPAN checks for PERL_CREATE_GVSV or PERL_DONT_CREATE_GVSV.
1 parent d1a42b4 commit a93754b

File tree

8 files changed

+8
-51
lines changed

8 files changed

+8
-51
lines changed

embed.fnc

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1630,6 +1630,7 @@ Adp |HV * |gv_stashpvn |NN const char *name \
16301630
|I32 flags
16311631
Adp |HV * |gv_stashsv |NN SV *sv \
16321632
|I32 flags
1633+
Admp |GV * |gv_SVadd |NULLOK GV *gv
16331634
Xdpx |void |gv_try_downgrade \
16341635
|NN GV *gv
16351636
op |struct xpvhv_aux *|hv_auxalloc \
@@ -4411,9 +4412,6 @@ Mp |bool |do_exec |NN const char *cmd
44114412
#else
44124413
p |bool |do_exec |NN const char *cmd
44134414
#endif
4414-
#if defined(PERL_DONT_CREATE_GVSV)
4415-
Admp |GV * |gv_SVadd |NULLOK GV *gv
4416-
#endif
44174415
#if defined(PERL_IMPLICIT_SYS)
44184416
CTo |PerlInterpreter *|perl_alloc_using \
44194417
|NN const struct IPerlMem **ipM \

embed.h

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2320,6 +2320,7 @@
23202320
# define Perl_gv_AVadd(mTHX,a) gv_AVadd(a)
23212321
# define Perl_gv_HVadd(mTHX,a) gv_HVadd(a)
23222322
# define Perl_gv_IOadd(mTHX,a) gv_IOadd(a)
2323+
# define Perl_gv_SVadd(mTHX,a) gv_SVadd(a)
23232324
# define Perl_gv_efullname3(mTHX,a,b,c) gv_efullname3(a,b,c)
23242325
# define Perl_gv_fetchmeth(mTHX,a,b,c,d) gv_fetchmeth(a,b,c,d)
23252326
# define Perl_gv_fetchmeth_autoload(mTHX,a,b,c,d) gv_fetchmeth_autoload(a,b,c,d)
@@ -2417,9 +2418,6 @@
24172418
# define Perl_utf16_to_utf8(mTHX,a,b,c,d) utf16_to_utf8(a,b,c,d)
24182419
# define Perl_utf16_to_utf8_reversed(mTHX,a,b,c,d) utf16_to_utf8_reversed(a,b,c,d)
24192420
# endif
2420-
# if defined(PERL_DONT_CREATE_GVSV)
2421-
# define Perl_gv_SVadd(mTHX,a) gv_SVadd(a)
2422-
# endif
24232421
# if !defined(USE_ITHREADS)
24242422
# define Perl_CopFILEGV_set(mTHX,a,b) CopFILEGV_set(a,b)
24252423
# endif
@@ -2430,6 +2428,7 @@
24302428
# define Perl_gv_AVadd gv_AVadd
24312429
# define Perl_gv_HVadd gv_HVadd
24322430
# define Perl_gv_IOadd gv_IOadd
2431+
# define Perl_gv_SVadd gv_SVadd
24332432
# define Perl_gv_efullname3 gv_efullname3
24342433
# define Perl_gv_fetchmeth gv_fetchmeth
24352434
# define Perl_gv_fetchmeth_autoload gv_fetchmeth_autoload
@@ -2525,9 +2524,6 @@
25252524
# define Perl_utf16_to_utf8 utf16_to_utf8
25262525
# define Perl_utf16_to_utf8_reversed utf16_to_utf8_reversed
25272526
# endif
2528-
# if defined(PERL_DONT_CREATE_GVSV)
2529-
# define Perl_gv_SVadd gv_SVadd
2530-
# endif
25312527
# if !defined(USE_ITHREADS)
25322528
# define Perl_CopFILEGV_set CopFILEGV_set
25332529
# endif

gv.c

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -160,11 +160,7 @@ Perl_gv_fetchfile_flags(pTHX_ const char *const name, const STRLEN namelen,
160160
gv = *gvp;
161161
if (!isGV(gv)) {
162162
gv_init(gv, PL_defstash, tmpbuf, tmplen, FALSE);
163-
#ifdef PERL_DONT_CREATE_GVSV
164163
GvSV(gv) = newSVpvn(name, namelen);
165-
#else
166-
sv_setpvn(GvSV(gv), name, namelen);
167-
#endif
168164
}
169165
if (PERLDB_LINE_OR_SAVESRC && !GvAV(gv))
170166
hv_magic(GvHVn(gv), GvAVn(gv), PERL_MAGIC_dbfile);
@@ -210,9 +206,6 @@ Perl_newGP(pTHX_ GV *const gv)
210206
PERL_ARGS_ASSERT_NEWGP;
211207
Newxz(gp, 1, GP);
212208
gp->gp_egv = gv; /* allow compiler to reuse gv after this */
213-
#ifndef PERL_DONT_CREATE_GVSV
214-
gp->gp_sv = newSV_type(SVt_NULL);
215-
#endif
216209

217210
/* PL_curcop may be null here. E.g.,
218211
INIT { bless {} and exit }
@@ -573,7 +566,6 @@ S_gv_init_svtype(pTHX_ GV *gv, const svtype sv_type)
573566
case SVt_PVHV:
574567
(void)GvHVn(gv);
575568
break;
576-
#ifdef PERL_DONT_CREATE_GVSV
577569
case SVt_NULL:
578570
case SVt_PVCV:
579571
case SVt_PVFM:
@@ -585,7 +577,6 @@ S_gv_init_svtype(pTHX_ GV *gv, const svtype sv_type)
585577
If we just cast GvSVn(gv) to void, it ignores evaluating it for
586578
its side effect */
587579
}
588-
#endif
589580
}
590581
}
591582

@@ -1478,9 +1469,7 @@ Perl_gv_autoload_pvn(pTHX_ HV *stash, const char *name, STRLEN len, U32 flags)
14781469

14791470
if (!isGV(vargv)) {
14801471
gv_init_pvn(vargv, varstash, S_autoload, S_autolen, 0);
1481-
#ifdef PERL_DONT_CREATE_GVSV
14821472
GvSV(vargv) = newSV_type(SVt_NULL);
1483-
#endif
14841473
}
14851474
LEAVE;
14861475
varsv = GvSVn(vargv);
@@ -3171,11 +3160,9 @@ Perl_Gv_AMupdate(pTHX_ HV *stash, bool destructing)
31713160
if (!gv_fetchmeth_pvn(stash, "((", 2, -1, 0))
31723161
goto no_table;
31733162
}
3174-
#ifdef PERL_DONT_CREATE_GVSV
31753163
else if (!sv) {
31763164
NOOP; /* Equivalent to !SvTRUE and !SvOK */
31773165
}
3178-
#endif
31793166
else if (SvTRUE(sv))
31803167
/* don't need to set overloading here because fallback => 1
31813168
* is the default setting for classes without overloading */

gv.h

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,7 @@ the need to cast the result to the appropriate type.
9494
9595
Return the SV from the GV.
9696
97-
Prior to Perl v5.9.3, this would add a scalar if none existed. Nowadays, use
98-
C<L</GvSVn>> for that, or compile perl with S<C<-DPERL_CREATE_GVSV>>. See
99-
L<perl5100delta>.
97+
Use C<L</GvSVn>> if you wish to create an empty scalar if the SV slot is empty.
10098
10199
=for apidoc Am|SV*|GvSVn|GV* gv
102100
Like C<L</GvSV>>, but creates an empty scalar if none already exists.
@@ -117,13 +115,9 @@ Return the CV from the GV.
117115
*/
118116

119117
#define GvSV(gv) (GvGP(gv)->gp_sv)
120-
#ifdef PERL_DONT_CREATE_GVSV
121118
#define GvSVn(gv) (*(GvGP(gv)->gp_sv ? \
122119
&(GvGP(gv)->gp_sv) : \
123120
&(GvGP(gv_SVadd(gv))->gp_sv)))
124-
#else
125-
#define GvSVn(gv) GvSV(gv)
126-
#endif
127121

128122
#define GvREFCNT(gv) (GvGP(gv)->gp_refcnt)
129123
#define GvIO(gv) \

perl.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2022,9 +2022,6 @@ S_Internals_V(pTHX_ CV *cv)
20222022
# ifdef PERL_DISABLE_PMC
20232023
" PERL_DISABLE_PMC"
20242024
# endif
2025-
# ifdef PERL_DONT_CREATE_GVSV
2026-
" PERL_DONT_CREATE_GVSV"
2027-
# endif
20282025
# ifdef PERL_EXTERNAL_GLOB
20292026
" PERL_EXTERNAL_GLOB"
20302027
# endif
@@ -4162,9 +4159,7 @@ S_init_main_stash(pTHX)
41624159
SvREFCNT_inc_simple_void(PL_replgv);
41634160
GvMULTI_on(PL_replgv);
41644161
(void)form("%240s",""); /* Preallocate temp - for immediate signals. */
4165-
#ifdef PERL_DONT_CREATE_GVSV
41664162
(void)gv_SVadd(PL_errgv);
4167-
#endif
41684163
sv_grow(ERRSV, 240); /* Preallocate - for immediate signals. */
41694164
CLEAR_ERRSV();
41704165
CopSTASH_set(&PL_compiling, PL_defstash);

perl.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1556,14 +1556,6 @@ Use L</UV> to declare variables of the maximum usable size on this platform.
15561556
#define PERL_MULTICONCAT_HEADER_SIZE 8 /* The number of fields of a
15571557
multiconcat header */
15581558

1559-
/* We no longer default to creating a new SV for GvSV.
1560-
Do this before embed. */
1561-
#ifndef PERL_CREATE_GVSV
1562-
# ifndef PERL_DONT_CREATE_GVSV
1563-
# define PERL_DONT_CREATE_GVSV
1564-
# endif
1565-
#endif
1566-
15671559
#if !defined(HAS_WAITPID) && !defined(HAS_WAIT4) || defined(HAS_WAITPID_RUNTIME)
15681560
#define PERL_USES_PL_PIDSTATUS
15691561
#endif

pp.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1009,9 +1009,6 @@ PP(pp_undef)
10091009
gp_free(MUTABLE_GV(sv));
10101010
Newxz(gp, 1, GP);
10111011
GvGP_set(sv, gp_ref(gp));
1012-
#ifndef PERL_DONT_CREATE_GVSV
1013-
GvSV(sv) = newSV_type(SVt_NULL);
1014-
#endif
10151012
GvLINE(sv) = CopLINE(PL_curcop);
10161013
GvEGV(sv) = MUTABLE_GV(sv);
10171014
GvMULTI_on(sv);

proto.h

Lines changed: 4 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)