bobal@microsoft.UUCP (Bob Allison) (08/18/88)
So anyway, we spent the whole week looking at language proposals. No work on public review letters (we're so shaken up we don't know how to reply yet). We may end up sending out a form letter saying how the public review made such a difference that we've re-designed the language, describe the language, then invite more commentary on the second public review. By Friday there were (in my opinion) three proposals left. Plan A removed module procedures, free form source, overloaded procedures (maybe not, there were some new ideas, and intrinsic operators were still allowed), parameterized structures, simplified how arrays can be passed and whether an interface is required, internal procedures, user-defined operators, RANGE, IDENTIFY, allocatable dummy arguments and function results, elemental user functions, simplified the selectable precision stuff some, and maybe some other minor stuff. Plan B removed everything Plan A did as well as overloading of any kind, optional arguments, keyword arguments (everything which requires an explicit interface, actually), changed the component selector to a "." from a "%" (since there weren't any user-defined operators), user-defined operators, obsolescence, and removed generalized precision entirely and added two new REAL types (one with at least 14 digits of precision, the other the maximum the machine can provide) and defined REAL to provide 6 digits. Both Plan A and Plan B added MIL-STD bit intrinsics, DO WHILE, INCLUDE, and an AUTOMATIC statement (opposite of the SAVE statement). Both are willing to discuss a pointer type if one can be proposed which is safe, efficient, and won't slow the standard down. Both tend to think that NCHARACTER should be in a collateral standard from Fortran 8X. Plan C was sufficiently different from the other two to be hard to compare. Compared to the draft, it removes user-defined operators, RANGE, IDENTIFY, allocatable dummy arguments and function results, deprecation, internal procedures, simplified generalized precision, overloading intrinsic operators, keyword and optional arguments, MODULE/USE entirely, obsolescence, and changed derived types to DEC structures. Plan C added a bit string type, and NCHARACTER (Kanji) type, DO WHILE, the AUTOMATIC statement, INCLUDE, short integers, vector-valued array subscripts, added some array intrinsics back from the removed extensions appendix, and added a varying length character type. All were fairly popular, although none was favored by much more than half the committee (the best members-only vote was only 19-12-3, the worst 13-17-4). I have deliberately avoided associating names and votes with the plans because it might tend to bias the discussion. Also, all three plans will probably be modified somewhat before the November meeting (in Boston) and could be somewhat different by then. Bob Allison