#569 double-float-epsilon (and negative) invariants don't hold

closed-works-for-me
Sam Steingold
clisp (525)
5
2010-10-28
2010-10-13
Steven Harris
No

This problem looks similar to bug 501969, closed back in 2002.

CLISP violates the contracts specified in the Hyperspec for double-float-epsilon and double-float-negative-epsilon, though it does work fine for single-float-epsilon and single-float-negative-epsilon.
http://www.lispworks.com/documentation/HyperSpec/Body/v_short_.htm

CL-USER> (not (= (float 1 double-float-epsilon)
(+ (float 1.0d0 double-float-epsilon)
double-float-epsilon)))
NIL
CL-USER> (not (= (float 1 double-float-negative-epsilon)
(- (float 1 double-float-negative-epsilon)
double-float-negative-epsilon)))
NIL

I'm using the CLISP binary supplied by the Cygwin project on Windows XP.

% uname -a
CYGWIN_NT-5.1 PA10-5ZYH3M1 1.7.7(0.230/5/3) 2010-08-31 09:58 i686 Cygwin

% clisp --version
GNU CLISP 2.48 (2009-07-28) (built on ATGRZWN502840.avl01.avlcorp.lan [157.247.26.41])
Software: GNU C 4.3.4 20090804 (release) 1
gcc-4 -O2 -pipe -g -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-type -Wmissing-declarations -Wno-sign-compare -Wno-format-nonliteral -O2 -fexpensive-optimizations -falign-functions=4 -DUNICODE -DDYNAMIC_FFI -I. -Wl,--stack,8388608 -Wl,--enable-auto-import /usr/lib/libintl.dll.a /usr/lib/libiconv.dll.a /usr/lib/libreadline.dll.a -lncurses /usr/lib/libavcall.a /usr/lib/libcallback.a /usr/lib/libiconv.dll.a -L/usr/lib -lsigsegv
SAFETY=0 HEAPCODES STANDARD_HEAPCODES SPVW_PAGES SPVW_MIXED
libsigsegv 2.8
libiconv 1.13
libreadline 6.0
Features:
(READLINE REGEXP SYSCALLS I18N LOOP COMPILER CLOS MOP CLISP ANSI-CL COMMON-LISP
LISP=CL INTERPRETER SOCKETS GENERIC-STREAMS LOGICAL-PATHNAMES SCREEN FFI
GETTEXT UNICODE BASE-CHAR=CHARACTER PC386 UNIX CYGWIN)
C Modules: (clisp i18n syscalls regexp readline)
Installation directory: /usr/lib/clisp-2.48/
User language: ENGLISH
Machine: I686 (I686) PA10-5ZYH3M1.gddsi.com [10.245.57.23]

Discussion

  • Sam Steingold
    Sam Steingold
    2010-10-13

    I cannot reproduce the problem either on linux or mingw or cygwin (CYGWIN_NT-5.2 ... 1.5.25(0.156/4/2) 2008-06-12 19:34 i686 Cygwin) either with cvs head or 2.48.
    the forms above return T.
    actually, this is tested by the regression test suite , so the cygwin clisp maintainer should have noticed the problem before he distributed the package.
    the only difference I see between your setup and mine is that you have cyginw 1.7 on winXP and I have cygwin 1.5 on server 2003.
    I think it would be a good idea to ask the clisp cygwin maintainer about this (ask on the cygwin mailing list).

     
  • Sam Steingold
    Sam Steingold
    2010-10-14

    This bug report is now marked as "pending"/"works for me".
    This means that we think that we cannot reproduce the problem
    and cannot do anything about it.
    Unless you - the reporter - act within 2 weeks
    (e.g., by submitting a self-contained test case
    or answering our other recent requests),
    the bug will be permanently closed.
    Sorry about the inconvenience -
    we hope your silence means that
    you are no longer observing the problem either.

     
  • Sam Steingold
    Sam Steingold
    2010-10-14

    • assigned_to: haible --> sds
    • status: open --> pending-works-for-me
     
  • This Tracker item was closed automatically by the system. It was
    previously set to a Pending status, and the original submitter
    did not respond within 14 days (the time period specified by
    the administrator of this Tracker).

     
    • status: pending-works-for-me --> closed-works-for-me