From: Eric Marsden <eric.marsden@fr...>  20110819 17:12:03

Hi, ,  * (lispimplementationversion)  "1.0.50.545abf3b4"  * (FORMAT NIL "~E" 1.0)  "1.e+0"  * (FORMAT NIL "~E" 1.0d0)  "1.d+0" ` My reading of CLHS ("If all of w, d, and e are omitted, then the effect is to print the value using ordinary freeformat exponentialnotation output") suggests that those should be "1.0e+0" and "1.0d+0". http://www.lispworks.com/documentation/HyperSpec/Body/22_ccb.htm  Eric Marsden 
From: Nikodemus Siivola <nikodemus@ra...>  20111029 15:43:14

On 19 August 2011 20:11, Eric Marsden <eric.marsden@...> wrote: > Hi, > > , >  * (lispimplementationversion) >  "1.0.50.545abf3b4" >  * (FORMAT NIL "~E" 1.0) >  "1.e+0" >  * (FORMAT NIL "~E" 1.0d0) >  "1.d+0" > ` > > My reading of CLHS ("If all of w, d, and e are omitted, then the effect > is to print the value using ordinary freeformat exponentialnotation > output") suggests that those should be "1.0e+0" and "1.0d+0". > > http://www.lispworks.com/documentation/HyperSpec/Body/22_ccb.htm Thanks! Logged as https://bugs.launchpad.net/sbcl/+bug/883520 Cheers,  Nikodemus 
From: Alexander Klimov <alserkli@in...>  20111030 08:21:06

On Sat, 29 Oct 2011, Nikodemus Siivola wrote: > On 19 August 2011 20:11, Eric Marsden <eric.marsden@...> wrote: > > , > >  * (lispimplementationversion) > >  "1.0.50.545abf3b4" > >  * (FORMAT NIL "~E" 1.0) > >  "1.e+0" > >  * (FORMAT NIL "~E" 1.0d0) > >  "1.d+0" > > ` > > > > My reading of CLHS ("If all of w, d, and e are omitted, then the effect > > is to print the value using ordinary freeformat exponentialnotation > > output") suggests that those should be "1.0e+0" and "1.0d+0". > > > > http://www.lispworks.com/documentation/HyperSpec/Body/22_ccb.htm > > Thanks! Logged as > > https://bugs.launchpad.net/sbcl/+bug/883520 Unless "ordinary" is defined (I cannot find such a definition in the specification), it is reasonable to understand "ordinary" as the form without any redundant characters, that is for fixedformat it is "1.0" (the zero is required since "1." is an integer), but for the exponential notation "1.e+0" is sufficient (actually, "1.e0" is also enough, but "+" is explicitly required). As a hint that "1.e+0" is a better interpretation of Section 22.3.3.2 we can consider If the parameter d is omitted, then there is no constraint on the number of digits to appear. A value is chosen for d in such a way that as many digits as possible may be printed subject to the width constraint imposed by the parameter w, the constraint of the scale factor k, and the constraint that no trailing zero digits may appear in the fraction, except that if the fraction to be printed is zero then a single zero digit should appear after the decimal point. and thus "1.0e+0" would violate the "no trailing zero digits" requirement.  Regards, ASK 
From: Nikodemus Siivola <nikodemus@ra...>  20111030 09:48:44

Alexander, thanks for your comments. I added your comments to the LP bug  for me or someone else to think thru when they feel awake enough to tackle that section of the spec. :) Apropos: if you take the time to register on LP (doesn't take long), you can report and comment on the bugs directly there  either using the web interface, or via email as long as you have a GPG capable mail setup. Cheers,  nikodemus 