Skip to content

Language: PHP 8 attributes VM v1 compliance pack (#1354, #1912)#1925

Merged
PurHur merged 1 commit into
masterfrom
issue-1354-php8-attributes-vm
May 25, 2026
Merged

Language: PHP 8 attributes VM v1 compliance pack (#1354, #1912)#1925
PurHur merged 1 commit into
masterfrom
issue-1354-php8-attributes-vm

Conversation

@PurHur
Copy link
Copy Markdown
Owner

@PurHur PurHur commented May 25, 2026

Summary

  • Add compliance PHPTs (attribute_class, attribute_method, attribute_param) and AttributeParseTest proving PHP 8 #[...] attributes on classes, methods, and parameters parse, lint clean, and run with attributes ignored at runtime (VM v1).
  • Close wave-3 language track in docs/roadmap-wave3.md (12/12 done; JIT/AOT attribute reflection deferred).
  • Regenerate docs/bootstrap-inventory.md (601 files) and sync M2 spine footnotes 589/601 so ci-fast doc gates pass on harness hosts.

Notes

No compiler changes required: host php-parser + php-cfg already accept decorated declarations; VM execution ignores attribute metadata. Out of scope: #[\Attribute] validation, enum targets, JIT/AOT reflection (#1904 gate can follow).

Test plan

  • ./script/docker-ci-local.sh fast (local Docker)
  • vendor/bin/phpunit --filter attribute test/compliance/
  • vendor/bin/phpunit test/unit/AttributeParseTest.php

Closes #1354
Closes #1912

Made with Cursor

Add compliance PHPTs and AttributeParseTest proving decorated class, method,
and parameter declarations parse, lint clean, and execute with attributes
ignored at runtime. Close wave-3 language track in roadmap-wave3.md.

Regenerate bootstrap inventory (601 files) and sync M2 spine footnotes
589/601 for CI doc gates.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Language: PHP 8 attributes — compliance PHPT pack (#1354 VM v1) Language: PHP 8 attributes (#[Attr] on classes, methods, properties)

1 participant