Представлены (http://php.net/index.php#id2012-12-20-1) корректирующие выпуски интерпретатора языка программирования PHP - 5.4.10 и 5.3.20, в которых устранено 19 ошибок (http://php.net/ChangeLog-5.php), не связанных с безопасностью, но устраняющих некоторые серьёзные проблемы со стабильностью. Из исправленных проблем можно отметить крах в процессе работы сборщика мусора, низкая производительность функции date() и переполнение буфера в коде модуля FPM.Разработчики напоминают, что ветка 5.3.x подходит к концу своего жизненного пути, в связи с чем пользователям рекомендуется заранее спланировать обновление своих систем. Начиная с марта 2013 года в ветке 5.3.x будут исправляться только критически проблемы безопасности.
URL: http://php.net/index.php#id2012-12-20-1
Новость: http://www.opennet.me/opennews/art.shtml?num=35660
Сколько процентов скриптов поддерживают только 5.2.x?
When storing '015700' microseconds in a Datetime object,
Datetime::format('u') returns '015699'. This behavior is critical when
I use optimistic locking.----
$datetime = Datetime::createFromFormat('u', '015700');
$datetime->format('u'); // => '015699'
----Datetime objects hold microseconds as "double" type in C.
'015700' is held as 0.015699999999999998679. Datetime::format('u')
calls floor() and it returns .015699.
-----PATCH
- case 'u': length = slprintf(buffer, 32, "%06d", (int) floor(t->f * 1000000)); break;
+ case 'u': length = slprintf(buffer, 32, "%06d", (int) floor(t->f * 1000000 + 0.5)); break;Клевое исправление бага!
> - case 'u': length = slprintf(buffer, 32, "d", (int) floor(t->f * 1000000));
> break;
> + case 'u': length = slprintf(buffer, 32, "d", (int) floor(t->f * 1000000
> + 0.5)); break;
> Клевое исправление бага!Откройте для себя... математику!
Они все http://stackoverflow.com/questions/485525/round-for-float-in-c сделали для себя из имеющегося froor() отсутствующий round(). "Клёва", да? Ну-ну.
Именно! Настоящие программисты оперируют датой и временем исключительно в строковом виде.
Куда они все время спешат?! Не все еще к 5.3 привыкли, а ей уже пора сказать до свидания. Но если новый регламент будет эффективен, то ветка PHP 5.4 задержится подольше. Интересно, что они обычно поддерживают две ветки, причем обе всегда помечены как стабильные.Интересно почему за все время существования проекта ни кто не создал форк
а что в этом такого плохого? обновитесь до 5.4, просто не использовать функции которые deprecated. Не вижу в этом ничего зазорного
ну как же, мордокника сделала форк
Они сделали не больший форк чем допустим pypy - форк питона.
дебил, это не форк, а альтернативная реализация. pypy который
> Интересно почему за все время существования проекта ни кто не создал форкФорки делают, если, например, не согласны с политикой разработчиков, хочется добавить фич, которые не берут в майнлайн. Но такая ситуация для пхп выглядит дико, поскольку его любят совсем за другое - можно хотя бы вспомнить то, что это потомок не менее мощного Perl. Так что тем, кому требуются фичи и вообще грамотно спроектированный язык, проще уйти на что-нибудь другое
> потомок не менее мощного PerlЭто как вырезанная опухоль - потомок человека.
Как я понял
5.4.10 - бета версия
5.3.20 - вот что это за версия хз ? Как её обозвать 13 ошибок.
5.3 - Legacy versions
5.4 - Stable version
5.5 - Development version
> Разработчики напоминают, что ветка 5.3.x подходит к концу своего жизненного путискорее РНР подходит к концу своего жизненного пути.
Новость от 21.12.2017:
"Состоялся релиз РНР 6.0. Он основан на кодовой базе Python 2.0, но с сохранением синтакиса РНР. В версии 7.0 (по оптимистичным прогнозам, через 20 лет) мы планируем полностью перейти на синтаксис Python, а сейчас пока объявляем синтаксис РНР deprecated. Напоминаем, что ветки РНР 5.23, 5.24, 5.25 и выше подошли к концу своего жизненного цикла, так и не появившись."