summaryrefslogtreecommitdiff
path: root/UPGRADING.INTERNALS
blob: 5280128b82f9613d575481a6ef216319c9aa7117 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
PHP 8.0 INTERNALS UPGRADE NOTES

1. Internal API changes
  a. Object Handlers API
  b. ZEND_OVERLOADED_FUNCTION and corresponding call_method() object handler
  c. TSRM changes

2. Build system changes
  a. Abstract
  b. Unix build system changes
  c. Windows build system changes

3. Module changes

========================
1. Internal API changes
========================

  a. Object Handlers API and some related functions, e.g. zend_call_method() and
     zend_objects_clone_obj() were changed to receive zend_object* instead of
     zval* and zend_string* instead of zval* for property names.

  b. ZEND_OVERLOADED_FUNCTION and corresponding call_method() object handler
     were removed. ZEND_INTERNAL_FUNCTION with ZEND_ACC_CALL_VIA_HANDLER and
     defined "handler" callback should be used instead. This "handler" callback
     should also take care about function cleanup. See ext/zend_test/test.c
     for example.
  
  c. The following things have been removed from TSRM:
      - TSRMLS_DC
      - TSRMLS_D
      - TSRMLS_CC
      - TSRMLS_C
      - TSRMLS_FETCH
      - TSRMLS_FETCH_FROM_CTX
      - TSRMLS_SET_CTX
      - tsrm_new_interpreter_context
      - tsrm_set_interpreter_context
      - tsrm_free_interpreter_context
      - support for GNUPTH, SGI ST, and BETHREADS
                       

========================
2. Build system changes
========================

  a. Abstract

  b. Unix build system changes
  
    1.  --enable-maintainer-zts is renamed --enable-zts for parity with Windows
        and as recognition that ZTS is not a "maintainer" or experimental feature.

  c. Windows build system changes

========================
3. Module changes
========================