Next release of Phalanger; again faster, more stable and ready for daily use. Based on many user experiences this release is one more step closer to be perfect compiler and runtime of your old PHP applications; or perfect platform for migrating to .NET.
February 2011 release of Phalanger introduces several changes, enhancements and fixes. See complete
changelist for all the changes.
To improve the performance of your application using MySQL, please use
Managed MySQL Extension for Phalanger.
Main changes introduced in this release include following:
- Fixed several compatibility issues.
- preg_split() behaves as it does in PHP in case of very rare situations. See preg_split() incorrectly parses matches. It affects proper behavior of text parsing in MediaWiki application.
- Phalanger core is compilable and fully runs on Mono.
- Corrected behaviour of unset language construct when unsetting references
- Runtime enhancements and fixes.
- Several critical sections was secured. This fixes behavior when requests run heavily in parallel. Also it improves the performance significantly, when scripts are not accidentally recompiled and cached IL is reused properly.
- Fix of MultiScriptAssemblies (Precompiled DLLs) and SingleScriptAssebmlies (not precompiled WebSite); recursion prevention and other issues were fixed.
- mail() function throws detailed PHP warnings when SMTP send fails. Also the sender address can contain display name and the SMTP protocol does not fail.
- strrev() fixed. It returned an empty string when binary string was used.
- Performance improvements.
- PHP objects define .NET finalizer only if it is needed. This saves a lot of work of garbage collector.
- Static inclusions are reused during the compilation (MSA, SSA). More functions and classes are called fully statically.
- Reflection of assemblies is faster. It enhances the performance of the compilation process.
- Internal caches are without overhead. Script <Main> method is called directly, not via reflection.