Hello, I recently worked on the extension loading system to fully understand it and try to improve it while keeping full BC. Joe helped me in this task. I wrote an RFC giving details about what we have today ( https://wiki.php.net/internals/extensions )
The branch can be found here : https://github.com/jpauli/php-src/tree/extensions_improvements As I plan to merge it against master and probably 5.5 (not sure, depend on time), I will write an RFC about it to show people what were the ideas for this branch. I also plan to rewrite much more things, but that will be against master, and that will also be RFC'ed I'm actually running a problem. Nowadays, our test suite doesn't test anything about extensions, so I planned to write tests as well. The goal is to test how the engine loads extensions, should they be Zend Engine exts or PHP exts, with all the possible scenarios. For that, I need the test suite to be able to load several pre-compiled extensions that will each be used to test one test case. The idea is to modify the build script so that it compiles all those little zend_test_extensions only when Debug mode is activated (as those exts are just meant for testing purpose) So, I merged a "zendtest" extension that can be built as Zend Engine ext or PHP ext or even both, to test the patches I added to the branch. But, I cant make the build system compile an extension having a dynamic name. I'm very noob to AutoTools and m4, and it's quiet complicated to debug such tools. Actually, I tried a concatenation like PHP_NEW_EXTENSION(zend_test_extension_[$PHP_ZEND_TEST_EXTENSION_BUILD_ENGINE], zend_test_extension.c, $ext_shared) But this does not work, autom4te gives errors or generates a wrong-syntaxed configure. So if you have ideas about that, I'm listening :-) If someone has autotools experience, please, share it on IRC on here :-) Thx Julien.Pauli