> > Hi folks, i think that we are getting a little confused here due to using the term 'preloading' for different things. As i have noted previously, my initial proposal of compile time execution would not depend on php's preloading feature, but could work, with opcache in the usual sense, or even without opcache, with a probably notable performance impact.
The proposal is really to split the execution flow into two stages, one that happens once during compilation, and one that happens n times during subsiquent requests. This actually has no dependency on preloading and is orthoganal to it. I don't see any real issue with allowing ast manipulation and compile time metaprogramming myself, as it would just be making it easier to do things that people are already doing with preprosessors of various kinds. I tend towards the attitude john blow has with JAI: giving tools to experianced developers, and not creating ristrictions for novices, who will always be able to find ways of breaking something. Metaprogramming could be a foot gun, yet it could also be really useful if someone knows what they are doing. I have been talking about ideas with Mike off-list, and we both think that if a low-level API were exposed to allow this, most of the functionality could be implemented in PHP code. By making a low level api, it would probably put off biginners from using it directly, and they could use higher level API's providing more restricted functionality. Python has the ability to modify its own ast in python code, and i have never personally seen any horror stories of biginners getting into trouble with it. The API is low level and requires a lot of internal knowlage to use. With regards to not being able to use custom php extensions without being able to edit the server configuration. In my opinion the best approach is to get away from running the language in a 'traditional' virtual hosting setup. I have no desire to write code that would need to run in such a limiting environment. I appoligise for any spelling errors as I am dsylexic, don't have access to my desktop right now, and the spell checker on android is awful.