home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Geek Gadgets 1
/
ADE-1.bin
/
ade-dist
/
g77-0.5.15-src.tgz
/
tar.out
/
fsf
/
g77
/
f
/
NEWS
< prev
next >
Wrap
Text File
|
1996-09-28
|
11KB
|
186 lines
Changes in 0.5.15:
Fix bad code generation involving X**I and temporary, internal variables
generated by g77 and the back end (such as for DO loops)
Fix crash given CHARACTER A;DATA A/.TRUE./
Replace crash with diagnostic given CHARACTER A;DATA A/1.0/
Fix crash or other erratic behavior when null character constant
('') is encountered
Fix crash or other erratic behavior involving diagnosed code
Fix code generation for external functions returning type REAL when
the -ff2c option is in force (which it is by default) so that
f2c compatibility is indeed provided
Disallow COMMON I(10) if I has previously been specified with an
array declarator
New -ffixed-line-length-N option, where N is the maximum length
of a typical fixed-form line, defaulting to 72 columns, such
that characters beyond column N are ignored, or N is "none",
meaning no characters are ignored -- does not affect lines
with "&" in column 1, which are always processed as if
-ffixed-line-length-none were in effect
No longer generate better code for some kinds of array references,
as gcc back end is to be fixed to do this even better, and it
turned out to slow down some code in some cases after all
In COMMON and EQUIVALENCE areas with any members given initial
values (e.g. via DATA), uninitialized members now always
initialized to binary zeros (though this is not required by
the F77 standard, and might not be done in future versions
of g77) -- previously, in some COMMON/EQUIVALENCE areas
(essentially those with members of more than one type), the
uninitialized members were initialized to spaces, to
cater to CHARACTER types, but it seems no existing code expects
that, while much existing code expects binary zeros
Changes in 0.5.14:
Don't emit bad code when low bound of adjustable array is nonconstant
and thus might vary as an expression at run time
Emit correct code for calculation of # trips in DO loops for cases
where the loop should not execute at all (bug affected cases
where the difference between the begin and end values was less
than the step count, though probably not for floating-point cases)
Fix crash when extra parentheses surround item in DATA implied-DO list
Fix crash over minor internal inconsistencies in handling diagnostics,
just substitute dummy strings where necessary
Fix crash on some systems when compiling call to MVBITS() intrinsic
Fix crash on array assignment "TYPEddd(...)=...", where ddd is a
string of digits (at least one)
Fix crash on DCMPLX() with a single INTEGER argument
Fix various crashes involving code with diagnosed errors
Support -I option for INCLUDE statement, plus gcc's `header.gcc'
facility for handling systems like MS-DOS
Allow INCLUDE statement to be continued across multiple lines,
even allow it to coexist with other statements on the same line
Incorporate Bellcore fixes to libf2c through 950315 -- this fixes a
bug involving infinite loops reading EOF with empty list-directed
I/O list
Remove all the g77-specific auto-configuration scripts, code, &c,
except for temporary substitutes for bsearch() and strtoul(), as
too many configure/build problems were reported in these areas --
people will have to fix their systems' problems themselves, or at
least somewhere other than g77, which expects a working ANSI C
environment (and, for now, a GNU C compiler to compile g77 itself)
Complain if initialized common redeclared as larger in subsequent program
unit
Warn if blank common initialized, since its size can vary and hence
related warnings that might be helpful won't be seen
New -fbackslash option, on by default, that causes `\' within CHARACTER
and Hollerith constants to be interpreted a la GNU C -- NOTE that
this behavior is somewhat different from f2c's, which supports only
a limited subset of backslash (escape) sequences
Make -fugly-args the default
New -fugly-init option, on by default, that allows typeless/hollerith
to be specified as initial values for variables or named constants
(PARAMETER), and also allows character<->numeric conversion in
those contexts -- turn off via -fno-ugly-init
New -finit-local-zero option to initialize local variables to binary zeros
(does not affect whether they are SAVEd, i.e. made automatic or static)
New -Wimplicit option to warn about implicitly typed variables, arrays,
and functions -- like IMPLICIT NONE but doesn't produce errors
-Wall now implies -Wuninitialized as with gcc (i.e. unless -O not
specified, since -Wuninitialized requires -O), and implies
-Wunused as well
-Wunused no longer gives spurious messages for unused EXTERNAL names
(since they are assumed to refer to BLOCK DATA program units,
to make use of libraries more reliable)
Support %LOC() and LOC() of character arguments
Support null (zero-length) character constants and expressions
Support f2c's IMAG() generic intrinsic
Support ICHAR(), IACHAR(), and LEN() of character expressions that
are valid in assignments but not normally as actual arguments
Support f2c-style '&' in column 1 to mean continuation line
Allow NAMELIST, EXTERNAL, INTRINSIC, and VOLATILE in BLOCK DATA, even
though these are not allowed by the standard
Allow RETURN in main program unit
Changes to Hollerith-constant support to obey F77 Appendix C: now
padded on the right with zeros, not spaces; hollerith "format
specifications" in the form of arrays of non-character allowed;
warnings issued when non-blank truncation occurs when converting
to another type; when specified as actual argument, now passed
by reference to INTEGER (padded on right with spaces if constant
too small, otherwise fully intact if constant wider the INTEGER
type) instead of by value; WARNING: f2c differs on the
interpretation of CALL FOO(1HX), which it treats exactly the
same as CALL FOO('X'), but which the standard and g77 treat
as CALL FOO(%REF('X ')) (padded with as many blanks as necessary
to widen to INTEGER), essentially
Changes and fixes to typeless-constant support: now treated as
a typeless double-length INTEGER value; warnings issued when
overflow occurs; padded on the left with zeros when converting
to a larger type; should be properly aligned and ordered on
the target machine for whatever type it is turned into; when
specified as actual argument, now passed as reference to
a default INTEGER constant
%DESCR() of a non-CHARACTER expression now passes a pointer to
the expression plus a length for the expression just as if
it were a CHARACTER expression (so CALL FOO(%DESCR(D)), where
D is REAL*8, is the same as CALL FOO(D,%VAL(8)))
Name of multi-entrypoint master function changed to incorporate
the name of the primary entry point instead of a decimal
value, so the name of the master function for SUBROUTINE X
with alternate entry points is now "__g77_masterfun_x"
Remove redundant message about zero-step-count DO loops
Clean up diagnostic messages, shortening many of them
Fix typo in g77.1 documentation
Clarify implications of constant-handling bugs in BUGS
Generate better code for ** operator with a right-hand operand of
type INTEGER
Generate better code for SQRT() and DSQRT(), also when -ffast-math
specified, enable better code generation for SIN() and COS()
Generate better code for some kinds of array references
Speed up lexing somewhat (this makes the compilation phase noticably
faster)
Changes in 0.5.13:
Fix crash compiling calls to functions passed as dummy arguments
Fix crash compiling CHARACTER comparison when either operand involves
concatenation
Fix crash when initialized COMMON area's size is smaller than
size of area in previously compiled program unit
Fix crash involving assigning to 3+-dimensional array having a
name like TYPE or PRINT
Fix crash when DATA statement after first executable statement
makes first use of a variable name as an iterative-DO variable
Fix various crashes involving code with diagnosed errors
Fix dumb bug introduced in 0.5.9 that resulted in columns 73 and
beyond being treated as real code unless a tab was present,
instead of the other way 'round (fixed-form source)
Unless -pedantic, don't complain about "SAVE" by itself conflicting
with any other occurrence of SAVE as statement or attribute,
since there are solid reasons to write such code even though
it is strictly non-standard-conforming (and only warn if
-pedantic)
Changes in 0.5.12:
Don't crash when DO loop iteration variable isn't INTEGER
Don't crash when DO loop end expression has an error
Fix a couple of Makefile shell "if" commands to have "else true;"
Changes in 0.5.11:
Compile-time conversion of negative INTEGER constant to REAL,
DOUBLE PRECISION, COMPLEX, or DOUBLE COMPLEX is now fixed
DFLOAT() is now recognized as an f2c intrinsic
New compiler option -fugly-args allows passing of hollerith and
typeless constants as actual arguments (a very specific
version of -fugly); diagnostic when option not specified
has more helpful information
%VAL() now works when given a hollerith or typeless argument,
as do other things like %REF()
Help FreeBSD users build g77 driver out of the box
Changes in 0.5.10:
Fix invocation of DOUBLE COMPLEX (aka COMPLEX*16) external functions
Minor fixes and changes to Makefiles
Changes in 0.5.9:
Treatment of source lines with tabs is slightly different than before
Carriage returns (^M) in source lines now ignored
Fix character-compare and other operations
Change to using ANSI-C-approved techniques in a few places so non-gcc
compilers can compile g77
Fix crash when trying to output warning about slow compile
Fix crash combining COMPLEX and ENTRY
Fix use of COMPLEX operators/functions within statement-function
definitions
Support ASSIGN on any machine gcc supports
Don't put build files in source directory when separate