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

Reply via email to