📄 news.texi
字号:
@c Copyright (C) 1995-1999 Free Software Foundation, Inc.@c This is part of the G77 manual.@c For copying conditions, see the file g77.texi.@c The text of this file appears in the file NEWS@c in the G77 distribution, as well as in the G77 manual.@c Keep this the same as the dates above, since it's used@c in the standalone derivations of this file (e.g. NEWS).@set copyrights-news 1995-1999@set last-update-news 1999-07-08@include root.texi@ifset DOC-NEWS@c The immediately following lines apply to the NEWS file@c which is derived from this file.@emph{Note:} This file is automatically generated from the files@file{news0.texi} and @file{news.texi}.@file{NEWS} is @emph{not} a source file,although it is normally included within source distributions.This file lists news about the @value{which-g77} version(and some other versions) of the GNU Fortran compiler.Copyright (C) @value{copyrights-news} Free Software Foundation, Inc.You may copy, distribute, and modify it freely as long as you preservethis copyright notice and permission notice.@node Top,,, (dir)@chapter News About GNU Fortran@end ifset@ifset DOC-G77@ifset USERVISONLY@node Changes@chapter User-visible Changes@cindex versions, recent@cindex recent versions@cindex changes, user-visible@cindex user-visible changesThis chapter describes changes to @code{g77} that are visibleto the programmers who actually write and maintain Fortrancode they compile with @code{g77}.Information on changes to installation procedures,changes to the documentation, and bug fixes isnot provided here, unless it is likely to affect howusers use @code{g77}.@xref{News,,News About GNU Fortran}, for information onsuch changes to @code{g77}.@end ifset@ifclear USERVISONLY@node News@chapter News About GNU Fortran@cindex versions, recent@cindex recent versions@end ifclear@end ifset@ifclear USERVISONLYChanges made to recent versions of GNU Fortran are listedbelow, with the most recent version first.The changes are generally listed in order:@enumerate@itemCode-generation and run-time-library bug-fixes@itemCompiler and run-time-library crashes involving valid codethat have been fixed@itemNew features@itemFixes and enhancements to existing features@itemNew diagnostics@itemInternal improvements@itemMiscellany@end enumerateThis order is not strict---for example, some itemsinvolve a combination of these elements.@end ifclearNote that two variants of @code{g77} are tracked below.The @code{egcs} variant is described vis-a-visprevious versions of @code{egcs} and/oran official FSF version,as appropriate.Therefore, @code{egcs} versions sometimes have multiple listingsto help clarify how they differ from other versions,though this can make getting a complete pictureof what a particular @code{egcs} version containssomewhat more difficult.@ifset DOC-G77For information on bugs in the @value{which-g77} version of @code{g77},see @ref{Known Bugs,,Known Bugs In GNU Fortran}.@end ifset@ifset DOC-BUGSFor information on bugs in the @value{which-g77} version of @code{g77},see @file{@value{path-g77}/BUGS}.@end ifset@ifset DEVELOPMENT@emph{Warning:} The information below is still under development,and might not accurately reflect the @code{g77} code baseof which it is a part.Efforts are made to keep it somewhat up-to-date,but they are particularly concentratedon any version of this informationthat is distributed as part of a @emph{released} @code{g77}.In particular, while this information is intended to apply tothe @value{which-g77} version of @code{g77},only an official @emph{release} of that versionis expected to contain documentation that ismost consistent with the @code{g77} product in that version.Nevertheless, information on @emph{previous} releases of @code{g77}, below,is likely to be more up-to-date and accuratethan the equivalent information that accompaniedthose releases,assuming the last-updated date of the information belowis later than the dates of those releases.That's due to attempts to keep this development versionof news about previous @code{g77} versions up-to-date.@end ifset@ifclear USERVISONLYAn online, ``live'' version of this document(derived directly from the mainline, development versionof @code{g77} within @code{egcs})is available at@uref{http://www.gnu.org/software/gcc/onlinedocs/g77_news.html}.@end ifclearThe following information was last updated on @value{last-update-news}:@heading In 0.5.25, @code{GCC} 2.95 (@code{EGCS} 1.2) versus @code{EGCS} 1.1.2:@itemize @bullet@ifclear USERVISONLY@item@code{g77} no longer generates bad code for assignments,or other conversions,of @code{REAL} or @code{COMPLEX} constant expressionsto type @code{INTEGER(KIND=2)}(often referred to as @code{INTEGER*8}).For example, @samp{INTEGER*8 J; J = 4E10} now works as documented.@end ifclear@ifclear USERVISONLY@item@code{g77} no longer truncates @code{INTEGER(KIND=2)}(usually @code{INTEGER*8})subscript expressions when evaluating array referenceson systems with pointers widers than @code{INTEGER(KIND=1)}(such as Alphas).@end ifclear@ifclear USERVISONLY@item@code{g77} no longer generates bad codefor an assignment to a @code{COMPLEX} variable or arraythat partially overlaps one or more of the sourcesof the same assignment(a very rare construction).It now assigns through a temporary,in cases where such partial overlap is deemed possible.@end ifclear@ifclear USERVISONLY@item@code{libg2c} (@code{libf2c}) no longer loses trackof the file being worked onduring a @code{BACKSPACE} operation.@end ifclear@ifclear USERVISONLY@item@code{libg2c} (@code{libf2c}) fixes a bug wherebyinput to a @code{NAMELIST} read involving a repeat count,such as @samp{K(5)=10*3},was not properly handled by @code{libf2c}.The first item was written to @samp{K(5)},but the remaining nine were written elsewhere (still within the array),not necessarily starting at @samp{K(6)}.@end ifclear@ifclear USERVISONLY@item@c Tim Prince reported this, regarding the TEST_FPU benchmark.Automatic arrays now seem to be working on HP-UX systems.@end ifclear@ifclear USERVISONLY@itemThe @code{Date} intrinsic now returns the correct resulton big-endian systems.@end ifclear@ifclear USERVISONLY@itemFix @code{g77} so it no longer crashes when compilingI/O statements using keywords that define @code{INTEGER} values,such as @samp{IOSTAT=@var{j}},where @var{j} is other than default @code{INTEGER}(such as @code{INTEGER*2}).Instead, it issues a diagnostic.@end ifclear@ifclear USERVISONLY@itemFix @code{g77} so it properly handles @samp{DATA A/@var{rpt}*@var{val}/},where @var{rpt} is not default @code{INTEGER}, such as @code{INTEGER*2},instead of producing a spurious diagnostic.Also fix @samp{DATA (A(I),I=1,N)},where @samp{N} is not default @code{INTEGER}to work instead of crashing @code{g77}.@end ifclear@ifclear USERVISONLY@itemThe @samp{-ax} option is now obeyed when compiling Fortran programs.(It is passed to the @file{f771} driver.)@end ifclear@itemThe new @samp{-fbounds-check} optioncauses @code{g77} to compile run-time bounds checksof array subscripts, as well as of substring start and end points.@item@code{libg2c} now supports building as multilibbed library,which provides better support for systemsthat require options such as @samp{-mieee}to work properly.@itemSource file names with the suffixes @samp{.FOR} and @samp{.FPP}now are recognized by @code{g77}as if they ended in @samp{.for} and @samp{.fpp}, respectively.@itemThe order of arguments to the @emph{subroutine} forms of the@code{CTime}, @code{DTime}, @code{ETime}, and @code{TtyNam}intrinsics has been swapped.The argument serving as the returned valuefor the corresponding function formsnow is the @emph{second} argument,making these consistent with the other subroutine formsof @code{libU77} intrinsics.@item@code{g77} now warns about a reference to an intrinsicthat has an interface that is not Year 2000 (Y2K) compliant.Also, @code{libg2c} has been changed to increase the likelihoodof catching references to the implementations of these intrinsicsusing the @code{EXTERNAL} mechanism(which would avoid the new warnings).@ifset DOC-G77@xref{Year 2000 (Y2K) Problems}, for more information.@end ifset@ifclear USERVISONLY@item@code{g77} now warns about a reference to a functionwhen the corresponding @emph{subsequent} function program unitdisagrees with the reference concerning the type of the function.@end ifclear@item@samp{-fno-emulate-complex} is now the default option.This should result in improved performanceof code that uses the @code{COMPLEX} data type.@cindex alignment@cindex double-precision performance@cindex -malign-double@itemThe @samp{-malign-double} optionnow reliably aligns @emph{all} double-precision variables and arrayson Intel x86 targets.@ifclear USERVISONLY@itemEven without the @samp{-malign-double} option,@code{g77} reliably aligns local double-precision variablesthat are not in @code{EQUIVALENCE} areasand not @code{SAVE}'d.@end ifclear@ifclear USERVISONLY@item@code{g77} now open-codes (``inlines'') division of @code{COMPLEX} operandsinstead of generating a run-time call tothe @code{libf2c} routines @code{c_div} or @code{z_div},unless the @samp{-Os} option is specified.@end ifclear@item@code{g77} no longer generates code to maintain @code{errno},a C-language concept,when performing operations such as the @code{SqRt} intrinsic.@ifclear USERVISONLY@item@code{g77} developers can temporarily usethe @samp{-fflatten-arrays} optionto compare how the compiler handles code generationusing C-like constructs as compared to theFortran-like method constructs normally used.@end ifclear@ifclear USERVISONLY@itemA substantial portion of the @code{g77} front end's code-generation componentwas rewritten.It now generates code using facilities more robustly supportedby the @code{gcc} back end.One effect of this rewrite is that some codes no longer producea spurious ``label @var{lab} used before containing binding contour''message.@end ifclear@itemSupport for the @samp{-fugly} option has been removed.@ifclear USERVISONLY@itemImprove documentation and indexing,including information on Year 2000 (Y2K) compliance,and providing more information on internals of the front end.@end ifclear@ifclear USERVISONLY@itemUpgrade to @code{libf2c} as of 1999-05-10.@end ifclear@end itemize@heading In 0.5.24 versus 0.5.23:There is no @code{g77} version 0.5.24 at this time,or planned.0.5.24 is the version number designated for bug fixes and,perhaps, some new features added,to 0.5.23.Version 0.5.23 requires @code{gcc} 2.8.1,as 0.5.24 was planned to require.Due to @code{EGCS} becoming @code{GCC}(which is now an acronym for ``GNU Compiler Collection''),and @code{EGCS} 1.2 becoming officially designated @code{GCC} 2.95,there seems to be no need for an actual 0.5.24 release.To reduce the confusion already resulting from use of 0.5.24to designate @code{g77} versions within @code{EGCS} versions 1.0 and 1.1,as well as in versions of @code{g77} documentation and noticesduring that period,``mainline'' @code{g77} version numbering resumesat 0.5.25 with @code{GCC} 2.95 (@code{EGCS} 1.2),skipping over 0.5.24 as a placeholder version number.To repeat, there is no @code{g77} 0.5.24, but there is now a 0.5.25.Please remain calm and return to your keypunch units.@c 1999-03-15: EGCS 1.1.2 released.@heading In @code{EGCS} 1.1.2 versus @code{EGCS} 1.1.1:@ifclear USERVISONLY@itemize @bullet@itemFix the @code{IDate} intrinsic (VXT) (in @code{libg2c})so the returned year is in the documented, non-Y2K-compliant rangeof 0-99,instead of being returned as 100 in the year 2000.@ifset DOC-G77@xref{IDate Intrinsic (VXT)},for more information.@end ifset@itemFix the @code{Date_and_Time} intrinsic (in @code{libg2c})to return the milliseconds value properlyin @var{Values}(8).@itemFix the @code{LStat} intrinsic (in @code{libg2c})to return device-ID information properlyin @var{SArray}(7).@itemImprove documentation.@end itemize@end ifclear@c 1998-12-04: EGCS 1.1.1 released.@heading In @code{EGCS} 1.1.1 versus @code{EGCS} 1.1:@ifclear USERVISONLY@itemize @bullet@itemFix @code{libg2c} so it performs an implicit @code{ENDFILE} operation(as appropriate)whenever a @code{REWIND} is done.(This bug was introduced in 0.5.23 and @code{egcs} 1.1 in@code{g77}'s version of @code{libf2c}.)@itemFix @code{libg2c} so it no longer crashes with a spurious diagnosticupon doing any I/O following a direct formatted write.(This bug was introduced in 0.5.23 and @code{egcs} 1.1 in@code{g77}'s version of @code{libf2c}.)@itemFix @code{g77} so it no longer crashes compiling referencesto the @code{Rand} intrinsic on some systems.@itemFix @code{g77} portion of installation process so it worksbetter on some systems(those with shells requiring @samp{else true} clauseson @code{if} constructsfor the completion code to be set properly).@end itemize@end ifclear@c 1998-09-03: EGCS 1.1 released.@heading In @code{EGCS} 1.1 versus @code{EGCS} 1.0.3:@itemize @bullet@ifclear USERVISONLY@itemFix bugs in the @code{libU77} intrinsic @code{HostNm}that wrote one byte beyond the end of its @code{CHARACTER}argument,and in the @code{libU77} intrinsics@code{GMTime} and @code{LTime}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -