Re: 64-bit bugsquash

From: Date: Fri, 18 Jun 2004 08:08:54 +0000
Subject: Re: 64-bit bugsquash
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-10582@lists.php.net to get a copy of this message
There is a header file with PHP type's definition: /Zend/zend_types.h It consists following types: ------------------------------- typedef unsigned char zend_bool; typedef unsigned char zend_uchar; typedef unsigned int zend_uint; typedef unsigned long zend_ulong; typedef unsigned short zend_ushort; ------------------------------- I propose to add several new types with EXACT bit length into this file: ------------------------------- typedef __int8 zend_int8; typedef __int16 zend_int16; typedef __int32 zend_int32; typedef __int64 zend_int64; typedef unsigned __int8 zend_uint8; typedef unsigned __int16 zend_uint16; typedef unsigned __int32 zend_uint32; typedef unsigned __int64 zend_uint64; ------------------------------- If compiler does not support some __int* types, (for example, __int64), we can deal it before zend_* types definition. For example: ------------------------------------- #ifdef COMPILERS_WITHOUT_INT64_TYPE typedef long long __int64; #endif ------------------------------------- Then in other places of PHP sources: - if we need EXACT 8bit integers, we must use zend_int8 type - if we need EXACT 16bit integers, we must use zend_int16 type. etc... It solves such problems as "int is 64bit on FOO compiler" or "long is 32bit on BAR compiler". -- Using Opera's revolutionary e-mail client: http://www.opera.com/m2/

« previous php.internals (#10582) next »