Nowości z php.internals – plan rozwoju PHP 5.4

Wczoraj Stas Malyshev ponownie podniósł kwestię rozwoju PHP 5.4. Zaproponował następujący plan:

  • od obecnej chwili do 18 maja mają być zgłaszane propozycje cech, które są pożądane w tej wersji
  • 18 maja – początek dyskusji i głosowania nad cechami, które się znajdą w wersji finalnej
  • 15 czerwiec – wersja alfa, wydzielenie brancha 5.4 z trunka, koniec z dodawaniem nowych ficzerów, tylko poprawki błędów i rozwój zaakceptowanych cech
  • 20 lipiec – beta tylko poprawki błędów
  • 24 sierpień – Release Candidate 1 i kolejne RC co 2 tygodnie
  • Październik / Listopad – wersja finalna

Plan jaki zaproponował Stas wydaje się dość realistyczny i zyskał już poparcie Rasmusa Lerdorfa (BDFL PHP). Wszystkich ciekawych, co znajdzie się w PHP 5.4 zachęcam do czytania dokumentu „TODO„.

  1. batman pisze:

    Potwierdzają się moje obawy, że PHP stoi w miejscu, a „społeczność” odpowiedzialna za jego rozwój jest podzielona i niezdolna do dojścia do porozumienia. Najpierw śmiercią naturalną umarł PHP 6, teraz pojawia się długo wyczekiwana wersja 5.4, która tak na prawdę nie wnosi nic nowego (za wyjątkiem traits).

  2. No traity to duża zmiana, jest jeszcze tam kilka innych rzeczy takich jak znaczące przyśpieszenie wykonywania skryptów, o którym pisał Zyx ostatnio. Generalnie wolę żeby robili nowe wersje z duża ilością małych „ficzerów”, które wychodziły by w miarę często, niż duże wersje napakowane rzeczami, które się ciągną latami…

  3. batman pisze:

    Też jestem za tym, aby wydawać częściej i mniej. Z drugiej jednak strony nasze wspaniałe hostingi będą jak zwykle kilka wersji do tyłu.

  4. Niestety tak, ale to poniekąd też zasługa deweloperów PHP, że nie mają żadnego kalendarza i hosterzy oraz przede wszystkim twórcy dystrybucji Linuksa muszą stosować własny plan wydawniczy.

  5. Ja uważam, że w tym momencie PHP jest na wystarczającym poziomie do programowania nawet na wysokim poziomie zaawansowania OOP. Dlatego cieszy mnie przede wszystkim wzrost wydajności – traitsy może są ciekawym mechanizmem, ale nie sądzę, żeby były szeroko wykorzystywane w kodzie nawet kilka miesięcy po premierze stabilnej wersji.

  6. Spawnm pisze:

    Jeśli php 5.4 okaże się tak super wydajny to hostingodawcy pewnie bardzo szybko zaktualizują php u siebie bo to im się opłaci :)

  7. Spawnm – nie wiem czy znasz takie powiedzenie „Przyzwyczajenie drugą naturą”. Każda kolejna wersja PHP jest szybsza od poprzedniej i uwierz mi to nie ta kwestia.

  8. Z tego co wiem, a także z tego co testował Zyx wersja 5.3 jest minimalnie wolniejsza od 5.2.

  9. @Tomasz – zależy co testujesz, bo czytając release notes widać, że dużo poprawili: „Improved PHP runtime speed and memory usage:
    Substitute global-scope, persistent constants with their values at compile time. (Matt)
    Optimized ZEND_SIGNED_MULTIPLY_LONG(). (Matt)
    Removed direct executor recursion. (Dmitry)
    Use fastcall calling convention in executor on x86. (Dmitry)
    Use IS_CV for direct access to $this variable. (Dmitry)
    Use ZEND_FREE() opcode instead of ZEND_SWITCH_FREE(IS_TMP_VAR). (Dmitry)
    Lazy EG(active_symbol_table) initialization. (Dmitry)
    Optimized ZEND_RETURN opcode to not allocate and copy return value if it is not used. (Dmitry)
    Replaced all flex based scanners with re2c based scanners. (Marcus, Nuno, Scott)
    Added garbage collector. (David Wang, Dmitry).
    Improved PHP binary size and startup speed with GCC4 visibility control. (Nuno)
    Improved engine stack implementation for better performance and stability. (Dmitry)
    Improved memory usage by moving constants to read only memory. (Dmitry, Pierre)
    Changed exception handling. Now each op_array doesn’t contain ZEND_HANDLE_EXCEPTION opcode in the end. (Dmitry)
    Optimized require_once() and include_once() by eliminating fopen(3) on second usage. (Dmitry)
    Optimized ZEND_FETCH_CLASS + ZEND_ADD_INTERFACE into single ZEND_ADD_INTERFACE opcode. (Dmitry)
    Optimized string searching for a single character. (Michal Dziemianko, Scott)
    Optimized interpolated strings to use one less opcode. (Matt)”

    zawsze jest kwestia tego czego dotyczą testy 😉

  10. Wiesz, Ty mówisz o optymalizacjach wewnątrz samego interpretera, ja miałem na myśli wrażenie programisty końcowego. ;]

  1. There are no trackbacks for this post yet.

Leave a Reply

Informuj mnie o odpowiedziach poprzez e-mail. Możesz również subskrybować wpis bez zostawiania komentarza.