[comp.sys.sun] Why big buffers for floating doprints?

schroder@papaya.bbn.com (03/17/90)

We frequently use multitasking, with modest stacks allocated from the
heap.  We recently discovered that "sprintf()" in Sun release 4.x was
overrunning the stack -- using **over 20k of stack** to convert little
numbers like 0.334 and so forth.

A little research with adb uncovered:

    binary_to_decimal_integer:  linkw   a6,#-0x308c	// 12,428 bytes
    binary_to_decimal_fraction: linkw   a6,#-0x3080	// 12,416 bytes
    unpacked_to_decimal:        linkw   a6,#-0x15b0	// 5,552 bytes

Does anyone out there know why it takes over 12K to convert a floating
point number?  Release 3.5 convert a float in under 900 bytes. :-)

Regards,
Ken