Backwards compatibility in different programming languages

Putting a feature in the obsolescent section “forever” would be an acceptable compromise. I don’t know what the standard says about how the compilers should handle the obsolescent features, but IMHO the compilers should by default issue warnings.

IIRC, in f90/f95 assigning any array (allocatable or not) with an array of a different size was illegal, and when it could not be caugth by the compiler the runtime behavior was processor-dependent.

F2003 now authorizes such an assignement if the LHS is allocatable. But the behavior of legal code has not changed, it’s just that what was illegal and with an undefined behavior is now legal and defined.