Does anyone have advice on how to debug scope-manipulating meta-programs? I'm not talking about the little 5 line example macros shown in the docs, but thousands of lines of meta-programming that intentionally manipulates binding, but sometimes apparently does it wrong.
Part of the problem is that I don't know of a way to unit test for (or specify with contracts) correct scopeyness. All my tests pass. When a program goes wrong it's large and complicated and I can't find a small counterexample. My current method for debugging is to combine `racket/trace` and `debug-scopes` to trace smelly parts of the code. I then sprinkle `syntax-local-introduce` until the output looks more reasonable. This makes me feel like setting fire to "sets of scopes" and using gensym. Also, it doesn't seem to be working. -- William J. Bowman Northeastern University College of Computer and Information Science -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
signature.asc
Description: PGP signature