[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
strange 1+/1- bug?
- To: clisp-list@ma2s2.mathematik.uni-karlsruhe.de (CLisp List)
- Subject: strange 1+/1- bug?
- From: rls@hoiho.math.waikato.ac.nz (Richard Shepherd)
- Date: Thu, 22 Feb 1996 01:00:24 +1300 (NZDT)
- Reply-to: rls@hoiho.math.waikato.ac.nz
I am running:
(lisp-implementation-version)
-> "1995-04-04 (April 1995)"
and have noticed the following strange goings on:
(defun bob (x) (+ x 1))
-> BOB
(bob 3)
-> 4
(compile 'bob)
-> BOB
(bob 3)
-> 4
which looks good, but if I now fiddle with 1+ like so:
(defun 1+ (x) (+ x 1))
-> ** - Continuable Error
Redefining the COMMON LISP function 1+
If you continue (by typing 'continue'): The old definition will be
lost
1. Break> continue
-> 1+
(1+ 3)
-> 4
(compile '1+)
-> 1+
(1+ 3)
-> *****hangs***** i.e. never returns, infinite loop, etc.
and if I Ctrl-C it and try bob again:
(bob 3)
-> *****hangs***** i.e. never returns, infinite loop, etc.
this also happens under "1995-04-25 (April 1995)" version (on Linux
and Alpha OSF). Soooooooo what's happening. (I checked the same test
on Allegro CL and it was happy.) However if I replace 1 with 2 or
more in "bob" then all is well i.e.:
(defun bob (x) (+ x 2))
will evaluate (bob 3) just fine whether interpreted or compiled, and
regardless of how I've stuffed round with 1+ !?
Is this a bug that is fixed in later versions? What's so special
about the 1 in addition?
Look forward to getting to the bottom of this mystery.........Cheers,
8<--------------------------->8
Richard Shepherd.
(rls@math.waikato.ac.nz)
PS: this all came about 'cos I was simulating operator overloading in
CLOS and decided to redefine 1+ and 1- just to be on the safe side (I
know it probably throws away a lot of efficiency, but doesn't CLOS
anyway?), and my program seems to run fine interpreted, compiles OK,
but then I can't load the compiled code---hangs!