Hi,
In the spirit of forwards compabitility I think the 5.3 release will we
very important regardless if we keep or remove the unicode switch in
PHP6. From my POV 5.1 and 5.2 have mainly covered stability and
performance improvements on top of the addition of several important
extensions like PDO, Json etc.
In terms of changes to the actual language the main thing that sticks in
my head where things like E_STRICT
and is_a vs. instanceOf. So now with
5.3 we might want to look ahead towards PHP6 and make sure that we add
whatever makes sense to have in 5.x that will ease the life for people
writing forward compatible code for PHP6. It might also be a chance to
revisit the question of how we want to approach strictness and deprecation.
Forward compatibility:
- binary cast
- namespaces
- ...
Strictness:
- What is our philisophy, is OO more strict than procedural or is there
no such differntiation? I remember the discussions about dynamic member
variables, number incrementing throwing notices inconsistently,
signature rewriting. I fear I am opening a can of worms with this one.
Although I disagree with the bulk of the decisions on this topic in the
past I am not trying to reopen the discussions, I just hope to get a
clearer definition on our philosiphie for future discussions
Deprecation:
- Split of deprecation from
E_STRICT
- Rule for deprecation
See the todo wiki for some hints on things currently planned (or that I
heard people thinking about planning):
http://oss.backendmedia.com/PhP53
http://oss.backendmedia.com/PhP60
regards,
Lukas
As an answer to question in subject: HEAD/5.3 should be identical except
for the unicode support which is the only thing PHP 6 is about.
--Jani
Hello Lukas,
I added 'MFH namespace' to the TODO list. Otherwise I am fine. For the
given amount of stuff with my name on it I'd need some time though.
marcus
Monday, August 27, 2007, 11:30:22 AM, you wrote:
Hi,
In the spirit of forwards compabitility I think the 5.3 release will we
very important regardless if we keep or remove the unicode switch in
PHP6. From my POV 5.1 and 5.2 have mainly covered stability and
performance improvements on top of the addition of several important
extensions like PDO, Json etc.
In terms of changes to the actual language the main thing that sticks in
my head where things likeE_STRICT
and is_a vs. instanceOf. So now with
5.3 we might want to look ahead towards PHP6 and make sure that we add
whatever makes sense to have in 5.x that will ease the life for people
writing forward compatible code for PHP6. It might also be a chance to
revisit the question of how we want to approach strictness and deprecation.
Forward compatibility:
- binary cast
- namespaces
- ...
Strictness:
- What is our philisophy, is OO more strict than procedural or is there
no such differntiation? I remember the discussions about dynamic member
variables, number incrementing throwing notices inconsistently,
signature rewriting. I fear I am opening a can of worms with this one.
Although I disagree with the bulk of the decisions on this topic in the
past I am not trying to reopen the discussions, I just hope to get a
clearer definition on our philosiphie for future discussions
Deprecation:
- Split of deprecation from
E_STRICT
- Rule for deprecation
See the todo wiki for some hints on things currently planned (or that I
heard people thinking about planning):
http://oss.backendmedia.com/PhP53
http://oss.backendmedia.com/PhP60
regards,
Lukas
Best regards,
Marcus
Lukas Kahwe Smith schrieb:
[...]
- New Garbage Collector (GSoC)
- Late Static Binding
--
Sebastian Bergmann http://sebastian-bergmann.de/
GnuPG Key: 0xB85B5D69 / 27A7 2B14 09E4 98CD 6277 0E5B 6867 C514 B85B 5D69
Don't you thing that a far-reaching thing like garbage collector is best
left until a major release?
-Andrei
http://10fathoms.org/vu - daily photoblog
Sebastian Bergmann wrote:
Lukas Kahwe Smith schrieb:
[...]
- New Garbage Collector (GSoC)
- Late Static Binding
Andrei Zmievski schrieb:
Don't you thing that a far-reaching thing like garbage collector is
best left until a major release?
It is just a number. We could, of course, also take what is in HEAD
minus Unicode and release it, together with Garbage Collector, Late
Static Bindings, and some other pending changes as PHP 6 and make PHP 7
the "Unicode Release". :-)
--
Sebastian Bergmann http://sebastian-bergmann.de/
GnuPG Key: 0xB85B5D69 / 27A7 2B14 09E4 98CD 6277 0E5B 6867 C514 B85B 5D69
I think we're still far away from a working garbage collector which is
production quality. At least last time we were discussing it. This
should still remain a PHP 6 item if we can actually make it works in an
acceptable way.
Andi
-----Original Message-----
From: news [mailto:news@sea.gmane.org] On Behalf Of Sebastian Bergmann
Sent: Monday, August 27, 2007 3:37 AM
To: internals@lists.php.net
Subject: Re: [PHP-DEV] What should be in 5.3?Lukas Kahwe Smith schrieb:
[...]
- New Garbage Collector (GSoC)
- Late Static Binding
--
Sebastian Bergmann http://sebastian-
bergmann.de/
GnuPG Key: 0xB85B5D69 / 27A7 2B14 09E4 98CD 6277 0E5B 6867 C514 B85B
5D69
I think we're still far away from a working garbage collector which is
production quality. At least last time we were discussing it. This
should still remain a PHP 6 item if we can actually make it works in an
acceptable way.
Have you checked the latest patch that david send here? He updated quite
a bit to address all the issues that were raised as far as I know.
Derick
--
Derick Rethans
http://derickrethans.nl | http://ez.no | http://xdebug.org
I think we're still far away from a working garbage collector which is
production quality.
Im sure it has bugs, but last time I tested the "circular" repository
it was working really fine and the save of memory was really big ;-)
I think we're still far away from a working garbage collector which is
production quality.Im sure it has bugs, but last time I tested the "circular" repository
it was working really fine and the save of memory was really big ;-)
Yes, but Andi is desperate to have at least something else than just
unicode support in PHP 6. No worries, this will go in 5.3.
--Jani
This is based on our experience with making changes in the memory
manager (significantly smaller changes than this one) and how long it
takes to stabilize them.
Andi
-----Original Message-----
From: Jani Taskinen [mailto:jani.taskinen@sci.fi]
Sent: Wednesday, August 29, 2007 1:58 AM
To: Cristian Rodriguez
Cc: internals@lists.php.net
Subject: Re: Re: [PHP-DEV] What should be in 5.3?I think we're still far away from a working garbage collector
which
is
production quality.Im sure it has bugs, but last time I tested the "circular"
repository
it was working really fine and the save of memory was really big ;-)Yes, but Andi is desperate to have at least something else than just
unicode support in PHP 6. No worries, this will go in 5.3.--Jani
Andi Gutmans schrieb:
This is based on our experience with making changes in the memory
manager (significantly smaller changes than this one) and how long it
takes to stabilize them.
Then we should make sure that the garbage collector goes into HEAD ASAP,
should we not?
--
Sebastian Bergmann http://sebastian-bergmann.de/
GnuPG Key: 0xB85B5D69 / 27A7 2B14 09E4 98CD 6277 0E5B 6867 C514 B85B 5D69
Sebastian,
Just so you guys don't get the wrong idea, I have a garbage collector
book sitting on my shelf which I bought 2-3 years ago as I was thinking
of implementing this. Unfortunately I hit some issues and edge cases and
didn't have enough time to spend on this. So I'm definitely not against
a garbage collector. It's something I think would be very good for PHP
even if it were optional.
I do think though that we need an opportunity to review it, test it &
benchmark it. Again, whoever has done work in his life on memory
managers knows how sensitive they are.
David, do you have a patch against PHP 5.2? For some reason I don't
think I got the updated patch although Derick said you sent it out.
Thanks,
Andi
-----Original Message-----
From: news [mailto:news@sea.gmane.org] On Behalf Of Sebastian Bergmann
Sent: Wednesday, August 29, 2007 8:06 AM
To: internals@lists.php.net
Subject: Re: [PHP-DEV] What should be in 5.3?Andi Gutmans schrieb:
This is based on our experience with making changes in the memory
manager (significantly smaller changes than this one) and how long
it
takes to stabilize them.Then we should make sure that the garbage collector goes into HEAD
ASAP,
should we not?--
Sebastian Bergmann http://sebastian-
bergmann.de/
GnuPG Key: 0xB85B5D69 / 27A7 2B14 09E4 98CD 6277 0E5B 6867 C514 B85B
5D69
Andi Gutmans schrieb:
Sebastian,
Andi,
I do think though that we need an opportunity to review it, test it &
benchmark it.
and this is exactly what I want to faciliate with having David's code
merged into HEAD: exposing it to more people for increased testing.
David developed his garbage collector in a CVS branch that was copied
from PHP_5_2 back when he started.
To make the patch smaller, easier to read, and the code review easier I
suggest that all his code changes that change direct manipulations of
reference counters to the use of the respective macros are committed -
they make sense in any case.
Cheers,
Sebastian
--
Sebastian Bergmann http://sebastian-bergmann.de/
GnuPG Key: 0xB85B5D69 / 27A7 2B14 09E4 98CD 6277 0E5B 6867 C514 B85B 5D69
Then we should make sure that the garbage collector goes into HEAD ASAP,
should we not?
Does anybody uses HEAD in production on a bunch of moderate-to-heavily
loaded sites? If not, how does it matter if the patch sits in HEAD or
not, one that wishes to test it can do that.
I'm not against GC (unless it's slow :) but I don't see why putting it
into HEAD matters so much.
Stanislav Malyshev, Zend Software Architect
stas@zend.com http://www.zend.com/
(408)253-8829 MSN: stas@zend.com
Then we should make sure that the garbage collector goes into HEAD ASAP,
should we not?Does anybody uses HEAD in production on a bunch of moderate-to-heavily
loaded sites? If not, how does it matter if the patch sits in HEAD or
not, one that wishes to test it can do that.I'm not against GC (unless it's slow :) but I don't see why putting it
into HEAD matters so much.
HEAD is for _development. If we loose the development branch, I cannot
imagine any sane to get things done, to get things in nice way :)
--Pierre
Cristian Rodriguez wrote:
I think we're still far away from a working garbage collector which is
production quality.Im sure it has bugs, but last time I tested the "circular" repository
it was working really fine and the save of memory was really big ;-)
What sort of script did you save a lot of memory on? It takes some very
specific code for you to see noticable savings with this.
-Rasmus
What sort of script did you save a lot of memory on? It takes some very
specific code for you to see noticable savings with this.
I used very specific code otherwise there is no way to test if the
particular enhacement work ;)
I also used average and big apps in order to check if there was some
regression, so far, no problem detected.( note that I did not measure
speed, because I care 99% about proper behaviuor and 1% about speed)
Hi all,
From my point of view I think we can make a really good PHP 5.3 release
pretty quickly as long as we are careful about the scope. There's a lot
of good work which is low risk which we can easily roll into it. There
are high risk items like garbage collection etc. which I think we should
continue working on, etc. but target them more towards PHP 6. Adding
such features into a PHP 5.3 branch wouldn't allow us to release that
for a long time. I think schedule wise it's not unreasonable to do a
pretty feature rich PHP 5.3 beta in November and release in January. I
prefer the release-early, release-often mantra and that'll require us to
somewhat be careful about the scope and high risk items.
The following are some suggestions we (Dmitry, Stas and I) have re:
items we had on our lists. We divided them into what we think are
must-haves (i.e. don't release without), should-haves (we should try to
get these in but they wouldn't be show stoppers for release), and nice
to-haves (low priority).
Must have:
These are ones that we'd really like to be in 5.3 and think should delay
5.3 release if they aren't ready.
- ICU extension
- OpenSSL modifications for OpenID
- Dynamic class access ($class::method)
- (binary) operator which is the same as (string)
- remove --enable-fastcgi and family, always enable them
- __callStatic & friends
- remove warning for var
Should have:
These are ones that we'd like to be in 5.3, but if there are problems
with them we are ready to go without them and catch up in 5.3.x, 5.4,
etc.
- Unicode extension (normalization, character properties, etc.)
- Late static binding
- Namespaces (still needs maturing so that will be the main factor
for deciding if in or out) - Make memory manager pluggable per-request (simple patch)
- Synchronize all OO module docs to look the same (PHPDOC team)
- remove undocumented support for strings in list($a,$b) = "ab"
- Move arg_info and other C constants from .data to .text (or
.rdata) segment - Non-parsed heredocs (nowdocs)
Nice to have:
These are ones that we'd like to have in 5.3, but are not important
enough to spend energy on before first two groups are achieved (unless
of course somebody has a good working implementation).
- cookie2 support
- stat cache for windows/unix
- mysqlnd
- goto
- __construct in interfaces
- Compiled functions (CFs) and classes in PHP
- Allow parser to evaluate static expressions (-1, 2+2) in
compile-time (it won't work with constants (X+1))
Our 2 cents.
Andi
-----Original Message-----
From: Lukas Kahwe Smith [mailto:mls@pooteeweet.org]
Sent: Monday, August 27, 2007 2:30 AM
To: PHP Developers Mailing List
Subject: [PHP-DEV] What should be in 5.3?Hi,
In the spirit of forwards compabitility I think the 5.3 release will
we
very important regardless if we keep or remove the unicode switch in
PHP6. From my POV 5.1 and 5.2 have mainly covered stability and
performance improvements on top of the addition of several important
extensions like PDO, Json etc.In terms of changes to the actual language the main thing that sticks
in
my head where things likeE_STRICT
and is_a vs. instanceOf. So now
with
5.3 we might want to look ahead towards PHP6 and make sure that we add
whatever makes sense to have in 5.x that will ease the life for people
writing forward compatible code for PHP6. It might also be a chance to
revisit the question of how we want to approach strictness and
deprecation.Forward compatibility:
- binary cast
- namespaces
- ...
Strictness:
- What is our philisophy, is OO more strict than procedural or is
there
no such differntiation? I remember the discussions about dynamic
member
variables, number incrementing throwing notices inconsistently,
signature rewriting. I fear I am opening a can of worms with this one.
Although I disagree with the bulk of the decisions on this topic in
the
past I am not trying to reopen the discussions, I just hope to get a
clearer definition on our philosiphie for future discussionsDeprecation:
- Split of deprecation from
E_STRICT
- Rule for deprecation
See the todo wiki for some hints on things currently planned (or that
I
heard people thinking about planning):http://oss.backendmedia.com/PhP53
http://oss.backendmedia.com/PhP60regards,
Lukas
Hi Andi,
Andi Gutmans wrote:
Hi all,
From my point of view I think we can make a really good PHP 5.3 release
pretty quickly as long as we are careful about the scope. There's a lot
of good work which is low risk which we can easily roll into it. There
are high risk items like garbage collection etc. which I think we should
continue working on, etc. but target them more towards PHP 6. Adding
such features into a PHP 5.3 branch wouldn't allow us to release that
for a long time. I think schedule wise it's not unreasonable to do a
pretty feature rich PHP 5.3 beta in November and release in January. I
prefer the release-early, release-often mantra and that'll require us to
somewhat be careful about the scope and high risk items.The following are some suggestions we (Dmitry, Stas and I) have re:
items we had on our lists. We divided them into what we think are
must-haves (i.e. don't release without), should-haves (we should try to
get these in but they wouldn't be show stoppers for release), and nice
to-haves (low priority).Must have:
These are ones that we'd really like to be in 5.3 and think should delay
5.3 release if they aren't ready.
- ICU extension
- OpenSSL modifications for OpenID
- Dynamic class access ($class::method)
- (binary) operator which is the same as (string)
- remove --enable-fastcgi and family, always enable them
- __callStatic & friends
- remove warning for var
Should have:
These are ones that we'd like to be in 5.3, but if there are problems
with them we are ready to go without them and catch up in 5.3.x, 5.4,
etc.
- Unicode extension (normalization, character properties, etc.)
- Late static binding
- Namespaces (still needs maturing so that will be the main factor
for deciding if in or out)- Make memory manager pluggable per-request (simple patch)
- Synchronize all OO module docs to look the same (PHPDOC team)
- remove undocumented support for strings in list($a,$b) = "ab"
- Move arg_info and other C constants from .data to .text (or
.rdata) segment- Non-parsed heredocs (nowdocs)
Nice to have:
These are ones that we'd like to have in 5.3, but are not important
enough to spend energy on before first two groups are achieved (unless
of course somebody has a good working implementation).
- cookie2 support
- stat cache for windows/unix
- mysqlnd
speaking of mysqlnd its state is beta. No new features, stabilizing.
Currently when running in unicode mode there are about 714 pending
execution. There are experimental functions in mysqli, which are skipped
for testing. The aim has been always not to lag behind mysqli/libmysql
and it's true. Actually mysqli/libmysql lags behing mysqli/mysqlnd as
libmysql gets bug-fixes quite slower than mysqlnd does.
mysql, mysqli and mysqlnd have gcov level above 88%, as far as I recall.
The average for PHP is somewhere above 50%.
JFYI, Ulf blogged lately on memory consumption and tuning of mysqlnd.
Pretty long, but very good blog entry. We continue to identify
bottlenecks and optimize mysqlnd.
http://blog.ulf-wendel.de/?p=157
- goto
- __construct in interfaces
- Compiled functions (CFs) and classes in PHP
- Allow parser to evaluate static expressions (-1, 2+2) in
compile-time (it won't work with constants (X+1))Our 2 cents.
Andi-----Original Message-----
From: Lukas Kahwe Smith [mailto:mls@pooteeweet.org]
Sent: Monday, August 27, 2007 2:30 AM
To: PHP Developers Mailing List
Subject: [PHP-DEV] What should be in 5.3?Hi,
In the spirit of forwards compabitility I think the 5.3 release will
we
very important regardless if we keep or remove the unicode switch in
PHP6. From my POV 5.1 and 5.2 have mainly covered stability and
performance improvements on top of the addition of several important
extensions like PDO, Json etc.In terms of changes to the actual language the main thing that sticks
in
my head where things likeE_STRICT
and is_a vs. instanceOf. So now
with
5.3 we might want to look ahead towards PHP6 and make sure that we add
whatever makes sense to have in 5.x that will ease the life for people
writing forward compatible code for PHP6. It might also be a chance to
revisit the question of how we want to approach strictness and
deprecation.Forward compatibility:
- binary cast
- namespaces
- ...
Strictness:
- What is our philisophy, is OO more strict than procedural or is
there
no such differntiation? I remember the discussions about dynamic
member
variables, number incrementing throwing notices inconsistently,
signature rewriting. I fear I am opening a can of worms with this one.
Although I disagree with the bulk of the decisions on this topic in
the
past I am not trying to reopen the discussions, I just hope to get a
clearer definition on our philosiphie for future discussionsDeprecation:
- Split of deprecation from
E_STRICT
- Rule for deprecation
See the todo wiki for some hints on things currently planned (or that
I
heard people thinking about planning):http://oss.backendmedia.com/PhP53
http://oss.backendmedia.com/PhP60regards,
Lukas--
Regards,
Andrey