Summary of changes in the 1.6 release line
The following list shortly summarizes the changes in
version 1.6.1 compared to version 1.4.7 of AVR Libc, which
was the latest release from the 1.4 release line by the time
1.6.1 was released.
- The fplib/math library is completely rewritten. Now features of the IEEE
754 standard are supported all: negative zero, subnormals, Infs and NaNs.
It concerns both to base operations (arithmetic, comparison...), and to
all functions. Speed of performance is increased, sometimes considerably.
A number of mistakes (not reflected in the Bugs) which led severe losses
of accuracy for some arguments is corrected. A number of new functions is
added. It is necessary to note, that the new library concedes old under
the charge of flash memory a little.
Incompatibilities:
- Conversion from float to long (make similar to GCC/x86): in case if
overflow was or if input is NaN return 0x80000000 for signed result and
return 0 for unsigned result. Negative input (not too big in absolute
value) is permissible for cast to unsigned long, for example: (unsigned
long)(-1.0) returns ULONG_MAX.
- The signbit() function: return 1 as nonzero value (make similar to
builtin GCC).
- Make frexp() similar to GCC/x86 in case of nonfinite arg: write 0 by
exponent pointer. Early Avr-libc's frexp() skips exponent storing in this
case. Make the NULL a legal address to skip a storing.
- Functions of numbers to ascii conversion are completely rewritten:
dtostre(), dtostrf() and printf() family. They more do not use float point
operations. Speed of int/float to ASCII has increased in some times. For
printf() the stack usage is reduced.
- Test suite is added to the Avr-libc project.
- A few new util's headers: util/atomic.h, util/setbaud.h.
Please refer to the documentation
for details.
Last modified: Sat Dec 22 08:45:00 MET 2007