rfc:string-size_t:progress
This is an old revision of the document!
Quick start
The feature branch is http://git.php.net/?p=php-src.git;a=shortlog;h=refs/heads/str_size_and_int64
Currently int64 support is disabled by default, size_t support is enabled by default
- to build with size_t and int64 support use --enable-zint64 , size_t is enabled by default
- to build without size_t and int64 support, use --enable-zstrlen , int64 is disabled by default
Relevant headers
- Zend/zend_types.h
- Zend/zend_int.h
- Zend/zend_stream.h
- main/php_stream.h
New datatypes/functions
- zend_str_size has to be used for all the string sizes
- zend_int_t, zend_uint_t are to be used instead of long and ulong
- zend_off_t should be used instead of off_t
- zend_stat_t, php_int_t should be used instead of “struct stat”
- zend_fstat(), zend_stat_fn() macros are suitable to handle the *_stat_t types
BE AWARE OF WHAT size_t IS, READ SOME DOC BEFORE STARTING TO AVOID TRIVIAL MISTAKES
New macros
- Z_STRSIZE is the replacement for Z_STRLEN
- ZEND_INT_MAX is the replacement for LONG_MAX, as well ZEND_UINT_MAX, ZEND_SIZE_MAX for the corresponding old macros
Accepting values from userland with zend_parse_parameters()
- “S” to accept string argument, the length has to be declared as zend_str_size, to replace the string length related variables with size_t, the appropriate macros from Zend/zend_types.h should be used (zend_str_size_int, zend_str_size_long, etc.)
- “P” is the replacement for “p”
- “i” to accept integer argument, the internal var has to be declared as php_int_t (inside PHP) or zend_int_t (inside Zend)
- “I” to accept integer argument with range check, the internal var has to be declared as php_int_t (inside PHP) or zend_int_t (inside Zen
Progress
Initial work is done by ircmaxell, with that it compiles on linux and windows.
Area | Assigned | Status size_t | Status int64 |
---|---|---|---|
Zend | weltling | done | in progress |
TSRM | weltling | done | in progress |
main | weltling | done | in progress |
sapi/aolserver | not started | not started | |
sapi/apache | not started | not started | |
sapi/apache2filter | not started | not started | |
sapi/apache2handler | not started | not started | |
sapi/apache_hooks | not started | not started | |
sapi/caudium | not started | not started | |
sapi/cgi | not started | not started | |
sapi/cli | done | in progress | |
sapi/continuity | not started | not started | |
sapi/embed | not started | not started | |
sapi/fpm | not started | not started | |
sapi/isapi | not started | not started | |
sapi/litespeed | not started | not started | |
sapi/milter | not started | not started | |
sapi/nsapi | not started | not started | |
sapi/phttpd | not started | not started | |
sapi/pi3web | not started | not started | |
sapi/roxen | not started | not started | |
sapi/tests | not started | not started | |
sapi/thttpd | not started | not started | |
sapi/tux | not started | not started | |
sapi/webjames | not started | not started | |
not started | not started | ||
ext/ | |||
bz2 | not started | not started | |
calendar | not started | not started | |
com_dotnet | not started | not started | |
ctype | not started | not started | |
curl | not started | not started | |
date | done | almost done | |
dba | not started | not started | |
dom | not started | not started | |
enchant | not started | not started | |
ereg | not started | not started | |
exif | done | not started | |
fileinfo | not started | not started | |
filter | not started | not started | |
ftp | not started | not started | |
gd | not started | not started | |
gettext | not started | not started | |
gmp | not started | not started | |
hash | not started | not started | |
iconv | weltling | done | not started |
imap | not started | not started | |
interbase | not started | not started | |
intl | done, req review | not started | |
json | not started | not started | |
ldap | not started | not started | |
libxml | weltling | in progress | not started |
mbstring | done | not started | |
mcrypt | not started | not started | |
mssql | not started | not started | |
mysql | not started | not started | |
mysqli | not started | not started | |
mysqlnd | not started | not started | |
oci8 | not started | not started | |
odbc | not started | not started | |
opcache | not started | not started | |
openssl | not started | not started | |
pcntl | not started | not started | |
pcre | done | in progress | |
pdo | not started | not started | |
pdo_dblib | not started | not started | |
pdo_mysql | not started | not started | |
pdo_oci | not started | not started | |
pdo_odbc | not started | not started | |
pdo_pgsql | not started | not started | |
pdo_sqlite | not started | not started | |
pgsql | not started | not started | |
phar | not started | not started | |
posix | done | not started | |
pspell | not started | not started | |
readline | not started | not started | |
recode | not started | not started | |
reflection | not started | not started | |
session | not started | not started | |
shmop | not started | not started | |
simpexml | weltling | in progress | not started |
skeleton | not started | not started | |
snmp | not started | not started | |
soap | not started | not started | |
sockets | not started | not started | |
spl | not started | almost done | |
sqlite3 | not started | not started | |
standard | done | in progress | |
ssyabse_ct | not started | not started | |
sysvmsg | not started | not started | |
sysvsem | not started | not started | |
sysvshm | not started | not started | |
tidy | not started | not started | |
tokenizer | not started | not started | |
wddx | not started | not started | |
xml | not started | not started | |
xmlreader | not started | not started | |
xmlrpc | not started | not started | |
xmlwriter | not started | not started | |
xsl | not started | not started | |
zip | not started | not started | |
zlib | done | not started |
Zend open questions | status |
---|---|
Array indexing | in progress |
ext/standard open questions | status |
---|---|
Mersenne Twister | not started |
rfc/string-size_t/progress.1384365701.txt.gz · Last modified: 2017/09/22 13:28 (external edit)