diff options
Diffstat (limited to '')
| -rw-r--r-- | TODO.md | 53 |
1 files changed, 53 insertions, 0 deletions
| @@ -0,0 +1,53 @@ | |||
| 1 | # TODO list | ||
| 2 | |||
| 3 | This is a list of things that I would like to add or change at some point. | ||
| 4 | It's more of a personal reminder than anything else. | ||
| 5 | |||
| 6 | ## Commands | ||
| 7 | |||
| 8 | ### Commands that are available in nissy 1.0, but not in this version (yet): | ||
| 9 | * drcorners (solve corners after dr) | ||
| 10 | * search and improve non-optimal subsequences | ||
| 11 | * unniss (rewrite A (B) -> B' A) | ||
| 12 | * scramble [dr, corners only, edges only, htr, ...] | ||
| 13 | * save and edit algs as "variables" | ||
| 14 | * invert an alg | ||
| 15 | |||
| 16 | ### More steps for `solve` | ||
| 17 | * QTM optimal solving | ||
| 18 | * Block-building steps (cross, roux blocks, ...) | ||
| 19 | * Other common steps (LSE, ...) | ||
| 20 | |||
| 21 | ### Improvements to currently implemented commands | ||
| 22 | * solve should re-orient first if needed and not just give up if centers are off | ||
| 23 | * solve should try up to a small bound without loading the large pruning table | ||
| 24 | * drfin for HTR scrambles should try all 3 axis and pick the best solutions; | ||
| 25 | in general every step that automatically detects orientation should do this | ||
| 26 | |||
| 27 | ### New features | ||
| 28 | * cleanup: translate an alg to the standard HTM moveset + reorient at the end | ||
| 29 | * batch mode: read list of commands from stdin or a file and exec them | ||
| 30 | one after the other non-interactively | ||
| 31 | * configurability: add an `alias` command, run config file at startup | ||
| 32 | |||
| 33 | ## Distribution | ||
| 34 | |||
| 35 | * make env.c compatible with Windows (and check that it works with | ||
| 36 | BSD/MacOS) | ||
| 37 | * better internal help page for each command (take it from man page) | ||
| 38 | * better man page | ||
| 39 | * find a better way to distribute the large tables, especially khuge | ||
| 40 | |||
| 41 | ## Technical stuff | ||
| 42 | |||
| 43 | ### Memory management | ||
| 44 | * fail gracefully when there is not enough memory to load a large table | ||
| 45 | * free tables from memory when not used | ||
| 46 | * optionally run in low-memory friendly version (no tables above a few Mb); | ||
| 47 | this can be useful e.g. for embedded devices | ||
| 48 | |||
| 49 | ### Structural changes | ||
| 50 | * client/server architecture: run a server process in the background so that | ||
| 51 | multiple client processess can send it queries and get results; this would | ||
| 52 | open up the door for a web-based version or graphical clients | ||
| 53 | * use multiple threads to search for solutions in parallel | ||
