(Oh, BTW, “midiguru” is Jim Aikin. Dang these computer monikers, anyhow!)
One of the design decisions Graham made that is apparent on the surface was to encourage the development of third-party extensions. This had been part of the I6 community for some years, and it’s a fine idea in many ways. It allows people to implement specialized features, and also encourages people to have “buy-in” with the system. But if you have a small development team, don’t attempt to make new releases backward-compatible, and encourage third-party extensions, the inevitable result is that when a new version is released, many or most of the extensions break!
This was foreseeable. Apparently it was not foreseen.
Even in the absence of extensions, author code breaks when there’s no backward compatibility. But the author is sitting right there in front of the computer, and can make the necessary changes in his or her project, based on an intimate knowledge of exactly what the project code does, or is supposed to do. An extension author, on the other hand, may no longer be involved in IF at all, and may have used programming concepts that are difficult for the author to untangle.
I have no solutions to offer. There may not be any solution (other than to switch to TADS 3 with the adv3Lite library, which is certainly worth suggesting). I can suggest ideas for how to produce backward compatibility at the author level – syntax such as “Section 3: The Jail Cell (compile using 6L02)”. If individual sections could be compiled using different compilers, a good deal of the problem would be smoothed over. But – and this is a big but: Not being a software engineer, I have no idea at all how difficult it would be to refactor the compilation process so as to allow that to happen. It might be impossible, and I’m pretty sure it would be a huge job.