From 3568412f8f230774d0d11d7ed1c897424f95d3ef Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Thu, 11 Nov 2021 21:37:34 +0100 Subject: Rewritten from scratch. Welocme nissy 2.0! --- TODO.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 TODO.md (limited to 'TODO.md') diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..9873547 --- /dev/null +++ b/TODO.md @@ -0,0 +1,53 @@ +# TODO list + +This is a list of things that I would like to add or change at some point. +It's more of a personal reminder than anything else. + +## Commands + +### Commands that are available in nissy 1.0, but not in this version (yet): +* drcorners (solve corners after dr) +* search and improve non-optimal subsequences +* unniss (rewrite A (B) -> B' A) +* scramble [dr, corners only, edges only, htr, ...] +* save and edit algs as "variables" +* invert an alg + +### More steps for `solve` +* QTM optimal solving +* Block-building steps (cross, roux blocks, ...) +* Other common steps (LSE, ...) + +### Improvements to currently implemented commands +* solve should re-orient first if needed and not just give up if centers are off +* solve should try up to a small bound without loading the large pruning table +* drfin for HTR scrambles should try all 3 axis and pick the best solutions; + in general every step that automatically detects orientation should do this + +### New features +* cleanup: translate an alg to the standard HTM moveset + reorient at the end +* batch mode: read list of commands from stdin or a file and exec them + one after the other non-interactively +* configurability: add an `alias` command, run config file at startup + +## Distribution + +* make env.c compatible with Windows (and check that it works with + BSD/MacOS) +* better internal help page for each command (take it from man page) +* better man page +* find a better way to distribute the large tables, especially khuge + +## Technical stuff + +### Memory management +* fail gracefully when there is not enough memory to load a large table +* free tables from memory when not used +* optionally run in low-memory friendly version (no tables above a few Mb); + this can be useful e.g. for embedded devices + +### Structural changes +* client/server architecture: run a server process in the background so that + multiple client processess can send it queries and get results; this would + open up the door for a web-based version or graphical clients +* use multiple threads to search for solutions in parallel -- cgit v1.3