| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| zephir.phar | 2026-10-01 | 3.4 MB | |
| 1.6.0 source code.tar.gz | 2026-10-01 | 2.5 MB | |
| 1.6.0 source code.zip | 2026-10-01 | 4.0 MB | |
| README.md | 2026-10-01 | 8.7 kB | |
| Totals: 4 Items | 9.9 MB | 0 | |
Added
- Added a warning for unrecognized top-level settings in
config.json#2449 - Added a report for an unrecognized key in the
warningsoroptimizationssection, and for an unrecognized-W,-w,-for-fno-flag #2727 - Added an opt-in
<Ns>\Bufferkernel class holding a fixed-size contiguous C array of doubles or integers, readable from C as a raw pointer #2721 - Added a kernel fast path so
buffer[i]in Zephir source reads and writes the element directly instead of dispatchingoffsetGet()oroffsetSet()#2721 - Added support for capturing a method parameter by reference in a closure
use (&x)clause #2668
Fixed
- Fixed
(int),intval()and integer locals reading any object as1instead of using its own conversion or warning as PHP does #2746 - Fixed
(double),doubleval()anddoublelocals reading any object as1.0and a resource as1.0instead of its handle #2746 - Fixed an integer conversion of a float string beyond the int range returning
0instead of saturating as PHP does #2746 - Fixed a
doubleparameter converting any argument instead of coercing it or throwingTypeErroras a PHPfloatparameter does #2746 - Fixed
/always returning a float where PHP returns an int for an exact integer division #2675 - Fixed
/=on avarvariable or an object property overwriting the value instead of dividing it #2675 - Fixed
/with a bool operand compiling to a subtraction #2677 - Fixed
/with an array, object or non-numeric string operand not throwingTypeErroras PHP does #2676 - Fixed
%with an array, object or non-numeric string operand not throwingTypeErroras PHP does #2676 - Fixed
%with a bool operand compiling to a subtraction #2677 - Fixed
%of avarwith adouble, or of an integer withtrue, failing to compile #2676 - Fixed
%=on avarvariable or an object property failing to compile or overwriting the value #2676 - Fixed
/=and%=on a typed local crashing on a zero divisor #2676 - Fixed
+,-and*of avarwith a native number truncating a float result to int #2744 - Fixed
+,-and*of avarwith a native number not overflowing to float or throwingTypeErroras PHP does #2744 - Fixed
-=and*=on avarcrashing for a string value and keeping a stale type for an int that overflows to float #2744 - Fixed assigning a
varto an integer variable losing precision above 2^53 #2744 - Fixed
time()returning the previous second shortly after a second boundary, because it read a different clock than PHPtime()#2739 - Fixed
Attribute::*constants in attribute arguments, class constants, property defaults, parameter defaults and method bodies being frozen to the values of the PHP that ranzephir generate#2738 - Fixed IDE stubs printing a frozen number instead of the source
Attribute::*expression #2738 - Fixed a typed property default that is a single
Attribute::*constant being rejected #2738 - Fixed a value written through a
use (&x)capture never releasing the one it replaced #2668 - Fixed a
use (&x)capture inside a nested closure being attributed to a same-named parameter of the enclosing method #2668 - Fixed a static property read and a by-reference function argument writing over a
use (&x)capture instead of into its shared slot #2668 - Fixed a compiler warning being discarded in silence when its key was not registered #2727
- Fixed
non-valid-unset,non-valid-require,non-valid-require-onceandextra-parenthesesnever printing #2727 - Fixed
invalid-array-indexandnon-valid-objectupdatebeing raised under an unregistered key #2727 - Fixed a
warningskey omitted fromconfig.jsonlosing its default instead of keeping it #2727 - Fixed the non-object property increment warning naming the wrong operation #2727
- Fixed
int,uint,long,ulong,doubleandcharextension globals not registering a php.ini directive #2449 - Fixed a string extension global's php.ini directive never reaching the global #2449
- Fixed php.ini values for extension globals being discarded at the start of every request #2449
- Fixed
globals_set()on a namespaced extension global leaking into the next request #2449 - Fixed an
intextension global being declared as a Cintinstead ofzend_long#2449 - Fixed
ZEPHIR_USE_PHP_JSONnever being defined on PHP 8.4 and 8.5, where php-src no longer declaresHAVE_JSON - Fixed a called method name being lower-cased at code generation, so
__call()and__callStatic()now receive the name as it was written at the call site, as they do in PHP #2715 - Fixed a method name held in a variable being lower-cased again at runtime by the call macros #2715
- Fixed a call to an undefined method or function being reported with the lower-cased name instead of the spelling at the call site #2715
- Fixed
.=rejecting adoubleorbooloperand on astringorvarleft-hand side #2664 - Fixed
.= nullleaving the left operand unconverted instead of turning it into a string #2664 - Fixed
.=on an object property overwriting it instead of appending for every operand but a string #2664 - Fixed
.=on a static property overwriting it instead of appending for a literal operand #2664 - Fixed the
.operator rejecting aboolorcharoperand #2664 - Fixed
.=rejecting an array operand on a local variable, where PHP appendsArrayand raisesArray to string conversion#2664 - Fixed a project command run outside a Zephir project to name the missing
config.jsonand the subdirectory holding one, instead ofExtension namespace cannot be loaded#2431 - Fixed
zephir compileandzephir stubsending in an uncaught fatal error instead of reporting it and exiting with 1 #2431 - Fixed
zephir cleanprinting a shellcderror when there is noext/directory #2431 - Fixed
zephir apidoing nothing, and the HTML API generation it runs failing on PHP 8 and on Windows #2431