XEROX INFORMATION PRODUCTS GROUP System Development Division July 6, 1977z18556l3033e10c(635)\f2 5f0 1f6b27f0Bi28I To: Distribution From: Dick Sweet Subject: Mesa Language Committee minutes z18556e12jk70\f1 3t2 1t0f0 14f1 5t2 1t0f0 11f1 9t2 1t0f0 32f1 1f0 The following items were discussed at the June 6 meeting:z18556e12jk70 "Noncontroversial" Itemsz18556e12jk70\b Packed (=byte) arrayse12 Although these arrays are packed only to the byte level in the current implementation, the reserved word PACKED is used to designate this option rather than BYTE. For the first implementation, the arrays are to be allocated on full word boundaries and take an integral number of words. The SIZE operator will return this number of words, but the LENGTH operator will still return the cardinality of the index set. It will be at most a warning if the size of an element item is greater than 8 bits.l4269e6j Empty intervals in type expressions (primarily for faking sequences).e12 Everybody seemed to think that these were a good idea, and they are essentially implemented.l4269e6j Predeclaration of UNWINDe12 Done.l4269e6j BOOLEAN as an enumerated type.e12 Done.l4269e6j Interface to the upgraded signaller.e12 Done.l4269e6j Cleaned-up layout of fields in (non-MACHINE DEPENDENT) records.e12 The principal reason is to make variant records comparable. The impact is that some variant records with both 1 word and multiword variants would require more than 1 word for the small variants. The disposition of this item was to discuss it further with users, principly Charles S.l4269e6j Finer fine grain table (for closer control of breakpoint locations).e12 There was agreement that it should be done.z18556l4269e6jk70 Somewhat Less Understood Topicsz18556e12jk70\b31B Cross reference data generation (needs switches).e12 This should be done on this release, with the data going to a file with the same primary name (.XREF?). It should be controlled by a switch (switch syntax is described in CommandProcessor.memo).l4269e6j Warning messages, at least for unreferenced variables and unused import items (also needs switches).e12 There should eventually be degrees of severity for warnings, such as for special tests to insure proper humus style object use (I didn't get down exactly what was meant by this). Rather than have a kludged switch syntax for this, the user would specify in the front of his file those messages that he wishes to see. There would be three options on the command line: see no warning message, see those specified by the text, see all messages. For this release there is to be only all-or-nuthin.l4269e6j Predeclared names for bodies and text fields of strings.e12 StringBody: TYPE = RECORD [ length, maxlength: CARDINAL, text: PACKED ARRAY [0..0) OF CHARACTER];l4269e6 READ-ONLY as an attribute.e12 It was reasonably well understood that the question was not well understood at this point.l4269e6j Mutable variant records.e12 This should be in this release, but the default value (IMMUTABLE or VICISSITUDINOUS) should be determined by polling the user community.l4269e6j Preemption-safe assignment of multiword constants.z18556e12jk70 This will be done by disabling interrupts during the BLT. z18556l4269e6jk70 As Time Permits (in order of priority)z18556e12jk70\b15B Overlayed variant records.e12 The uniqueness of name applies to the declaration rather than to the fields used. It will still be necessary to name variants.l4269e6j Machine dependent records as in Euclid.e12 The syntax chosen to specify "word i bits j to k" was (i:j..k), with ":0..15" a default size. These locations would appear after the identifier, before the colon. If one field is specified, all must be. The previous sentence becomes inoperative if the old MACHINE DEPENDENT RECORDs go away.l4269e6j Listing included/imported identifiers in the module heading.e12 Does not seem to buy much compilation speed, since the identifiers are still in the included/imported context. It would, of course, restrict the search of that context, and hence be fast if done for all included/imported modules. Its major use is as a comment whose validity is enforced by the compiler.l4269e6j