PR# 13916 Add immutable attribute to config file library and cluster elements
Problem Report Summary
			
									Submitter:	prestoat2000 
								
								
									Category:	Compiler 
								
								
									Priority:	Medium 
								
							
									Date:	2008/01/25 
								
								
									Class:	Feature Request 
								
								
									Severity: Serious 
								
							
									Number:	13916 
								
								
									Release:	6.2.72001 
								
								
								
									
										Confidential: No 
									
								
							
									Status: Analyzed 
								
								
									Responsible:  
								
							
									Environment: Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.8.0.7) Gecko/20060915 Firefox/1.5.0.7
Solaris 9 on SPARC 
								
							
									Synopsis: Add immutable attribute to config file library and cluster elements 
								
							Description
										Library and cluster elements in a configuration file (.ecf file) currently have a readonly attribute, whose semantics is that the files cannot be modified from within estudio. Please consider adding an "immutable" boolean attribute, whose semantics would be that the files will not change, so the compiler does not have to examine those clusters for changed, new or deleted files/directories. This would speed up compiles quite a bit for me, for I often find that I am waiting for degree 6 to complete and I can see that it is looking through the vision2 and gobo libraries, where I know it won't find any changes. Ideally, this new attribute would also work correctly in the presence of incrementality. For example, change immutable from "true" to "false" and recompiling would allow compiler to look for changes in that cluster or library.
To Reproduce
										Problem Report Interactions
			I would like to see this addressed for 6.5, if possible. If a library is "readonly", it seems to me that the compiler can assume not only that the text of existing classes won't change but also that no new classes will be added to the library. It should therefore not search readonly libraries when looking for a missing class.
Here is an example of "readonly" not behaving the way I want.
I compiled a system with libraries
                <precompile name="vision2_pre" location="$ISE_PRECOMP\vision2.ecf" readonly="true"/>
                <library name="vision2" location="$ISE_LIBRARY\library\vision2\vision2.ecf" readonly="true"/>
                <library name="base" location="$ISE_LIBRARY\library\base\base.ecf" readonly="true"/>
                <library name="gobo" location="$ISE_LIBRARY\library\gobo\gobo.ecf" readonly="true"/>
Then I added a local `y: STRIN'.  When the compiler couldn't find STRIN
in my cluster, it proceeded to search all the vision2, base and gobo clusters
for it, but there is no chance it will be there since these libraries are
all readonly.  Meanwhile, I'm waiting for completion of a search that I know
won't find the missing class.
											
											
											Current readonly does what you are describing. The compiler will not look into readonly library/cluster for changes. And if you were to edit one file of a readonly library/cluster then changing readonly from true to false would trigger the recompilation. I guess I'm asking what you think readonly is doing and should not so that an immutable attribute make sense?