Skip to content

Commit

Permalink
Update NEWS, UPGRADING and UPGRADING.INTERNALS
Browse files Browse the repository at this point in the history
  • Loading branch information
nikic committed Jun 17, 2013
1 parent 7713b8c commit ca660c2
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 2 deletions.
9 changes: 8 additions & 1 deletion NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ PHP NEWS

- Core:
. Improved IS_VAR operands fetching. (Laruence, Dmitry)
. Implemented internal operator overloading
(RFC: https://wiki.php.net/rfc/operator_overloading_gmp). (Nikita)

- OPcache:
. Added an optimization pass to convert FCALL_BY_NAME into DO_FCALL.
Expand All @@ -12,9 +14,14 @@ PHP NEWS
cache_slots) in op_array->literals table. (Laruence, Dmitry)
. Added script level constant replacement optimization pass. (Dmitry)

- PDO_pgsql
- PDO_pgsql:
. Fixed Bug #42614 (PDO_pgsql: add pg_get_notify support). (Matteo)
. Fixed Bug #63657 (pgsqlCopyFromFile, pgsqlCopyToArray use Postgres < 7.3
syntax). (Matteo)

- GMP:
. Moved GMP to use object as the underlying structure and implemented various
improvements based on this.
(RFC: https://wiki.php.net/rfc/operator_overloading_gmp). (Nikita)

<<< NOTE: Insert NEWS from last stable release here prior to actual release! >>>
5 changes: 5 additions & 0 deletions UPGRADING
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,11 @@ PHP X.Y UPGRADE NOTES
8. Other Changes to Extensions
========================================

- GMP:
The GMP extension now uses objects as the underlying data structure, rather
than resources. GMP instances now support dumping, serialization, cloning,
casts to primitive types and have overloaded operators.
(RFC: https://wiki.php.net/rfc/operator_overloading_gmp)

========================================
9. New Global Constants
Expand Down
31 changes: 30 additions & 1 deletion UPGRADING.INTERNALS
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ $Id$
UPGRADE NOTES - PHP X.Y

1. Internal API changes
a.
a. Addition of do_operation and compare object handlers

2. Build system changes
a. Unix build system changes
Expand All @@ -14,6 +14,35 @@ UPGRADE NOTES - PHP X.Y
1. Internal API changes
========================

a. Addition of do_operation and compare object handlers

Two new object handlers have been added:

do_operation:
typedef int (*zend_object_do_operation_t)(
zend_uchar opcode, zval *result, zval *op1, zval *op2 TSRMLS_DC
);

compare:
typedef int (*zend_object_compare_zvals_t)(
zval *result, zval *op1, zval *op2 TSRMLS_DC
);

The first handler is used to overload arithmetic operations. The first
argument specifies the opcode of the operator, result is the target zval,
op1 the first operand and op2 the second operand. For unary operations
op2 is NULL. If the handler returns FAILURE PHP falls back to the default
behavior for the operation.

The second handler is used to perform comparison operations with
non-objects. The value written into result must be an IS_LONG with value
-1 (smaller), 0 (equal) or 1 (greater). The return value is a SUCCESS/FAILURE
return code. The difference between this handler and compare_objects is
that it will be triggered for comparisons with non-objects and objects of
different types. It takes precedence over compare_objects.

Further docs in the RFC: https://wiki.php.net/rfc/operator_overloading_gmp

========================
2. Build system changes
========================
Expand Down

0 comments on commit ca660c2

Please sign in to comment.