Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improvements: To-Do list #2

Open
14 tasks
DarkoGNU opened this issue Jan 12, 2022 · 0 comments
Open
14 tasks

Improvements: To-Do list #2

DarkoGNU opened this issue Jan 12, 2022 · 0 comments
Labels
documentation Improvements or additions to documentation enhancement New feature or request

Comments

@DarkoGNU
Copy link
Owner

DarkoGNU commented Jan 12, 2022

Performance

  • (Parser) Replace std::regex with something faster
  • (Parser, Executor) Transform division into multiplication
  • (Executor) Implement optional memoization for command arguments
  • (Parser, Executor) When parsing, identify procedures and arguments with numbers instead of std::string
  • (Executor) Use a better data structure than a map for procedures and their arguments. Preferentially something contiguous to reduce cache misses
  • (Turtle) Faster line drawing algorithm (reduce floating point operations)
  • Implement parallel Logo code execution

Code quality

  • Implement automated tests for individual classes and methods
  • Implement automated tests for the whole program (source -> image)
  • Run these tests with continuous integration

Debugging

  • Provide more data when throwing exceptions

Functionality

  • Implement loops
  • Support negative constants

Documentation

  • Provide documentation regarding the program usage

I won't personally fix most of these. I've spend a lot of time on SimpleLogo and I've learned a lot about C++, cross-platform development and continuous integration. For me, it's time to move on 🥇

@DarkoGNU DarkoGNU added documentation Improvements or additions to documentation enhancement New feature or request labels Jan 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant