summaryrefslogtreecommitdiff
path: root/UPGRADING.INTERNALS
blob: e0391321678a1ee6d7245c91dde5a0959e703691 (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
60
61
62
$Id$

UPGRADE NOTES - PHP X.Y

1. Internal API changes
  a. virtual_file_ex
  b. stat/lstat support
  c. readlink support
  d. layout of some core ZE structures (zend_op_array, zend_class_entry, ...)
  e. Zend\zend_fast_cache.h has been removed
========================
1. Internal API changes
========================

	a. virtual_file_ex

virtual_file_ex takes now a TSRM context as last parameter:
CWD_API int virtual_file_ex(cwd_state *state, const char *path, 
 verify_path_func verify_path, int use_realpath TSRLS_DC);

	b. stat/lstat support

lstat is now available on all platforms. On unix-like platform
php_sys_lstat is an alias to lstat (when avaible). On Windows it is now 
available using php_sys_lstat. php_sys_stat and php_sys_lstat usage is recommended 
instead of calling lstat directly, to ensure portability.

	c. readlink support

readlink is now available on all platforms. On unix-like platform
php_sys_readlink is an alias to readlink (when avaible). On Windows it is now 
available using php_sys_readlink. php_sys_readlink usage is recommended 
instead of calling readlink directly, to ensure portability.

	d. layout of some core ZE structures (zend_op_array, zend_class_entry, ...)

. zend_function.pass_rest_by_reference is replaced by
  ZEND_ACC_PASS_REST_BY_REFERENCE in zend_function.fn_flags
. zend_function.return_reference is replaced by ZEND_ACC_RETURN_REFERENCE
  in zend_function.fn_flags
. zend_arg_info.required_num_args removed. it was needed only for internal
  functions. Now the first arg_info for internal function (which has special
  meaning) is represented by zend_internal_function_info structure.
. zend_op_array.size, size_var, size_literal, current_brk_cont,
  backpatch_count moved into CG(context), because they are used only during
  compilation.
. zend_op_array.start_op is moved into EG(start_op), because it's used
  only for 'interactive' execution of single top-level op-array.
. zend_op_array.done_pass_two is replaced by ZEND_ACC_DONE_PASS_TWO in
  zend_op_array.fn_flags.
. op_array.vars array is trimmed (reallocated) during pass_two.
. zend_class_entry.constants_updated is replaced by
  ZEND_ACC_CONSTANTS_UPDATED in zend_class_entry.ce_flags
. the size of zend_class_entry is reduced by sharing the same memory space
  by different information for internal and user classes.
  See zend_class_inttry.info union. 
  
	e. Zend\zend_fast_cache.h 
It should not have been used anymore since php5, but now this header has
been removed.