home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 10 / Fresh_Fish_10_2352.bin / new / dev / c / dice / version.doc < prev    next >
Text File  |  1994-02-01  |  18KB  |  473 lines

  1.                    VERSION.DOC
  2.                   DICE
  3. VERS DES COMMENT
  4.     VERS    = Release Version
  5.     DES     = bug fixed / feature designator
  6.     XB  - major bug fixed in main compiler
  7.           (use of routine in question could have caused a crash)
  8.     B   - minor bug fixed in main compiler
  9.     F   - feature added
  10.     E   - enhancement to existing feature
  11.     O   - optimization added
  12.  
  13.     ADD - feature added or fixed that is standard C but was not previously
  14.           implemented or working.
  15.  
  16.     XBL - major bug fixed to library
  17.     BL  - minor bug fixed to library
  18.     FL  - feature added to library
  19.     OL  - optimization added to library
  20.  
  21.     XBA - major bug fixed in support program (i.e. not DCC or sub programs)
  22.     BA  - minor bug fixed in support program
  23.     FA  - feature added to support program (or new support program)
  24.     OA  - optimization added to support program
  25.  
  26.     COMMENT = comment or bug, feature
  27.  
  28. 2.06.37
  29.     B    arrays are now aligned the same as their element type
  30.     alignment.  Thus, char a[3]; is byte aligned while short a[3];
  31.     is word aligned. Previously arrays were always word aligned.
  32.     (not really a bug, but required to work with Amiga cia structures)
  33.  
  34.     F    PROFILING ADDED.  New -prof option to DCC, LIBMAKE, and FDTOLIB.
  35.     This tool gives you unmatched profiling capabilities.  You may
  36.     profile just your source, standard C calls, amiga library calls,
  37.     or any combination.  A <programname>.dprof file is automatically
  38.     generated when your program exits and may be turned into a
  39.     textual representation    with the DPROF program.
  40.  
  41.     Profiling routines have a 1 uS granularity under 2.0, 20 mS
  42.     granularity under 1.3.
  43.  
  44.     __noprof qualifier for procedures added -- prevents a procedure
  45.     from being profiled (used by the system to prevent the profiler
  46.     routine from getting profiled itself)
  47.  
  48.     F    C.LIB renamed to CS.LIB to generalize library names.  Infix IDs
  49.     are now generalized as follows:
  50.  
  51.     L   large data model
  52.     S   small data model
  53.     R   registered args, else stack args (registered release only)
  54.     P   profiled, else not profiled.
  55.  
  56.     DCC will now use the -prof and -md/-mD options to determine which
  57.     c.lib and amiga.lib to use.  The more useful combinations are
  58.     included in the distribution and registered users may make
  59.     additional versions as needed.
  60.  
  61.     Note that you may mix options -- it is perfectly valid to compile
  62.     source modules with -mD but link small-data.
  63.  
  64.     BL    bug in fread() fixed relating to an fread() occuring after an
  65.     ungetc().
  66.  
  67.     E    ALL LIBRARIES IN THE SYSTEM REORGANIZED.  There are now many
  68.     more libraries.  Registered users now have a means of remaking
  69.     *ANY* library from scratch by unpacking the library source code
  70.     and typeing 'dmake' with no arguments for instructions. Generally
  71.     only the DTMP: assignment and -2.0 in your DCCOPTS is required.
  72.  
  73.     Since there are many more libraries possible then I can fit in the
  74.     distribution, this means may be used to create esoteric libraries
  75.     that the majority of people will never use.
  76.  
  77.     F    Fixed two major bugs with constant floating point arithmatic...
  78.     addition and subtraction would not work correctly in a few cases
  79.     (it would get the sign wrong), the exponent would get screwed up
  80.     in some cases (usually after a negation), and I was overflowing
  81.     the single-precision exponent range for conversions to type float.
  82.  
  83.     Ooooo this stuff should have been caught long ago!
  84.  
  85.     F    Fixed a pointer arithmatic bug, yet another case where a scratch
  86.     register would get overwritten due to a procedure call.
  87.  
  88. 2.06.36
  89.     B    register allocation bug fixed, related to floating point
  90.     routines mainly.  Would generate a 'Too many redos' error
  91.     in some cases (bug did not generate bad code).
  92.  
  93.     F    PRECOMPILED INCLUDES ADDED, see -H option in DOC/DCC.DOC.
  94.  
  95.  
  96. 2.06.35
  97.     FL    under 2.0 (V37), getenv() now checks for local enviroment variables
  98.     before global ENV: variables.  Under 1.3 only global ENV: variables
  99.     are checked for.
  100.  
  101.     BL    fixed %U and %W in strftime(), would generate incorrect week-of-year
  102.  
  103.     B    fixed stringize operator for \n, i.e. quoteme(fubar\n) -> "fubar\n",
  104.     would previously generate incorrect result (I think)
  105.  
  106.     B    fixed bugs in integer multiply & divide, some cases would generate
  107.     fatal errors (all caught by DICE)
  108.  
  109.     B    fixed bug &= operator, would generate assembly error in
  110.     conditional:    while (x &= (x - 1)) ...
  111.  
  112.     F    optimizations made to mulitply & divide, handles 16 bit expressions
  113.     better.
  114.  
  115.     F    minor optimization added for procedure calls within the same
  116.     module.  If call is within a byte offset then BSR.B will be
  117.     used, else BSR.W is used.
  118.  
  119.     F    DLink now checks for illegal small-data references to far objects
  120.     and generates the appropriate error message.  This was added for
  121.     completeness and also because __far or -mD data objects are no
  122.     longer A4-relative.  The check will catch illegal model mixing.
  123.  
  124. 2.06.34
  125.     BL    bug in <varargs.h> (old style var-args) fixed, was skipping first
  126.     argument.  Note that all ANSI projects should use <stdarg.h>
  127.  
  128. 2.06.33
  129.     B    bug in offsetof(type, array_elm) fixed, previously caused error
  130.     message.
  131.  
  132. 2.06.32
  133.     B    fixed bug in dlink Introduced in .31 that would cause a machine
  134.     crash.
  135.  
  136.  
  137. 2.06.31
  138.     B    fixed floating point bug relating to array indexing, would
  139.     clobber A0 in some cases
  140.  
  141.     B    fixed preprocessor bug relating to the use of hex constants
  142.     in #if expressions (they wouldn't work)
  143.  
  144.     E    redid the handling of the ?: routine to allocate its result
  145.     storage (a temporary register) after running the sub-expressions
  146.     instead of before, which allows you to nest ?: indefinitely without
  147.     generating an too-many-redos error.
  148.  
  149.     B    register allocation bug (would generate fatal error) in
  150.     &array (redundant & operator) has been fixed.
  151.  
  152.     B    DCPP now accepts null directives.  # with no directive.
  153.  
  154. 2.06.30
  155.  
  156.     F    DCPP now evaluates undefined symbols in #if expressions as 0
  157.     instead of generating an error message, as per ANSI.
  158.  
  159.     B    Yet another bug in the # (stringtize) operator found.  Fixed.
  160.     Really really really should work right this time!
  161.  
  162.     B    bug in switch/case fixed, case <enumid>: would generate an
  163.     error message.
  164.  
  165.     BA    I was shipping the wrong mathieeedoub*.library shared libraries,
  166.     would cause erronous float->double conversion.
  167.  
  168.     B    another floating point bug found in && and || of the
  169.     form 'fp && fp' or 'fp || fp', would cause incorrect
  170.     evaluation and/or assembly error
  171.  
  172.     B    small bug in fread() would sometimes set error flag
  173.     when returning EOF, and fseek() would not reset this
  174.     flag (it does now).
  175.  
  176.     BL    bug in *scanf(), %c would overwrite the char by one byte
  177.     (i.e. store into two chars instead of one).  fixed.
  178.  
  179.     B    DCPP didn't handle a quoted /* in directives correctly.
  180.  
  181.     F    Large programs that have more than 64K of *initialized* data
  182.     may now use either __far for selected items (preferable) or -mD
  183.     without causing link errors.  Previously dlink would combine far
  184.     data along with near data making all small-data referenced bss
  185.     items out of range if more than 64K of initialized data had been
  186.     declared, __far or not.  Now, DC1 generates 'fardata' sections
  187.     properly when -mD or __far is used (previously only worked with
  188.     __far), and dlink will not combine any section name beginning with
  189.     'far' into the small data model.
  190.  
  191.     This is only of major import when compiling incredibly huge
  192.     programs.  Note that having greater than 64K of bss with -mD or
  193.     __Far has always been supported since library bss is always forced
  194.     in front of program bss.
  195.  
  196.     F    DLink now takes approximately 15% less memory.    While it still
  197.     requires memory to hold the combined size of all objects and
  198.     libraries, incidental memory requirements now reuse much of this
  199.     memory from unlinked sections instead of allocate new memory.
  200.  
  201. 2.06.29
  202.     B    another long standing bug found: short a = i * j; where i and j
  203.     are long's and *also* a memory reference (not in regs),
  204.     the multiplication short-result optimization was screwed up.
  205.  
  206.     B    register allocation bug (would produce a fatal error) fixed,
  207.     registers would not be deallocated in constant conditional
  208.     expressions such as:    1 ? (a = 4) : b;
  209.  
  210. 2.06.28
  211.     B    really dumb bug fixed, made retroactive to 2.06.27 (all 2.06.27
  212.     dists were redone with this fixed).  Had been introduced i