2 ms·
You have multiple ways to print the macros either as AST tree or even Nim code that can be copy-pasted to replace the macro: - dumpTree - lisprRepr - treeRep
by mratsim 6y ago
You have multiple ways to print the macros either as AST tree or even Nim code that can be copy-pasted to replace the macro:
- dumpTree
- lisprRepr
- treeRepr
- toStrLit
This means that for debugging you can generate your code. Replace the macro by regular code temporarily and understand what's wrong and then fix the macros.
I don't think I have a single library without macro but I try to keep them as reasonable as you can. But sometimes you need to give a Python feel (for example to provide a Numpy interface for a multidimensional array library) or you have to do code transformation (implementing async or multithreading as a library or autovectorizing high-performance computing code or implementing a GPU or Audio DSL) and there is no way around macros.