I have little hope that commercial simulators will get that any time soon - it would have been there already. But I do use GHDL quite a bit, and I'm going to suggest this feature.
Interesting simulator this GHDL. They seam to be pretty proud of how fast it is. Any idea how much faster it actually is compared to the usual commercial tools (that come bundled with the vendors IDEs and such)?
I honestly cannot tell whether it's "faster" than the free ModelSim ME as provided by MicroSemi. I suppose that if a design was large enough to trigger the intentional slow-down in the free ModelSim then yes, ghdl would be obviously faster.
GHDL supports two modes. When it's said to be faster than most other simulators, it's for one of its modes: it can build an executable from a given VHDL design, and simulate it by running the executable. As it creates optimized code for a given simulation, it's much faster than conventional simulation. Another benefit of this mode is that, as it creates an executable using an ad-hoc compiler based on GCC, you can also perform code coverage analysis using 'gcov'.
GHDL also supports another mode: mcode, which simulates without building an executable first. It's significantly slower, and usually even slower than many commercial simulators which are multi-threaded. GHDL isn't.
I still mostly use the mcode mode because it's the most convenient one. But if I ever need to simulate very large designs for a very large number of cycles, then I can use the other mode.
The mcode mode is also much easier and faster to build. (If you want to build GHDL yourself.)
There are four reasons why I don't use ghdl:
1. It doesn't support mixed-language simulation. For whatever reason, many vendors do not provide VHDL models of their parts, only Verilog, so without mixed-language support I can't verify a design against a vendor model.
2. FPGA primitive models are still mostly written in ancient dialects of VHDL -- mostly VHDL 93 -- and ghdl doesn't allow mixing code analyzed as VHDL-2008 with previous versions. Synplify and Vivado have good support for VHDL-2008, and the features added to the language in that revision are quite useful, so I write all of my code to VHDL-2008 standards. But this means I can't use the vendor-supplied primitives models with ghdl.
Obviously, if you need Verilog or SV support, GHDL is not for you.
As to mixing VHDL standards, I don't think it's much of a problem. True that you can't mix standard versions, but, normally, if you enable VHDL-2008 support in GHDL, it shouldn't have issues compiling code written for older VHDL revisions. I have never run into an issue with this. If you have, could you give me an example of, for instance, VHDL-93 code that wouldn't pass using VHDL-2008 support?
3. ghdl would really benefit from a nice GUI-based project manager. Makefiles "work," but that's a lot of manual fiddling. ModelSim's, er, uh, model (or paradigm) works well: sources are listed, "simulation configurations" are listed, and it just works. I actually started to write a macOS program to do this sort of management but I got bogged down in all of that and I realized I had better things to do.
I personally don't care about having a GUI for this. But, if I'm not mistaken, Modelsim is also command-line based under the hood, and some people only use it on the command-line?
Point is, writing a GUI for GHDL shouldn't be much of a problem. Not sure there is enough interest for that out there though. Once you've written a couple Makefiles (or scripts, you don't even need a full-blown Makefile for GHDL), setting up a new simulation is just a matter of copying one and make a few modifications. I can usually do that faster than manually adding files in a GUI. YMMV of course.
4. The ghdl maintainers have tagged a release 1.0.0 but do not provide builds, and for the life of me I can't get the thing to build.
I'm not sure why. Version 0.37 was released with binaries for most supported plaforms. (0.37 is still perfectly usable, btw.) No binaries for v. 1.0. And some binaries for the nightly version, but no Windows binaries so far for it.
Building it is no issue though on Linux, or using MSYS2 on Windows. I routinely build the latest revision on both.
If that can help, here is the configuration I use for building it on MSYS2:
./configure --prefix=<directory where you want it installed> LDFLAGS=-static --enable-libghdl --enable-synth
and then:
make GNATMAKE="gnatmake -j2"
make install
On MSYS2, you need to have of course dev tools installed, GCC and ADA support for GCC.