Skip to content

php-in-php: date_sunrise()/date_sunset() VM builtins (#6137) - #7965

Merged
PurHur merged 1 commit into
masterfrom
agent/runtime-php-date-sunrise-6137
Jun 11, 2026
Merged

PurHur merged 1 commit into
masterfrom
agent/runtime-php-date-sunrise-6137

Conversation

@PurHur

@PurHur PurHur commented Jun 11, 2026

Copy link
Copy Markdown
Owner

Summary

  • Register date_sunrise() and date_sunset() in ext/standard/ with VM host bridge via VmDate (php-src ext/date/php_date.c).
  • Add PHP 8.4 SUNFUNCS_RET_* constants to Module::init() and StdlibConstants.
  • Shared arg parsing in VmDateSunFunc.php; JIT/AOT deferred (VM-first v1 per issue).

php-src reference

  • ext/date/php_date.c — PHP_FUNCTION(date_sunrise), PHP_FUNCTION(date_sunset)

PHP implementation

  • ext/standard/VmDate.php — dateSunrise() / dateSunset() host bridge
  • ext/standard/date_sunrise.php, date_sunset.php — VM builtins
  • ext/standard/VmDateSunFunc.php — shared Z_PARAM parsing

C runtime shrink

No new C in runtime/ or lib/AOT/runtime/ (only phpc_progress.c remains frozen ABI).

Verification

./script/docker-exec.sh -- bash -lc 'source script/php-env.sh
php test/repro/maintainer_date_sunrise_sunset.php
php bin/vm.php test/repro/maintainer_date_sunrise_sunset.php
vendor/bin/phpunit --filter date_sunrise_sunset_basic
'

Output:

rise_ok
set_ok
1782013676
1782072990
rise_ok
set_ok
1782013676
1782072990
OK (2 tests, 2 assertions)

Closes #6137

Made with Cursor

…bridge (#6137)

Register procedural solar helpers in ext/standard with PHP 8.4 SUNFUNCS_*
constants, shared arg parsing, and compliance PHPT matching Zend output.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur merged commit a525e12 into master Jun 11, 2026
@PurHur
PurHur deleted the agent/runtime-php-date-sunrise-6137 branch June 11, 2026 08:23
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.

Stdlib: date_sunrise()/date_sunset() — solar position helpers missing (ext/date/php_date.c)

1 participant