1
0
mirror of https://github.com/KarolS/millfork.git synced 2024-11-05 15:06:24 +00:00
millfork/CHANGELOG.md
Karol Stasiak d785d43ae7 Many optimization improvements and bugfixes
- fixed VariableToRegisterOptimization removing variables during superoptimization
- fixed PointlessMathFromFlow giving results that do not fit a byte
- fixed PointlessLoadBeforeReturn moving reads from before to after memory modification
- achieved and exceeded CC65 performance when doing 16-bit Eratosthenes sieve
2018-03-28 12:37:38 +02:00

76 lines
2.0 KiB
Markdown

# Change log
## Current version
* Added array initialization syntax with `for` (not yet finalized).
* Added `atascii` text codec.
* Fixed several bugs, most importantly invalid offsets for branching instructions.
* Other improvements.
## 0.2.2
* Allowed adding constant words to variable bytes without the zeropage pseudoregister.
* `-fzp-register` is now enabled by default, as the documentation has already been saying.
* Allowed more kinds of constants within variable and array initializers.
* Fixed several bugs.
* Other improvements.
## 0.2
* **Breaking change!** Renamed `inline` to `macro`.
* **Breaking change!** Added support for memory segments. Changed the platform definition file syntax.
* Added preliminary support for 65CE02, HuC6280 and 65816 processors.
* Added support for Famicom/NES and C64 with SuperCPU.
* Added new `-O1` optimization preset; old `-O1` became `-O2`, old `-O2` became `-O3` and so on.
* Added command line options for controlling the size-speed trade-offs.
* Added support for parameters for macros written in Millfork.
* Enabled calling macros with index expression parameters.
* Enabled calling macros from assembly.
* Added optimizer hints: `inline`, `noinline`, `register`.
* Added command line flags `--size`, `--fast`, `--blast-processing`.
* Removed command line flag `--detailed-flow`.
Detailed flow analysis was slow, broken, hard to maintain, and didn't even help that much.
* Added `*'=`, `nonet`, `hi` and `lo` operators.
* Added support for zeropage pseudoregisters, allowing for some operators work with more types of operands.
* Added return dispatch statements.
* Added `break` and `continue` statements.
* Allowed the `else if` combination (i.e. the `else` branch doesn't have to be in braces if it's just a single `if`-`else` statement).
* Added octal and quaternary literals.
* Fixed several allocation bugs.
* Fixed several optimization bugs.
* Fixed several C64 and C16 library bugs.
* Fixed several other bugs.
* Other improvements.
## 0.1
* Initial numbered version.