May I make a suggestion?
How about a smaller scale solution/utility, that takes a function (not an entire project) written in AFL and translates this into C++ plugin code.
All the IFs and LOOPs will be translated to C++. All the AFL function calls (like MACD) will be treated with the gSiteCallFunction (ie translated to gSite.CallFunction("macd", 2, args ); ).
Would this be easier to implement/produce?
point 1: Nothing changes for the arrays, no performance degradation from the translation.
point 2: We speed-up looping. Coder still needs to educate himself and write efficient (array based) code.
point #3: Would more people be interested in this? I certainly prefer this than the full blown compliler. I just want to produce my own faster plugins, not for commercial use.
point #4: It will make easier for the AFL coders to produce plugins. No harm in this.
About point #2: I always try to use arrays, I ask here for help etc. Only as a last resort I go for loops. I had to write plugins in 2-3 cases, and of course they are lighning fast.
For example take a look at this case: Zig-Hi Zap-Lo: Unexpected result
From what I understand, this array based code is the standard solution for years. I spent several days trying to adjust it to my needs (restrict from looking into the future), until I found a possible problem in the original code. Since nobody replied, I spent one day and wrote my own plugin.