kphp
kphp copied to clipboard
KPHP — a PHP compiler
This issue lists features that are nice to have but are not implemented in our FFI yet. Separate issues can be created for any of these. ## Important - [...
Right now, user can't write `#define FFI_LIB "foo.so"` (note: several spaces between the FFI_LIB and string literal). PHP does support this, so KPHP should as well. The relevant code looks...
Unlike PHP, KPHP supports static libs in FFI. Unfortunately, there are no tests for that (as we can't simply run & compare it with PHP). This feature requires some dedicated...
Most often than not, they're imprecise. This should be fixed.
These types are useful when you want to pass integer-typed value in place of the pointer. Using int64_t/int/int32_t is not good enough as `sizeof(int)` is not the same as `sizeof(void*)`...
```php if ($cdata_value) ... ``` This fails at gcc phase. We should either implement bool conversion for ffi cdata types (`$cdata_value !== null`?) or give error during the type checking...
few changes - `shuffle` returns `true` as in php - reset keys even with 1 element array ```php $x = [2 => 1]; shuffle($x); var_dump($x); // kphp master: [2 =>...
## Information - function **clone_members_from_traits** is called when trait is connected to the class - function **clone_members_from_traits** no longer checks methods for abstract - function **check_abstract_methods_for_non_abstract_class** checks that abstract methods...
RFC: https://wiki.php.net/rfc/match_expression_v2 The basis is the conversion to rvalue statements list with `switch` with strict comparisons. For `op_switch` added `is_match` flag. In PHP, a regular `switch` uses non-strict comparison, which...