Skip to content

Releases: irmen/prog8

release 1.80

12 Mar 00:23
Compare
Choose a tag to compare
  • added 'downto' range expression to make the step -1 common case easier
  • reverse(float array) now works
  • fixed some compiler problems related to the data type of array literals
  • reintroduced alternative string encoding via @"...." syntax (for c64 this is the screencode encoding, rather than petscii which is the default for strings)
  • introduced romsub keyword, to define ROM subroutines, instead of using asmsub
  • compiler speed improved (callgraph logic was improved)
  • floating point assembly code moved to separate embedded library file

release 1.70

09 Feb 00:42
Compare
Choose a tag to compare
  • the separate STR_S datatype is gone (screencode strings will be done differently in a future release)
  • added void keyword to explicitly ignore subroutine return values and get rid of that compiler warning
  • fix assembler float truncation warning
  • fix while and repeat loops condition warning location text
  • fix invalid while and repeat assembly label name generation
  • fix boolean checking of numbers
  • fix compilation error about byte forl oop over array for bb in [1,2,3]
  • many code cleanups, such as getting rid of most of the heapId code
  • various simulator vm fixes
  • improvements in the compiler backend code
  • updated libraries

release 1.62

20 Oct 22:42
Compare
Choose a tag to compare
  • fixed some type cast compiler errors in for loops
  • fixed windows path issues related to drive letters
  • improved number-to-decimal assembly library routines
  • build script fixes for jdk 1.8
  • som cleanups

release 1.61

24 Aug 22:54
Compare
Choose a tag to compare
  • improved command line interface:
  • can now compile multiple programs at once
  • can now specify output directory
  • implemented all for loop asm code paths
  • implemented a lot more bitshift asm code, but stuff remains tbd
  • added more functions to the simulator

release 1.60

18 Aug 12:40
Compare
Choose a tag to compare
  • syntax change: it is no longer possible to declare for-loop variables inline
  • optimized bit shift operations and fixed bugs
  • added sort() and reverse() and sgn() functions
  • for loop asm generation improved
  • a lot of bug fixes

release 1.51

11 Aug 15:52
Compare
Choose a tag to compare
  • removed avg() function because of invisible internal overflow issue
  • added assembly output for the aggregate functions (min/max/sum etcetera)
  • fixed strlen, any, all, asmsub argument via stack.

release 1.50

10 Aug 19:41
Compare
Choose a tag to compare

Got rid of the intermediate bytecodes and stackvm.
Assembly code generator completely rewritten to work directly from the Ast. (NOTE: unfortunately there's still a big code size regression caused by this)
Continuous compilation mode added.
Better syntax error checking.
added dontuse zeropage option

release 1.20

17 Jul 23:42
Compare
Choose a tag to compare
  • struct literals added
  • aggregate functions fixed in AstVM
  • some array and struct parsing issues fixed
  • arrays without init value are once again cleared with zero
  • many internal refactorings and dead code cleanups

release 1.11

13 Jul 21:04
Compare
Choose a tag to compare
  • added structs

release 1.10

11 Jul 21:16
Compare
Choose a tag to compare
  • 'when' statement supported fully.
  • multi target assignments are no longer supported
  • return statements can no longer have more than one value
  • tehtriz example now uses 'when' instead of a long if else list
  • fixed typecasting issues
  • typecasting is optimized better
  • fixed some arithmetical compile time issues
  • various other bug fixes