The int64 RFC introduced a number renames for common types, macros and zpp specifiers, which are both unnecessary and confusing. This RFC proposes to revert the bulk of these renames and use a naming scheme that is consistent with our original types and the terminology used by the C community at large.
The most significant naming changes introduced by the int64 RFC are:
zend_int_t
and zend_uint_t
are the new 64bit-on-64bit-platforms types.IS_LONG
is changed to IS_INT
, Z_LVAL
to Z_IVAL
, etc.Z_STRLEN
is changed to Z_STRSIZE
zend_parse_parameters
uses i
and I
instead of l
and L
.These changes are disapproved of for the following reasons:
zend_int_t
type (which is a 64bit-on-64bit type) and zend_int
(which is a 32bit type). Apart from the _t
suffix the name is the same, but the meaning is totally different._t
suffixes for types. This introduces a new type naming convention that is not used anywhere else. (Probably this is done to avoid clashing with the previous point.)_t
are reserved by the POSIX standard.int
for an 64bit type goes against the normal expectations of a C programmer (ILP64 systems are rare). The meaning of the zend_int_t
type is much closer to the long
type.Instead the following alternative naming is proposed:
zend_int
and zend_uint
as 32bit types (same as 64bit RFC)zend_long
and zend_ulong
as the 64bit-on-64bit-platforms type. As such this type stays the same as previously, with the tweak that it will be 64bit on LLP64 platforms as well.IS_INT
, Z_IVAL
, Z_STRSIZE
, i
, I
, etc. The original names will be used instead.As this is just search&replace renaming a patch will be provided once we have reached a descision on naming.