Skip to content

feat(datetime): complete php-src 8.5 date compliance - #866

Draft
Guikingone wants to merge 14 commits into
illegalstudio:mainfrom
Guikingone:feat/datetime-php-src-compliance-v2
Draft

feat(datetime): complete php-src 8.5 date compliance#866
Guikingone wants to merge 14 commits into
illegalstudio:mainfrom
Guikingone:feat/datetime-php-src-compliance-v2

Conversation

@Guikingone

@Guikingone Guikingone commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Supersedes #632 and #821.

Status

Work in progress; this draft is an incremental checkpoint, not a claim of exhaustive php-src compliance. Final GPT-6 Astra review (low), the complete PHPT campaign and final target acceptance remain pending.

Checkpoint: 2026-09-08

  • Rebased on origin/main at 640380cf8856379228db77e48c142d7613ed4e48, preserving upstream signature, PCNTL, Closure and diagnostic changes alongside the DateTime work.
  • Latest checkpoint: d07ae8bc7dbe1af46bd5c64095b5723f0281facf.
  • Calendar/ISO/timezone procedural mutations now use native receiver dispatch. Timelib formatting and DateTime offsets use explicit timezone data instead of temporarily changing the request default.
  • The post-eval retention scan no longer triggers user debug projections; variable/cell property references acquire a read owner. Other alias/container traversal remains under audit.
  • Fixed the internal pointer-to-string alias's ownership contract; the calendar mutation regression now has no unexpected notices and a clean heap.
  • DateTime procedural time mutation now bypasses subclass overrides through AST/EIR native dispatch, preserves receiver identity, binds named/default arguments and rejects immutable receivers.
  • Fixed native/eval argument, default-value and result ownership uncovered by the date tests. Repeated time mutation and subsequent formatting pass the strict clean-heap regression.
  • Added catchable ParseError/CompileError support, compile-warning replay, native DateTime debug projection and associated regression coverage. Remaining diagnostic/reflection limitations are explicitly tracked.
  • Regenerated builtin/symbol documentation and the PHP compatibility page from the merged catalog.

Validation on this checkpoint

After the latest rebase: warning-free exporter build, clean native calendar-mutation heap regression, regenerated docs, site audit and EIR boundary audit all pass. The additional focused results below were obtained before this latest synchronization; exhaustive current-revision acceptance remains pending.

  • Focused lexer, context/PCNTL, native-dispatch and builtin-contract unit tests pass.
  • Three native date_time_set regressions pass, including strict heap cleanup; the mixed string-result/property preservation regression passes.
  • The native/eval bridge assembly fixture emits for macOS AArch64, Linux AArch64, Linux x86_64, iOS device and iOS Simulator. This is emission evidence, not executable coverage of every target.
  • Exporter build is warning-free; builtin documentation audit, generated-site validation, EIR boundary audit and staged diff hygiene pass.

Still open

  • Remaining procedural DateTime/DateInterval/DateTimeZone parity cases, complete diagnostics and exception trace metadata, and residual ownership/coercion paths.
  • Dynamic ReflectionClass construction in AOT and eval trace access; omitted initial value for AOT array_reduce. Their pending regressions remain enabled rather than ignored.
  • Exhaustive php-src PHPT and target validation, final Astra audit/corrections, and final commit squash.

See .plans/datetime-astra-post-rebase-remediation.md for the detailed findings and evidence. The draft must not be treated as ready to merge while these gates remain open.

@github-actions github-actions Bot added area:codegen Touches target-aware assembly or backend lowering. area:magician Touches eval, include execution, or elephc-magician. area:web Touches --web mode, its prelude, or elephc-web. scope:multi-area Touches more compiler areas than the automatic area-label cap. size:xl Very large pull request that needs deliberate review planning. target:linux-x86_64 Contains behavior specific to the Linux x86_64 target. type:feature Introduces new user-visible behavior or capabilities. labels Sep 1, 2026
@Guikingone
Guikingone force-pushed the feat/datetime-php-src-compliance-v2 branch 2 times, most recently from 8941224 to 5fcbbbb Compare September 8, 2026 14:44
@Guikingone
Guikingone force-pushed the feat/datetime-php-src-compliance-v2 branch from 5fcbbbb to d07ae8b Compare September 8, 2026 20:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:codegen Touches target-aware assembly or backend lowering. area:magician Touches eval, include execution, or elephc-magician. area:web Touches --web mode, its prelude, or elephc-web. scope:multi-area Touches more compiler areas than the automatic area-label cap. size:xl Very large pull request that needs deliberate review planning. target:linux-x86_64 Contains behavior specific to the Linux x86_64 target. type:feature Introduces new user-visible behavior or capabilities.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant