> The point I was making was that I believe the committee deliberately > overlooked such issues. The purpose of TRANSFER was to provide > a means of doing things that the language otherwise didn't permit. > The fact that such activities could be abused was the programmer's > responsibility.
Well, it's 21(!) years ago, but my notes on the Halifax meeting in 1986 include:
"Transfer function
My attempts at the previous meeting to restore some form of storage mapping had failed, but I had been asked to come back with proposals for a transfer function to allow one area of storage to be viewed as containing more than one data type. I had prepared two proposals for the meeting but, following suggestions by John Reid, I rewrote the proposals in the form of a single function able to return either scalar or array-valued results, depending on a MOLD argument. This was accepted 20-4. This function would allow us [the HEP community] to replace code of the form
COMMON//Q(10000) : PX = Q(TRANSFER(Q(L), 0) + 3) ! second argument moulds Q(L) to an ! integer scalar"
The only remaining argument was whether the language should *deliberately* contain an 'unsafe' feature. The functionality was always regarded as taking two different views of the same storage.