TBD (Transforming)
------------------
Continue researching gotchas, designing the transformational process,
and implementing it.
Specific issues to resolve:
* Just where should `INCLUDE' processing take place?
Clearly before (or part of) statement identification (`sta.c'),
since determining whether `I(J)=K' is a statement-function
definition or an assignment statement requires knowing the context,
which in turn requires having processed `INCLUDE' files.
* Just where should (if it was implemented) `USE' processing take
place?
This gets into the whole issue of how `g77' should handle the
concept of modules. I think GNAT already takes on this issue, but
don't know more than that. Jim Giles has written extensively on
`comp.lang.fortran' about his opinions on module handling, as have
others. Jim's views should be taken into account.
Actually, Richard M. Stallman (RMS) also has written up some
guidelines for implementing such things, but I'm not sure where I
read them. Perhaps the old <gcc2@cygnus.com> list.
If someone could dig references to these up and get them to me,
that would be much appreciated! Even though modules are not on
the short-term list for implementation, it'd be helpful to know
*now* how to avoid making them harder to implement them *later*.
* Should the `g77' command become just a script that invokes all the
various preprocessing that might be needed, thus making it seem
slower than necessary for legacy code that people are unwilling to
convert, or should we provide a separate script for that, thus
encouraging people to convert their code once and for all?
At least, a separate script to behave as old `g77' did, perhaps
named `g77old', might ease the transition, as might a
corresponding one that converts source codes named `g77oldnew'.
These scripts would take all the pertinent options `g77' used to
take and run the appropriate filters, passing the results to `g77'
or just making new sources out of them (in a subdirectory, leaving
the user to do the dirty deed of moving or copying them over the
old sources).
* Do other Fortran compilers provide a prefix syntax to govern the
treatment of backslashes in `CHARACTER' (or Hollerith) constants?
Knowing what other compilers provide would help.
* Is it okay to drop support for the `-fintrin-case-initcap',
`-fmatch-case-initcap', `-fsymbol-case-initcap', and
`-fcase-initcap' options?
I've asked <info-gnu-fortran@gnu.org> for input on this. Not
having to support these makes it easier to write the new front end,
and might also avoid complicated its design.