Re: [PHP-DEV] Borked tests

2009-05-04 Thread Kalle Sommer Nielsen
2009/5/5 Jani Taskinen :
> This commit http://news.php.net/php.cvs/57541 broke about every test which
> triggers thes deprecation messages.

Care to elaborate? I've fixed those tests I could see failing for me
in the log from run-tests, sure some may have gone through as not
every test runs on Windows which is my only setup. If you have a list
and/or diff's of those tests that fails then let me know and I'll fix
them.

>
> --Jani
>
>



-- 
Kalle Sommer Nielsen
ka...@php.net

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



[PHP-DEV] Borked tests

2009-05-04 Thread Jani Taskinen
This commit http://news.php.net/php.cvs/57541 broke about every test which 
triggers thes deprecation messages.


--Jani


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



Re: [PHP-DEV] [PATCH] Scanner "diet" with fixes, etc.

2009-05-04 Thread Matt Wilmas

Hi Brian,

- Original Message -
From: "shire"
Sent: Monday, May 04, 2009


Matt Wilmas wrote:

[...]
How about this?

#define SET_DOUBLE_QUOTES_SCANNED_LENGTH(len) CG(doc_comment_len) = (len)
#define GET_DOUBLE_QUOTES_SCANNED_LENGTH() CG(doc_comment_len)



Sure, works for me ;-)


Cool. :-)


[...]

Have you considered using the lexer STATES and regex's instead of the
manual C code for scanning the rest. It seems like if we have a one-char
regex match for what the C code is doing we could handle this in the
lexer without a lot of manual intervention (need to look at it more, 
just

a thought I had earlier, the expressions are clearer now with your patch
applied) ;-)


It seems that matching one-char-at-a-time with re2c would be more
complicated than the manual way, not to mention slower than the old
(current) way.

Do you have any objection (well, you've kinda mentioned some :-)) if I'd
commit the changes in a little while like Dmitry thought could be done?


Well I'm wondering if something more along these lines (just did this
on-top of your patch as you cleaned up a lot) might be more appealing.
(I'm not sure how much slower this would be than the current
implementation, obviously it'll be somewhat slower, I'm basically just
doing what you did in C but in the scanner instead of course).

"#"|"//" {
BEGIN(ST_EOL_COMMENT);
yymore();
}

({NEWLINE}|"%>"|"?>") {
char tmp = *(YYCURSOR-1);
if ((tmp == '%' && CG(asp_tags)) | tmp == '?') {
  YYCURSOR -= 2;
}
CG(zend_lineno)++;
BEGIN(ST_IN_SCRIPTING);
return T_COMMENT;
}

{ANY_CHAR} {
if (YYCURSOR >= YYLIMIT) {
  BEGIN(ST_IN_SCRIPTING);
  return T_COMMENT;
}
yymore();
}



Let me know what the thoughts are on the above, if we don't want that
then I say yeah, commit away!


Wouldn't it be a little more complicated for strings/heredocs than comments? 
Or not, haven't thought about it much! :-)  And you still need the "manual 
use" of YYCURSOR, etc.  In other words, to me, the scanner rules are doing 
what the manual switch ()'s case statements do, but in a slower, 
"roundabout" way.


Well, I'm gonna be away for a bit now, but I guess I can commit away when I 
get back.



-shire


- Matt 



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



Re: [PHP-DEV] [PATCH] Scanner "diet" with fixes, etc.

2009-05-04 Thread shire

Matt Wilmas wrote:


Gotcha. If something changes, YYFILL -- or something to handle what
needs to be done -- could just be added to the manual parts as
necessary, right?



Sorry forget to reply on this one, but yeah we'd have to do a manual call to 
YYFILL or a check or whatever we come up with wherever we're scanning ahead 
manually.  (there's probably some other parts that might need this as well).

-shire

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



Re: [PHP-DEV] [PATCH] Scanner "diet" with fixes, etc.

2009-05-04 Thread shire

Matt Wilmas wrote:

Hi Brian,

- Original Message -
From: "shire"
Sent: Monday, May 04, 2009



Hey Matt,

Matt Wilmas wrote:


+/* To save initial string length after scanning to first variable,
CG(doc_comment_len) can be reused */
+#define double_quotes_scanned_len CG(doc_comment_len)
+


(minor) Maybe we should rename this var if we're going to use it for
other
purposes, this doesn't really save any typing. Also if we do want the
define maybe we should upper case it so it's more obvious?


Yeah, I tried to think of other ways to do it, but just left it trying
to look like another variable (not to save typing). Well, it can easily
be changed later if a "cleaner" way is decided...



Yeah I would just prefer if it was more obvious that it is *not* a
variable ;-)


How about this?

#define SET_DOUBLE_QUOTES_SCANNED_LENGTH(len) CG(doc_comment_len) = (len)
#define GET_DOUBLE_QUOTES_SCANNED_LENGTH() CG(doc_comment_len)



Sure, works for me ;-)



+ while (YYCURSOR < YYLIMIT) {
+ switch (*YYCURSOR++) {


In the example above, which we have a couple examples of here, we don't
obey the YYFILL macro to detect if we have exceeded our EOF. This
*might* be a problem, but only really depends on if we intend to use
the
YYFILL as a solution for exceeding our mmap bounds.


I don't understand what the problem might be? The YYCURSOR < YYLIMIT
check is what the YYFILL has been doing. If you mean after changes
later, as long as the the whole thing is mmap()'d (which I'm assuming
would be the case?), it just "looks" like a standard string, with
terminating '\0', right? And there's no reading past YYLIMIT.


Sorry yeah this wouldn't be a problem currently, but only if we try to
fix the mmap issue by using YYFILL to realloc more space into the buffer.
Then that macro would change to something more complicated. (per my
previous replies with Arnaud)


Gotcha. If something changes, YYFILL -- or something to handle what
needs to be done -- could just be added to the manual parts as
necessary, right?


Have you considered using the lexer STATES and regex's instead of the
manual C code for scanning the rest. It seems like if we have a one-char
regex match for what the C code is doing we could handle this in the
lexer without a lot of manual intervention (need to look at it more, just
a thought I had earlier, the expressions are clearer now with your patch
applied) ;-)


It seems that matching one-char-at-a-time with re2c would be more
complicated than the manual way, not to mention slower than the old
(current) way.

Do you have any objection (well, you've kinda mentioned some :-)) if I'd
commit the changes in a little while like Dmitry thought could be done?


Well I'm wondering if something more along these lines (just did this on-top of 
your patch as you cleaned up a lot) might be more appealing.  (I'm not sure how 
much slower this would be than the current implementation, obviously it'll be 
somewhat slower, I'm basically just doing what you did in C but in the scanner 
instead of course).

"#"|"//" {
BEGIN(ST_EOL_COMMENT);
yymore();
}

({NEWLINE}|"%>"|"?>") {
char tmp = *(YYCURSOR-1);
if ((tmp == '%' && CG(asp_tags)) | tmp == '?') {
  YYCURSOR -= 2;
}
CG(zend_lineno)++;
BEGIN(ST_IN_SCRIPTING);
return T_COMMENT;
}

{ANY_CHAR} {
if (YYCURSOR >= YYLIMIT) {
  BEGIN(ST_IN_SCRIPTING);
  return T_COMMENT;
}
yymore();
}



Let me know what the thoughts are on the above, if we don't want that then I 
say yeah, commit away!

-shire





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



Re: [PHP-DEV] [PATCH] Scanner "diet" with fixes, etc.

2009-05-04 Thread Matt Wilmas

Hi Brian,

- Original Message -
From: "shire"
Sent: Monday, May 04, 2009



Hey Matt,

Matt Wilmas wrote:


+/* To save initial string length after scanning to first variable,
CG(doc_comment_len) can be reused */
+#define double_quotes_scanned_len CG(doc_comment_len)
+


(minor) Maybe we should rename this var if we're going to use it for
other
purposes, this doesn't really save any typing. Also if we do want the
define maybe we should upper case it so it's more obvious?


Yeah, I tried to think of other ways to do it, but just left it trying
to look like another variable (not to save typing). Well, it can easily
be changed later if a "cleaner" way is decided...



Yeah I would just prefer if it was more obvious that it is *not* a 
variable ;-)


How about this?

#define SET_DOUBLE_QUOTES_SCANNED_LENGTH(len) CG(doc_comment_len) = (len)
#define GET_DOUBLE_QUOTES_SCANNED_LENGTH()CG(doc_comment_len)


+ while (YYCURSOR < YYLIMIT) {
+ switch (*YYCURSOR++) {


In the example above, which we have a couple examples of here, we don't
obey the YYFILL macro to detect if we have exceeded our EOF. This
*might* be a problem, but only really depends on if we intend to use the
YYFILL as a solution for exceeding our mmap bounds.


I don't understand what the problem might be? The YYCURSOR < YYLIMIT
check is what the YYFILL has been doing. If you mean after changes
later, as long as the the whole thing is mmap()'d (which I'm assuming
would be the case?), it just "looks" like a standard string, with
terminating '\0', right? And there's no reading past YYLIMIT.


Sorry yeah this wouldn't be a problem currently, but only if we try to
fix the mmap issue by using YYFILL to realloc more space into the buffer.
Then that macro would change to something more complicated. (per my
previous replies with Arnaud)


Gotcha.  If something changes, YYFILL -- or something to handle what needs 
to be done -- could just be added to the manual parts as necessary, right?



Have you considered using the lexer STATES and regex's instead of the
manual C code for scanning the rest.  It seems like if we have a one-char
regex match for what the C code is doing we could handle this in the
lexer without a lot of manual intervention (need to look at it more, just
a thought I had earlier, the expressions are clearer now with your patch
applied) ;-)


It seems that matching one-char-at-a-time with re2c would be more 
complicated than the manual way, not to mention slower than the old 
(current) way.


Do you have any objection (well, you've kinda mentioned some :-)) if I'd 
commit the changes in a little while like Dmitry thought could be done?



-shire


- Matt 



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



Re: [PHP-DEV] Enable mysqlnd as default backend (not about enabling mysql by default)

2009-05-04 Thread Lukas Kahwe Smith


On 04.05.2009, at 20:31, Pierre Joye wrote:


Hi,

Would it not easier and better to have mysqlnd as default backend for
the mysql extensions (pdo, mysqli and mysql) when the configure option
are used without value? I can already imagine the maintenance pains
and the debugging nightmare for our users while working with a buggy
libmysql instead of mysqlnd.

Please note that it is only about using myslqnd by default, not about
enabling mysqlnd by default (a vote has been done already on that and
rejected).



Well atm I would prefer to stick with our current "plan". That being  
said I think in the end it will be the distro vendors that decide what  
will happen anyways. Bringing us back to the entire topic of the need  
for us to build better communication channels to them, so that we are  
in the loop about their needs and decisions and a way to better help  
them make the right decisions.


regards,
Lukas Kahwe Smith
m...@pooteeweet.org




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



Re: [PHP-DEV] [PATCH] Scanner "diet" with fixes, etc.

2009-05-04 Thread shire


Hey Matt,

Matt Wilmas wrote:


+/* To save initial string length after scanning to first variable,
CG(doc_comment_len) can be reused */
+#define double_quotes_scanned_len CG(doc_comment_len)
+


(minor) Maybe we should rename this var if we're going to use it for
other
purposes, this doesn't really save any typing. Also if we do want the
define maybe we should upper case it so it's more obvious?


Yeah, I tried to think of other ways to do it, but just left it trying
to look like another variable (not to save typing). Well, it can easily
be changed later if a "cleaner" way is decided...



Yeah I would just prefer if it was more obvious that it is *not* a variable ;-)


+ while (YYCURSOR < YYLIMIT) {
+ switch (*YYCURSOR++) {


In the example above, which we have a couple examples of here, we don't
obey the YYFILL macro to detect if we have exceeded our EOF. This
*might* be a problem, but only really depends on if we intend to use the
YYFILL as a solution for exceeding our mmap bounds.


I don't understand what the problem might be? The YYCURSOR < YYLIMIT
check is what the YYFILL has been doing. If you mean after changes
later, as long as the the whole thing is mmap()'d (which I'm assuming
would be the case?), it just "looks" like a standard string, with
terminating '\0', right? And there's no reading past YYLIMIT.


Sorry yeah this wouldn't be a problem currently, but only if we try to fix the 
mmap issue by using YYFILL to realloc more space into the buffer.  Then that 
macro would change to something more complicated. (per my previous replies with 
Arnaud)

Have you considered using the lexer STATES and regex's instead of the manual C 
code for scanning the rest.  It seems like if we have a one-char regex match 
for what the C code is doing we could handle this in the lexer without a lot of 
manual intervention (need to look at it more, just a thought I had earlier, the 
expressions are clearer now with your patch applied) ;-)

-shire

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



Re: [PHP-DEV] Enable mysqlnd as default backend (not about enabling mysql by default)

2009-05-04 Thread Jani Taskinen

Pierre Joye kirjoitti:

Hi,

Would it not easier and better to have mysqlnd as default backend for
the mysql extensions (pdo, mysqli and mysql) when the configure option
are used without value? I can already imagine the maintenance pains
and the debugging nightmare for our users while working with a buggy
libmysql instead of mysqlnd.


Current status of mysqlnd does not warrant it being default. Just check the bug 
database..


--Jani




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



Re: [PHP-DEV] [PATCH] Scanner "diet" with fixes, etc.

2009-05-04 Thread Matt Wilmas

Hi Dmitry,

- Original Message -
From: "Dmitry Stogov"
Sent: Monday, May 04, 2009


Hi Matt,

I wasn't able to look into all details of the patch, but in general I like 
it, as it fixes bugs and makes scanner smaller. I think you can commit it.


OK, you mean before the freeze for RC2...?  I'll go ahead and do that later 
unless someone says not to.



Although this patch doesn't fix the EOF handling related to mmap().


:-/


Thanks. Dmitry.


Thanks,
Matt 



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



Re: [PHP-DEV] [PATCH] Scanner "diet" with fixes, etc.

2009-05-04 Thread Matt Wilmas

Hi Brian,

- Original Message -
From: "shire"
Sent: Monday, May 04, 2009



Hey Matt,

Thanks for posting, sorry for not having a chance to reply to this sooner.
 Maybe couple things from the patch,

+/* To save initial string length after scanning to first variable, 
CG(doc_comment_len) can be reused */

+#define double_quotes_scanned_len CG(doc_comment_len)
+


(minor) Maybe we should rename this var if we're going to use it for other
purposes, this doesn't really save any typing.  Also if we do want the
define maybe we should upper case it so it's more obvious?


Yeah, I tried to think of other ways to do it, but just left it trying to 
look like another variable (not to save typing).  Well, it can easily be 
changed later if a "cleaner" way is decided...



+ while (YYCURSOR < YYLIMIT) {
+ switch (*YYCURSOR++) {


In the example above, which we have a couple examples of here, we don't
obey the YYFILL macro to detect if we have exceeded our EOF.  This
*might* be a problem, but only really depends on if we intend to use the
YYFILL as a solution for exceeding our mmap bounds.


I don't understand what the problem might be?  The YYCURSOR < YYLIMIT check 
is what the YYFILL has been doing.  If you mean after changes later, as long 
as the the whole thing is mmap()'d (which I'm assuming would be the case?), 
it just "looks" like a standard string, with terminating '\0', right?  And 
there's no reading past YYLIMIT.



[...]
-shire


- Matt 



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



[PHP-DEV] Enable mysqlnd as default backend (not about enabling mysql by default)

2009-05-04 Thread Pierre Joye
Hi,

Would it not easier and better to have mysqlnd as default backend for
the mysql extensions (pdo, mysqli and mysql) when the configure option
are used without value? I can already imagine the maintenance pains
and the debugging nightmare for our users while working with a buggy
libmysql instead of mysqlnd.

Please note that it is only about using myslqnd by default, not about
enabling mysqlnd by default (a vote has been done already on that and
rejected).

Cheers,
-- 
Pierre

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

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



Re: [PHP-DEV] [PATCH] Scanner "diet" with fixes, etc.

2009-05-04 Thread Arnaud Le Blanc
On Mon, May 4, 2009 at 5:51 PM, shire  wrote:
> Arnaud Le Blanc wrote:
>>
>> Hi,
>> On Mon, May 4, 2009 at 9:36 AM, shire  wrote:
>>>
>>> Regarding the ZEND_MMAP_AHEAD issue and the temp. fix that Dmitry put in
>>> we
>>> need to find a solution to that, perhaps I can play with that this week
>>> too
>>> as I think I'm seeing some related issues in my testing of 5.3.
>>>  Essentially
>>> we abuse ZEND_MMAP_AHEAD by adding it to the file size and passing it to
>>> the
>>> mmap call which isn't at all valid and only really works up to PAGESIZE.
>>>  We
>>> could possibly use YYFILL to re-allocate more space as necessary past the
>>> end of file to fix this.
>>
>> I was thinking of doing something like that with YYFILL too. However
>> there is a bunch of pointers to take in to account and to update (e.g.
>> yy_marker, yy_text, etc).
>>
>
> Yeah, I'm pretty sure that's how most of the example re2c code is setup:
>
> #define YYFILL(n) {cursor = fill(s, cursor);}
>
> uchar *fill(Scanner *s, uchar *cursor){
>    if(!s->eof){
>  unint cnt = s->lim - s->tok;
>  uchar *buf = malloc((cnt + 1)*sizeof(uchar));
>  memcpy(buf, s->tok, cnt);
>  cursor = &buf[cursor - s->tok];
>  s->pos = &buf[s->pos - s->tok];
>  s->ptr = &buf[s->ptr - s->tok];
>  s->lim = &buf[cnt];
>  s->eof = s->lim; *(s->eof)++ = '\n';
>  s->tok = buf;
>    }
>    return cursor;
> }
>
>
>
> -shire
>

This is what I seen too, but this is not always applicable. The
scanner have code that refers to yy_text, yy_start, yy_cursor,
yy_marker, etc. All those pointers point to the original buffer and
must be updated by fill(). At each point in time the scanner may
rollback to yy_marker or a rule may want to fetch yy_text or yy_start
at any time. So the buffer must be large enough to contain all data
from min(all_of_them) to max(all_of_them). That makes things a little
complicated and potentially less efficient than a big buffer for the
whole file.

Regards,

Arnaud

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



Re: [PHP-DEV] [PATCH] Scanner "diet" with fixes, etc.

2009-05-04 Thread shire

Arnaud Le Blanc wrote:

Hi,
On Mon, May 4, 2009 at 9:36 AM, shire  wrote:

Regarding the ZEND_MMAP_AHEAD issue and the temp. fix that Dmitry put in we
need to find a solution to that, perhaps I can play with that this week too
as I think I'm seeing some related issues in my testing of 5.3.  Essentially
we abuse ZEND_MMAP_AHEAD by adding it to the file size and passing it to the
mmap call which isn't at all valid and only really works up to PAGESIZE.  We
could possibly use YYFILL to re-allocate more space as necessary past the
end of file to fix this.


I was thinking of doing something like that with YYFILL too. However
there is a bunch of pointers to take in to account and to update (e.g.
yy_marker, yy_text, etc).



Yeah, I'm pretty sure that's how most of the example re2c code is setup:

#define YYFILL(n) {cursor = fill(s, cursor);}

uchar *fill(Scanner *s, uchar *cursor){
if(!s->eof){
  unint cnt = s->lim - s->tok;
  uchar *buf = malloc((cnt + 1)*sizeof(uchar));
  memcpy(buf, s->tok, cnt);
  cursor = &buf[cursor - s->tok];
  s->pos = &buf[s->pos - s->tok];
  s->ptr = &buf[s->ptr - s->tok];
  s->lim = &buf[cnt];
  s->eof = s->lim; *(s->eof)++ = '\n';
  s->tok = buf;
}
return cursor;
}



-shire

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



Re: [PHP-DEV] PHP 5.3.0RC2

2009-05-04 Thread Lukas Kahwe Smith


On 04.05.2009, at 00:59, Pierre Joye wrote:


hi Lukas,

The re3c bug (8k bug) for one.



yeah .. well it seems we will not have a fix for this (and a release  
today). however johannes and I both agree that testers need to get  
their hands on a more recent version of our code, since RC1 was  
released so long ago. especially in the light of the testfest. so we  
both think there is value in releasing the RC2 this week, even if that  
means we will surely need an RC3. i then expect this RC3 to come out 2  
weeks after RC2. until then we need to make sure we can get that re2c  
bug fixed and a new release out. this might require reducing the bus  
factor on re2c. so anyone interested please get in contact with Nuno  
as Marcus is understandably quite busy with private matters atm.


regards,
Lukas Kahwe Smith
m...@pooteeweet.org




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



Re: [PHP-DEV] [PATCH] Scanner "diet" with fixes, etc.

2009-05-04 Thread Arnaud Le Blanc
Hi,
On Mon, May 4, 2009 at 9:36 AM, shire  wrote:
> Regarding the ZEND_MMAP_AHEAD issue and the temp. fix that Dmitry put in we
> need to find a solution to that, perhaps I can play with that this week too
> as I think I'm seeing some related issues in my testing of 5.3.  Essentially
> we abuse ZEND_MMAP_AHEAD by adding it to the file size and passing it to the
> mmap call which isn't at all valid and only really works up to PAGESIZE.  We
> could possibly use YYFILL to re-allocate more space as necessary past the
> end of file to fix this.

I was thinking of doing something like that with YYFILL too. However
there is a bunch of pointers to take in to account and to update (e.g.
yy_marker, yy_text, etc).

There is mmap(MAP_FIXED) as an other temporary solution. The idea is
to map the entire file rounded up to a whole page size, and to map the
last (already mapped) page to anonymous memory using MAP_FIXED. In the
end we get a readable contiguous memory region with the file data and
ZEND_MMAP_AHEAD.
This should work on many systems as long as the requested address is
already part of the process's address space (which is always the case
here). When this fails we can fallback to malloc/read.

Regards,

Arnaud

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



[PHP-DEV] PHP 6 Bug Summary Report

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

 Num Status Summary (75 total -- which includes 34 feature requests)
===[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
===[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
===[mcrypt related]===
46834 Assigned   Range of mcrypt functions fail on PHP 6.0
===[MySQL related]
44076 Open   mysql_result returns nothing with blob
===[ODBC related]=
39756 Feedback   [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
47756 Open   Segfault on HTML Purifier test suite
===[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
47691 Open   strtr bug. Not replace unicode values from array, in binary 
string.
===[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 
lowercase
===[Zlib Related]=
30153 Suspended  FATAL erealloc() error when using gzinflate()
47178 Suspended  Missing gzip headers in gzencode() output
47179 Open   gzuncompress does not report expcted error

Assigned bugs and feature requests (reminders sent):
andrei  41758: SORT_LOCALE_STRING broken for sort()

[PHP-DEV] PHP 5 Bug Summary Report

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

 Num Status Summary (1327 total -- which includes 862 feature requests)
===[*XML functions]===
48095 Verified   Load RDF Format Error
===[Apache2 related]==
32220 Assigned   [PATCH] thread_resources for thread not getting freed when 
apache kills thread
47675 Open   File descriptor leaked due to HAVE_BROKEN_GETCWD
47681 Open   System TMP dir ignored in file uploads
48094 Feedback   Two graceful restarts are needed to enable PHP
===[Arrays related]===
47221 Open   no result from array_diff()
===[BC math related]==
44995 Open   bcpowmod() using a scale function always returns 0
46564 Verified   bcmod( '1071', '357.5' ) returns '0'
===[Bzip2 Related]
29521 Assigned   compress.bzip2 wrapper
===[Calendar related]=
40213 Suspended  easter_date() returns wrong timestamp if ...
===[CGI related]==
45217 Open   crash if -z and -m are used together
47042 Open   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   CGI SAPI can not send HTTP 200 header
47627 Open   "No input file specified" causing crash
47766 Assigned   php-cgi.exe crashes
48104 Feedback   FD-Leak - FastCGI + auto_prepend
===[Class/Object related]=
41461 Verified   E_STRICT notice when overriding methods not defined by an 
Interface in hierarchy
46140 Open   Unserializing with __wakeup that removes child causes 
subsequent refs to shift
46812 Verified   get_class_vars() does not include visible private variable 
looking at subclass
47405 Verified   error reports wrong file/line
===[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 ADODB error on win2008
47569 Open   DOTNET Excpection error
47869 Open   DocumentComplete does not return a useful COM object
47878 Open   ScriptControl function capitalization discrepancy
47984 Open   COM automation: garbled utf-8 text
48061 Open   Exception when passing array by ref to COM method
48067 Assigned   Class 'DOTNET' no

Re: [PHP-DEV] [PATCH] Scanner "diet" with fixes, etc.

2009-05-04 Thread Dmitry Stogov

Hi Matt,

I wasn't able to look into all details of the patch, but in general I 
like it, as it fixes bugs and makes scanner smaller. I think you can 
commit it.


Although this patch doesn't fix the EOF handling related to mmap().

Thanks. Dmitry.

Matt Wilmas wrote:

Hi guys,

- Original Message -
From: "Nuno Lopes"
Sent: Thursday, April 30, 2009

The patch looks generally ok. However I'll need a few more days to 
review it carefully and throughly. (you can merge it in the 
meantime  if you want).
I'm just slighty concern with the amount of parsing we are now 
doing  by hand, and with the possible (local) security bugs we might 
be introducing..



Am I understanding this properly, that this addresses the re2c EOF  
bug? So we have an RC planned for next week (freeze Monday evening).  
Can you get this fixed and released by then as Marcus is unable to 
do  this himself?


So this addresses some of the re2c EOF problems, but I don't know if 
it addresses all of them or not. I haven't had the time yet for a full 
review.

Anyway, Matt can surelly comment on this.


Yes, it addresses the re2c EOF issues for strings and comments, as they 
were the problem ones that allowed NULL bytes, and scanned past the EOF 
NULL.  As I said to Dmitry, I'm not sure if it's now possible to remove 
the temporary mmap() fixes that he wanted removed before the next RC 
(??), or if there would still be problems with re2c scanning other 
tokens, even though they can't contain NULLs.  I didn't attempt to make 
any changes there, since I'm not familiar with what's been done.


I just wanted to finally send the patch for others to review, and decide 
what to do, so I won't commit any changes yet in the meantime. :-)



Nuno



- Matt


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



Re: [PHP-DEV] [PATCH] Scanner "diet" with fixes, etc.

2009-05-04 Thread shire



Hey Matt,

Thanks for posting, sorry for not having a chance to reply to this sooner.  
Maybe couple things from the patch,


+/* To save initial string length after scanning to first variable, 
CG(doc_comment_len) can be reused */
+#define double_quotes_scanned_len CG(doc_comment_len)
+


(minor) Maybe we should rename this var if we're going to use it for other 
purposes, this doesn't really save any typing.  Also if we do want the define 
maybe we should upper case it so it's more obvious?


+   while (YYCURSOR < YYLIMIT) {
+   switch (*YYCURSOR++) {


In the example above, which we have a couple examples of here, we don't obey 
the YYFILL macro to detect if we have exceeded our EOF.  This *might* be a 
problem, but only really depends on if we intend to use the YYFILL as a 
solution for exceeding our mmap bounds.

Regarding the ZEND_MMAP_AHEAD issue and the temp. fix that Dmitry put in we 
need to find a solution to that, perhaps I can play with that this week too as 
I think I'm seeing some related issues in my testing of 5.3.  Essentially we 
abuse ZEND_MMAP_AHEAD by adding it to the file size and passing it to the mmap 
call which isn't at all valid and only really works up to PAGESIZE.  We could 
possibly use YYFILL to re-allocate more space as necessary past the end of file 
to fix this.

I don't see anything glaring in the patch that's a major issue, I can probably 
test more on a larger code base in the next 2-3 days.  As I've said before this 
seems to be crossing the line of us writing a scanner by hand rather than 
letting re2c do the heavy lifting, but without a modification to re2c to handle 
EOF I don't have an alternative solution currently.  (If we had some way to 
detect which regex we where matching against in the YYFILL that would likely be 
able to handle these bugs, but I didn't see a way to do that easily).

-shire

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