Why do commercial SystemVerilog compilers have to re-compile everything every time? In this question, I'm referring only to non-synthesizable object-oriented SystemVerilog code.
For example, SystemVerilog UVM library is used by many projects. Every time I compile, my simulator parses and compiles the UVM library, including the 95% of it that is not needed for my simulation. Why can't I have a pre-compiled version ready to go that I can use for every simulation?
In contrast, other languages do not need to compile code that has already been compiled and did not change. For example:
- C++ compiles the
.cpp
files once, and then links them into the executable - Java compiles all files into
.class
files, which are dynamically loaded with a class loader during execution