[PHP-DEV] PHP 5 Bug Summary Report

2009-03-16 Thread internals
 PHP 5 Bug Database summary - http://bugs.php.net/

 Num Status Summary (1335 total -- which includes 820 feature requests)
===[*Directory/Filesystem functions]
46990 Assigned   Passing UTF8 strings to filesystem functions produce wrong 
filenames
===[Apache related]===
47503 Feedback   apache start terminated
===[Apache2 related]==
32220 Assigned   [PATCH] thread_resources for thread not getting freed when 
apache kills thread
46479 Open   virtual() prints output to browser
46481 Feedback   apache_lookup_uri() draws blank if Apache auth enabled
===[Arrays related]===
46283 Open   array_merge_recursive() Warning recursion detected in...
47221 Open   no result from array_diff()
===[BC math related]==
44995 Open   bcpowmod() using a scale function always returns 0
46564 Open   bcmod( '1071', '357.5' ) returns '0'
===[Bzip2 Related]
29521 Assigned   compress.bzip2 wrapper
===[Calendar related]=
40213 Suspended  easter_date() returns wrong timestamp if ...
44474 Open   GregorianToJD wrong return value
===[CGI related]==
43313 Open   getopt() doesn't handle unknown parameters
45217 Open   crash if -z and -m are used together
46305 Open   Exception handler not invoked when using -r command line option
47042 Open   php cgi sapi is incorrectly removing the SCRIPT_FILENAME for 
non apache
47412 Open   PHP_MSHUTDOWN_FUNCTION not being called under FastCGI
47540 Open   CLI can go into an infinite write() loop when 
ignore_user_abort(true)
47605 Open   PHP CGI fails to ever output HTTP 200 header
47625 Open   SCRIPT_NAME and PHP_SELF
47627 Open   No input file specified causing crash
===[Class/Object related]=
45199 Assigned   Serializing objects with private properties
46140 Open   Unserializing with __wakeup that removes child causes 
subsequent refs to shift
46812 Open   get_class_vars() does not include visible private variable 
looking at subclass
47405 Open   error reports wrong file/line
47664 Assigned   get_class returns NULL instead of FALSE.
===[COM related]==
31327 Assigned   chinese char and word problem
32099 Assigned   After opening ADO connection and closing it repeatedly, Apache 
stops service
34253 Assigned   COM binary object/array issue (question marks?)
35875 Assigned   IE event failure upon scheduling script
36360 Assigned   PHP crashes when accessing an object that was just create by 
parent object
37562 Assigned   Unable to lookup ParameterFieldDefinitions
37899 Assigned   [PATCH] php_char_to _OLECHAR copies junk bytes
37965 Assigned   Multi-dimensional array between PHP and COM
38719 Assigned   COM Error during accessing function VirtualMachines
40424 Assigned   Fatal error when setting the value of COM object's property 
array
40581 Assigned   Pass Struct type to COM object from PHP
40664 Assigned   String conversion functions wrong for multibyte chars
41055 Assigned   DOTNET not instantiating fully-pathed assembly
41078 Assigned   Its not possible to call Static dotNet Classes with dotnet
41189 Assigned   Multi-dimensional array in COM function causes hang
41368 Assigned   ADODB.Recordset ActiveConnection property - can't set with PHP 
5.2.1+
41388 Assigned   Error in COM Object results
41577 Assigned   DOTNET is successful once per server run
42413 Assigned   Cannot iterate IE's event object
42551 Assigned   new COM(HTMLFile) = warnings
42585 Assigned   die() in event handler = PHP hangs
43275 Open   get_class problem with COM objects
43432 Open   Fatal error when setting the value of COM object's Attribute 
property
43470 Open   COM API fails to correctly return [OUT]  VT_PTR references
43506 Open   com_get_active_object always fails
43521 Open   Problem with Variant/Parameters
43838 Open   variant_set with IE leads to hang
43897 Open   $ie not cleared on IE quit
44256 Open   Pb with COM in PHP5
44578 Open   Strange Behavior of PHP using COM Object
45280 Open   Reflection of instantiated COM classes causes PHP to crash.
45704 Open   $exception-getCode() always return 0x80020009 even when it 
shouldn't
45855 Open   COM-Problem with GET/SET, using same method name (but with 
different arg count)
46224 Open   Cannot instantiate .Net object (ABCpdf 6.1 .Net)
46522 Open   Problem using new com
47401 Open   Can't instantiate VARIANT objects with VT_BYREF flag
47458 Open   PHP run as CGI module onapache giving 

[PHP-DEV] PHP 6 Bug Summary Report

2009-03-16 Thread internals
 PHP 6 Bug Database summary - http://bugs.php.net/

 Num Status Summary (75 total -- which includes 32 feature requests)
===[*General Issues]==
26771 Suspended  register_tick_funtions crash under threaded webservers
===[Apache related]===
47061 Open   User not logged under Apache
===[Apache2 related]==
44083 Open   virtual() not outputting results if zlib.output_compression = 
On
===[Arrays related]===
35277 Suspended  incorrect recursion detection
41758 Assigned   SORT_LOCALE_STRING broken for sort() in PHP6
43109 Open   array_intersect() emits unexpected no of notices when 2d array 
is passed as arg
===[Class/Object related]=
41461 Assigned   E_STRICT notice when overriding methods not defined by an 
Interface in hierarchy
===[COM related]==
45836 Open   cannot use com 
46909 Open   COM object not allowing calls to methods
===[Compile Failure]==
42606 Open   unicode/constants.c relies on ICU draft api
44502 Suspended  Compiling ok with MySQL 5.0
===[Date/time related]
46948 Assigned   ext/date/lib/parse_tz.c:99: Memory leak: buffer
===[Filesystem function related]==
42110 Open   fgetcsv doesn't handle \n correctly in multiline csv record
44034 Open   FILE_IGNORE_NEW_LINES in FILE does not work as expected when 
lines end in \r\n
46688 Open   Return values differ from 5.3 and are also inconsistent
46689 Open   Downcoded notices suggest unfinished code in file system?
===[GD related]===
34670 Assigned   imageTTFText for Indian scripts (Devanagari)
34992 Assigned   imageconvolution does not respect alpha
===[I18N and L10N related]
42471 Open   locale_set_default returns true on invalid locales
===[mbstring related]=
44868 Open   Replaces UTF-8 symbol with incorrect symbol
===[mcrypt related]===
46834 Assigned   Range of mcrypt functions fail on PHP 6.0
===[MySQL related]
44076 Open   mysql_result returns nothing with blob
45246 Open   make error after ./configure --with-mysql
===[ODBC related]=
39756 Open   [PATCH] Crashes in fetching resultsets with LONG ASCII columns 
from MaxDB
===[OpenSSL related]==
25614 Assigned   openssl_pkey_get_public() fails when given a private key
===[PDO related]==
35368 Suspended  PDO query does not work properly with serialize
===[Performance problem]==
42528 Open   Out of char(8-bit) range value doesn't roll back, with 
uni-code ON.
===[Program Execution]
39992 Open   proc_terminate() leaves children of child running
43784 Assigned   escapeshellarg removes % from given string
===[Regexps related]==
44923 Open   ereg functions are not unicode aware: provide wrapper 
functions in PCRE
===[Reproducible crash]===
45107 Open   setting ext_dir to ./ (and other ini settings) causes apache 
crash
===[Scripting Engine problem]=
42194 Open   $argc/$argv[] won't work when .php extension is assigned to 
php.exe
47154 Open   Object properties unset after setting.
===[Session related]==
44860 Open   session_encode() fails for php_binary serializer
===[Strings related]==
45566 Open   Strict comparision on $_SERVER values fail
===[Unicode Engine related]===
45087 Open   Illegal or truncated character in input
47155 Open   PHP 6.0 decodes base64 into incorrect uft-8 string
47164 Assigned   uncomfortable (binary)char() append to binary string
===[URL related]==
45602 Open   urlencode/urldecode should use ASCII encoding
===[XSLT related]=
38218 Assigned   php:functionString tries to access objects with their names in 

[PHP-DEV] Re: [PATCH] Remove nTableSize from HashTable?

2009-03-16 Thread Dmitry Stogov

Hi Matt,

I don't see a lot of reason in this patch as the benefit is near 
invisible and readability becomes worse.


Also the patch can break third-party modules like APC and Zend 
extensions. Even it's not a big problem as they can be easily fixed, I'm 
against of changing of core components without real benefit.


Thanks. Dmitry.



Matt Wilmas wrote:

Hi Dmitry, all,

Just a quick one... ;^)  Is there much, if any, advantage to removing 
the HashTable member nTableSize?  It's just nTableMask + 1, so it can be 
derived easily in the couple places that need it...  Figured it can't 
hurt to make things smaller, and it only adds a couple addition 
operations for resizing, basically. :-)


Patches if you want the change (or tell me to commit):
http://realplain.com/php/tablesize.diff
http://realplain.com/php/tablesize_5_3.diff


- Matt


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



[PHP-DEV] Re: cvs: ZendEngine2 / zend_builtin_functions.c /tests 009.phpt php-src/ext/reflection/tests 027.phpt php-src/ext/standard/tests/class_object get_class_error_001.phpt get_class_variation_

2009-03-16 Thread Johannes Schlüter
Hi,

On Mon, 2009-03-16 at 09:52 +, Dmitry Stogov wrote:
 Log:
   Fixed bug #47664 (get_class returns NULL instead of FALSE)
[...]
 @@ -716,7 +716,7 @@
 int dup;
  
 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |o,
 obj) == FAILURE) {
 -   return;
 +   RETURN_FALSE;
 }

Usually we return NULL in case parameter parsing fails, this is
documented like this:

   If the parameters given to a function are not what it expects,
   such as passing an array where a string is expected, the return
   value of the function is undefined. In this case it will likely
   return NULL but this is just a convention, and cannot be relied
   upon.
   http://www.php.net/manual/en/functions.internal.php

This also applies to many other functions which usually return false
on error and are documented like that. Therefore I think returning NULL
in this case is a good thing in order to bring more consistency to the
language and I think this BC break is quite minor.

On a sidenote: There are cases where such a change has bigger effect: In
all cases where int(0)/string() are successful return values and one
has to use type-safe comparison (think about strpos for instance) but in
this case I see more of a cleanup. Oh and the user should, usually,
check the types before passing the variable to the function ...

johannes



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



Re: [PHP-DEV] Re: cvs: ZendEngine2 / zend_builtin_functions.c /tests 009.phpt php-src/ext/reflection/tests 027.phpt php-src/ext/standard/tests/class_object get_class_error_001.phpt get_class_variati

2009-03-16 Thread Pierre Joye
2009/3/16 Johannes Schlüter johan...@php.net:
 Hi,

 On Mon, 2009-03-16 at 09:52 +, Dmitry Stogov wrote:
 Log:
   Fixed bug #47664 (get_class returns NULL instead of FALSE)
 [...]
 @@ -716,7 +716,7 @@
         int dup;

         if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |o,
 obj) == FAILURE) {
 -               return;
 +               RETURN_FALSE;
         }

 Usually we return NULL in case parameter parsing fails, this is
 documented like this:

Hi Johannes,

Please read the bug report. In this case I think that we should not
break it only to follow this (arguable :) rule. See the documentation
of get_class as well: http://de.php.net/get_class

Cheers,
-- 
Pierre

http://blog.thepimp.net | http://www.libgd.org

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



Re: [PHP-DEV] Re: cvs: ZendEngine2 / zend_builtin_functions.c /tests 009.phpt php-src/ext/reflection/tests 027.phpt php-src/ext/standard/tests/class_object get_class_error_001.phpt get_class_variat

2009-03-16 Thread Stanislav Malyshev

Hi!


Log:
  Fixed bug #47664 (get_class returns NULL instead of FALSE)

[...]

@@ -716,7 +716,7 @@
int dup;
 
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |o,

obj) == FAILURE) {
-   return;
+   RETURN_FALSE;
}


Usually we return NULL in case parameter parsing fails, this is
documented like this:


If all other functions return NULL with wrong args, why should get_class 
return false? Is there any value in it besides the fact that docs say so?

--
Stanislav Malyshev, Zend Software Architect
s...@zend.com   http://www.zend.com/
(408)253-8829   MSN: s...@zend.com

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



Re: [PHP-DEV] Re: cvs: ZendEngine2 / zend_builtin_functions.c /tests 009.phpt php-src/ext/reflection/tests 027.phpt php-src/ext/standard/tests/class_object get_class_error_001.phpt get_class_variati

2009-03-16 Thread Pierre Joye
2009/3/16 Stanislav Malyshev s...@zend.com:
 Hi!

 Log:
  Fixed bug #47664 (get_class returns NULL instead of FALSE)

 [...]

 @@ -716,7 +716,7 @@
        int dup;
          if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |o,
 obj) == FAILURE) {
 -               return;
 +               RETURN_FALSE;
        }

 Usually we return NULL in case parameter parsing fails, this is
 documented like this:

 If all other functions return NULL with wrong args, why should get_class
 return false? Is there any value in it besides the fact that docs say so?

The main reason is the documentation. It introduces a useless BC break
which was reported in #47664.


-- 
Pierre

http://blog.thepimp.net | http://www.libgd.org

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



Re: [PHP-DEV] Re: cvs: ZendEngine2 / zend_builtin_functions.c /tests 009.phpt php-src/ext/reflection/tests 027.phpt php-src/ext/standard/tests/class_object get_class_error_001.phpt get_class_variati

2009-03-16 Thread Stanislav Malyshev

Hi!


If all other functions return NULL with wrong args, why should get_class
return false? Is there any value in it besides the fact that docs say so?


The main reason is the documentation. It introduces a useless BC break
which was reported in #47664.


Well, sometimes a bug is a bug and we can't keep BC just for bugs, 
unless it is useful for something.

--
Stanislav Malyshev, Zend Software Architect
s...@zend.com   http://www.zend.com/
(408)253-8829   MSN: s...@zend.com

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



Re: [PHP-DEV] Re: cvs: ZendEngine2 / zend_builtin_functions.c /tests 009.phpt php-src/ext/reflection/tests 027.phpt php-src/ext/standard/tests/class_object get_class_error_001.phpt get_class_variati

2009-03-16 Thread Pierre Joye
On Mon, Mar 16, 2009 at 6:43 PM, Stanislav Malyshev s...@zend.com wrote:
 Hi!

 If all other functions return NULL with wrong args, why should get_class
 return false? Is there any value in it besides the fact that docs say so?

 The main reason is the documentation. It introduces a useless BC break
 which was reported in #47664.

 Well, sometimes a bug is a bug and we can't keep BC just for bugs, unless it
 is useful for something.

The new parsing API and the strictness of this return NULL rule is
new and arguable. As it is not that important (work 'round is easy), I
tend to prefer to minimize the wtf instead of being too strict.

-- 
Pierre

http://blog.thepimp.net | http://www.libgd.org

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



Re: [PHP-DEV] Re: cvs: ZendEngine2 / zend_builtin_functions.c /tests 009.phpt php-src/ext/reflection/tests 027.phpt php-src/ext/standard/tests/class_object get_class_error_001.phpt get_class_variati

2009-03-16 Thread Stanislav Malyshev

Hi!


The new parsing API and the strictness of this return NULL rule is
new and arguable. As it is not that important (work 'round is easy), I
tend to prefer to minimize the wtf instead of being too strict.


Minimizing the WTF may also mean standardizing exception handling - i.e. 
knowing what functions actually return when something's wrong without 
having to consult the manual each time.

--
Stanislav Malyshev, Zend Software Architect
s...@zend.com   http://www.zend.com/
(408)253-8829   MSN: s...@zend.com

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



Re: [PHP-DEV] Re: cvs: ZendEngine2 / zend_builtin_functions.c /tests 009.phpt php-src/ext/reflection/tests 027.phpt php-src/ext/standard/tests/class_object get_class_error_001.phpt get_class_variati

2009-03-16 Thread Pierre Joye
On Mon, Mar 16, 2009 at 6:49 PM, Stanislav Malyshev s...@zend.com wrote:
 Hi!

 The new parsing API and the strictness of this return NULL rule is
 new and arguable. As it is not that important (work 'round is easy), I
 tend to prefer to minimize the wtf instead of being too strict.

 Minimizing the WTF may also mean standardizing exception handling - i.e.
 knowing what functions actually return when something's wrong without having
 to consult the manual each time.

First it is not an exception. Secondly, as I said earlier already,
this rule is arguable, even more in this particular case.

Return NULL when an argument is missing could be fine but to return
NULL when an argument cannot be processed is not necessary a good
idea. For example: ?php var_dump(is_int($b); ?, do we want NULL
here?

Cheers,
-- 
Pierre

http://blog.thepimp.net | http://www.libgd.org

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



Re: [PHP-DEV] Re: cvs: ZendEngine2 / zend_builtin_functions.c /tests 009.phpt php-src/ext/reflection/tests 027.phpt php-src/ext/standard/tests/class_object get_class_error_001.phpt get_class_variati

2009-03-16 Thread Stanislav Malyshev

Hi!


Why do functions return NULL? (I know the technical answer, obviously,
I'm interested in the design decision). If FALSE is the error
condition, whats the point in a separate NULL error condition?


Because false is not an error condition. It's a legitimate value, which 
can be normal answer for many functions.

--
Stanislav Malyshev, Zend Software Architect
s...@zend.com   http://www.zend.com/
(408)253-8829   MSN: s...@zend.com

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



Re: [PHP-DEV] Re: cvs: ZendEngine2 / zend_builtin_functions.c /tests 009.phpt php-src/ext/reflection/tests 027.phpt php-src/ext/standard/tests/class_object get_class_error_001.phpt get_class_variati

2009-03-16 Thread Paul Biggar
On Mon, Mar 16, 2009 at 6:46 PM, Stanislav Malyshev s...@zend.com wrote:
 Hi!

 Why do functions return NULL? (I know the technical answer, obviously,
 I'm interested in the design decision). If FALSE is the error
 condition, whats the point in a separate NULL error condition?

 Because false is not an error condition. It's a legitimate value, which can
 be normal answer for many functions.

Is this not the case for NULL?

Thanks,
Paul


-- 
Paul Biggar
paul.big...@gmail.com

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



Re: [PHP-DEV] Re: cvs: ZendEngine2 / zend_builtin_functions.c /tests 009.phpt php-src/ext/reflection/tests 027.phpt php-src/ext/standard/tests/class_object get_class_error_001.phpt get_class_variati

2009-03-16 Thread Stanislav Malyshev

Hi!


Is this not the case for NULL?


Null means no value, which is relatively rarely legitimate return of 
the function (most of the functions legitimately returning null AFAIK 
are value-manipulating functions i.e. they can return any type of value).

--
Stanislav Malyshev, Zend Software Architect
s...@zend.com   http://www.zend.com/
(408)253-8829   MSN: s...@zend.com

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