home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 10
/
Fresh_Fish_10_2352.bin
/
new
/
dev
/
c
/
dice
/
version.doc
< prev
next >
Wrap
Text File
|
1994-02-01
|
18KB
|
473 lines
VERSION.DOC
DICE
VERS DES COMMENT
VERS = Release Version
DES = bug fixed / feature designator
XB - major bug fixed in main compiler
(use of routine in question could have caused a crash)
B - minor bug fixed in main compiler
F - feature added
E - enhancement to existing feature
O - optimization added
ADD - feature added or fixed that is standard C but was not previously
implemented or working.
XBL - major bug fixed to library
BL - minor bug fixed to library
FL - feature added to library
OL - optimization added to library
XBA - major bug fixed in support program (i.e. not DCC or sub programs)
BA - minor bug fixed in support program
FA - feature added to support program (or new support program)
OA - optimization added to support program
COMMENT = comment or bug, feature
2.06.37
B arrays are now aligned the same as their element type
alignment. Thus, char a[3]; is byte aligned while short a[3];
is word aligned. Previously arrays were always word aligned.
(not really a bug, but required to work with Amiga cia structures)
F PROFILING ADDED. New -prof option to DCC, LIBMAKE, and FDTOLIB.
This tool gives you unmatched profiling capabilities. You may
profile just your source, standard C calls, amiga library calls,
or any combination. A <programname>.dprof file is automatically
generated when your program exits and may be turned into a
textual representation with the DPROF program.
Profiling routines have a 1 uS granularity under 2.0, 20 mS
granularity under 1.3.
__noprof qualifier for procedures added -- prevents a procedure
from being profiled (used by the system to prevent the profiler
routine from getting profiled itself)
F C.LIB renamed to CS.LIB to generalize library names. Infix IDs
are now generalized as follows:
L large data model
S small data model
R registered args, else stack args (registered release only)
P profiled, else not profiled.
DCC will now use the -prof and -md/-mD options to determine which
c.lib and amiga.lib to use. The more useful combinations are
included in the distribution and registered users may make
additional versions as needed.
Note that you may mix options -- it is perfectly valid to compile
source modules with -mD but link small-data.
BL bug in fread() fixed relating to an fread() occuring after an
ungetc().
E ALL LIBRARIES IN THE SYSTEM REORGANIZED. There are now many
more libraries. Registered users now have a means of remaking
*ANY* library from scratch by unpacking the library source code
and typeing 'dmake' with no arguments for instructions. Generally
only the DTMP: assignment and -2.0 in your DCCOPTS is required.
Since there are many more libraries possible then I can fit in the
distribution, this means may be used to create esoteric libraries
that the majority of people will never use.
F Fixed two major bugs with constant floating point arithmatic...
addition and subtraction would not work correctly in a few cases
(it would get the sign wrong), the exponent would get screwed up
in some cases (usually after a negation), and I was overflowing
the single-precision exponent range for conversions to type float.
Ooooo this stuff should have been caught long ago!
F Fixed a pointer arithmatic bug, yet another case where a scratch
register would get overwritten due to a procedure call.
2.06.36
B register allocation bug fixed, related to floating point
routines mainly. Would generate a 'Too many redos' error
in some cases (bug did not generate bad code).
F PRECOMPILED INCLUDES ADDED, see -H option in DOC/DCC.DOC.
2.06.35
FL under 2.0 (V37), getenv() now checks for local enviroment variables
before global ENV: variables. Under 1.3 only global ENV: variables
are checked for.
BL fixed %U and %W in strftime(), would generate incorrect week-of-year
B fixed stringize operator for \n, i.e. quoteme(fubar\n) -> "fubar\n",
would previously generate incorrect result (I think)
B fixed bugs in integer multiply & divide, some cases would generate
fatal errors (all caught by DICE)
B fixed bug &= operator, would generate assembly error in
conditional: while (x &= (x - 1)) ...
F optimizations made to mulitply & divide, handles 16 bit expressions
better.
F minor optimization added for procedure calls within the same
module. If call is within a byte offset then BSR.B will be
used, else BSR.W is used.
F DLink now checks for illegal small-data references to far objects
and generates the appropriate error message. This was added for
completeness and also because __far or -mD data objects are no
longer A4-relative. The check will catch illegal model mixing.
2.06.34
BL bug in <varargs.h> (old style var-args) fixed, was skipping first
argument. Note that all ANSI projects should use <stdarg.h>
2.06.33
B bug in offsetof(type, array_elm) fixed, previously caused error
message.
2.06.32
B fixed bug in dlink Introduced in .31 that would cause a machine
crash.
2.06.31
B fixed floating point bug relating to array indexing, would
clobber A0 in some cases
B fixed preprocessor bug relating to the use of hex constants
in #if expressions (they wouldn't work)
E redid the handling of the ?: routine to allocate its result
storage (a temporary register) after running the sub-expressions
instead of before, which allows you to nest ?: indefinitely without
generating an too-many-redos error.
B register allocation bug (would generate fatal error) in
&array (redundant & operator) has been fixed.
B DCPP now accepts null directives. # with no directive.
2.06.30
F DCPP now evaluates undefined symbols in #if expressions as 0
instead of generating an error message, as per ANSI.
B Yet another bug in the # (stringtize) operator found. Fixed.
Really really really should work right this time!
B bug in switch/case fixed, case <enumid>: would generate an
error message.
BA I was shipping the wrong mathieeedoub*.library shared libraries,
would cause erronous float->double conversion.
B another floating point bug found in && and || of the
form 'fp && fp' or 'fp || fp', would cause incorrect
evaluation and/or assembly error
B small bug in fread() would sometimes set error flag
when returning EOF, and fseek() would not reset this
flag (it does now).
BL bug in *scanf(), %c would overwrite the char by one byte
(i.e. store into two chars instead of one). fixed.
B DCPP didn't handle a quoted /* in directives correctly.
F Large programs that have more than 64K of *initialized* data
may now use either __far for selected items (preferable) or -mD
without causing link errors. Previously dlink would combine far
data along with near data making all small-data referenced bss
items out of range if more than 64K of initialized data had been
declared, __far or not. Now, DC1 generates 'fardata' sections
properly when -mD or __far is used (previously only worked with
__far), and dlink will not combine any section name beginning with
'far' into the small data model.
This is only of major import when compiling incredibly huge
programs. Note that having greater than 64K of bss with -mD or
__Far has always been supported since library bss is always forced
in front of program bss.
F DLink now takes approximately 15% less memory. While it still
requires memory to hold the combined size of all objects and
libraries, incidental memory requirements now reuse much of this
memory from unlinked sections instead of allocate new memory.
2.06.29
B another long standing bug found: short a = i * j; where i and j
are long's and *also* a memory reference (not in regs),
the multiplication short-result optimization was screwed up.
B register allocation bug (would produce a fatal error) fixed,
registers would not be deallocated in constant conditional
expressions such as: 1 ? (a = 4) : b;
2.06.28
B really dumb bug fixed, made retroactive to 2.06.27 (all 2.06.27
dists were redone with this fixed). Had been introduced i