Re: [PHP-DEV] 64-bit PHP 4.3 (extensive long vs int problems)

2002-11-11 Thread Jason T. Greene
Why not just convert to using a long? Is there really a need to have 2
numeric types in the ini system?

-Jason

On Mon, 2002-11-11 at 00:20, Andi Gutmans wrote:
 Hi,
 
 How about changing the INI_ENTRY macros in debug mode to check if we're 
 using UpdateInt/UpdateLong and if so check if sizeof(param) == 
 sizeof(int/long)?
 This could help a lot.
 Andi
 
 At 01:12 PM 11/11/2002 +0800, James Devenish wrote:
 Hi, just some followup, including some general build problems and some
 information about failed tests at the bottom. I have included a set of
 patches against 4.3.0pre2 and against CVS HEAD for anyone who's
 interested in seeking some form of success with PHP 4.3 on a 64-bit
 platform.
 
 Someone will need to tell me what mailing lists to send to, etc (I am
 on php-dev and php-qa to read followups). I'm not sure how to get `make
 test` results to you as the script asks 'would you like to send the
 report to PHP's QA team' but I say 'n' because I can't send or receive
 mail on the machine that I am testing on. I had a few notes about them,
 too. note: I have just real run-tests.php and see a that it submits
 over the web. Will use to this sometime
 
 The `make test` target doesn't work on my test machine (either in the
 4.3.0pre2 or when using buildconf) because my $(CC) contains a space
 character. So as the target is:
 
 test: $(SAPI_CLI_PATH)
 TEST_PHP_DETAILED
  TEST_PHP_EXECUTABLE=$(top_builddir)/$(SAPI_CLI_PATH) \
   TEST_PHP_SRCDIR=$(top_srcdir) \
   CC=$(CC) \
  $(top_builddir)/$(SAPI_CLI_PATH) 
  $(top_srcdir)/run-tests.php $(TESTS)
 
 I change thae second-last line to :
   CC=$(CC) \
 to make it work for me. I don't know how that should be handled in general but
 I thought I should point it out.
 
 Okay, `make test` still not work. Many segfaults in mbstring.
 
 Also, there seems to be something wrong because there are multiple definitions
 of url_adapt_ext, yet only one is used. Also a patch for network.c.
 
 The attached patches are against 4.3.0pre2, which is what I ran `make test`
 with, though I am actually using CVS HEAD with my test web server.
 (From a few days ago.)
 
 Note: I only just realised that if I run `make test` and it print no
 output other than 'Bus error' for a while, it *is* actually testing
 correctly. I didn't realise that `make test` only prints test results at
 the very end and I had been killing it in the middle of the test because
 it didn't seem to be working
 
 So, the patch includes: sundry correction of (int size)=(pointer size)
 assumptions, introduction of OnUpdateLong, some zend_parse_parameters fixes.
 Does not address all instances of sizeof( blah_t ) != sizeof( operand ).
 
 =
 FAILED TEST SUMMARY
 -
 mb_strtoupper() / mb_strtolower() [ext/mbstring/tests/casefold.phpt]
 HTML input/output [ext/mbstring/tests/htmlent.phpt]
 mb_convert_encoding() [ext/mbstring/tests/mb_convert_encoding.phpt]
 mb_ereg() [ext/mbstring/tests/mb_ereg.phpt]
 mb_ereg_search() stuff [ext/mbstring/tests/mb_ereg_search_xxx.phpt]
 mb_strlen() [ext/mbstring/tests/mb_strlen.phpt]
 
 **mbstring: extensive issues with mixed int/pointer.
 
 Test array_merge and array_walk [ext/standard/tests/array/001.phpt]
 Test arsort, asort, krsort, ksort, rsort, and sort 
 [ext/standard/tests/array/002.phpt]
 Test usort, uksort and uasort [ext/standard/tests/array/003.phpt]
 
 **array tests: error in the tests: ext/standard/tests/array/data.inc
contains monkey whereas the test expected results do not. Also, one
test uses pow(2,64) and expects the result to overflow in a 32-bit way.
These problems have been partially fixed in CVS already.
 
 var_dump float test [ext/standard/tests/general_functions/008.phpt]
 overflow check for _php_math_basetozval [ext/standard/tests/math/hexdec.phpt]
 
 **var_dump and hexdec: the expected overflows do not occur with 64-bit
operands :)
 
 Simple math tests [ext/standard/tests/math/abs.phpt]
 Simple math tests [ext/standard/tests/math/round.phpt]
 
 **maths tests: issues with LONG_MIN and LONG_MAX
 
 Various pow() tests [ext/standard/tests/math/pow.phpt]
 
 **no comment from me
 
 crc32() function [ext/standard/tests/strings/crc32.phpt]
 
 **crc32: uses Zend's RETVAL_LONG but test expects 32-bit overflow.
 
 strtotime() function [ext/standard/tests/time/002.phpt]
 
 **no comment from me
 
 Methods via variable name, bug #20120 [tests/classes/bug20120.phpt]
 
 **My bison is bison-1.50, addressed by the bug fix (closed). This
problem was also visible as an error message during PEAR
installation.
 
 =
 
 Given the bison problem, my previous comments about Zend might be
 doubtful. working Mmm, new bison fixed the last failed test. Other
 tests unchanged wrt 4.3.0pre2. Latest CVS version 

Re: [PHP-DEV] 64-bit PHP 4.3 (extensive long vs int problems)

2002-11-11 Thread Andi Gutmans
Well I assume lots of extension maintainers are using int's for all sorts 
of things. I'm not sure it's a good idea to try and catch every last place. 
In any case, even if we convert everything then my suggestion still stands 
because it'd help us catch places which aren't defined correctly.

Andi

At 10:42 AM 11/11/2002 -0600, Jason T. Greene wrote:
Why not just convert to using a long? Is there really a need to have 2
numeric types in the ini system?

-Jason

On Mon, 2002-11-11 at 00:20, Andi Gutmans wrote:
 Hi,

 How about changing the INI_ENTRY macros in debug mode to check if we're
 using UpdateInt/UpdateLong and if so check if sizeof(param) ==
 sizeof(int/long)?
 This could help a lot.
 Andi

 At 01:12 PM 11/11/2002 +0800, James Devenish wrote:
 Hi, just some followup, including some general build problems and some
 information about failed tests at the bottom. I have included a set of
 patches against 4.3.0pre2 and against CVS HEAD for anyone who's
 interested in seeking some form of success with PHP 4.3 on a 64-bit
 platform.
 
 Someone will need to tell me what mailing lists to send to, etc (I am
 on php-dev and php-qa to read followups). I'm not sure how to get `make
 test` results to you as the script asks 'would you like to send the
 report to PHP's QA team' but I say 'n' because I can't send or receive
 mail on the machine that I am testing on. I had a few notes about them,
 too. note: I have just real run-tests.php and see a that it submits
 over the web. Will use to this sometime
 
 The `make test` target doesn't work on my test machine (either in the
 4.3.0pre2 or when using buildconf) because my $(CC) contains a space
 character. So as the target is:
 
 test: $(SAPI_CLI_PATH)
 TEST_PHP_DETAILED
  TEST_PHP_EXECUTABLE=$(top_builddir)/$(SAPI_CLI_PATH) \
   TEST_PHP_SRCDIR=$(top_srcdir) \
   CC=$(CC) \
  $(top_builddir)/$(SAPI_CLI_PATH)
  $(top_srcdir)/run-tests.php $(TESTS)
 
 I change thae second-last line to :
   CC=$(CC) \
 to make it work for me. I don't know how that should be handled in 
general but
 I thought I should point it out.
 
 Okay, `make test` still not work. Many segfaults in mbstring.
 
 Also, there seems to be something wrong because there are multiple 
definitions
 of url_adapt_ext, yet only one is used. Also a patch for network.c.
 
 The attached patches are against 4.3.0pre2, which is what I ran `make 
test`
 with, though I am actually using CVS HEAD with my test web server.
 (From a few days ago.)
 
 Note: I only just realised that if I run `make test` and it print no
 output other than 'Bus error' for a while, it *is* actually testing
 correctly. I didn't realise that `make test` only prints test results at
 the very end and I had been killing it in the middle of the test because
 it didn't seem to be working
 
 So, the patch includes: sundry correction of (int size)=(pointer size)
 assumptions, introduction of OnUpdateLong, some zend_parse_parameters 
fixes.
 Does not address all instances of sizeof( blah_t ) != sizeof( operand ).
 
 =
 FAILED TEST SUMMARY
 -
 mb_strtoupper() / mb_strtolower() [ext/mbstring/tests/casefold.phpt]
 HTML input/output [ext/mbstring/tests/htmlent.phpt]
 mb_convert_encoding() [ext/mbstring/tests/mb_convert_encoding.phpt]
 mb_ereg() [ext/mbstring/tests/mb_ereg.phpt]
 mb_ereg_search() stuff [ext/mbstring/tests/mb_ereg_search_xxx.phpt]
 mb_strlen() [ext/mbstring/tests/mb_strlen.phpt]
 
 **mbstring: extensive issues with mixed int/pointer.
 
 Test array_merge and array_walk [ext/standard/tests/array/001.phpt]
 Test arsort, asort, krsort, ksort, rsort, and sort
 [ext/standard/tests/array/002.phpt]
 Test usort, uksort and uasort [ext/standard/tests/array/003.phpt]
 
 **array tests: error in the tests: ext/standard/tests/array/data.inc
contains monkey whereas the test expected results do not. Also, one
test uses pow(2,64) and expects the result to overflow in a 32-bit way.
These problems have been partially fixed in CVS already.
 
 var_dump float test [ext/standard/tests/general_functions/008.phpt]
 overflow check for _php_math_basetozval 
[ext/standard/tests/math/hexdec.phpt]
 
 **var_dump and hexdec: the expected overflows do not occur with 64-bit
operands :)
 
 Simple math tests [ext/standard/tests/math/abs.phpt]
 Simple math tests [ext/standard/tests/math/round.phpt]
 
 **maths tests: issues with LONG_MIN and LONG_MAX
 
 Various pow() tests [ext/standard/tests/math/pow.phpt]
 
 **no comment from me
 
 crc32() function [ext/standard/tests/strings/crc32.phpt]
 
 **crc32: uses Zend's RETVAL_LONG but test expects 32-bit overflow.
 
 strtotime() function [ext/standard/tests/time/002.phpt]
 
 **no comment from me
 
 Methods via variable name, bug #20120 [tests/classes/bug20120.phpt]
 
 **My bison is bison-1.50, addressed by the bug fix 

Re: [PHP-DEV] 64-bit PHP 4.3 (extensive long vs int problems)

2002-11-11 Thread Dan Kalowsky
On Monday, November 11, 2002, at 02:39 PM, Andi Gutmans wrote:


Well I assume lots of extension maintainers are using int's for all 
sorts of things. I'm not sure it's a good idea to try and catch every 
last place. In any case, even if we convert everything then my 
suggestion still stands because it'd help us catch places which aren't 
defined correctly.

Maybe I've missed the point, or I'm too tired to connect neurons today. 
 But what is the point of trying to correct for places which aren't 
defined correctly?  This seems like a rather odd/bad way of looking at 
this.  If you've defined incorrectly, it just shouldn't work.

I'd rather lean towards Jason's suggestion

---
Dan KalowskyA little less conversation,
http://www.deadmime.org/~danka little more action.
[EMAIL PROTECTED]- A Little Less Conversation,
[EMAIL PROTECTED]Elvis Presley


--
PHP Development Mailing List http://www.php.net/
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] 64-bit PHP 4.3 (extensive long vs int problems)

2002-11-11 Thread Jason T. Greene
OK, though I wasn't arguing against your suggestion; I should have
responded to the previous email in the thread. I was just pointing out
that supporting these two may be overkill, but if its being used as a
stop-gap, and since it doesn't really hurt that much, I suppose it
really doesn't matter.

-Jason

On Mon, 2002-11-11 at 10:42, Jason T. Greene wrote:
 Why not just convert to using a long? Is there really a need to have 2
 numeric types in the ini system?
 
 -Jason
 
 On Mon, 2002-11-11 at 00:20, Andi Gutmans wrote:
  Hi,
  
  How about changing the INI_ENTRY macros in debug mode to check if we're 
  using UpdateInt/UpdateLong and if so check if sizeof(param) == 
  sizeof(int/long)?
  This could help a lot.
  Andi
  
  At 01:12 PM 11/11/2002 +0800, James Devenish wrote:
  Hi, just some followup, including some general build problems and some
  information about failed tests at the bottom. I have included a set of
  patches against 4.3.0pre2 and against CVS HEAD for anyone who's
  interested in seeking some form of success with PHP 4.3 on a 64-bit
  platform.
  
  Someone will need to tell me what mailing lists to send to, etc (I am
  on php-dev and php-qa to read followups). I'm not sure how to get `make
  test` results to you as the script asks 'would you like to send the
  report to PHP's QA team' but I say 'n' because I can't send or receive
  mail on the machine that I am testing on. I had a few notes about them,
  too. note: I have just real run-tests.php and see a that it submits
  over the web. Will use to this sometime
  
  The `make test` target doesn't work on my test machine (either in the
  4.3.0pre2 or when using buildconf) because my $(CC) contains a space
  character. So as the target is:
  
  test: $(SAPI_CLI_PATH)
  TEST_PHP_DETAILED
   TEST_PHP_EXECUTABLE=$(top_builddir)/$(SAPI_CLI_PATH) \
TEST_PHP_SRCDIR=$(top_srcdir) \
CC=$(CC) \
   $(top_builddir)/$(SAPI_CLI_PATH) 
   $(top_srcdir)/run-tests.php $(TESTS)
  
  I change thae second-last line to :
CC=$(CC) \
  to make it work for me. I don't know how that should be handled in general but
  I thought I should point it out.
  
  Okay, `make test` still not work. Many segfaults in mbstring.
  
  Also, there seems to be something wrong because there are multiple definitions
  of url_adapt_ext, yet only one is used. Also a patch for network.c.
  
  The attached patches are against 4.3.0pre2, which is what I ran `make test`
  with, though I am actually using CVS HEAD with my test web server.
  (From a few days ago.)
  
  Note: I only just realised that if I run `make test` and it print no
  output other than 'Bus error' for a while, it *is* actually testing
  correctly. I didn't realise that `make test` only prints test results at
  the very end and I had been killing it in the middle of the test because
  it didn't seem to be working
  
  So, the patch includes: sundry correction of (int size)=(pointer size)
  assumptions, introduction of OnUpdateLong, some zend_parse_parameters fixes.
  Does not address all instances of sizeof( blah_t ) != sizeof( operand ).
  
  =
  FAILED TEST SUMMARY
  -
  mb_strtoupper() / mb_strtolower() [ext/mbstring/tests/casefold.phpt]
  HTML input/output [ext/mbstring/tests/htmlent.phpt]
  mb_convert_encoding() [ext/mbstring/tests/mb_convert_encoding.phpt]
  mb_ereg() [ext/mbstring/tests/mb_ereg.phpt]
  mb_ereg_search() stuff [ext/mbstring/tests/mb_ereg_search_xxx.phpt]
  mb_strlen() [ext/mbstring/tests/mb_strlen.phpt]
  
  **mbstring: extensive issues with mixed int/pointer.
  
  Test array_merge and array_walk [ext/standard/tests/array/001.phpt]
  Test arsort, asort, krsort, ksort, rsort, and sort 
  [ext/standard/tests/array/002.phpt]
  Test usort, uksort and uasort [ext/standard/tests/array/003.phpt]
  
  **array tests: error in the tests: ext/standard/tests/array/data.inc
 contains monkey whereas the test expected results do not. Also, one
 test uses pow(2,64) and expects the result to overflow in a 32-bit way.
 These problems have been partially fixed in CVS already.
  
  var_dump float test [ext/standard/tests/general_functions/008.phpt]
  overflow check for _php_math_basetozval [ext/standard/tests/math/hexdec.phpt]
  
  **var_dump and hexdec: the expected overflows do not occur with 64-bit
 operands :)
  
  Simple math tests [ext/standard/tests/math/abs.phpt]
  Simple math tests [ext/standard/tests/math/round.phpt]
  
  **maths tests: issues with LONG_MIN and LONG_MAX
  
  Various pow() tests [ext/standard/tests/math/pow.phpt]
  
  **no comment from me
  
  crc32() function [ext/standard/tests/strings/crc32.phpt]
  
  **crc32: uses Zend's RETVAL_LONG but test expects 32-bit overflow.
  
  strtotime() function [ext/standard/tests/time/002.phpt]
  
  **no comment from me
  
  Methods via 

Re: [PHP-DEV] 64-bit PHP 4.3 (extensive long vs int problems)

2002-11-11 Thread Andi Gutmans
At 04:31 PM 11/11/2002 -0500, Dan Kalowsky wrote:

On Monday, November 11, 2002, at 02:39 PM, Andi Gutmans wrote:


Well I assume lots of extension maintainers are using int's for all sorts 
of things. I'm not sure it's a good idea to try and catch every last 
place. In any case, even if we convert everything then my suggestion 
still stands because it'd help us catch places which aren't defined correctly.

Maybe I've missed the point, or I'm too tired to connect neurons 
today.  But what is the point of trying to correct for places which aren't 
defined correctly?  This seems like a rather odd/bad way of looking at 
this.  If you've defined incorrectly, it just shouldn't work.

I'd rather lean towards Jason's suggestion

Hmm, the thing is that it will work even if he have one version. It'll 
compile and even work on some machines. I'm saying that in debug mode we 
change the macro to make sure that sizeof(param) == sizeof(type).

Andi


--
PHP Development Mailing List http://www.php.net/
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] 64-bit PHP 4.3 (extensive long vs int problems)

2002-11-10 Thread Jason Greene
I started to work on fixing this problem, but have not had time to
finish my work. I will try to get some time available to work on this
sometime soon.

Thanks,
-Jason

On Sat, 2002-11-09 at 22:25, James Devenish wrote:
 Hi,
 
 Referring to bug #20268 (Bus Error on startup), I have added some
 comments about show-stopping problems with PHP 4.3 with regards to its
 lack of 64-bit cleanliness.  The main problems seem to be Zend's
 OnUpdateInt (which seems misnamed although it uses zend_atoi, it assigns
 to a long) and PHP modules' use of zend_parse_parameters (which again
 acts on longs, not ints, though that has slipped by the authors of some
 modules).  (Please forgive some of the less coherent sentences in my
 comments on the bug.) I have provided patches that demonstrate how I
 managed to get PHP working (in particular with SPARCv9 Solaris 8 and
 Apache 2.0).
 
 Regards,
 A random but concerned 64-bit user.
 
 
 
 -- 
 PHP Development Mailing List http://www.php.net/
 To unsubscribe, visit: http://www.php.net/unsub.php
--
Jason Greene [EMAIL PROTECTED]
 [EMAIL PROTECTED]

The honeymoon is over when he phones to say he'll be late for supper and
she's already left a note that it's in the refrigerator.
-- Bill Lawrence


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, visit: http://www.php.net/unsub.php




Re: [PHP-DEV] 64-bit PHP 4.3 (extensive long vs int problems)

2002-11-10 Thread James Devenish
Hi, just some followup, including some general build problems and some
information about failed tests at the bottom. I have included a set of
patches against 4.3.0pre2 and against CVS HEAD for anyone who's
interested in seeking some form of success with PHP 4.3 on a 64-bit
platform.

Someone will need to tell me what mailing lists to send to, etc (I am
on php-dev and php-qa to read followups). I'm not sure how to get `make
test` results to you as the script asks 'would you like to send the
report to PHP's QA team' but I say 'n' because I can't send or receive
mail on the machine that I am testing on. I had a few notes about them,
too. note: I have just real run-tests.php and see a that it submits
over the web. Will use to this sometime

The `make test` target doesn't work on my test machine (either in the
4.3.0pre2 or when using buildconf) because my $(CC) contains a space
character. So as the target is:

test: $(SAPI_CLI_PATH)
TEST_PHP_DETAILED
TEST_PHP_EXECUTABLE=$(top_builddir)/$(SAPI_CLI_PATH) \
 TEST_PHP_SRCDIR=$(top_srcdir) \
 CC=$(CC) \
$(top_builddir)/$(SAPI_CLI_PATH) $(top_srcdir)/run-tests.php 
$(TESTS)

I change thae second-last line to :
 CC=$(CC) \
to make it work for me. I don't know how that should be handled in general but
I thought I should point it out.

Okay, `make test` still not work. Many segfaults in mbstring.

Also, there seems to be something wrong because there are multiple definitions
of url_adapt_ext, yet only one is used. Also a patch for network.c.

The attached patches are against 4.3.0pre2, which is what I ran `make test`
with, though I am actually using CVS HEAD with my test web server.
(From a few days ago.)

Note: I only just realised that if I run `make test` and it print no
output other than 'Bus error' for a while, it *is* actually testing
correctly. I didn't realise that `make test` only prints test results at
the very end and I had been killing it in the middle of the test because
it didn't seem to be working

So, the patch includes: sundry correction of (int size)=(pointer size)
assumptions, introduction of OnUpdateLong, some zend_parse_parameters fixes. 
Does not address all instances of sizeof( blah_t ) != sizeof( operand ).

=
FAILED TEST SUMMARY
-
mb_strtoupper() / mb_strtolower() [ext/mbstring/tests/casefold.phpt]
HTML input/output [ext/mbstring/tests/htmlent.phpt]
mb_convert_encoding() [ext/mbstring/tests/mb_convert_encoding.phpt]
mb_ereg() [ext/mbstring/tests/mb_ereg.phpt]
mb_ereg_search() stuff [ext/mbstring/tests/mb_ereg_search_xxx.phpt]
mb_strlen() [ext/mbstring/tests/mb_strlen.phpt]

**mbstring: extensive issues with mixed int/pointer.

Test array_merge and array_walk [ext/standard/tests/array/001.phpt]
Test arsort, asort, krsort, ksort, rsort, and sort [ext/standard/tests/array/002.phpt]
Test usort, uksort and uasort [ext/standard/tests/array/003.phpt]

**array tests: error in the tests: ext/standard/tests/array/data.inc
  contains monkey whereas the test expected results do not. Also, one
  test uses pow(2,64) and expects the result to overflow in a 32-bit way.
  These problems have been partially fixed in CVS already.

var_dump float test [ext/standard/tests/general_functions/008.phpt]
overflow check for _php_math_basetozval [ext/standard/tests/math/hexdec.phpt]

**var_dump and hexdec: the expected overflows do not occur with 64-bit
  operands :)

Simple math tests [ext/standard/tests/math/abs.phpt]
Simple math tests [ext/standard/tests/math/round.phpt]

**maths tests: issues with LONG_MIN and LONG_MAX

Various pow() tests [ext/standard/tests/math/pow.phpt]

**no comment from me

crc32() function [ext/standard/tests/strings/crc32.phpt]

**crc32: uses Zend's RETVAL_LONG but test expects 32-bit overflow.

strtotime() function [ext/standard/tests/time/002.phpt]

**no comment from me

Methods via variable name, bug #20120 [tests/classes/bug20120.phpt]

**My bison is bison-1.50, addressed by the bug fix (closed). This
  problem was also visible as an error message during PEAR
  installation.

=

Given the bison problem, my previous comments about Zend might be
doubtful. working Mmm, new bison fixed the last failed test. Other
tests unchanged wrt 4.3.0pre2. Latest CVS version currently seems to
have various other problems and I'll assume that's just code flux and I
will try again later.

--end--


Index: Zend/zend_ini.c
===
RCS file: /repository/Zend/zend_ini.c,v
retrieving revision 1.23
diff -u -r1.23 zend_ini.c
--- Zend/zend_ini.c 23 Sep 2002 12:00:39 -  1.23
+++ Zend/zend_ini.c 11 Nov 2002 03:02:32 -
 -430,6 +430,23 
 
 ZEND_API ZEND_INI_MH(OnUpdateInt)
 {
+   int *p;
+#ifndef ZTS
+   char *base = (char *) 

Re: [PHP-DEV] 64-bit PHP 4.3 (extensive long vs int problems)

2002-11-10 Thread Andi Gutmans
Hi,

How about changing the INI_ENTRY macros in debug mode to check if we're 
using UpdateInt/UpdateLong and if so check if sizeof(param) == 
sizeof(int/long)?
This could help a lot.
Andi

At 01:12 PM 11/11/2002 +0800, James Devenish wrote:
Hi, just some followup, including some general build problems and some
information about failed tests at the bottom. I have included a set of
patches against 4.3.0pre2 and against CVS HEAD for anyone who's
interested in seeking some form of success with PHP 4.3 on a 64-bit
platform.

Someone will need to tell me what mailing lists to send to, etc (I am
on php-dev and php-qa to read followups). I'm not sure how to get `make
test` results to you as the script asks 'would you like to send the
report to PHP's QA team' but I say 'n' because I can't send or receive
mail on the machine that I am testing on. I had a few notes about them,
too. note: I have just real run-tests.php and see a that it submits
over the web. Will use to this sometime

The `make test` target doesn't work on my test machine (either in the
4.3.0pre2 or when using buildconf) because my $(CC) contains a space
character. So as the target is:

test: $(SAPI_CLI_PATH)
TEST_PHP_DETAILED
TEST_PHP_EXECUTABLE=$(top_builddir)/$(SAPI_CLI_PATH) \
 TEST_PHP_SRCDIR=$(top_srcdir) \
 CC=$(CC) \
$(top_builddir)/$(SAPI_CLI_PATH) 
$(top_srcdir)/run-tests.php $(TESTS)

I change thae second-last line to :
 CC=$(CC) \
to make it work for me. I don't know how that should be handled in general but
I thought I should point it out.

Okay, `make test` still not work. Many segfaults in mbstring.

Also, there seems to be something wrong because there are multiple definitions
of url_adapt_ext, yet only one is used. Also a patch for network.c.

The attached patches are against 4.3.0pre2, which is what I ran `make test`
with, though I am actually using CVS HEAD with my test web server.
(From a few days ago.)

Note: I only just realised that if I run `make test` and it print no
output other than 'Bus error' for a while, it *is* actually testing
correctly. I didn't realise that `make test` only prints test results at
the very end and I had been killing it in the middle of the test because
it didn't seem to be working

So, the patch includes: sundry correction of (int size)=(pointer size)
assumptions, introduction of OnUpdateLong, some zend_parse_parameters fixes.
Does not address all instances of sizeof( blah_t ) != sizeof( operand ).

=
FAILED TEST SUMMARY
-
mb_strtoupper() / mb_strtolower() [ext/mbstring/tests/casefold.phpt]
HTML input/output [ext/mbstring/tests/htmlent.phpt]
mb_convert_encoding() [ext/mbstring/tests/mb_convert_encoding.phpt]
mb_ereg() [ext/mbstring/tests/mb_ereg.phpt]
mb_ereg_search() stuff [ext/mbstring/tests/mb_ereg_search_xxx.phpt]
mb_strlen() [ext/mbstring/tests/mb_strlen.phpt]

**mbstring: extensive issues with mixed int/pointer.

Test array_merge and array_walk [ext/standard/tests/array/001.phpt]
Test arsort, asort, krsort, ksort, rsort, and sort 
[ext/standard/tests/array/002.phpt]
Test usort, uksort and uasort [ext/standard/tests/array/003.phpt]

**array tests: error in the tests: ext/standard/tests/array/data.inc
  contains monkey whereas the test expected results do not. Also, one
  test uses pow(2,64) and expects the result to overflow in a 32-bit way.
  These problems have been partially fixed in CVS already.

var_dump float test [ext/standard/tests/general_functions/008.phpt]
overflow check for _php_math_basetozval [ext/standard/tests/math/hexdec.phpt]

**var_dump and hexdec: the expected overflows do not occur with 64-bit
  operands :)

Simple math tests [ext/standard/tests/math/abs.phpt]
Simple math tests [ext/standard/tests/math/round.phpt]

**maths tests: issues with LONG_MIN and LONG_MAX

Various pow() tests [ext/standard/tests/math/pow.phpt]

**no comment from me

crc32() function [ext/standard/tests/strings/crc32.phpt]

**crc32: uses Zend's RETVAL_LONG but test expects 32-bit overflow.

strtotime() function [ext/standard/tests/time/002.phpt]

**no comment from me

Methods via variable name, bug #20120 [tests/classes/bug20120.phpt]

**My bison is bison-1.50, addressed by the bug fix (closed). This
  problem was also visible as an error message during PEAR
  installation.

=

Given the bison problem, my previous comments about Zend might be
doubtful. working Mmm, new bison fixed the last failed test. Other
tests unchanged wrt 4.3.0pre2. Latest CVS version currently seems to
have various other problems and I'll assume that's just code flux and I
will try again later.

--end--



--
PHP Development Mailing List http://www.php.net/
To unsubscribe, visit: http://www.php.net/unsub.php


--
PHP Development Mailing List http://www.php.net/
To 

[PHP-DEV] 64-bit PHP 4.3 (extensive long vs int problems)

2002-11-09 Thread James Devenish
Hi,

Referring to bug #20268 (Bus Error on startup), I have added some
comments about show-stopping problems with PHP 4.3 with regards to its
lack of 64-bit cleanliness.  The main problems seem to be Zend's
OnUpdateInt (which seems misnamed although it uses zend_atoi, it assigns
to a long) and PHP modules' use of zend_parse_parameters (which again
acts on longs, not ints, though that has slipped by the authors of some
modules).  (Please forgive some of the less coherent sentences in my
comments on the bug.) I have provided patches that demonstrate how I
managed to get PHP working (in particular with SPARCv9 Solaris 8 and
Apache 2.0).

Regards,
A random but concerned 64-bit user.



-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, visit: http://www.php.net/unsub.php