Our default config has both auto_globals_jit and register_argc_argv
enabled. However, having register_argc_argv enabled disables
auto_globals_jit which carries a really high WTF factor.
We can fix this by shuffling things around a bit and making 2 calls to
php_build_argv. One to populate the global argc/argv in cli mode and
another to populate the _SERVER version from either
php_auto_globals_create_server or php_register_server_variables
depending on how we do the checks in php_hash_environment. Then to
connect the references we'd need a hash lookup in php_build_argv. It
gets a bit messy, but I don't think the current situation makes any
sense at all. Anybody see a clean way out of this?
-Rasmus
Hi Rasmus,
Why you need "register_argc_argv" in your php.ini?
Isn't CLI version sets it by default?
Also, do we need this "register_argc_argv" for some SAPI except CLI, CGI and
EMBED?
Dmitry.
-----Original Message-----
From: Rasmus Lerdorf [mailto:rasmus@lerdorf.com]
Sent: Wednesday, March 15, 2006 7:10 PM
To: internals
Subject: [PHP-DEV] auto_globals_jit and register_argc_argv disconnectOur default config has both auto_globals_jit and register_argc_argv
enabled. However, having register_argc_argv enabled disables
auto_globals_jit which carries a really high WTF factor.We can fix this by shuffling things around a bit and making 2
calls to
php_build_argv. One to populate the global argc/argv in cli mode and
another to populate the _SERVER version from either
php_auto_globals_create_server or php_register_server_variables
depending on how we do the checks in php_hash_environment. Then to
connect the references we'd need a hash lookup in php_build_argv. It
gets a bit messy, but I don't think the current situation makes any
sense at all. Anybody see a clean way out of this?-Rasmus
At 18:10 15/03/2006, Rasmus Lerdorf wrote:
Our default config has both auto_globals_jit and register_argc_argv
enabled. However, having register_argc_argv enabled disables
auto_globals_jit which carries a really high WTF factor.
I don't think WTF terminology fits here, as it's an extreme case of
performance optimization and doesn't affect functionality. Not
exactly the interest of the average (and even advanced) user. It's
end-user (developer) transparent. Irregardless, I actually think it
makes perfect sense that if you ask PHP to do stuff with GET / POST
variables on every request (register_argc_argv), it wouldn't make
sense to JIT them.
So if we're talking about WTF, I don't see how it is an issue. Are
you also expecting to see a performance boost from that case?
Zeev
Zeev Suraski wrote:
At 18:10 15/03/2006, Rasmus Lerdorf wrote:
Our default config has both auto_globals_jit and register_argc_argv
enabled. However, having register_argc_argv enabled disables
auto_globals_jit which carries a really high WTF factor.I don't think WTF terminology fits here, as it's an extreme case of
performance optimization and doesn't affect functionality. Not exactly
the interest of the average (and even advanced) user. It's end-user
(developer) transparent. Irregardless, I actually think it makes
perfect sense that if you ask PHP to do stuff with GET / POST variables
on every request (register_argc_argv), it wouldn't make sense to JIT them.
We don't jit GET/POST.
-Rasmus
At 16:07 20/03/2006, Rasmus Lerdorf wrote:
Zeev Suraski wrote:
At 18:10 15/03/2006, Rasmus Lerdorf wrote:
Our default config has both auto_globals_jit and
register_argc_argv enabled. However, having register_argc_argv
enabled disables auto_globals_jit which carries a really high WTF factor.
I don't think WTF terminology fits here, as it's an extreme case of
performance optimization and doesn't affect functionality. Not
exactly the interest of the average (and even advanced) user. It's
end-user (developer) transparent. Irregardless, I actually think
it makes perfect sense that if you ask PHP to do stuff with GET /
POST variables on every request (register_argc_argv), it wouldn't
make sense to JIT them.We don't jit GET/POST.
OK, I agree with you, the correlation is a weaker than I thought
(didn't recall I didn't get around to JIT'ing get/post). If we were
to do it it probably makes sense to just keep a global reference to
argv/argc, and move the code that puts them into _SERVER to
php_register_server_variables(). Should be pretty clean, no?
Zeev
Zeev Suraski wrote:
At 16:07 20/03/2006, Rasmus Lerdorf wrote:
Zeev Suraski wrote:
At 18:10 15/03/2006, Rasmus Lerdorf wrote:
Our default config has both auto_globals_jit and register_argc_argv
enabled. However, having register_argc_argv enabled disables
auto_globals_jit which carries a really high WTF factor.
I don't think WTF terminology fits here, as it's an extreme case of
performance optimization and doesn't affect functionality. Not
exactly the interest of the average (and even advanced) user. It's
end-user (developer) transparent. Irregardless, I actually think it
makes perfect sense that if you ask PHP to do stuff with GET / POST
variables on every request (register_argc_argv), it wouldn't make
sense to JIT them.We don't jit GET/POST.
OK, I agree with you, the correlation is a weaker than I thought (didn't
recall I didn't get around to JIT'ing get/post). If we were to do it it
probably makes sense to just keep a global reference to argv/argc, and
move the code that puts them into _SERVER to
php_register_server_variables(). Should be pretty clean, no?
Pretty much what we did already. You are running about a week behind. ;)
-Rasmus