commit 6dc6d1004393b7c093a3aef7456af67662d56fee
parent fcb3ac9b02c3ed150fbf6d539613510cc83627ea
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date:   Mon, 16 Jan 2023 18:47:50 +0100
Refined comments for solve rework
Diffstat:
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/TODO/2.1.md b/TODO/2.1.md
@@ -2,9 +2,22 @@
 
 ## Rework solver
 
-* Split solve in solve_coord, solve_generic (and maybe solve_singlethread, see
-  notes about build options).
-* Add a void * extradata to DfsArg.
+### Architecture
+
+* Nail down the theory first
+* One generic solve module that does not depend on anything else,
+  not even on cube if possible
+* The generic file includes the logic for branching and calls functions
+  provided as parameters to move the cube and check the status etc...
+* This includes the logic for single/multithreading (simplify if compiled
+  with N_THREADS = 1 or whatever this option is going to be)
+* The data representing the cube is a void pointer
+* Move two-step solve to a different module
+* Each other solver (solve coord, solve fst, solve multistep)
+  should go in a separate module
+
+### Other practicalities
+
 * remove cube from dfsarg? (i still need to save the scramble somewhere,
   but I really only use it in dfs_niss)
 * Re-work prepare_step process for solve_generic (nxopt table is special).