Skip to content
Permalink
master

Commits on Jun 4, 2021

  1. Merge branch 'PHP-8.0'

    bwoebi committed Jun 4, 2021
  2. JIT/AArch64: [macos] Remove Clang warning due to -Wincompatible-point…

    …er-types (#7098)
    
    The following warning message would be produced for macOS on Apple
    silicon.
    
    ```
    php-src/ext/opcache/jit/zend_jit_arm64.dasc:15356:79: warning: incompatible pointer types passing 'ptrdiff_t *' (aka 'long *') to parameter of type 'int64_t *'
          (aka 'long long *') [-Wincompatible-pointer-types]
                            const char *name = zend_jit_disasm_find_symbol((ptrdiff_t)cp + offset - 4, &offset);
                                                                                                       ^~~~~~~
    ext/opcache/jit/zend_jit_disasm.c:210:58: note: passing argument to parameter 'offset' here
                                                   int64_t  *offset) {
    
                                                      ^
    ```
    
    Flag -Wincompatible-pointer-types is enabled by default in Clang [1],
    but not in GCC [2].
    
    Adding explicit type conversion would remove this warning.
    
    [1]
    https://releases.llvm.org/10.0.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-pointer-types
    [2]
    https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#Warning-Options
    
    Change-Id: Ia0777a5731ba8f0764e232c0d47aeaab076d13f5
    shqking committed Jun 4, 2021
  3. JIT/AArch64: Improved code generation for SL/SR and register allocati…

    …on (#7096)
    
    - perform constant shift by single instruction
      TODO: DynAsm: can't encode "lsl x0, x0, #var" !!!
    - avoid usage of REG1 for variable shift (it was x86 limitation)
    - enable register reuse for SL/SR instructions
    - remove special scratch register handling for SL/SR (it was x86
      limitation)
    - Remove need for extra scratch registers. AArch64 JIT backend
      don't use extra register for constants. It uses reserved TMP
      registers.
    dstogov committed Jun 4, 2021

Commits on Jun 3, 2021

  1. Split fiber status and flags (#7094)

    Co-Authored-By: twosee <twose@qq.com>
    trowski and twose committed Jun 3, 2021
  2. Mark slow tests

    Each of these tests took more than ten seconds on a recent AppVeyor CI
    run; that appears to qualify them to be marked as slow tests.
    
    Closes GH-7077.
    cmb69 committed Jun 3, 2021
  3. pcntl_rfork: following-up suggestions.

    removing RFMEM constant.
    treating beforehand the only case where rfork would return EINVAL.
    devnexen authored and krakjoe committed Jun 3, 2021
  4. "http://" -> "https://"

    dstogov committed Jun 3, 2021
  5. JIT Refactoring:

    - Move duplicate system independent functions from zend_jit_x86.dasc and
      zend_jit_arm64.dasc into zend_jit.c
      * zend_jit_is_constant_cmp_long_long()
      * zend_jit_needs_call_chain()
      * skip_valid_arguments()
      * zend_ssa_cv_info()
      * zend_jit_may_avoid_refcounting()
      * zend_get_known_property_info()
      * zend_may_be_dynamic_property()
    - Move common definitions from zend_jit_x86.dasc and
      zend_jit_arm64.dasc into zend_jit.c
      * GCC_GLOBAL_REGS
      * PROFITABILITY_CHECKS
      * BP_JIT_IS
      * sp_adj_kind
      * sp_adj[]
    - Remove unused DynAsm macros
      * ADDR_CMP (arm64)
    - Inline and remove DynAsm macros used once
      * LOAD_BASE_ADDR (arm64 and x86)
      * PUSH_BASE_ADDR (x86)
      * MEM_OP3_3 (x86)
      * SET_Z_PTR (x86)
    - Rename DynAsm macros
      * MEM_LOAD_OP_STORE -> MEM_UPDATE (arm64)
      * MEM_LOAD_OP_STORE_ZTS - > MEM_UPDATE_ZTS (arm64)
      * ADDR_OP1 -> PUSH_ADDR (x86)
      * ADDR_OP2_2 -> ADDR_STORE and ADDR_CMP (x86)
      * MEM_OP2_1_ZTS -> MEM_STORE_ZTS, MEM_CMP_ZTS, MEM_UPDATE_ZTRS (x86)
      * MEM_OP2_2 -> MEM_LOAD and MEM_LOAD_OP (x86)
      * MEM_OP2_2_ZTS -> MEM_LOAD_ZTS and MEM_LOAD_OP_ZTS (x86)
      * SSE_AVX_OP -> DOUBLE_CMP (x86)
      * SSE_GET_LONG -> DOUBLE_GET_LONG (x86)
      * SSE_GET_ZVAL_LVAL -> DOUBLE_GET_ZVAL_LVAL (x86)
      * SSE_GET_ZVAL_LVAL -> DOUBLE_GET_ZVAL_LVAL (x86)
      * SSE_GET_ZVAL_DVAL -> DOUBLE_GET_ZVAL_DVAL (x86)
      * SSE_SET_ZVAL_DVAL -> DOUBLE_SET_ZVAL_DVAL (x86)
    dstogov committed Jun 3, 2021
  6. Merge branch 'PHP-8.0'

    * PHP-8.0:
      fix bug #72998
    krakjoe committed Jun 3, 2021
  7. fix bug #72998

    the function fn_complete in libedit null checks matches[2]
    krakjoe committed Jun 3, 2021

Commits on Jun 2, 2021

  1. Separate common code

    dstogov committed Jun 2, 2021
  2. Speed up test case

    This test case did 100,000 includes of a non existing file to show the
    memory leak; this is not necessary, because after the first failing
    include, memory is not supposed to increase for further includes.
    
    Closes GH-7088.
    cmb69 committed Jun 2, 2021
  3. Improve interface non-public method error message

    Currently interface methods with visibility `private` or `protected` fail
    with an error message:
    
      Access type for interface method A::b() must be omitted
    
    However, explicitly setting visibility `public` is allowed and often desired.
    This commit updates the error message to:
    
      Access type for interface method A::b() must be public
    Ayesh authored and Girgias committed Jun 2, 2021
  4. JIT/AArch64: Code refactoring for macros (#7082)

    * JIT/AArch64: Code refactoring for macros
    
    Update the comments and rename arguments for some macros.
    
    The following macros are renamed:
      SAFE_MEM_ACC_WITH_UOFFSET  -> MEM_ACC_64_WITH_UOFFSET
      SAFE_MEM_ACC_WITH_UOFFSET_32  -> MEM_ACC_32_WITH_UOFFSET
      SAFE_MEM_ACC_WITH_UOFFSET_BYTE -> MEM_ACC_8_WITH_UOFFSET
      MEM_STORE_BYTE_ZTS -> MEM_STORE_8_ZTS
      MEM_STORE_ZTS -> MEM_STORE_64_ZTS
      MEM_LOAD_ZTS -> MEM_LOAD_64_ZTS
      MEM_LOAD_BYTE_ZTS -> MEM_LOAD_8_ZTS
      ADD_IP_FROM_CST -> ADD_IP_WITH_CONST
    
    The following macros are deprecated and removed:
      SET_Z_PTR, GET_Z_W2, SET_Z_W2
    
    Change-Id: I767cf70f373e5f5a1090079e70f8e953a654da00
    
    * Use MEM_ACCESS_*_WITH_UOFFSET
    
    It's more accurate to use "MEM_ACCESS_*_WITH_UOFFSET" than
    "MEM_ACC_*_WITH_UOFFSET".
    
    Change-Id: I71479a809008848b61c4786016e6c10110e6aa8b
    
    * Revert the updates for macros ADD_IP_WITH_CONST and LONG_ADD_SUB_WITH_IMM
    
    As pointed by Dmitry, (int32_t) (1LL << 32) would make the assertion
    "TRUE", which is not expected by us.
    
    Change-Id: I767cf70f373e5f5a1090079e70f8e953a654da00
    shqking committed Jun 2, 2021
  5. Merge branch 'PHP-8.0'

    * PHP-8.0:
      Try to fix libxml 2.9.12 tests
    nikic committed Jun 2, 2021
  6. Merge branch 'PHP-7.4' into PHP-8.0

    * PHP-7.4:
      Try to fix libxml 2.9.12 tests
    nikic committed Jun 2, 2021
  7. Try to fix libxml 2.9.12 tests

    The test expectations here were for PHP 8.0, try to adjust them
    for PHP 7.4.
    nikic committed Jun 2, 2021
  8. Add test for unsetting ReflectionClassConstant::$name

    This test was supposed to be part of 50b4a7a.
    nikic committed Jun 2, 2021

Commits on Jun 1, 2021

  1. Merge branch 'PHP-8.0'

    * PHP-8.0:
      Skip test without ZMM
    nikic committed Jun 1, 2021
  2. Merge branch 'PHP-7.4' into PHP-8.0

    * PHP-7.4:
      Skip test without ZMM
    nikic committed Jun 1, 2021
  3. Skip test without ZMM

    nikic committed Jun 1, 2021

Commits on May 31, 2021

  1. Implement "Deprecate implicit non-integer-compatible float to int con…

    …versions" RFC. (#6661)
    
    RFC: https://wiki.php.net/rfc/implicit-float-int-deprecate
    
    Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
    Girgias and nikic committed May 31, 2021
  2. Fix output buffer discard on memory limit

    Move this code directly into the error handler, and check the
    heap->overflow flag. Discarding output here allows us to print
    the normal memory limit message to standard output. Otherwise
    nothing would be printed unless a different log medium was used,
    which makes for a suboptimal debugging experience.
    nikic committed May 31, 2021
  3. Don't automatically adjust memory_limit to 2M

    As PHP has a minimum memory usage of 2M (size of allocator chunk),
    setting a limit below that value is not meaningful and will be
    automatically rounded up to the chunk size. Rather than doing this
    silently, show the newly introduced error message.
    
    The memory limit had to be increased to 2M for a number of tests.
    
    tests/lang/bug45392 has been marked as XFAIL. This old bugfix is
    not working as intended. The memory limit in main's `PG(memory_limit)`
    differs from the one in zend_alloc. In zend_alloc the `AG(mm_heap)->limit`
    is defined as `max(passed_value, ZEND_MM_CHUNK_SIZE)`. The check made in
    an unclean shutdown will never be true unless the memory limit is lower
    than ZEND_MM_CHUNK_SIZE, which happened to be the case in the test.
    https://bugs.php.net/bug.php?id=45392
    fcc0fdd
    pvandommelen authored and nikic committed May 31, 2021
  4. Remove zend_set_memory_limit_ex() API

    This was added temporarily for the PHP-8.0 branch to avoid an
    ABI break.
    nikic committed May 31, 2021
  5. Merge branch 'PHP-8.0'

    * PHP-8.0:
      Fixed bug #81070
    nikic committed May 31, 2021
  6. Merge branch 'PHP-7.4' into PHP-8.0

    * PHP-7.4:
      Fixed bug #81070
    
    This is a non-trivial merge. To avoid an ABI break, a new
    zend_set_memory_limit_ex() function is added.
    nikic committed May 31, 2021
  7. Fixed bug #81070

    When the memory limit is reduced using an `ini_set("memory_limit", ..)`
    below the currently allocated memory, the out-of-memory check overflowed.
    Instead of implementing additional checks during allocation,
    `zend_set_memory_limit()` now validates the new memory limit. When
    below the current memory usage the ini_set call will fail and throw
    a warning.
    
    This is part of GH-7040.
    pvandommelen authored and nikic committed May 31, 2021
  8. Skip pcntl_rfork() in arginfo test

    Same as pcntl_fork(), we don't want to have this side-effect in
    this mass-test.
    nikic committed May 31, 2021
  9. Allow initializing assignment to PDOStatement::$queryString

    If the object is not created through PDO::prepare(), e.g. in a
    mock scenario, it should still be possible to initialize the
    $queryString property.
    
    See bug #81084.
    nikic committed May 31, 2021
Older