id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,difficulty 1627,Negative zero literals are miscompiled,johnwcowan,,"All versions of the Chicken compiler and interpreter (since 5.0 at least) treat the Scheme literal value `-0.0` incorrectly. This inexact value is distinct from `0.0` in certain ways: for example, `(/ 1.0 0.0) => +inf.0`, but `(/ 1.0 -0.0) => -inf.0`. Unfortunately, C treats the expression `-0.0` as a synonym for `0.0`, because in C a prefixed minus sign is always the negation operator and not part of a literal. So generating `-0.0` as the C representation of Scheme `-0.0` is incorrect. Instead, the C expression `(1.0 / (-INFINITY))`, where `INFINITY` is a constant from `math.h`, should be generated instead.",defect,closed,minor,6.0.0,unknown,5.1.0,worksforme,"float, negative zero",,easy