2018-08-06 03:35:43 +02:00
|
|
|
====
|
|
|
|
TODO
|
|
|
|
====
|
|
|
|
|
2020-03-22 23:50:15 +01:00
|
|
|
- fix manderbrot compiler issue
|
|
|
|
|
|
|
|
|
2020-03-14 21:09:34 +01:00
|
|
|
- remove statements after an exit() or return
|
|
|
|
- fix warnings about that unreachable code?
|
2020-03-22 15:12:26 +01:00
|
|
|
|
|
|
|
- add a compiler option to not include variable initialization code (useful if the program is expected to run only once, such as a game)
|
|
|
|
the program will then rely solely on the values as they are in memory at the time of program startup.
|
2020-03-22 00:43:46 +01:00
|
|
|
|
|
|
|
- create real assembly routines for the bresenham line and circle code
|
|
|
|
- also add assembly routines in c64scr for drawing rectangles (filled/open)
|
|
|
|
- add these routines for bitmap screen modes as well
|
|
|
|
- add a turtle example once we have highres drawing routines
|
2020-03-14 21:09:34 +01:00
|
|
|
|
2020-03-20 22:28:18 +01:00
|
|
|
- aliases for imported symbols for example perhaps '%alias print = c64scr.print'
|
2020-02-09 01:21:23 +01:00
|
|
|
- option to load library files from a directory instead of the embedded ones
|
2020-02-08 19:45:30 +01:00
|
|
|
|
|
|
|
|
2020-03-22 00:43:46 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
2019-01-24 02:43:25 +01:00
|
|
|
Memory Block Operations integrated in language?
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
2018-08-06 03:35:43 +02:00
|
|
|
|
2019-08-18 14:18:46 +02:00
|
|
|
array/string memory block operations?
|
2018-08-06 03:35:43 +02:00
|
|
|
|
2020-03-13 02:33:02 +01:00
|
|
|
- vector inc/dec/add/sub/mul/div...? (on array or string):
|
2020-03-14 15:19:03 +01:00
|
|
|
``arrayvar++ / arrayvar-- / arrayvar += 2 / arrayvar -= 2 / arrayvar *= 3 / arrayvar /= 3``
|
2020-03-13 02:33:02 +01:00
|
|
|
|
2019-08-18 14:18:46 +02:00
|
|
|
- array operations
|
|
|
|
copy (from another array with the same length), shift-N(left,right), rotate-N(left,right)
|
|
|
|
clear (set whole array to the given value, default 0)
|
2018-08-06 03:35:43 +02:00
|
|
|
|
2019-08-18 14:18:46 +02:00
|
|
|
- array operations ofcourse work identical on vars and on memory mapped vars of these types.
|
2018-08-06 03:35:43 +02:00
|
|
|
|
2019-08-18 14:18:46 +02:00
|
|
|
- strings: identical operations as on array.
|
2018-08-06 03:35:43 +02:00
|
|
|
|
2019-08-18 14:18:46 +02:00
|
|
|
For now, we have the ``memcopy`` and ``memset`` builtin functions.
|
2018-08-06 03:35:43 +02:00
|
|
|
|
2019-01-24 02:43:25 +01:00
|
|
|
|
|
|
|
More optimizations
|
|
|
|
^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
Add more compiler optimizations to the existing ones.
|
|
|
|
|
|
|
|
- on the language AST level
|
|
|
|
- on the final assembly source level
|
2019-01-29 23:32:43 +01:00
|
|
|
- can the parameter passing to subroutines be optimized to avoid copying?
|
2019-08-11 10:44:58 +02:00
|
|
|
- working subroutine inlining (taking care of vars and identifier refs to them)
|
2019-01-24 02:43:25 +01:00
|
|
|
|
|
|
|
Also some library routines and code patterns could perhaps be optimized further
|
|
|
|
|
2019-01-26 17:32:26 +01:00
|
|
|
|
2019-01-29 23:32:43 +01: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?
|
|
|
|
It could then even be moved into the zeropage to greatly reduce code size and slowness.
|
|
|
|
|
|
|
|
Or just move the LSB portion into a slab of the zeropage.
|
|
|
|
|
2019-08-11 18:21:15 +02:00
|
|
|
Allocate a fixed word in ZP that is the TOS so we can always operate on TOS directly
|
2019-01-29 23:48:26 +01:00
|
|
|
without having to to index into the stack?
|
|
|
|
|
|
|
|
|
2019-08-25 00:46:46 +02:00
|
|
|
Bugs
|
|
|
|
^^^^
|
2019-08-26 23:38:59 +02:00
|
|
|
Ofcourse there are still bugs to fix ;)
|
2019-08-25 00:46:46 +02:00
|
|
|
|
|
|
|
|
2019-01-27 19:14:58 +01:00
|
|
|
Misc
|
|
|
|
^^^^
|
|
|
|
|
2019-08-11 18:21:15 +02:00
|
|
|
Several ideas were discussed on my reddit post
|
|
|
|
https://www.reddit.com/r/programming/comments/alhj59/creating_a_programming_language_and_cross/
|
|
|
|
|