skoredin.pro/blog/golang/...
meanwhile in the world of if-conversion/predication: research arxiv.org/pdf/2512.22390
skoredin.pro/blog/golang/...
meanwhile in the world of if-conversion/predication: research arxiv.org/pdf/2512.22390
bit blending `(a & m) | (b & ~m)` is `vpxor, vpand, vpxor` sequence on avx2 but a single `vpternlogq` instruction on avx512
and on icelake/tigerlake cpus you can do two full width ternlogs every cycle
bit blending `(a & m) | (b & ~m)` is `vpxor, vpand, vpxor` sequence on avx2 but a single `vpternlogq` instruction on avx512
and on icelake/tigerlake cpus you can do two full width ternlogs every cycle
margaras.k47.cz/@k47/statuse...
margaras.k47.cz/@k47/statuse...
github.com/php/php-src/...
#PHP
github.com/php/php-src/...
#PHP
margaras.k47.cz/@k47/statuse...
#PHP
margaras.k47.cz/@k47/statuse...
#PHP
margaras.k47.cz/@k47/statuse...
#PHP
margaras.k47.cz/@k47/statuse...
#PHP
so what if i reimplemented php from scratch?
margaras.k47.cz/@k47/statuse...
#PHP
so what if i reimplemented php from scratch?
margaras.k47.cz/@k47/statuse...
#PHP
for ($i = 0; $i < 100; $i++) {
$a = 0;
}
not if $a and $i are references to each other
$a = 0;
$i = &$a;
#PHP
for ($i = 0; $i < 100; $i++) {
$a = 0;
}
not if $a and $i are references to each other
$a = 0;
$i = &$a;
#PHP
gcc.gnu.org/git/?p=gcc.g...
it's a feature precisely targeting tailcalling interpreters...
margaras.k47.cz/@k47/statuse...
gcc.gnu.org/git/?p=gcc.g...
it's a feature precisely targeting tailcalling interpreters...
margaras.k47.cz/@k47/statuse...
imagine you have an array of sorted integers
if you rotate each integer one bit to the right, you need single pass of 1-bit radix sort to make the sequence sorted again...
margaras.k47.cz/@k47/statuse...
imagine you have an array of sorted integers
if you rotate each integer one bit to the right, you need single pass of 1-bit radix sort to make the sequence sorted again...
margaras.k47.cz/@k47/statuse...
"So, what do you do?"
"Unemployed."
"So, what do you do?"
"Unemployed."
for example: what can we say about the type of variable $i?
for ($i = 0; $i < 1000; $i++) { f($i); }
one would expect that it can only be an integer, but no. function f can be something like this
function f(int &$arg) { $arg = "lol"; }
and then all bets are off.
#PHP
for example: what can we say about the type of variable $i?
for ($i = 0; $i < 1000; $i++) { f($i); }
one would expect that it can only be an integer, but no. function f can be something like this
function f(int &$arg) { $arg = "lol"; }
and then all bets are off.
#PHP
ir_base[21].ops[1] insn reference (32825) is out of range
ir_base[21].ops[1] reference (32825) must be DATA
ir_base[21].ops[1] (32825) type is incompatible with...
reasonable if you just happen to be Dmitry Stogov, not if you are peasant like the rest of us
#PHP
ir_base[21].ops[1] insn reference (32825) is out of range
ir_base[21].ops[1] reference (32825) must be DATA
ir_base[21].ops[1] (32825) type is incompatible with...
reasonable if you just happen to be Dmitry Stogov, not if you are peasant like the rest of us
#PHP
typedef int32_t ir_ref;
typedef uintptr_t zend_jit_addr;
typesafety? never heard about it.
#PHP
typedef int32_t ir_ref;
typedef uintptr_t zend_jit_addr;
typesafety? never heard about it.
#PHP
github.com/kaja47/phpmo...
Summary here margaras.k47.cz/@k47/statuse...
Briefly: docs, debug build, multiple PHP versions, parity testing with PHP source, -fno-druntime, variadic functions and more.
github.com/kaja47/phpmo...
Summary here margaras.k47.cz/@k47/statuse...
Briefly: docs, debug build, multiple PHP versions, parity testing with PHP source, -fno-druntime, variadic functions and more.
margaras.k47.cz/@k47/statuse...
margaras.k47.cz/@k47/statuse...