-
-
Notifications
You must be signed in to change notification settings - Fork 81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Old architectures are not removed upon re-analysis #710
Comments
I'm not sure about unconditionally deleting the old architecture, although it probably deserves a warning at least. But I think this is actually a variant of #715: we shouldn't even be trying to load the old architecture. |
The use case here is to synchronize the state of the loaded library with the source files. So the contents of the library should be exactly the same as if we always had the second architecture name. Currently, there's no way to remove old architectures without removing the library and re-analyzing everything. I'm using |
The warning should be gone with the current master. At the moment there's no mapping from source files to the list of design units they (last) contained. We could probably add one, but it will require a bit of thought to avoid unexpected edge cases. I'll experiment a bit. |
This does not completely fix the problem. Consider instead when the architecture is in a separate file. The dependencies from
Imagine that we then rename the architecture, as above. This will touch
Now the new architecture is present, but There are two ways of fixing this:
Note that |
In 7.3.3 of the 2008 LRM it says
But fails to define "most recently". NVC used to do this based on the timestamp of the file in the library but now uses a sequence number which increments with each analysed architecture in the library. This seemed more robust but the implementation is quite complicated because it has to guarantee a total order even if multiple files are analysed concurrently. I'm not sure it's worth it.
That's because |
OK, well if that's the algorithm then there's no possibility of an incorrect selection here. I'm OK with adding a manual
Yeah. But IMO that warning is not really useful, since |
I think I'm ok with removal as long as it's not on by default. E.g. if you had to pass a Anyway I'll leave this open and investigate a bit more. |
Create a file like
Analyze it,
then rename the architecture to
test2
. Reanalyze and elaborate the fileThis causes the following warning:
However, we just reanalyzed
test.vhd
! I believe the correct fix is to clean up old architectures when they are removed from their source file.The text was updated successfully, but these errors were encountered: