2018-08-06 01:35:43 +00:00
====
TODO
====
2021-01-16 17:09:47 +00:00
- why is fibonacci example (and others) generating larger code now? fix?
2021-01-20 00:36:46 +00:00
- fix textelite saving (and loading?)
2021-01-19 18:25:23 +00:00
- allow uwordpointer[index] syntax -> transform into @(uwordpointer+index) allow index to be >255!
2021-01-19 23:28:54 +00:00
- add any2(), all2(), max2(), min2(), reverse2(), sum2(), sort2() that take (array, startindex, length) arguments
2021-01-20 00:57:40 +00:00
- optimize for loop iterations better to allow proper inx, cpx #value, bne loop instructions (like repeat loop)
- why is there a beq _prog8_label_2_repeatend at the end of repeat loops? seems unused
2021-01-19 23:28:54 +00:00
- optimize swap of two memread values with index, using the same pointer expression/variable, like swap(@(ptr+1), @(ptr+2))
2021-01-19 18:25:23 +00:00
2021-01-05 01:17:51 +00:00
- can we get rid of the --longOptionName command line options and only keep the short versions? https://github.com/Kotlin/kotlinx-cli/issues/50
2021-01-16 17:09:47 +00:00
- add a f_seek() routine for the Cx16 that uses its seek dos api?
2021-01-07 00:25:50 +00:00
- optimizer: detect variables that are written but never read - mark those as unused too and remove them, such as uword unused = memory("unused222", 20) - also remove the memory slab allocation
2021-01-19 23:28:54 +00:00
- add a compiler option to not remove unused subroutines. this allows for building library programs
2020-12-08 21:54:20 +00:00
- hoist all variable declarations up to the subroutine scope *before* even the constant folding takes place (to avoid undefined symbol errors when referring to a variable from another nested scope in the subroutine)
2020-08-22 15:13:23 +00:00
- make it possible to use cpu opcodes such as 'nop' as variable names by prefixing all asm vars with something such as '_'
2020-08-18 12:47:52 +00:00
- option to load the built-in library files from a directory instead of the embedded ones (for easier library development/debugging)
2021-01-19 18:25:23 +00:00
- c64: make the graphics.BITMAP_ADDRESS configurable
2020-11-10 21:44:48 +00:00
- some support for recursive subroutines?
- via %option recursive?: allocate all params and local vars on estack, don't allow nested subroutines, can begin by first not allowing any local variables just fixing the parameters
- Or via a special recursive call operation that copies the current values of all local vars (including arguments) to the stack, replaces the arguments, jsr subroutine, and after returning copy the stack back to the local variables
2020-10-22 21:41:16 +00:00
- get rid of all other TODO's in the code ;-)
2020-03-21 23:43:46 +00:00
2019-01-24 01:43:25 +00:00
More optimizations
^^^^^^^^^^^^^^^^^^
Add more compiler optimizations to the existing ones.
2020-10-02 20:37:52 +00:00
- further optimize assignment codegeneration, such as the following:
- binexpr splitting (beware self-referencing expressions and asm code ballooning though)
2020-03-24 21:37:42 +00:00
- more optimizations on the language AST level
- more optimizations on the final assembly source level
2019-01-24 01:43:25 +00:00
2019-01-26 16:32:26 +00:00
2019-01-29 22:32:43 +00:00
Eval stack redesign? (lot of work)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The eval stack is now a split lsb/msb stack using X as the stackpointer.
Is it easier/faster to just use a single page unsplit stack?
2020-05-14 21:59:02 +00:00
It could then even be moved into the zeropage to reduce code size and slowness.
2019-01-29 22:32:43 +00:00
Or just move the LSB portion into a slab of the zeropage.
2020-03-24 21:37:42 +00:00
Allocate a fixed word in ZP that is the Top Of Stack value so we can always operate on TOS directly
without having to index with X into the eval stack all the time?
2020-05-14 21:59:02 +00:00
This could GREATLY improve code size and speed for operations that work on just a single value.
2019-01-29 22:48:26 +00:00
2020-03-24 21:37:42 +00:00
Bug Fixing
^^^^^^^^^^
Ofcourse there are always bugs to fix ;)
2019-08-24 22:46:46 +00:00
2019-01-27 18:14:58 +00:00
Misc
^^^^
2019-08-11 16:21:15 +00:00
Several ideas were discussed on my reddit post
https://www.reddit.com/r/programming/comments/alhj59/creating_a_programming_language_and_cross/