unread
                    Today, zend extensions and modules have different features they 
support. I'm curious why this split came to be. Why did they need to 
be different types of shared objects?
I am tentatively thinking about proposing for PHP 8.2 or 9.0 that the 
zend_extension struct holds a zend_module_entry by value or by 
pointer so that we can stop doing the janky hybrid extension tricks. I 
need to know a bit about the history here to make sure we don't 
accidentally regress on some point when doing this sort of thing.