Repository navigation
Turbo extension not loaded in ZTS builds #15422
Copy link
Copy link
Closed
phpstan/phpstan-src
#6706Description
Bug report
Hi!
Running the diagnose I get the output below. Turbo is off. I asked Claude why that is, and it told me:
phpstan dropped the Linux -zts builds for PHP 8.3–8.5 in 2.2.15. 2.2.14 still shipped phpstan_turbo-8.5-zts.so; from 2.2.15 on, turbo-ext/linux-gnu-x86_64/ has only non-ZTS builds plus 8.6-zts.
Would upgrading fix it? No. The newest release, 2.3.0, has the same set of builds: no 8.5-zts on Linux. Any one of these would bring turbo back:
Is it possible to bring back the php8 zts builds?
PHP runtime version: 8.5.11
PHP version for analysis: 8.5 (from config.platform.php in composer.json)
PHPStan version: 2.2.17
PHPStan running from:
/home/www/app/vendor/phpstan/phpstan
Extension installer:
composer/pcre: 3.4.0
phpat/phpat: 0.12.5
phpstan/phpstan-deprecation-rules: 2.0.5
phpstan/phpstan-doctrine: 2.0.28
phpstan/phpstan-phpunit: 2.0.19
phpstan/phpstan-strict-rules: 2.0.12
phpstan/phpstan-symfony: 2.0.20
shipmonk/dead-code-detector: 1.4.2
shipmonk/phpstan-baseline-per-identifier: 2.3.0
spaze/phpstan-disallowed-calls: v4.14.0
staabm/phpstan-todo-by: 0.3.5
tomasvotruba/type-coverage: 2.4.0
Included configs from Composer packages:
tomasvotruba/type-coverage (packages/type-perfect/config/extension.neon): 2.4.0
spaze/phpstan-disallowed-calls (disallowed-dangerous-calls.neon): v4.14.0
spaze/phpstan-disallowed-calls (disallowed-execution-calls.neon): v4.14.0
spaze/phpstan-disallowed-calls (disallowed-insecure-calls.neon): v4.14.0
spaze/phpstan-disallowed-calls (disallowed-loose-calls.neon): v4.14.0
Discovered Composer project root:
/home/www/app
System resources:
Detected CPU cores: 24
Load limit: 1
KUBERNETES_CPU_LIMIT: none
Available after limits: 24
cgroup CPU quota: none
Usable CPU cores: 24
Turbo extension: not loaded
Turbo platform: linux-gnu-x86_64 (os: Linux, machine: x86_64, libc: gnu, php: 8.5, zts: yes, debug: no)
Turbo worker binary: none found
Turbo trusted types: off (extension inactive)
Parallel worker creation:
Mechanism: spawn (react/child-process)
Reason fork not used: running from a phar without the active turbo extension (its fork guard protects phar:// reads in forked children)
Worker -d entries:
opcache.enable=1
opcache.enable_cli=1
opcache.jit=disable
opcache.jit_buffer_size=0
opcache.validate_timestamps=0
opcache.file_update_protection=0
opcache.max_file_size=0
opcache.file_cache=
opcache.save_comments=1
opcache.optimization_level=0x7FFEBFFF
opcache.memory_consumption=256
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=20000
phpstan.restarted=1
Doctrine's objectManagerLoader: In use
Detected driver: pdo_pgsql
Installed Doctrine packages:
doctrine/dbal: 4.5.0
doctrine/orm: 3.7.2
doctrine/common: 3.5.0
doctrine/collections: 3.1.0
doctrine/persistence: 4.2.0
Symfony's consoleApplicationLoader: In use
Code snippet that reproduces the problem
No response
Expected output
I would "expect" it to be loaded
Did PHPStan help you today? Did it make you happy in any way?
No response
Reacted by Richard van Laak
Metadata
Metadata
Assignees
Labels
No labels
Activity
mergeable commentedon Oct 7, 2026
This bug report is missing a link to reproduction at phpstan.org/try.
It will most likely be closed after manual review.
ondrejmirtes commentedon Oct 8, 2026
I'll readd ZTS back: phpstan/phpstan-src#6706