From 7d9e48362cddc7eab6cfe5209beb96e93122414b Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Sun, 13 May 2018 14:01:44 -0400 Subject: [PATCH] Updated roadmap to reflect progress made --- Roadmap.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Roadmap.md b/Roadmap.md index 62649a7..206d8ab 100644 --- a/Roadmap.md +++ b/Roadmap.md @@ -4,7 +4,7 @@ This is where I keep track of what to do next ... ## Near-Term - A way to pass string literals as subroutine arguments -- Write a non-trivial app in EightBall to discover the pain points and the bugs that `unittest.8b` doesn't reveal +- Write a non-trivial app in EightBall to discover the pain points and the bugs that `unittest.8b` doesn't reveal. **I am writing a version of Tetris for Apple II lo-res mode.** - Try to squeeze the interpreter / compiler code down a bit to save memory. - There is duplication that can be eliminated by reorganizing the logic and/or factoring out into functions. For example, `getintvar()`/`setintvar()`. - Also, use preprocessor to allow compiler and/or interpreter to be disabled. @@ -23,8 +23,7 @@ This is where I keep track of what to do next ... - Need to think about how a module system should work - Which is more useful: dynamic loading of modules at runtime, or static linking? - Optimize virtual machine bytecodes, based on study of real code - - For example, it would be good to have an instruction to drop n bytes from call stack rather than repeated `POP`, `DROP` as the compiler currently does after subroutine return. - - Another easy case. Compiler often writes variable, and immediately needs it again. This can be optimized easily by adding some "store and preserve" VM instructions. + - Compiler often writes variable, and immediately needs it again. This can be optimized easily by adding some "store and preserve" VM instructions. Today: ```