2018-08-06 01:35:43 +00:00
|
|
|
====
|
|
|
|
TODO
|
|
|
|
====
|
|
|
|
|
2019-01-24 01:43:25 +00:00
|
|
|
Memory Block Operations integrated in language?
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
2018-08-06 01:35:43 +00:00
|
|
|
|
2019-01-24 01:43:25 +00:00
|
|
|
@todo list,string memory block operations?
|
2018-08-06 01:35:43 +00:00
|
|
|
|
|
|
|
- list operations (whole list, individual element)
|
|
|
|
operations: set, get, copy (from another list with the same length), shift-N(left,right), rotate-N(left,right)
|
|
|
|
clear (set whole list to the given value, default 0)
|
|
|
|
|
2018-10-30 19:29:03 +00:00
|
|
|
- list operations ofcourse work identical on vars and on memory mapped vars of these types.
|
2018-08-06 01:35:43 +00:00
|
|
|
|
|
|
|
- strings: identical operations as on lists.
|
|
|
|
|
|
|
|
these should call (or emit inline) optimized pieces of assembly code, so they run as fast as possible
|
|
|
|
|
2019-01-24 01:43:25 +00:00
|
|
|
For now, we have the ``memcopy`` and ``memset`` builtin functions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
More optimizations
|
|
|
|
^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
Add more compiler optimizations to the existing ones.
|
|
|
|
|
|
|
|
- on the language AST level
|
|
|
|
- on the StackVM intermediate code level
|
|
|
|
- on the final assembly source level
|
|
|
|
|
|
|
|
|
|
|
|
Also some library routines and code patterns could perhaps be optimized further
|
|
|
|
|
2019-01-26 16:32:26 +00:00
|
|
|
|
|
|
|
Should use the zeropage for variables
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
- Variables should be allocated in the zeropage as long as it has space.
|
|
|
|
- add some sort of ``zp`` modifier keyword on vardecls to force them into zeropage?
|
|
|
|
|
2019-01-27 18:14:58 +00:00
|
|
|
|
|
|
|
Misc
|
|
|
|
^^^^
|
|
|
|
|
|
|
|
- sqrt() should have integer implementation as well, instead of relying on float SQRT for all argument types
|
|
|
|
- code generation for POW instruction
|
|
|
|
|