Skip to content

AOT: date_default_timezone_get/set NestedJIT coerce (#33950) - #33953

Merged
PurHur merged 1 commit into
masterfrom
agent/issue-33950-default-timezone-nestedjit-coerce
Aug 22, 2026
Merged

PurHur merged 1 commit into
masterfrom
agent/issue-33950-default-timezone-nestedjit-coerce

Conversation

@PurHur

@PurHur PurHur commented Aug 22, 2026

Copy link
Copy Markdown
Owner

Summary

php-src: ext/date/php_date.c — PHP_FUNCTION(date_default_timezone_get/set).

Follow-up: free date('T') after runtime date_default_timezone_set still uses the #33943 UTC bake.

Test plan

  • ./script/aot-smoke.sh → 8/8
  • ./script/phpunit.sh --filter 'Issue33950DefaultTimezoneAotTest|DefaultTimezoneRuntimeShrinkTest' → OK (6 tests)
  • Repro AOT matches Zend stdout for get/set/invalid id
  • #33943 date tz-token repro still matches Zend under UTC default

Made with Cursor

Thin AOT SIGSEGV'd on get and always returned false from set because the
ABI bridge skipped JitNestedHelperCoerce and NestedJIT could not use
VmDate::$defaultTimezone. Coerce string/bool returns and keep the default
zone in the helper TU with durable copy + zoneinfo is_file validation.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur merged commit 8a0f6e9 into master Aug 22, 2026
1 check failed
@PurHur
PurHur deleted the agent/issue-33950-default-timezone-nestedjit-coerce branch August 22, 2026 22:50
PurHur added a commit that referenced this pull request Aug 22, 2026
…33958)

#33953 fixed get/set but free date('T') still UTC-baked at compile time.
Route those tokens through DefaultTimezoneCivilJitHelper sharing the
NestedJIT DefaultTimezoneJitHelper static (peer #33943 / #33950).

Co-authored-by: PurHur <PurHur@users.noreply.github.com>
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.

1 participant