03-18-2011, 12:04 AM
This is related to the completely rewritten backend compiler module (1.2.7 undergone an entire new preprocessor which now allows function inlining -using complex macros with parameter substitution). Now it's time to fix backend when I realised the bug I introduced in 1.2.6 :oops: This means I have to re-check almost every expression case in every context for every type (array, assignation, evaluation, etc for UByte, Byte, Uinteger, Integer, Ulong, Long, Fixed, Float, String) :oops:
Currently I've finished both 8 & 16 bits types (and probably strings). Because they're used most frequently.
But It will take time to check & fix every case. The other good news is that now I've switched to Mercurial and start using Unitary Testing so once a fix is done, it won't be undone again with subsecuent fixes onwards (as it happened before!). Test where introduced in 1.2.6. So, in short:
PS: I think fsin.bas should be renamed to fmath.bas since it contains many math functions (even sqrt?). It you think it's ready it can be packaged with the compiler from now on.
Currently I've finished both 8 & 16 bits types (and probably strings). Because they're used most frequently.

- 1.2.6 - Start unitary testing
- 1.2.7 - Heavy refactoring to introduce the new zxbpp (I'm very proud of :lol: )
- 1.2.8 - Fix the bug (and a subtle silent bug introduced :x ), and optimize the backend. Faster and shorter code. Some other code refactoring towards 2.x branch.
- 1.2.9 - Introduce READ, DATA, RESTORE to enhance compatibilty.
PS: I think fsin.bas should be renamed to fmath.bas since it contains many math functions (even sqrt?). It you think it's ready it can be packaged with the compiler from now on.