I just had a strange bug popping up in a small piece of code - when I
compiled my program with safety < 3, the following comparison fails:
(= (aref *f-labels* f) (aref *labels* s))
what it is getting is always the same result, 0 - even when I print
the two arrays just before doing this, and making sure that both
defenitely hold #(0 1 2) and that the two indices are different!
Then I discovered that wrapping this by a safety setting of 3 (since I
had a global 0 setting before) cured the bug.
Have I gone crazy? Is there any bug in the compiler - I thought that
changing compiler settings should not change a program when it doesn't
do "bad" things...
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://www.cs.cornell.edu/eli/meaning.html Maze is Life!
Eli Barzilay <ยทยทยท@mojave.cs.cornell.edu> writes:
> I just had a strange bug popping up in a small piece of code - when I
> compiled my program with safety < 3, the following comparison fails:
>
> (= (aref *f-labels* f) (aref *labels* s))
Write the shortest possible piece of code that demonstrates the
problem. Start from a fresh image, use DRIBBLE, execute the code.
If it still looks like a bug, report to Franz. Include the dribble.
Stig Hemmer,
Jack of a Few Trades.