New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
non_bincompat_options is a lie #13904
Comments
From @bulk88Created by @bulk88I was looking through what creates -V. I find issues with In PL_bincompat_options in perl.h it says /* These are all the compile time options that affect binary compatibility.
Other compile time options that are binary compatible are in perl.c
Both are combined for the output of perl -V
However, this string will be embedded in any shared perl library, which will
allow us add a comparison check in perlmain.c in the near future. */ So PL_bincompat_options means, if its not identical between XS/object The name of the var is incomprehensible to me. Does Anyway since PL_bincompat_options defines one side, the other one is Onto specific entries in non_bincompat_options. PERL_DONT_CREATE_GVSV affects the definition of GvSVn in gv.h yet is in DEBUGGING affects existance of certain exports (Perl_pad_sv for example) #ifdef DEBUGGING
# define PAD_SV(po) pad_sv(po)
# define PAD_SETSV(po,sv) pad_setsv(po,sv)
#else
# define PAD_SV(po) (PL_curpad[po])
# define PAD_SETSV(po,sv) PL_curpad[po] = (sv)
#endif PERL_IS_MINIPERL is in non_bincompat_options, miniperl has Dynaloader, OH RLY? PERL_MEM_LOG is in non_bincompat_options, yet creates a NO_TAINT_SUPPORT is in non_bincompat_options yet in sv.h I see #ifdef NO_TAINT_SUPPORT
# define SvTAINTED(sv) 0
#else
# define SvTAINTED(sv) (SvMAGICAL(sv) && sv_tainted(sv))
#endif Its not a very bad incompatibility, since I think sv_tainted still PERL_NEW_COPY_ON_WRITE is in non_bincompat_options, yet sv.h has # ifdef PERL_NEW_COPY_ON_WRITE
# define SvCANCOW(sv) \
(SvIsCOW(sv) \
? SvLEN(sv) ? CowREFCNT(sv) != SV_COW_REFCNT_MAX : 1 \
: (SvFLAGS(sv) & CAN_COW_MASK) == CAN_COW_FLAGS \
&& SvCUR(sv)+1 < SvLEN(sv))
/* Note: To allow 256 COW "copies", a refcnt of 0 means 1. */
# define CowREFCNT(sv) (*(U8 *)(SvPVX(sv)+SvLEN(sv)-1))
# define SV_COW_REFCNT_MAX ((1 << sizeof(U8)*8) - 1)
# define CAN_COW_MASK (SVf_POK|SVf_ROK|SVp_POK|SVf_FAKE| \
SVf_OOK|SVf_BREAK|SVf_READONLY)
# endif which is, or isn't public API? but anyway, new COW and old COW use Perl Info
|
I don't see anything actionable here. |
Migrated from rt.perl.org#122032 (status was 'new')
Searchable as RT122032$
The text was updated successfully, but these errors were encountered: