Forum
Optimizer bug (*solved*) - Printable Version

+- Forum (https://www.boriel.com/forum)
+-- Forum: Compilers and Computer Languages (https://www.boriel.com/forum/forumdisplay.php?fid=12)
+--- Forum: ZX Basic Compiler (https://www.boriel.com/forum/forumdisplay.php?fid=11)
+---- Forum: Bug Reports (https://www.boriel.com/forum/forumdisplay.php?fid=15)
+---- Thread: Optimizer bug (*solved*) (/showthread.php?tid=610)



Optimizer bug (*solved*) - einar - 10-17-2014

I found an error in ZX BASIC optimizer. Take a look at this test program:

Code:
GO TO 10

sub FASTCALL test(flag AS UBYTE)
    asm
        cp 1
        jp m,45000
        jp 50000
    end asm
end sub

10 POKE 50000,201: POKE 45000,201
   test(1)

This program produces the expected result if you compile it as follows:

Code:
zxb.exe -t -O2 prog.bas

However it will refuse to compile if you use this instead:

Code:
zxb.exe -t -O3 prog.bas

In this latter case it will produce this error message:

Code:
C:>zxb.exe -t -O3 prog.bas
Traceback (most recent call last):
  File "zxb.py", line 348, in <module>
  File "zxb.py", line 301, in main
  File "optimizer.pyc", line 2287, in optimize
  File "optimizer.pyc", line 1493, in update_goes_and_comes
KeyError: '45000'

EDIT: Tested using latest ZX BASIC version 1.4.0s1898.


Re: Optimizer bug - boriel - 12-27-2014

I think I've fixed it in the Lastest version, 1.4.0s1902. Can you download and check it, please?


Re: Optimizer bug - einar - 12-27-2014

It works now, thanks!!!