Post Fri Mar 26, 2010 7:07 pm

Version 1.2.5 released!

Ok, this release is just 1.2.5-r1513h renamed. I think it's quite stable now, and if new bugs are found, they will be fixed on 1.2.6.
So, those interested, please, download from: http://www.boriel.com/files/zxb

Thanks to Britlion, apenao, LCD & carloscomputer. They've detected more than 30 bugs. In fact this version fixes so many that some parts has been completely rewritten. If you use any older version, do please upgrade to this one immediately. This version could be considered as a "Service Pack Update".

Changes since v.1.2.4
===================================
  • Assembler:
    • ! Under some pathological cases, compiling or assembling will last for exponential time (minutes to hours!), due to a possible bug/misuse of a regular expression. Fixed. Now it takes linear time.
    • + Added support for IXh, IXl, IYh, IYl registers.
    • + Added support for DEFS macro. Now DEFS n, B creates a block of n times byte B
    • ! Instructions LD A, R and LD R, A where also missing. Fixed.
  • Compiler
    • ! The optimizer -O2 was broken, and contained 3 bugs. Fixed.
    • ! The optimizer -O3 was broken, and contained more than 15 bugs. It's been almost completely rewritten. Fixed. Now it even tries to optimize ASM users code. :!:
    • ! The @operator was broken under some circumstances (array accesses and variables). Fixed.
    • ! The memory heap was also broken almost always when using any string in the program (INKEY$, STR$, CHR$, $ variables). Fixed.
    • ! Signed LONG division was wrong for positive divisors. Fixed.
    • ! Byte comparison operators < > = >= <= were sometimes bugged. Fixed.
    • ! using MOD with Fixed type was unsupported. Fixed. Now MOD used Fixed type.
    • ! INT(Fixed) was wrong. Fixed.
    • ! Temporary attributes BOLD and ITALIC were disabled. Now they are back.

    Probably some more other fixed, but these are the most important. :wink: