The library on all tools keeps the old entities around until you delete the library or delete specific items from the library (if the tool allows this).
As a practice, you should be deleting your library on a regular basis - for example before any regression run. The reasoning is below.
Before I go there, one thing that may make ActiveHDL easier to use is to use the OSVVM scripting environment (it is free, open source). The OSVVM scripting environment switches ActiveHDL to tcl mode and adds a layer of procedures in front of all the tool commands - this way we can create a uniform set of commands to create libraries, analyze (compile) designs, and run simulations that works on different simulators (currently ActiveHDL, VsimSA, RivieraPro, ModelSim, and QuestaSim). Scripts for GHDL are a work in progress and are working, but a challenge to use. You can find it at:
formatting link
I should note though currently they just use VHDL-2008 - which is ok for RTL and good for testbench.
You can use the OSVVM scripting environment to just run scripts, run interactively from the command line if you like this, or just to simplify the set up of your initial ActiveHDL environment. It also allows you to easily switch between the supported simulators - which hopefully we will be expanding some time later this year or early next.
Now, why do I need to delete libraries on a regular basis? One rule you may be aware of is that VHDL's default binding always selects the most recently analyzed (compiled) design unit (entity, architecture, ...). However the weasel words were left out. What it should say is default binding always selects the most recently successfully analyzed design unit.
This means that if you leave an old architecture laying around in your library as you run regressions and the current architecture fails to analyze, it will simulate the old one.
Hence, you need to delete your libraries before you make regression runs.
Cheers, Jim