Commit 4e6a1440 by Craig Burley Committed by Craig Burley

remove -fugly, other doc fixes

From-SVN: r26519
parent 8a19a44a
Sat Apr 17 16:55:59 1999 Craig Burley <craig@jcb-sc.com>
* bugs.texi, ffe.texi, g77.texi, g77install.texi, news.texi:
Clean up @code{} vs. @samp{}.
Clean up dashes (`--') vs. @minus{} vs. `---'.
* ffe.texi: Add copyright header.
* g77.texi, lang-options.h, news.texi, top.c (ffe_decode_option):
Remove support for -fugly option.
Clarify that -fugly-logint is needed instead of -fugly
to work around using .EQ./.NE. on LOGICAL operands.
Explain more about why -fugly-logint is bad juju.
* g77.texi (Missing Features): Describe READONLY as a missing
feature. Describe AUTOMATIC better.
* news.texi: Mention libf2c upgrade.
Sat Apr 17 14:05:53 1999 Craig Burley <craig@jcb-sc.com>
Make a place for front-end internals documentation:
......
......@@ -9,7 +9,7 @@
@c in the standalone derivations of this file (e.g. BUGS).
@set copyrights-bugs 1995-1999
@set last-update-bugs 1999-04-03
@set last-update-bugs 1999-04-17
@include root.texi
......@@ -111,8 +111,8 @@ e.g. not passed to other procedures as they should be.
@code{g77} fails to warn about
use of a ``live'' iterative-DO variable
as an implied-DO variable
in a @samp{WRITE} or @samp{PRINT} statement
(although it does warn about this in a @samp{READ} statement).
in a @code{WRITE} or @code{PRINT} statement
(although it does warn about this in a @code{READ} statement).
@item
Something about @code{g77}'s straightforward handling of
......@@ -210,8 +210,8 @@ for information on the @samp{-fdebug-kludge} option.
@item
When debugging, after starting up the debugger but before being able
to see the source code for the main program unit, the user must currently
set a breakpoint at @samp{MAIN__} (or @samp{MAIN___} or @samp{MAIN_} if
@samp{MAIN__} doesn't exist)
set a breakpoint at @code{MAIN__} (or @code{MAIN___} or @code{MAIN_} if
@code{MAIN__} doesn't exist)
and run the program until it hits the breakpoint.
At that point, the
main program unit is activated and about to execute its first
......
@c Copyright (C) 1999 Free Software Foundation, Inc.
@c This is part of the G77 manual.
@c For copying conditions, see the file g77.texi.
@node Front End
@chapter Front End
@cindex GNU Fortran Front End (FFE)
......@@ -375,7 +379,7 @@ Whether @samp{Y} and @samp{Z} are local variables,
additional function entry points,
or dummy arguments to additional entry points
is not known
until the @samp{ENTRY} statement is parsed.
until the @code{ENTRY} statement is parsed.
@item
Similarly, whether @samp{TMP} is a local variable is not known
......@@ -383,7 +387,7 @@ until the @samp{READ *, TMP} statement is parsed.
@item
The initial values for @samp{EE} and @samp{PI}
are not known until after the @samp{DATA} statement is parsed.
are not known until after the @code{DATA} statement is parsed.
@item
Whether @samp{FRED} is a function returning type @code{REAL}
......@@ -404,7 +408,7 @@ especially when @code{ASSIGN}'ed.)
@item
That @samp{J} is a local variable is not known
until the first @samp{ASSIGN} statement is parsed.
until the first @code{ASSIGN} statement is parsed.
(This happens @emph{after} executable code has been seen.)
@end itemize
......@@ -678,17 +682,17 @@ END
The arguments to the two calls to @samp{LFUNC}
require dynamic allocation (at run time),
but are not required during execution of the @samp{CALL} statements.
but are not required during execution of the @code{CALL} statements.
So, the scopes of those temporaries must be within blocks inside
the block corresponding to the Fortran @code{IF} block.
This cannot be represented ``naturally''
in vanilla C, nor in GBEL.
The @samp{if}, @samp{elseif}, @samp{else},
and @samp{endif} constructs
The @code{if}, @code{elseif}, @code{else},
and @code{endif} constructs
provided by both languages must,
for a given @samp{if} block,
for a given @code{if} block,
share the same C/GBE block.
Therefore, any temporaries needed during evaluation of @samp{expr}
......@@ -793,7 +797,7 @@ as if @samp{SELECT CASE(temp0)} had been written.
Each corresponding @code{CASE} is replaced with @samp{CASE(@var{i})},
where @var{i} is the ordinal for that case,
determined while, or before,
generating the cascade of @samp{if}-related constructs
generating the cascade of @code{if}-related constructs
to cope with @code{CHARACTER} selection.
@item
......
......@@ -423,9 +423,9 @@ These problems can occur on most or all systems.
* GNU C Required:: Why even ANSI C is not enough.
* Patching GNU CC:: Why @code{gcc} needn't be patched.
* Building GNU CC Necessary:: Why you can't build @emph{just} Fortran.
* Missing strtoul or bsearch:: When linking @samp{f771} fails.
* Missing strtoul or bsearch:: When linking @code{f771} fails.
* Cleanup Kills Stage Directories:: For @code{g77} developers.
* LANGUAGES Macro Ignored:: Sometimes @samp{LANGUAGES} is ignored.
* LANGUAGES Macro Ignored:: Sometimes @code{LANGUAGES} is ignored.
@end menu
@node GNU C Required
......@@ -490,11 +490,11 @@ This information does not apply to the
@ifclear OMIT-FSF-G77
On SunOS4 systems, linking the @code{f771} program used to
produce an error message concerning an undefined symbol named
@samp{_strtoul}, because the @samp{strtoul} library function
@samp{_strtoul}, because the @code{strtoul} library function
is not provided on that system.
Other systems have, in the past, been reported to not provide
their own @samp{strtoul} or @samp{bsearch} function.
their own @code{strtoul} or @code{bsearch} function.
Some versions @code{g77} tried to default to providing bare-bones
versions of @code{bsearch} and @code{strtoul} automatically,
......@@ -504,8 +504,8 @@ To limit the failures to those few systems actually missing the
required routines, the bare-bones versions are still provided,
in @file{@value{path-g77}/proj.c},
if the appropriate macros are defined.
These are @code{NEED_BSEARCH} for @samp{bsearch} and
@code{NEED_STRTOUL} for @samp{NEED_STRTOUL}.
These are @code{NEED_BSEARCH} for @code{bsearch} and
@code{NEED_STRTOUL} for @code{NEED_STRTOUL}.
Therefore, if you are sure your system is missing
@code{bsearch} or @code{strtoul} in its library,
......@@ -530,8 +530,8 @@ make bootstrap BOOT_CFLAGS='-O2 -g -DNEED_STRTOUL'
@end smallexample
If you then encounter problems compiling @file{@value{path-g77}/proj.c},
it might be due to a discrepancy between how @samp{bsearch}
or @samp{strtoul} are defined by that file and how they're
it might be due to a discrepancy between how @code{bsearch}
or @code{strtoul} are defined by that file and how they're
declared by your system's header files.
In that case, you'll have to use some basic knowledge of C
......@@ -559,14 +559,14 @@ that, on demand.
@node LANGUAGES Macro Ignored
@subsubsection LANGUAGES Macro Ignored
@cindex @samp{LANGUAGES} macro ignored
@cindex ignoring @samp{LANGUAGES} macro
@cindex @code{LANGUAGES} macro ignored
@cindex ignoring @code{LANGUAGES} macro
Prior to version 0.5.23 of @code{g77}
and version 1.1 of @code{egcs},
@code{g77} would sometimes ignore
the absence of @samp{f77} and @samp{F77} in the
@samp{LANGUAGES} macro definition used for the
the absence of @code{f77} and @code{F77} in the
@code{LANGUAGES} macro definition used for the
@code{make} command being processed.
As of @code{g77} version 0.5.23
......@@ -580,7 +580,7 @@ such as @code{g++},
are known to go ahead and perform various
language-specific activities when their
respective language strings do not appear
in the @samp{LANGUAGES} macro in effect
in the @code{LANGUAGES} macro in effect
during that invocation of @code{make}.
It is expected that these remaining problems will
......@@ -669,7 +669,7 @@ As such, none of the following information is expected to
be pertinent in future versions of @code{g77}.
@menu
* Larger File Unit Numbers:: Raising @samp{MXUNIT}.
* Larger File Unit Numbers:: Raising @code{MXUNIT}.
* Always Flush Output:: Synchronizing write errors.
* Maximum Stackable Size:: Large arrays forced off the stack.
* Floating-point Bit Patterns:: Possible programs building @code{g77}
......@@ -697,7 +697,7 @@ a run-time crash in @code{libf2c}, because the unit number,
If you know that Fortran programs at your installation require
the use of unit numbers higher than 99, you can change the
value of the @samp{MXUNIT} macro, which represents the maximum unit
value of the @code{MXUNIT} macro, which represents the maximum unit
number, to an appropriately higher value.
To do this, edit the file @file{@value{path-libf2c}/libI77/fio.h} in your
......@@ -707,12 +707,12 @@ To do this, edit the file @file{@value{path-libf2c}/libI77/fio.h} in your
#define MXUNIT 100
@end example
Change the line so that the value of @samp{MXUNIT} is defined to be
Change the line so that the value of @code{MXUNIT} is defined to be
at least one @emph{greater} than the maximum unit number used by
the Fortran programs on your system.
(For example, a program that does @samp{WRITE (UNIT=255)} would require
@samp{MXUNIT} set to at least 256 to avoid crashing.)
@code{MXUNIT} set to at least 256 to avoid crashing.)
Then build or rebuild @code{g77} as appropriate.
......@@ -753,7 +753,7 @@ asynchronous, or, more precisely, buffered error reporting
(detection of errors might be delayed).
@code{libg2c} supports flagging write errors immediately when
it is built with the @samp{ALWAYS_FLUSH} macro defined.
it is built with the @code{ALWAYS_FLUSH} macro defined.
This results in a @code{libg2c} that runs slower, sometimes
quite a bit slower, under certain circumstances---for example,
accessing files via the networked file system NFS---but the
......@@ -763,7 +763,7 @@ If you know that Fortran programs requiring this level of precision
of error reporting are to be compiled using the
version of @code{g77} you are building, you might wish to
modify the @code{g77} source tree so that the version of
@code{libg2c} is built with the @samp{ALWAYS_FLUSH} macro
@code{libg2c} is built with the @code{ALWAYS_FLUSH} macro
defined, enabling this behavior.
To do this, find this line in @file{@value{path-libf2c}/f2c.h} in
......@@ -788,7 +788,7 @@ Then build or rebuild @code{g77} as appropriate.
@cindex segmentation violation
@code{g77}, on most machines, puts many variables and arrays on the stack
where possible, and can be configured (by changing
@samp{FFECOM_sizeMAXSTACKITEM} in @file{@value{path-g77}/com.c}) to force
@code{FFECOM_sizeMAXSTACKITEM} in @file{@value{path-g77}/com.c}) to force
smaller-sized entities into static storage (saving
on stack space) or permit larger-sized entities to be put on the
stack (which can improve run-time performance, as it presents
......@@ -796,7 +796,7 @@ more opportunities for the GBE to optimize the generated code).
@emph{Note:} Putting more variables and arrays on the stack
might cause problems due to system-dependent limits on stack size.
Also, the value of @samp{FFECOM_sizeMAXSTACKITEM} has no
Also, the value of @code{FFECOM_sizeMAXSTACKITEM} has no
effect on automatic variables and arrays.
@xref{But-bugs}, for more information.
......@@ -837,7 +837,7 @@ This size currently is quite small, since @code{g77}
currently has a known bug requiring too much memory
and time to handle such cases.
In @file{@value{path-g77}/data.c}, the macro
@samp{FFEDATA_sizeTOO_BIG_INIT_} is defined
@code{FFEDATA_sizeTOO_BIG_INIT_} is defined
to the minimum size for the warning to appear.
The size is specified in storage units,
which can be bytes, words, or whatever, on a case-by-case basis.
......@@ -1537,16 +1537,16 @@ issuing an explanatory diagnostic.
@cindex building @code{gcc}
@cindex building @code{g77}
@cindex @samp{LANGUAGES} macro
@cindex @code{LANGUAGES} macro
Building @code{g77} requires building enough of @code{gcc} that
these instructions assume you're going to build all of
@code{gcc}, including @code{g++}, @code{protoize}, and so on.
You can save a little time and disk space by changes the
@samp{LANGUAGES} macro definition in @code{gcc/Makefile.in}
@code{LANGUAGES} macro definition in @code{gcc/Makefile.in}
or @code{gcc/Makefile}, but if you do that, you're on your own.
One change is almost @emph{certainly} going to cause failures:
removing @samp{c} or @samp{f77} from the definition of the
@samp{LANGUAGES} macro.
removing @code{c} or @code{f77} from the definition of the
@code{LANGUAGES} macro.
After configuring @code{gcc}, which configures @code{g77} and
@code{libg2c} automatically, you're ready to start the actual
......@@ -1785,7 +1785,7 @@ make -k CC=gcc install
As described in @ref{Installation,,Installing GNU CC,
gcc,Using and Porting GNU CC}, the values for
the @samp{CC} and @samp{LANGUAGES} macros should
the @code{CC} and @code{LANGUAGES} macros should
be the same as those you supplied for the build
itself.
......@@ -1805,7 +1805,7 @@ make -k @dots{} install install-libf77
We don't know why some non-GNU versions of @code{make} sometimes
require this alternate command, but they do.
(Remember to supply the appropriate definition for @samp{CC}
(Remember to supply the appropriate definition for @code{CC}
where you see @samp{@dots{}} in the above command.)
Note that using the @samp{-k} option tells @code{make} to
......@@ -1939,10 +1939,10 @@ information for the derived files to work around the
problem of not having the appropriate tools installed.
On UNIX systems, the simplest way to update the date-time-modified
information of a file is to use the use the @samp{touch}
information of a file is to use the use the @code{touch}
command.
How to use @samp{touch} to update the derived files
How to use @code{touch} to update the derived files
updated by each of the tools is described below.
@emph{Note:} New versions of @code{g77} might change the set of
files it generates by invoking each of these tools.
......
......@@ -59,8 +59,7 @@ FTNOPT( "-fpedantic", "Warn about use of (only a few for now) Fortran extensions
FTNOPT( "-fno-pedantic", "" )
FTNOPT( "-fvxt", "Program is written in VXT (Digital-like) FORTRAN" )
FTNOPT( "-fno-vxt", "" )
FTNOPT( "-fugly", "Obsolete; allow certain ugly features" )
FTNOPT( "-fno-ugly", "" )
FTNOPT( "-fno-ugly", "Disallow all ugly features" )
FTNOPT( "-fugly-args", "" )
FTNOPT( "-fno-ugly-args", "Hollerith and typeless constants not passed as arguments" )
FTNOPT( "-fugly-assign", "Allow ordinary copying of ASSIGN'ed vars" )
......
......@@ -235,18 +235,6 @@ ffe_decode_option (argc, argv)
warning ("%s no longer supported -- try -fvxt", opt);
else if (strcmp (&opt[2], "f90-not-vxt") == 0)
warning ("%s no longer supported -- try -fno-vxt -ff90", opt);
else if (strcmp (&opt[2], "ugly") == 0)
{
warning ("%s is overloaded with meanings and likely to be removed;", opt);
warning ("use only the specific -fugly-* options you need");
ffe_set_is_ugly_args (TRUE);
ffe_set_is_ugly_assign (TRUE);
ffe_set_is_ugly_assumed (TRUE);
ffe_set_is_ugly_comma (TRUE);
ffe_set_is_ugly_complex (TRUE);
ffe_set_is_ugly_init (TRUE);
ffe_set_is_ugly_logint (TRUE);
}
else if (strcmp (&opt[2], "no-ugly") == 0)
{
ffe_set_is_ugly_args (FALSE);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment