home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / gnu / gplibs07 / changelo < prev    next >
Encoding:
Text File  |  1993-07-24  |  5.7 KB  |  144 lines

  1. *.cc *.h:: ++jrb bammi@cadence.com
  2.     Massive number of hacks for atariST.
  3.  
  4. ---------------------------- Patchlevel 1 -----------------------------------
  5.  
  6. *.cc *.h:: david
  7.  
  8. Hi. Enclosed are working libs and include files. The main mods have been
  9. to the file I/O stuff (except for a bug you introduced in str.cc, tsk tsk...)
  10. The following tests have been run:
  11.  
  12. tBitSet, tBitString, tComplex, tFile, tFix, tFix16, tFix24, tGetOpt,
  13. tInteger, tObstack, tRandom, tRational, tString
  14.  
  15. and all work fine and run easily except for a couple of (minor) caveats
  16.  
  17.     tRandom - one of the values (for SmplHist) is wrong, it's -3 times
  18.           the value it ought to be
  19.     tRational - needs a #define PI. Use the one in pml.h, since it's
  20.             the most precise one I could find (and the only one
  21.             that worked for every test)
  22.     tObstack - crashed with bombs the first time I tried (at the end
  23.            of the program, after all tests had been run successfully)
  24.            Hasn't been a problem since.
  25.     tComplex - needed hypot() defined. This is something that could
  26.            perhaps be moved into the pml library.
  27.  
  28. The only one that's actually *wrong* is tRandom - everything else is fine.
  29.  
  30. The other tests are for container classes/generic stuff. I haven't looked
  31. at them yet.....
  32.  
  33. As I said earlier, the main diffs are in the file I/O stuff.  When you
  34. look through them, take the following order - File, streambuf, filebuf,
  35. Filebuf, then istream/ostream.  File and streambuf are pretty well
  36. bin/text clean, but I haven't tested them to any great extent so there
  37. are likely to be problems.  filebuf's are likely to be ok, Filebuf's
  38. less so.  I don't remember making any mods to istream/ostream.... 
  39.  
  40. I started to get a little lost in Filbuf's. (Multiple inheritance always
  41. gives me a headache...) The file opening stuff comes from File, while the
  42. buffering is from streambuf's. (BTW, I'm using the names of classes, not
  43. files.)
  44.  
  45. All I can really promise about the stream stuff is that it works well
  46. enough to run the tests!
  47.  
  48. Here are a few more notes about the operation of the libs....
  49.  
  50. overflow/underflow are defined all over the place, and act as filbuf/flush
  51. for whatever class they're defined for. (These all filter down to
  52. each _filbuf/fflush or read/write.) must_overflow and must_underflow are
  53. called before every read/write, and call overflow/underflow if they
  54. have to. The File based classes use fputc/fgetc, and the bin/text stuff
  55. is handled by the GCC libs, though there's extra status in the state
  56. variable to indicate whether the File is in bin/text mode. The streambuf
  57. side, the putc is done by an inline, _atari_putc, while the various
  58. forms of getc all do their own thing. (There's get, get and advance, and
  59. advance.) There's a _bin_mode flag for streambufs. There may be a
  60. problem with the handling of _bin_mode for stdin/out/err: the streambuf
  61. stuff only deals with the file descriptor, not the FILE pointer, so I
  62. can't get at the _flags - all I do is check the fd against stdout->_file,
  63. etc.
  64.  
  65. The end-pointer for the buffers is two less than the size of the buffers,
  66. in case of a '\n' write at the end of the buffer in text mode. (This hasn't
  67. been tested, so it won't work... ;-)
  68.  
  69. The big change (ie, the one that actually got the streams working) was
  70. in Filebuf.cc, overflow(). _cnt is worked out before calling fflush
  71. (I think), and that was using the BSD semantics of _cnt, not yours.
  72. (Since I worked on the I/O stuff from the bottom up, this wasn't fixed
  73. until quite late on... :-(
  74.  
  75. I don't do anything with _IONBF, _IOFBF, and _IOLBF. (You'll know what's
  76. best in these situations. This is known as 'passing the buck'... ;-)
  77. I also don't do anything about 16/32, though I reckon that's what all
  78. your size_t stuff is for, yes? (I haven't gotten round to investigating
  79. it.)
  80.  
  81. I haven't included the exception handling stuff - not gotten round to
  82. testing them.
  83.  
  84. It's now midnight on Sunday, I'm tired and going to bed. G'night.
  85.  
  86.  
  87. Addendum...
  88.  
  89. Filenames now truncated to eight characters, and are all lowercase. Diffs
  90. are included, plus some extra files that didn't make it to patchlevel 1.
  91.  
  92. ---------------------------- Patchlevel 2 -----------------------------------
  93.  
  94. str.cc:: ++jrb
  95.     char *str, "blanks" should really be a long, since the others
  96. are size_t, and a int would ovr/undr flow when -mshort.
  97.  
  98. Makefile, makefile.16, makefile.32, mincl:: ++jrb
  99.     new files. set up make as per our conventions in all other libs
  100.  
  101. xcomplex.h:: ++jrb
  102.     hypot() moved to pml lib where it belongs.
  103.  
  104. xfile.cc:: ++jrb
  105.     use the enum constants _atari_bin/text instead of hardcoding
  106.     the numbers
  107.  
  108. streambu.h:: ++jrb
  109.     streambuf::stossc(): just need to advance the get pointer. No need to
  110.     special case for _bin/_text mode, as the get fns (sgetc(), snextc())
  111.     will advance the gptr over a \r when !_bin_mode. (the next time a
  112.     get happens, after the advance).
  113.  
  114. ident.c:: ++jrb
  115.     new file, for ident(1) identification.
  116.  
  117. ---------------------------- Patchlevel 3 -----------------------------------
  118.  
  119. streambu.h:: david
  120.     use <bool.h> instead of #defining TRUE/FALSE
  121.  
  122. gnulib3.c:: ++jrb
  123.     the atexit() call for destructors was inside a #ifdef section
  124.     and was never compiled. moved it out. now the iostreams
  125.     stuff works much better. i was wondering for a while there
  126.     why destructors were not happening at the end.
  127.  
  128. *.h *.cc:: ++jrb
  129.     sync with gnu libg++-1.40. Note there are hardly any real changes
  130.     mostly gpl lib licencing header comment changes. we might
  131.     as well be in sync though.
  132.  
  133. ---------------------------- Patchlevel 4 -----------------------------------
  134.  
  135. *.h:: ++jrb
  136.     get rid of #pragma once from gcc-2.0
  137.  
  138. ---------------------------- Patchlevel 5 -----------------------------------
  139.  
  140. all files:: ++jrb
  141.     brand new port of libg++-2.0: note iosteams are the defaults now.
  142.  
  143. ---------------------------- Patchlevel 6 -----------------------------------
  144.