Releases: irmen/prog8
Releases · irmen/prog8
release 3.1
- 'continue' statement has been removed. This is rarely used, and complicates code generation.
- optimizations and bugfixes in for loop code gen
- optimizations in repeat loop code gen
- fix float array assignment
- improvements to type check of call arguments
- fix register A corruption on asm sub calls
- proper error message for oversized arrays
- upgraded to kotlin 1.4
release 3.0
Some major language changes have happened in this 3.0 release:
- cpu register variables (A, X, Y) are gone. It's no longer possible to directly access cpu registers from prog8 code -- use inline assembly if you need it
- repeat-until loop changed to do-until
- introduced repeat X {} loop as a more optimized for loop of sorts where you don't need the iteration variable
- forever {} loop is gone, it is replaced by repeat loop without iteration count.
release 2.4
- reverted subroutine inlining optimization, it breaks the code and causes assembler errors
- fixed possible register clobbering when calling an asmsub (i.e. wrong argumen values were passed)
release 2.3
- fixed certain type casting bugs with subroutine arguments
- optimized swap() some more
- bitmap graphics mandelbrot example added (if you have patience)
- simple subroutine inlining optimization added
- added some more missing code generation (shifts)
- fixed certain ast modifications (optimizers)
release 2.2
- added string value reassignment
- added leftstr() rightstr() substr() functions
- fixed some compiler errors
- fixed some more missing asm codegen
- fixed several issues in ast to sourcecode printing
- got rid of old ast modification API, all optimizers now use the new more versatile and less problematic API
release 2.1
- improved some asm gen error messages
- some improvements in string and array variable handling
- fixed some bugs in Ast printing
- stricter type checking in assignments (less implicit typecasts)
- optimized swap() for byte and word vars
- optimized graphics line routine
- some more expression optimizations
release 2.0
- big compiler speedup due to improved scope name lookups
- gfx subroutines improvements
- improved code generation (not complete yet! but all examples work)
release 1.91
- implemented the last missing asm code generations for bitshifting on arrays
- added a few more small code optimizers
- fixed clear/set_carry() and clear/set_irqd()
release 1.90
Many changes and improvements this time.
- initial variable values semantics changed slightly, read the docs for a thorough explanation
- the AST VM / Simulator has been removed. It was lacking and taking too much effort to keep up to date. Just compile and run your programs on the actual machine with Vice for instance.
- many compiler crashes fixed.
- improved various compiler error messages.
- fix assignment of struct literal values
- bugfixes in various optimizers
- fix ubyte number print bug for 100-109 and 200-209 missing the tens digit
- fixed invalid assembly for some direct memory read and writes
- bit shifting assembly code tweaked (optimized/ smaller)
- internal rewrite to a more generic and easier to use AST walker/visitor. In progress.
- added some bitmap graphics drawing examples including simple turtle graphics
- added a 'scramble' inspired balloon flight example
release 1.81
- added exit(rc) function
- added forever loop
- fix stack destroy bug in print_uw
- fix asm code crash for bitshift on memory address operand
- added warning when sgn() called on unsigned typed value
- error reporting improved, no more double messages
- check added for double label name definitions
- fix label assembly code generation by making them local asm labels
- a function call datatype mismatch asm crash was fixed
- internal autogenerated labels are no longer polluting the vice monlist file