diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-01-01 11:11:02 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-01-01 11:20:54 -0800 |
commit | ce3518f362743d7a004f952358864748eecf8c0d (patch) | |
tree | cd9677d5d2653d34eeb3094796a50523bf94b66d /generic.mu | |
parent | a03b8aea543689d1fdb8c7b70ffdec9678833db6 (diff) | |
download | mu-ce3518f362743d7a004f952358864748eecf8c0d.tar.gz |
478 - snapshot while debugging chessboard
This took a couple of hours to track down. I had to shrink down to a 2x2 chessboard, isolate a half-move (just a square to clear) that triggered an error, then hard-code the half-move to make it non-interactive, then copy my changes over to the non-cursor version in chessboard.mu, then start debugging trace. And then I found I was using an 'index-address' rather than 'index' to go from a board to a file-address inside 'make-move'. And that was corrupting the array of file pointers. Things I wish I had to help me here: a) a type checker. b) more speed. Are lists slowing down super-linearly? need an arc profiler. c) a side channel for traces even when the program is in cursor mode. I do have that (hence the 'new-trace' before calling main), but for some reason it wasn't convenient. Just had to buckle down, I think. d) the right '#ifdef's to switch between hard-coded move and interactive move, text vs cursor mode, etc. e) just in general better curation of traces to easily see what's going on. But that's just a pipe dream.
Diffstat (limited to 'generic.mu')
0 files changed, 0 insertions, 0 deletions