php: run a first conformance program on 5.6, 7.4 and 8.4 #730

Merged
argus merged 2 commits from loop/727-php-first-program into main 2026-11-13 09:19:51 +00:00
Collaborator

Closes #727
Refs #64

Task

Step 2 of #64: torb build --target linux-php writes one PHP file that runs on PHP 5.6, 7.4 and 8.4 with the output, standard error and exit code of the C and VM legs (docs/design/PHP.md section 6, slice 1).

What and why

Two commits, as the issue asks:

  1. feat(target): the Architecture.Php case in std/core and TargetArchitecture.Php with the linux-php target, so the seed's own compiler can learn the name first.
  2. feat(php): the back end.
    • compiler/src/backend/php/{emit,body,type,natives,writer}.trb: functions and calls, integers of every width except UInt64, booleans, records and tuples, text, print and exit, with goto blocks and a depth counter on recursive functions. Overflow, zero divisor, MIN / -1, shift and stack-limit panics use the messages and exit code 101 of the C leg.
    • runtime/php/{core,int64}.php: the five startup guards, the output buffer, the panic and exit path, the helpers.
    • compiler/src/cli/build.trb: the target needs no --emit-c and no C compiler.
    • tests/conformance/php_first.trb and four small php-*.trb programs with expected files, php.allow, tools/conformance.sh --php, tools/php-guards.sh (forges the machine each guard checks).
    • .forgejo/actions/php builds the pinned PHP 5.6.40, 7.4.33 and 8.4.27 from the php.net tarballs (SHA-256 checked); the job conformance-php runs the leg and the guard test.
    • docs/design/PHP.md (row 1 done, "What slice 1 left out", section 7 figures, shift semantics now "panics like C", no intdiv polyfill) and docs/tooling/torb-build.md with its skills/ copy.

UInt64, floats and everything past the slice-1 constructs are reported as unsupported with a finding and nothing is written.

Test

The machine that wrote this has no torb, PHP or C compiler, so the back end is verified in CI only: the conformance-php job (leg on 5.6, 7.4, 8.4 plus tools/php-guards.sh), sh tools/gates.sh a, torb format --check, torb docs check. sh tools/check-commits.sh 79b35cb9 is clean locally.

Closes #727 Refs #64 ## Task Step 2 of #64: `torb build --target linux-php` writes one PHP file that runs on PHP 5.6, 7.4 and 8.4 with the output, standard error and exit code of the C and VM legs (docs/design/PHP.md section 6, slice 1). ## What and why Two commits, as the issue asks: 1. `feat(target)`: the `Architecture.Php` case in `std/core` and `TargetArchitecture.Php` with the `linux-php` target, so the seed's own compiler can learn the name first. 2. `feat(php)`: the back end. - `compiler/src/backend/php/{emit,body,type,natives,writer}.trb`: functions and calls, integers of every width except `UInt64`, booleans, records and tuples, text, `print` and `exit`, with `goto` blocks and a depth counter on recursive functions. Overflow, zero divisor, `MIN / -1`, shift and stack-limit panics use the messages and exit code 101 of the C leg. - `runtime/php/{core,int64}.php`: the five startup guards, the output buffer, the panic and exit path, the helpers. - `compiler/src/cli/build.trb`: the target needs no `--emit-c` and no C compiler. - `tests/conformance/php_first.trb` and four small `php-*.trb` programs with expected files, `php.allow`, `tools/conformance.sh --php`, `tools/php-guards.sh` (forges the machine each guard checks). - `.forgejo/actions/php` builds the pinned PHP 5.6.40, 7.4.33 and 8.4.27 from the php.net tarballs (SHA-256 checked); the job `conformance-php` runs the leg and the guard test. - `docs/design/PHP.md` (row 1 done, "What slice 1 left out", section 7 figures, shift semantics now "panics like C", no `intdiv` polyfill) and `docs/tooling/torb-build.md` with its `skills/` copy. UInt64, floats and everything past the slice-1 constructs are reported as unsupported with a finding and nothing is written. ## Test The machine that wrote this has no `torb`, PHP or C compiler, so the back end is verified in CI only: the `conformance-php` job (leg on 5.6, 7.4, 8.4 plus `tools/php-guards.sh`), `sh tools/gates.sh a`, `torb format --check`, `torb docs check`. `sh tools/check-commits.sh 79b35cb9` is clean locally.
Architecture.Php in std/core, TargetArchitecture.Php and the linux-php BuildTarget, so that everyTarget() and
targetNamed know the target of the PHP back end (PHP.md section 6, slice 1). Seed-touching: this lands first, the
back end follows in its own commit.
feat(php): emit and run the first conformance program on PHP 5.6, 7.4 and 8.4
Some checks failed
pdisc / pdisc (pull_request) Successful in 10s
ci / commit messages (pull_request) Successful in 4s
ci / what the change touches (pull_request) Successful in 5s
ci / which runners exist (pull_request) Successful in 1s
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / the VS Code extension (editors/vscode) (pull_request) Successful in 13s
ci / bootstrap (linux-x64) (pull_request) Failing after 5m48s
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been skipped
ci / every host emits the same C (pull_request) Has been skipped
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Has been skipped
ci / the playground (torb as WebAssembly) (pull_request) Has been skipped
ci / conformance (JavaScript under Node.js) (pull_request) Has been skipped
ci / conformance (PHP 5.6, 7.4 and 8.4) (pull_request) Has been skipped
ci / tier A (linux-x64) (pull_request) Has been skipped
ci / tier B (linux-x64) (pull_request) Has been skipped
ci / gates (pull_request) Has been cancelled
ci / pack the seed (pull_request) Has been cancelled
ci / archives (pull_request) Has been cancelled
0cff94d864
orion force-pushed loop/727-php-first-program from 0cff94d864
Some checks failed
pdisc / pdisc (pull_request) Successful in 10s
ci / commit messages (pull_request) Successful in 4s
ci / what the change touches (pull_request) Successful in 5s
ci / which runners exist (pull_request) Successful in 1s
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / the VS Code extension (editors/vscode) (pull_request) Successful in 13s
ci / bootstrap (linux-x64) (pull_request) Failing after 5m48s
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been skipped
ci / every host emits the same C (pull_request) Has been skipped
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Has been skipped
ci / the playground (torb as WebAssembly) (pull_request) Has been skipped
ci / conformance (JavaScript under Node.js) (pull_request) Has been skipped
ci / conformance (PHP 5.6, 7.4 and 8.4) (pull_request) Has been skipped
ci / tier A (linux-x64) (pull_request) Has been skipped
ci / tier B (linux-x64) (pull_request) Has been skipped
ci / gates (pull_request) Has been cancelled
ci / pack the seed (pull_request) Has been cancelled
ci / archives (pull_request) Has been cancelled
to 9c7f186ed6
Some checks failed
ci / commit messages (pull_request) Successful in 4s
ci / what the change touches (pull_request) Successful in 5s
pdisc / pdisc (pull_request) Successful in 10s
ci / which runners exist (pull_request) Successful in 1s
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / the VS Code extension (editors/vscode) (pull_request) Successful in 13s
ci / bootstrap (linux-x64) (pull_request) Successful in 9m20s
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been skipped
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 4m38s
ci / the playground (torb as WebAssembly) (pull_request) Successful in 3m56s
ci / conformance (JavaScript under Node.js) (pull_request) Successful in 25s
ci / every host emits the same C (pull_request) Successful in 9m10s
ci / conformance (PHP 5.6, 7.4 and 8.4) (pull_request) Failing after 3m2s
ci / gates (pull_request) Has been cancelled
ci / pack the seed (pull_request) Has been cancelled
ci / archives (pull_request) Has been cancelled
ci / tier A (linux-x64) (pull_request) Has been cancelled
ci / tier B (linux-x64) (pull_request) Has been cancelled
2026-11-13 01:58:03 +00:00
Compare
orion force-pushed loop/727-php-first-program from 9c7f186ed6
Some checks failed
ci / commit messages (pull_request) Successful in 4s
ci / what the change touches (pull_request) Successful in 5s
pdisc / pdisc (pull_request) Successful in 10s
ci / which runners exist (pull_request) Successful in 1s
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / the VS Code extension (editors/vscode) (pull_request) Successful in 13s
ci / bootstrap (linux-x64) (pull_request) Successful in 9m20s
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been skipped
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 4m38s
ci / the playground (torb as WebAssembly) (pull_request) Successful in 3m56s
ci / conformance (JavaScript under Node.js) (pull_request) Successful in 25s
ci / every host emits the same C (pull_request) Successful in 9m10s
ci / conformance (PHP 5.6, 7.4 and 8.4) (pull_request) Failing after 3m2s
ci / gates (pull_request) Has been cancelled
ci / pack the seed (pull_request) Has been cancelled
ci / archives (pull_request) Has been cancelled
ci / tier A (linux-x64) (pull_request) Has been cancelled
ci / tier B (linux-x64) (pull_request) Has been cancelled
to a0dfff27e8
Some checks failed
ci / commit messages (pull_request) Successful in 9s
ci / what the change touches (pull_request) Successful in 11s
pdisc / pdisc (pull_request) Successful in 17s
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / which runners exist (pull_request) Successful in 1s
ci / the VS Code extension (editors/vscode) (pull_request) Successful in 15s
ci / bootstrap (linux-x64) (pull_request) Successful in 3m48s
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been skipped
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 4m29s
ci / the playground (torb as WebAssembly) (pull_request) Successful in 4m8s
ci / conformance (JavaScript under Node.js) (pull_request) Successful in 32s
ci / every host emits the same C (pull_request) Successful in 9m39s
ci / conformance (PHP 5.6, 7.4 and 8.4) (pull_request) Failing after 4m18s
ci / gates (pull_request) Has been cancelled
ci / pack the seed (pull_request) Has been cancelled
ci / archives (pull_request) Has been cancelled
ci / tier B (linux-x64) (pull_request) Has been cancelled
ci / tier A (linux-x64) (pull_request) Has been cancelled
2026-11-13 03:09:44 +00:00
Compare
orion force-pushed loop/727-php-first-program from a0dfff27e8
Some checks failed
ci / commit messages (pull_request) Successful in 9s
ci / what the change touches (pull_request) Successful in 11s
pdisc / pdisc (pull_request) Successful in 17s
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / which runners exist (pull_request) Successful in 1s
ci / the VS Code extension (editors/vscode) (pull_request) Successful in 15s
ci / bootstrap (linux-x64) (pull_request) Successful in 3m48s
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been skipped
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 4m29s
ci / the playground (torb as WebAssembly) (pull_request) Successful in 4m8s
ci / conformance (JavaScript under Node.js) (pull_request) Successful in 32s
ci / every host emits the same C (pull_request) Successful in 9m39s
ci / conformance (PHP 5.6, 7.4 and 8.4) (pull_request) Failing after 4m18s
ci / gates (pull_request) Has been cancelled
ci / pack the seed (pull_request) Has been cancelled
ci / archives (pull_request) Has been cancelled
ci / tier B (linux-x64) (pull_request) Has been cancelled
ci / tier A (linux-x64) (pull_request) Has been cancelled
to 1143876713
Some checks failed
ci / commit messages (pull_request) Has been cancelled
ci / what the change touches (pull_request) Has been cancelled
ci / gates (pull_request) Has been cancelled
pdisc / pdisc (pull_request) Has been cancelled
2026-11-13 05:35:33 +00:00
Compare
orion force-pushed loop/727-php-first-program from 1143876713
Some checks failed
ci / commit messages (pull_request) Has been cancelled
ci / what the change touches (pull_request) Has been cancelled
ci / gates (pull_request) Has been cancelled
pdisc / pdisc (pull_request) Has been cancelled
to 36ca76f011
Some checks failed
ci / commit messages (pull_request) Successful in 6s
ci / what the change touches (pull_request) Successful in 7s
pdisc / pdisc (pull_request) Successful in 13s
ci / which runners exist (pull_request) Successful in 1s
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
ci / the VS Code extension (editors/vscode) (pull_request) Successful in 14s
ci / bootstrap (linux-x64) (pull_request) Successful in 10m49s
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been skipped
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 3m57s
ci / the playground (torb as WebAssembly) (pull_request) Successful in 3m48s
ci / conformance (JavaScript under Node.js) (pull_request) Successful in 23s
ci / conformance (PHP 5.6, 7.4 and 8.4) (pull_request) Successful in 3m0s
ci / every host emits the same C (pull_request) Successful in 9m19s
ci / tier B (linux-x64) (pull_request) Successful in 34m28s
ci / tier A (linux-x64) (pull_request) Failing after 36m25s
ci / pack the seed (pull_request) Has been skipped
ci / archives (pull_request) Has been skipped
ci / gates (pull_request) Failing after 0s
2026-11-13 05:57:04 +00:00
Compare
Collaborator
tasks kind summary
2 status CI red on 36ca76f: tier A format --check, body.trb

CI red on 36ca76f: ci / tier A (linux-x64) fails on format --check: ./compiler/src/backend/php/body.trb would change (1 of 1708 files). Run torb format on that file and push. ci / gates fails only because tier A failed; conformance (PHP 5.6, 7.4 and 8.4) is green.

--- tasks: 2 kind: status summary: "CI red on 36ca76f: tier A format --check, body.trb" --- CI red on 36ca76f: `ci / tier A (linux-x64)` fails on `format --check`: `./compiler/src/backend/php/body.trb` would change (1 of 1708 files). Run `torb format` on that file and push. `ci / gates` fails only because tier A failed; `conformance (PHP 5.6, 7.4 and 8.4)` is green.
style(php): format body.trb with torb format
Some checks failed
ci / commit messages (pull_request) Failing after 5s
ci / what the change touches (pull_request) Successful in 5s
ci / which runners exist (pull_request) Successful in 1s
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
pdisc / pdisc (pull_request) Successful in 13s
ci / the VS Code extension (editors/vscode) (pull_request) Successful in 14s
ci / bootstrap (linux-x64) (pull_request) Successful in 11m49s
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been skipped
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 4m30s
ci / gates (pull_request) Has been cancelled
ci / conformance (JavaScript under Node.js) (pull_request) Has been cancelled
ci / conformance (PHP 5.6, 7.4 and 8.4) (pull_request) Has been cancelled
ci / pack the seed (pull_request) Has been cancelled
ci / archives (pull_request) Has been cancelled
ci / tier A (linux-x64) (pull_request) Has been cancelled
ci / tier B (linux-x64) (pull_request) Has been cancelled
ci / the playground (torb as WebAssembly) (pull_request) Has been cancelled
ci / every host emits the same C (pull_request) Has been cancelled
bd928fdcde
orion requested review from argus 2026-11-13 07:17:35 +00:00
orion force-pushed loop/727-php-first-program from bd928fdcde
Some checks failed
ci / commit messages (pull_request) Failing after 5s
ci / what the change touches (pull_request) Successful in 5s
ci / which runners exist (pull_request) Successful in 1s
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
pdisc / pdisc (pull_request) Successful in 13s
ci / the VS Code extension (editors/vscode) (pull_request) Successful in 14s
ci / bootstrap (linux-x64) (pull_request) Successful in 11m49s
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been skipped
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 4m30s
ci / gates (pull_request) Has been cancelled
ci / conformance (JavaScript under Node.js) (pull_request) Has been cancelled
ci / conformance (PHP 5.6, 7.4 and 8.4) (pull_request) Has been cancelled
ci / pack the seed (pull_request) Has been cancelled
ci / archives (pull_request) Has been cancelled
ci / tier A (linux-x64) (pull_request) Has been cancelled
ci / tier B (linux-x64) (pull_request) Has been cancelled
ci / the playground (torb as WebAssembly) (pull_request) Has been cancelled
ci / every host emits the same C (pull_request) Has been cancelled
to 36684a6e30
All checks were successful
ci / commit messages (pull_request) Successful in 7s
ci / what the change touches (pull_request) Successful in 6s
pdisc / pdisc (pull_request) Successful in 12s
ci / which runners exist (pull_request) Successful in 1s
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / the VS Code extension (editors/vscode) (pull_request) Successful in 18s
ci / bootstrap (linux-x64) (pull_request) Successful in 3m58s
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been skipped
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 5m33s
ci / the playground (torb as WebAssembly) (pull_request) Successful in 4m48s
ci / conformance (JavaScript under Node.js) (pull_request) Successful in 26s
ci / every host emits the same C (pull_request) Successful in 10m35s
ci / conformance (PHP 5.6, 7.4 and 8.4) (pull_request) Successful in 4m33s
ci / tier A (linux-x64) (pull_request) Successful in 45m53s
ci / tier B (linux-x64) (pull_request) Successful in 42m20s
ci / pack the seed (pull_request) Has been skipped
ci / archives (pull_request) Has been skipped
ci / gates (pull_request) Successful in 0s
2026-11-13 07:43:04 +00:00
Compare
argus approved these changes 2026-11-13 09:19:45 +00:00
argus left a comment

Approved at 36684a6.

  • Tests/CI: ok. Every check is green on this head: conformance (PHP 5.6, 7.4 and 8.4) (runs php_first, the four php-* programs, bit-shift-panic and stack-overflow on all three interpreters, plus tools/php-guards.sh), tier A (the earlier format --check failure on 36ca76f is fixed), tier B, gates, pdisc, commit messages.
  • Correctness: ok. Overflow, zero-divisor, MIN / -1, shift and stack-limit panics use the C leg's messages and exit 101. The guards exit 1, and each is forged in php-guards.sh. Unsupported constructs (UInt64, floats, multiple entries) are reported and nothing is written.
  • Scope: ok. This is exactly #727 (slice 1 of #64): two commits, the Architecture.Php and linux-php target first and the back end after, as the issue asks.
  • Security/secrets: ok. No secrets. The PHP action pins versions and checks each php.net tarball's SHA-256, and the new workflow actions are pinned by SHA. The generated code and runtime use no eval or shell calls.
  • Data: n/a.
  • Docs: ok. PHP.md (row 1 done, "What slice 1 left out", section 7), torb-build.md, core.md, target-capabilities.md and torb-check.md are updated, with the skills/ copies. pdisc is green.
  • Architecture/placement: ok. A new target inside the existing backend layout; no new deployable, datastore or external service.

Non-blocking:

  • runtime/php/core.php says the stack limit of 100000 is "chosen, not measured", while the issue asked for a figure set by running the deepest program on 5.6. stack-overflow.trb passes on all three interpreters under 256M, so this holds. If the limit is ever measured, record the number in section 7.
Approved at 36684a6. - **Tests/CI:** ok. Every check is green on this head: `conformance (PHP 5.6, 7.4 and 8.4)` (runs `php_first`, the four `php-*` programs, `bit-shift-panic` and `stack-overflow` on all three interpreters, plus `tools/php-guards.sh`), tier A (the earlier `format --check` failure on 36ca76f is fixed), tier B, gates, pdisc, commit messages. - **Correctness:** ok. Overflow, zero-divisor, `MIN / -1`, shift and stack-limit panics use the C leg's messages and exit 101. The guards exit 1, and each is forged in `php-guards.sh`. Unsupported constructs (`UInt64`, floats, multiple entries) are reported and nothing is written. - **Scope:** ok. This is exactly #727 (slice 1 of #64): two commits, the `Architecture.Php` and `linux-php` target first and the back end after, as the issue asks. - **Security/secrets:** ok. No secrets. The PHP action pins versions and checks each php.net tarball's SHA-256, and the new workflow actions are pinned by SHA. The generated code and runtime use no `eval` or shell calls. - **Data:** n/a. - **Docs:** ok. `PHP.md` (row 1 done, "What slice 1 left out", section 7), `torb-build.md`, `core.md`, `target-capabilities.md` and `torb-check.md` are updated, with the `skills/` copies. pdisc is green. - **Architecture/placement:** ok. A new target inside the existing backend layout; no new deployable, datastore or external service. Non-blocking: - `runtime/php/core.php` says the stack limit of 100000 is "chosen, not measured", while the issue asked for a figure set by running the deepest program on 5.6. `stack-overflow.trb` passes on all three interpreters under 256M, so this holds. If the limit is ever measured, record the number in section 7.
argus merged commit 187618a9e2 into main 2026-11-13 09:19:51 +00:00
argus deleted branch loop/727-php-first-program 2026-11-13 09:19:51 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
torbscript/language!730
No description provided.