Skip to content

User Defined Operator Overloads #7388

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 42 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
58a1456
Initial commit of user defined operator overloads
JordanRL Aug 11, 2021
c46492d
Added InvalidOperator exception and fixed error handling of operator …
JordanRL Aug 11, 2021
6811080
Started on ZEND_IS_LARGER work
JordanRL Aug 13, 2021
4a84a91
Further implementation of op overloads
JordanRL Aug 18, 2021
6be3d1a
Finished implementation of compare and updated several tests; added s…
JordanRL Aug 19, 2021
5fe2ad1
Fixing various comparison issues and making comparison optional
JordanRL Aug 20, 2021
ff79f94
Added bitwise operators and updated several tests
JordanRL Aug 22, 2021
88bd550
Interim commit
JordanRL Nov 26, 2021
0a0d9ec
Resolving merge conflicts
JordanRL Nov 26, 2021
2fa6d98
Improvements to operator overloads and IS_LARGER opcode
JordanRL Nov 27, 2021
a2c3f15
Fixing some bugs
JordanRL Nov 29, 2021
80497fc
Updating extensions for changes to objects and ZEND_UNCOMPARABLE
JordanRL Nov 29, 2021
3953f37
Resolving failing tests for operator overloads
JordanRL Nov 29, 2021
6fe6fe2
Fixing extension handling for object compare handler
JordanRL Nov 29, 2021
ae584fb
Updating pow test
JordanRL Nov 29, 2021
0ca2ad0
Fixing fallback from __equals to __compareto, and fixing named_params…
JordanRL Nov 30, 2021
ce042d1
Resolving some build errors in CI
JordanRL Nov 30, 2021
0139183
Resolving a missed build error in CI
JordanRL Nov 30, 2021
1e3038f
Resolving SIGSEGV
JordanRL Nov 30, 2021
f3a44b8
removing ZEND_USER_FUNCTION set
JordanRL Nov 30, 2021
96d72ce
Removing test code
JordanRL Nov 30, 2021
cfda296
Removing old comment
JordanRL Nov 30, 2021
bbcaf38
Merge branch 'master' into operator-overloads
JordanRL Dec 1, 2021
b23f4e7
Trying JIT handling
JordanRL Dec 2, 2021
5ebaed4
Fixing typo in case
JordanRL Dec 2, 2021
b042c7d
Another case typo
JordanRL Dec 2, 2021
29ddc0d
Use operator keyword instead of magic methods
bwoebi Dec 3, 2021
faab4f2
Merge pull request #3 from bwoebi/operator-overloads
JordanRL Dec 3, 2021
3697f39
Use operator keyword instead of magic methods
bwoebi Dec 3, 2021
52f3f09
Merge pull request #4 from bwoebi/operator-overloads
JordanRL Dec 3, 2021
fc3a89c
Updating InvalidOperatorError name
JordanRL Dec 4, 2021
9afc789
Adding more tests for op overloads
JordanRL Dec 4, 2021
e044f53
Resolving more memory leaks and segfaults
JordanRL Dec 5, 2021
3bae673
Switched to OperandPosition enum
JordanRL Dec 9, 2021
280ad16
Updates
JordanRL Dec 9, 2021
7e1601b
Fix enum case usage in zend_std_call_op_override
bwoebi Dec 10, 2021
5f500bc
Merge pull request #5 from bwoebi/operator-overloads
JordanRL Dec 10, 2021
b0492c4
Adding helper functions for extensions
JordanRL Dec 10, 2021
3d33ddd
Disallow direct method calls to operators
JordanRL Dec 11, 2021
6395654
Reflection support for operator overloads
JordanRL Dec 11, 2021
814d9a2
Merge branch 'master' into operator-overloads
JordanRL Dec 11, 2021
8d1994f
Allowing direct calls via closures
JordanRL Dec 11, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Another case typo
  • Loading branch information
JordanRL committed Dec 2, 2021
commit b042c7dbb1b158924017aa107f9ef13102a98e5a
2 changes: 1 addition & 1 deletion ext/opcache/jit/zend_jit_arm64.dasc
Original file line number Diff line number Diff line change
Expand Up @@ -7267,7 +7267,7 @@ static int zend_jit_cmp_double_common(dasm_State **Dst, const zend_op *opline, z
| SET_ZVAL_TYPE_INFO res_addr, IS_FALSE, TMP1w, TMP2
}
break;
case ZEND_IS_SMALLER_OR_EQUAL:
case ZEND_IS_LARGER_OR_EQUAL:
if (swap) {
| cset REG0w, ls
| add REG0w, REG0w, #2
Expand Down