- The name of corrective service diskettes (CSD) has been changed to FixPak.
- FixPak #6 combines the enhancements and changes in FixPak #5, FixPak #4, FixPak #3, CSD #2 and CSD #1.
- MAXTOKENS parameter on LPEX editor has been increased from 1200 to 4800.
-
If the source in a conversion from character to numeric consists
entirely of blanks, then CONVERSION will no longer be raised,
but instead a value of 0 will be returned.
This behavior is consistent with what has always happened when
the source was a varying character string of zero length (which
would compare equal to a string of blanks), and it is also
consistent with what the standard dictates.
-
Initialization of structures to null values is now easier: the
value ''b may now be assigned to a structure even if the structure
contains non-computational fields (such as pointers or offsets).
All the non-computational fields will be filled with hex zeros,
while the computational fields will be assigned null values as before.
define alias address pointer;
dcl special_addr type address value( cast(: address, 'dada'xn :) );
-
The CAST enquiry function may now be used in restricted
expressions if its second argument is a restricted expression.
This means, for example, that it may be used in a VALUE clause
or in the INITIAL clause for a STATIC variable, as in
define alias address pointer;
dcl special_addr type address value( cast(: address, 'dada'xn :) );
-
The macro facility now supports the FIXED option. This option
must specify a suboption of BINARY or DECIMAL (with BIN and DEC,
respectively, allowed as abbreviations). FIXED(DEC) is the default.
-
The DEFAULT compiler option now has a new suboption on Intel and AIX.
The E suboption determines how many digits will be used for the
exponent in E-format items. Under E(IEEE), 4 digits will be used, but
under E(HEXADEC), only 2 digits will be used (as on 390).
If DFT( E(HEXADEC) ) is specified, an attempt to use an expression whose
exponent has an absolute value greater than 99 will cause the SIZE
condition to be raised.
DFT( E(HEXADEC) ) is useful in developing and testing 390 applications
on the workstation. The statement "put skip edit(x) ( e(15,8));"
would produce no messages on 390, but, by default, it would be
flagged under Intel and AIX. Specifying DFT(E(HEXADEC)) would fix this.
DFT( E(IEEE) ) is the default on Intel and AIX.
-
The RULES compiler option now has a new suboption: (NO)LAXMARGINS.
Under RULES(NOLAXMARGINS), the compiler will flag any line containing
non-blank characters after the right margin. This can be useful in
detecing code, such as a closing comment, that has accidentally been
pushed out into the right margin.
RULES( LAXMARGINS ) is the default.
-
The RULES compiler option now has a new suboption: (NO)LAXCTL.
Under RULES(NOLAXCTL), the compiler will flag any attempt to ALLOCATE
a CONTROLLED variable with a different extent than specified in its
declare if the extent was specified as a constant. This also allows
it to produce better code.
So under RULES( NOLAXCTL ), the first of the three allocates below would be flagged.
declare a bit(32) controlled;
declare b bit(*) controlled;
declare c bit(n) controlled;
allocate a bit(64);
allocate b bit(64);
allocate c bit(64);
RULES( LAXCTL ) is the default.
-
On 390, the DD option now has 3 new suboptions. These suboptions
can be used to specify alternate DD names for SYSIN, SYSLIB,
and SYSPUNCH, respectively.
By default, the option is DD(SYSPRINT,SYSIN,SYSLIB,SYSPUNCH).
-
On OS/2, all 16-bit support has been dropped.
-
Performance has been improved:
-
On Intel, the code generated under OPTIMIZE will now make better use of
the instruction scheduler.
-
The code generated for some PUT EDIT statements with literals has been improved.
-
The code generated for CALLs passing a character literal
shorter than the target parameter has been improved.
-
AUTOMATIC variables that have INITIAL values but are otherwise
unused will now be completely discarded.
-
On Intel, the following built-in functions are now available and will
cause the corresponding function to be evaluated inline using Intel
instructions. If an a bad argument is supplied, the ERROR condition
will usually not be raised; the INVALIDOP condition will most likely
result, but the results are unpredictable.
- sinf
- cosf
- asinf
- acosf
- tanf
- atanf
- expf
- logf
- log10f
The following changes have been made to increase compatibility with the old host
compiler:
The following compiler/library problems have been fixed since the last fixpak: