Compile-time and load-time occur during run-time. The run-time context of anything already executed is available to subsequent compile-time and load-time contexts. Of course, these then further affect the run-time context going forward.
While these "*-time"s are distinguished, they can be invoked and interplay arbitrarily, unlike most other languages. It's all fundamentally run-time, in contrast to those, especially when considering threaded environments where compilation and run-time execution can happen simultaneously.