I'm looking for a workflow, maybe someone can point me to a thread or a document.
I was developing a large module without actually putting it in a module. It is 7500 lines of code (counting every newline) and the test suite is about 700 lines. I arranged things so the module loads in about 2-3 seconds and the test suite runs the first time in about 20 seconds and subsequently in less than a second (or more if I reload some code) I had to restart very rarely. So for the majority of changes, I could reload one file and run the entire test suite in, maybe 1 to 8 seconds, occasionally longer Recently, I decided to depend on SymPy, which takes 20 seconds to load. Now, starting from zero and running my module's test suite is 45 seconds. I already have a single file MyModule.jl that includes all the other code. So now I wrap all the 'includes' inside a 'module' block in MyModule.jl. Now my workflow is so slow that for practical purposes, I can no longer work on the module. When I am working on core code, for every change I make. I have to restart and wait 45 seconds. I spent a few hours, now, and in the past, reading threads on workflows. I tried a few things, but no luck. I didn't try all the secret recipes. I don't understand how people get around the need to reload the entire module each time they make a change to it, and what the potential problems from doing this are. My test suite fails to run if I load the module twice. I spent some time trying to understand why. Maybe finding this problem is the only solution? Here are two possible solutions: 1. Fully qualify all identifiers in the module. Then, if I understand, I can reload pieces of the code. 2. Break the code into several modules, polluting the namespace at the module level