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 / BUGS < prev    next >
Text File  |  1996-09-28  |  4KB  |  71 lines

  1. 950315
  2.  
  3. 1. g77 statically assumes INTEGER constants range from -2**31 to 2**31-1,
  4.    instead of determining their range from the actual range of the INTEGER
  5.    type.  And, further, it generally doesn't implement the handling
  6.    of constants very well in that it makes assumptions about the
  7.    configuration that it no longer makes regarding variables (types).
  8.    Included with this item is the fact that g77 doesn't recognize
  9.    that, on IEEE-754/854-compliant systems, 0./0. should produce a NaN
  10.    and no warning instead of the value 0. and a warning.  This is to be
  11.    fixed in 0.6, when g77 will use the gcc back end's constant-handling
  12.    mechanisms instead of its own.
  13.  
  14. 2. g77 uses way too much memory and CPU time to process large aggregate
  15.    areas having any initialized elements.  E.g. REAL A(1000000) followed
  16.    by DATA A(1)/1/ will take up way too much time and space, including
  17.    the size of the generated assembler file.  This is to be mitigated
  18.    somewhat in 0.6.  (NOTE: 0.5.5 adds a warning message to at least
  19.    notify the user before the compiler appears to hang.  See f/data.c,
  20.    macro FFEDATA_sizeTOO_BIG_INIT_, for the minimum # of storage units
  21.    that trigger the diagnostic.  Adjust as desired.  If 0, no diagnostic
  22.    gets produced.)
  23.  
  24. 3. g77 doesn't emit variable and array members of COMMON areas for use
  25.    with a debugger (the -g command-line option).  The code is present
  26.    to do this, but doesn't work with at least one debug format -- perhaps
  27.    it works with others.  And it turns out there's a similar bug for
  28.    local EQUIVALENCE areas, so that has been disabled as well.
  29.  
  30. 4. When debugging, user must currently set a breakpoint at MAIN__ (or
  31.    MAIN___ or MAIN_ if MAIN__ doesn't exist) and run the program until
  32.    it hits the breakpoint before the main program unit is activated.
  33.  
  34. 5. The current external-interface design, which includes naming of
  35.    external procedures, COMMON blocks, and the library interface,
  36.    has various usability problems, including things like adding
  37.    underscores where not really necessary (and preventing easier
  38.    inter-language operability) and yet not providing complete
  39.    namespace freedom for user C code linked with Fortran apps (due
  40.    to the naming of functions in the library, among other things).
  41.    The GNU project should at least get all this "right" for systems
  42.    it fully controls, such as the Hurd, and provide defaults and
  43.    options for compatibility with existing systems and interoperability
  44.    with popular existing compilers.
  45.  
  46. 6. g77 currently inserts needless padding for things like "COMMON J,I"
  47.    where J is INTEGER*2 and I is INTEGER*4 on machines like x86, because
  48.    the back end insists that I be aligned to a 4-byte boundary, but
  49.    the processor has no such requirement (though it's good for
  50.    performance).
  51.  
  52. 7. g77 currently requires application of a patch file to the gcc compiler
  53.    tree (at least up through gcc version 2.6.3).  The necessary patches
  54.    should be folded in to the mainline gcc distribution.
  55.  
  56. 8. Need option to suppress information messages (notes) in bad.c.  -w does
  57.    this but also suppresses warnings.  The default should be to suppress
  58.    info messages.
  59.  
  60. 9. It should be possible to build the runtime without building cc1 etc.
  61.  
  62. 10. g77 requires GNU C, not just ANSI C, to compile it.  Fixing this wouldn't
  63.     be very hard (just tedious), but the code using GNU-C extensions is
  64.     expected to be rewritten for 0.6, so there are no plans for an
  65.     interim fix.
  66.  
  67. 11. RS/6000 support is not complete as of the gcc 2.6.3 back end.
  68.  
  69. 12. The -I and related -i command-line options do not affect INCLUDE
  70.     statements.
  71.