2018-01-30 17:43:18 +01:00
|
|
|
# Change log
|
2018-01-30 17:38:32 +01:00
|
|
|
|
2018-07-01 19:07:12 +02:00
|
|
|
## Current version
|
|
|
|
|
2018-07-27 19:15:57 +02:00
|
|
|
* Almost complete support for the Zilog Z80, Intel 8080 and Sharp LR35902 microprocessors.
|
2018-07-02 00:31:47 +02:00
|
|
|
|
2018-07-07 01:11:53 +02:00
|
|
|
* A very incomplete support for NEC PC-88 and ZX Spectrum.
|
|
|
|
|
|
|
|
* Unified the syntax of commandline switches.
|
2018-07-02 00:31:47 +02:00
|
|
|
|
2018-07-12 01:23:38 +02:00
|
|
|
* Added aliases.
|
|
|
|
|
2018-07-20 22:46:53 +02:00
|
|
|
* Added enumeration types.
|
|
|
|
|
2018-07-12 18:30:35 +02:00
|
|
|
* Added preprocessor
|
|
|
|
|
2018-10-04 21:33:10 +02:00
|
|
|
* Added `align` keyword for choosing data and code alignment.
|
|
|
|
|
2018-07-07 00:58:44 +02:00
|
|
|
* Automatic selection of text encoding based on target platform.
|
|
|
|
|
2018-07-28 00:58:20 +02:00
|
|
|
* Text literals can be now used as expressions of type `pointer`.
|
|
|
|
|
|
|
|
* Extra `z` at the name of the encoding means that the string is zero-terminated.
|
|
|
|
|
|
|
|
* **Potentially breaking change!** Curly braces in text literals are now used for escape sequences.
|
|
|
|
|
2018-07-07 01:11:53 +02:00
|
|
|
* **Potentially breaking change!** `scr` now refers to the default screencodes as defined for the platform.
|
|
|
|
Code that uses both a custom platform definition and the `scr` encoding needs attention
|
|
|
|
(either change `scr` to `petscr` or add `screen_encoding=petscr` in the platform definition file).
|
|
|
|
|
2018-07-12 18:30:35 +02:00
|
|
|
* **Potentially breaking change!** Platform definitions now need appropriate feature definitions.
|
|
|
|
Code that uses a custom platform definitions will cause extra warnings until fixed.
|
|
|
|
|
2018-07-07 01:11:53 +02:00
|
|
|
* Optimizations for stack variables.
|
|
|
|
|
2018-08-06 19:29:09 +02:00
|
|
|
* Various code deduplication optimizations.
|
|
|
|
|
2018-07-07 01:11:53 +02:00
|
|
|
* Fixed emitting constant decimal expressions.
|
|
|
|
|
2018-07-25 00:04:00 +02:00
|
|
|
* Fixed decimal subtraction.
|
|
|
|
|
2018-08-03 16:21:02 +02:00
|
|
|
* Fixed signed comparison.
|
|
|
|
|
2018-07-07 01:11:53 +02:00
|
|
|
* Parser performance improvement.
|
|
|
|
|
2018-07-12 18:30:35 +02:00
|
|
|
* Standard libraries improvements.
|
|
|
|
|
2018-07-07 01:11:53 +02:00
|
|
|
* Other improvements.
|
|
|
|
|
2018-06-25 22:46:52 +02:00
|
|
|
## 0.3.0
|
2018-03-25 16:19:37 +02:00
|
|
|
|
2018-06-19 00:08:18 +02:00
|
|
|
* Finally faster than C.
|
|
|
|
|
2018-06-24 00:31:10 +02:00
|
|
|
* Licenced the standard library more permissively.
|
|
|
|
|
2018-06-09 00:18:21 +02:00
|
|
|
* Preliminary Atari 2600, BBC Micro and LUnix support.
|
2018-04-03 00:21:26 +02:00
|
|
|
|
2018-06-19 00:00:48 +02:00
|
|
|
* Added array initialization syntax with `for`.
|
2018-03-25 22:57:15 +02:00
|
|
|
|
2018-04-02 19:47:11 +02:00
|
|
|
* Added multiple new text codecs.
|
2018-03-26 00:01:29 +02:00
|
|
|
|
2018-04-02 21:06:18 +02:00
|
|
|
* Added character literals.
|
|
|
|
|
2018-06-04 16:24:18 +02:00
|
|
|
* Added 24-bit `farword` type.
|
|
|
|
|
2018-06-18 02:52:14 +02:00
|
|
|
* Special array layouts, e.g. `@word`.
|
|
|
|
|
2018-06-04 16:24:18 +02:00
|
|
|
* Fixed invalid offsets for branching instructions.
|
|
|
|
|
|
|
|
* Fixed incorrectly overlapping local variables.
|
|
|
|
|
|
|
|
* Fixed broken `downto` loops.
|
|
|
|
|
2018-06-19 00:00:48 +02:00
|
|
|
* Fixed broken comparisons between variables of different sizes.
|
|
|
|
|
2018-06-04 16:24:18 +02:00
|
|
|
* Fixed several other bugs.
|
2018-03-25 16:19:37 +02:00
|
|
|
|
2018-06-24 00:31:10 +02:00
|
|
|
* Tons of optimizer improvements.
|
|
|
|
|
2018-03-28 12:32:26 +02:00
|
|
|
* Other improvements.
|
|
|
|
|
2018-03-19 22:04:14 +01:00
|
|
|
## 0.2.2
|
2018-03-18 23:58:42 +01:00
|
|
|
|
|
|
|
* 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.
|
|
|
|
|
2018-03-19 21:58:51 +01:00
|
|
|
* Allowed more kinds of constants within variable and array initializers.
|
|
|
|
|
2018-03-18 23:58:42 +01:00
|
|
|
* Fixed several bugs.
|
|
|
|
|
|
|
|
* Other improvements.
|
|
|
|
|
2018-03-17 18:21:50 +01:00
|
|
|
## 0.2
|
2018-01-30 17:38:32 +01:00
|
|
|
|
2018-02-26 12:22:10 +01:00
|
|
|
* **Breaking change!** Renamed `inline` to `macro`.
|
2018-02-01 22:39:38 +01:00
|
|
|
|
2018-03-15 23:09:19 +01:00
|
|
|
* **Breaking change!** Added support for memory segments. Changed the platform definition file syntax.
|
|
|
|
|
2018-03-03 01:21:57 +01:00
|
|
|
* Added preliminary support for 65CE02, HuC6280 and 65816 processors.
|
|
|
|
|
2018-03-16 22:15:07 +01:00
|
|
|
* Added support for Famicom/NES and C64 with SuperCPU.
|
|
|
|
|
2018-02-26 17:49:55 +01:00
|
|
|
* Added new `-O1` optimization preset; old `-O1` became `-O2`, old `-O2` became `-O3` and so on.
|
|
|
|
|
2018-03-16 22:15:07 +01:00
|
|
|
* Added command line options for controlling the size-speed trade-offs.
|
|
|
|
|
2018-02-26 12:22:10 +01:00
|
|
|
* Added support for parameters for macros written in Millfork.
|
2018-02-01 22:39:38 +01:00
|
|
|
|
2018-02-26 01:20:50 +01:00
|
|
|
* Enabled calling macros with index expression parameters.
|
|
|
|
|
2018-03-10 22:05:10 +01:00
|
|
|
* Enabled calling macros from assembly.
|
|
|
|
|
2018-02-26 12:22:10 +01:00
|
|
|
* Added optimizer hints: `inline`, `noinline`, `register`.
|
|
|
|
|
|
|
|
* Added command line flags `--size`, `--fast`, `--blast-processing`.
|
2018-03-05 12:41:43 +01:00
|
|
|
|
|
|
|
* Removed command line flag `--detailed-flow`.
|
|
|
|
Detailed flow analysis was slow, broken, hard to maintain, and didn't even help that much.
|
2018-02-01 22:39:38 +01:00
|
|
|
|
2018-03-16 22:15:07 +01:00
|
|
|
* Added `*'=`, `nonet`, `hi` and `lo` operators.
|
2018-02-01 22:39:38 +01:00
|
|
|
|
2018-03-06 16:59:18 +01:00
|
|
|
* Added support for zeropage pseudoregisters, allowing for some operators work with more types of operands.
|
|
|
|
|
2018-01-30 17:38:32 +01:00
|
|
|
* Added return dispatch statements.
|
|
|
|
|
2018-03-03 21:34:12 +01:00
|
|
|
* Added `break` and `continue` statements.
|
|
|
|
|
2018-03-06 16:59:18 +01:00
|
|
|
* 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).
|
|
|
|
|
2018-03-03 01:21:57 +01:00
|
|
|
* Added octal and quaternary literals.
|
|
|
|
|
2018-03-10 22:05:10 +01:00
|
|
|
* Fixed several allocation bugs.
|
|
|
|
|
2018-01-30 17:38:32 +01:00
|
|
|
* Fixed several optimization bugs.
|
|
|
|
|
2018-03-16 22:15:07 +01:00
|
|
|
* Fixed several C64 and C16 library bugs.
|
2018-02-01 22:39:38 +01:00
|
|
|
|
2018-02-26 01:20:50 +01:00
|
|
|
* Fixed several other bugs.
|
|
|
|
|
|
|
|
* Other improvements.
|
2018-01-30 17:38:32 +01:00
|
|
|
|
|
|
|
## 0.1
|
|
|
|
|
|
|
|
* Initial numbered version.
|