JIT for PHP based on DynAsm #3792
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
* master: EXPECT instead of EXPECTF Fixed: tests not written to pass on Windows cli_get_process_title() may not be empty before set Not skipping test on Windows and test against CLI instead Added: tests for cli_get_process_title / cli_set_process_title Do the revert properly, and put back fraction support in 7.1 Fixed 32-bit tests as well. Revert "Upgrade timelib to 2017.05beta7" Revert "Remove removed header files from configuration files." Fixed stupid test Added timelib version to phpinfo()
* master: Fixed bug #75089 (preg_grep() is not reporting PREG_BAD_UTF8_ERROR after first input string) Fix phpize exit status Add dump env target Make ext/zend_test report itself as zend-test in `php -m' Fix test location We don't use these makefiles for compiling PHP extensions anymore (PHP4 era) Get rid of all these old package.xml files, most of these had no had a release since PHP4, or any release at all in close to 10 years, some even did not have a package registered at pecl Implemented FR #74781 (Add the latest PG_DIAG_* const) bump versions
* master: Initial implementation of Escape Analysis (disabled yet). timelib now have a function for this, use it sodium ext: If sodium_init() returns 1, this is fine. Update NEWS Update NEWS Update NEWS Fixed bug #74631 (PDO_PCO with PHP-FPM: OCI environment initialized before PHP-FPM sets it up) Correct default value in master Correct default value Attempt to fix unstable test
* master: (21 commits) Enable PGO for Opcache Switch to non deprecated PGO options sodium ext: if it's a length, call it "length"! sodium ext: add bindings for sodium_pad() and sodium_unpad() Fixed bug #75111 (Memory disclosure or DoS via crafted .bmp image) sodium ext: restore sodium_remove_param_values_from_backtrace() call sodium ext: sync sodium_crypto_kdf_derive_from_key() with the standalone ext sodium ext: Constants were renamed SODIUM_* Adjust error messages accordingly. From documentation, only the sign of returned value is relevant Jani is not a member of the QA team anymore, and have not been for years Kill compiler warnings in ext/phar Kill compiler warnings in ext/standard Kill compiler warnings in ext/xml Kill compiler warnings in ext/hash Kill a compiler warning in ext/mysqlnd Kill compiler warnings in ext/com_dotnet Kill a compiler warning Fixed typo in FPM error message Use ZEND_HASH_APPLY_SHIFT macro instead of hard-coded literal Consolidate Valgrind logic into a single var and class ...
* master: (33 commits) Extend SCCP pass with support for elements of non-escaping arrays Fix symbol name Removed support for BeOS, development for BeOS was supported 17 years ago. Remove this old obsolete TODO file ext/sodium: the second parameter of sodium_hex2bin() is optional ext/sodium: AI_StringRef_And_String -> AI_StringRefAndString for consistency ext/sodium: sort functions list Fixed escaping instructions Update NEWS for 7.2.0RC2 Update NEWS for PHP 7.2.0RC1 Fixed tests titels Added few Optimizer tests Accurate handling of ZEND_ASSIGN_OBJ Check for user defined classes Escpaing objects can't have destructors, so their assignment don't make side effects and may be eliminated. Fix constant references in error messages in ext/sodium Aliased varaibles may escape Make assignment to elements of non-esaping arrays and objects removable by DCE pass. Enable escape analysis Include variables with false dependencies into equi escape sets. ...
* master: Remove dead construction of non-escaping arrays and objects Extend SCCP to support properties of non-escaping objects Fixed SSA construction for PRE_INC_OBJ and family (these opcodes change the source object) move AC_DEFINE in the right position (in bundled lib conditon) Automatically load OpenSSL configuration file Do not explicitly initialize and clean up OpenSSL for OpenSSL 1.1
* master: Fix command Fixed SCCP rewinding on partial_array|object phi Fixed SCCP on PHI(partial_object#1, partial_object#2) Fixed SCCP on PHI(contant_array, partial_array) Fixed bug #75139 (libgd/gd_interpolation.c:1786: suspicious if ?) Added skipif.inc Fixed bug #75143 new method setEncryptionName() seems not to exist in ZipArchive Yet one DLL to ignore Remove dead allocations of non-escaping objects Objects with constructors escape Make for exclusion per regex Extend ignore list for DLLs to not to look after Fix `nmake install` fails when there are no shared extensions Copy dependencies of the core DLL in `nmake snap` for statically-compiled extensions when packaging builds
…erands is known to be numeric.
* master: (27 commits) Fix assertion in Exception::getMessage() if $message is a ref Fix some directory collisions in dir tests Fix some port collisions in sockets tests Fixed compiler warning Update NEWS Fixed bug #77660 (Segmentation fault on break 2147483648) Update NEWS Fixed bug #77664 (Segmentation fault when using undefined constant in custom wrapper) Revert "Disable bug77390.phpt" Print empty string in test for but 77390 just once Use spaces instead of tabs in bug 77390 test Remove unused PHP_AC_BROKEN_SPRINTF and AC_ZEND_BROKEN_SPRINTF Replace Hebrew characters with escape sequences Disable bug77390.phpt Fix anon class handling in ext mode Remove result def during jmp_set optimization Fix removal of unreachable code in SCCP Fix inference warning about missing key type Fix get_unresolved_initializer for static props Fix directory collisions in zlib tests ...
* master: (33 commits) Test for function posix_getpwnam() basic functionality NEWS Removed pdo_odbc.db2_instance_name Fix file permissions Remove PHP_DECLARED_TIMEZONE and HAVE_DECLARED_TIMEZONE Free map_base_ptr during post_startup Don't remove CONST CAST in CONCAT operand Remove unnecessary convert_to_string_safe macro Fix leak in resolve_property_types Don't return inside _DO_THROW macro Remove more leftovers of mysqli embedded server Fixed bug #50020 (DateInterval:createDateFromString() silently fails) Sync with 7be0e06 Remove dead code Remove mysqli embedded server support Sync with behavior change in OpenSSL 1.1.1b Use zpp string argument in imagecreatefromstring() Disable test parallelization on AppVeyor with opcache Mark ext/xmlreader/tests/bug70309.phpt as online test Fixed bug #77669 ...
A dev snapshot for Windows is available here https://windows.php.net/downloads/snaps/ostc/jit-dynasm/20190301/. Everyone interested please test carefully and report bugs :)
* master: (36 commits) Don't generate script for proc_open_pipes tests Use separate output files in x2gd tests Use separate directories for win32 dir tests Fix test error message Fix bug #77563 - Uninitialized read in exif_process_IFD_in_MAKERNOTE Fix bug #77540 - Invalid Read on exif_process_SOFn Fix integer overflows on 32-bits Fix #77431 SplFileInfo::__construct() accepts NUL bytes Fix bug #77396 - Null Pointer Dereference in phar_create_or_parse_filename Fix bug #77586 - phar_tar_writeheaders_int() buffer overflow Update NEWS Fix test error message Fix bug #77563 - Uninitialized read in exif_process_IFD_in_MAKERNOTE Fix bug #77540 - Invalid Read on exif_process_SOFn Fix integer overflows on 32-bits Fix #77431 SplFileInfo::__construct() accepts NUL bytes Fix bug #77396 - Null Pointer Dereference in phar_create_or_parse_filename [ci skip] Remove oniguruma and libzip leftovers Remove outdated hack for AIX 4 Remove AC_PROG_CC_C_O ...
* master: Remove custom error handler in mbstring tests Remove more zpp error tests Remove tests for zpp failure conditions add NEWS entry Fixed support for callbacks with "void" return type Update NEWS Fix bug #77630 - safer rename() procedure Replace --with-gd by --enable-gd for Travis Fix test portability Update NEWS Fixed bug #77691 Move Makefile.global and Makefile.gcov to build directory Revert "Detect invalid uses of parent:: during compilation" Replace PHP_TM_GMTOFF with AC_CHECK_MEMBERS Remove mkinstalldirs, install-sh and missing add NEWS entries
* master: (59 commits) weakrefs upgrading note zend_weakrefs Die hard if mc.exe or mt.exe not found SQLite3: add DEFENSIVE config for SQLite >= 3.26.0 as a mitigation strategy against potential security flaws Fixed bug #76717 Free trampolines from get_closure in is_callable Closure::fromCallable() supports only regular methods and magic method invoked through __call()/__callStatic(). It doesn't support method of internal classes invoked through C object or class handlers. This commit prevents crash described at bug #77708, but doesn't implement the desired behavior. Reset fields Fixed bug #77707 (FFI loses type information for opaque types) Adjust tests for zpp TypeError change Remove some unnecessary error handler setting Intl: Don't separately report "bad arguments" errors Make zpp failures always throw, independent of strict_types Fixed bug #77706 (Improve error messages in FFI for incompatible arguments) Fix #71890: Add support for crc32c Castagnoli's polynomial. Fix shm api detection test for opcache module on FreeBSD drop unused parameter from zend_startup Remove function_table var from the caller curl_exec: remove bad check for CURLE_PARTIAL_FILE This option doesn't exist for a long time. ...
* master: Better data packing Avoid reinitailization of ZTS cache pointer. Initialize it once in TSRM.c Fixed ZTS cache usage Fixed ZTS cache usage Fixed ZTS cache usage Fixed ZTS cache usage Switch to use ZTS cache Cleanup unused module globals Fixed ZTS cache usage Fixed bug #77722 add --enable-rtld-now in upgrade info use DL_LOAD in litespeed add --enable-rtld-now build option to change dlopen behavior
* master: Implemented a faster way to access predefined TSRM resources - CG(), EG(), etc. Integrate README.EXT_SKEL to help option test reversed Fix duplicate symbols _zend_ce_weakrefs [ci skip] Mention removed m4 macros Sync with ZEND_ENABLE_STATIC_TSRMLS_CACHE enablement in ext/mbstring
* master: Fixed bug #77697 (Crash on Big_Endian platform) Add tests to XMLReader Fix failing test Clean build system Remove HAVE_STRFTIME Fix weakref object handlers for master ext/session: remove the redundant convert_to_long Fixed bug #77742 updated NEWS Fixed bug #77738 (Nullptr deref in zend_compile_expr)
* master: (73 commits) fix test Remove usage of HAVE_HASH_EXT and COMPILE_DL_HASH as ext/hash is always available (master only) Sync the changes to ext/filter with 7.4, now that it works. Unbundle ext/wddx Fix tests after fix for #76717 Fixed bug #74345 NEWS Revert "Fix #77609: Tests from mailparse extension fails" Mark bug76348.phpt as online test Fixed incorrect error message Fixed typo Upgrade deprecated directives and use non-posix bison Remove extension readmes Bump versions for 7.2.18 comment out sqlite3.defensive = 1 follow common practice, this is the default value Prepare main branch for PHP 7.3.5 fix test for upcoming pcre2 10.33 Respect OFFSET_CAPTURE when padding preg_match_all() results Fixed bug #76127 Don't create a new array for empty/null match every time ...
* master: (54 commits) Add additional protected visibility prototype test Revert "Switch to bison location tracking" fix build: readline support must be disabled by default in phpdbg Validate subject encoding in mb_split and mb_ereg_match Validate pattern against mbregex encoding Support for __restrict and few GCC attributes Use semantic predicates to simplify lookahead and reduce backtracking Treat abstract ctors the same, regardless of origin Fix lineno for more inheritance errors Make line numbers for inheritance errors more precise Consider phpdbg as cli Fix #77805 phpdbg build fails when readline is shared Validate interoperability between libsodium and libargon for argon2i(d) hashing Increase default time cost for argon2 password hashing more work on phpdbg conditional breaks Fix #77800 phpdbg segfaults on conditional breakpoints Add minimum required PHP version to run-tests.php remove last enable-maintainer-zts mention from source Add zend_error_at API that accepts a filename and lineno Fix typos in the documentation ...
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.