Difference between revisions of "Transient Attributes"
(→Validity Rule) |
(→Rationale of validity rule) |
||
Line 15: | Line 15: | ||
If the type did not have a default value (which is the case for attached types), then upon retrieval the volatile attribute would be Void which is against void-safety. | If the type did not have a default value (which is the case for attached types), then upon retrieval the volatile attribute would be Void which is against void-safety. | ||
− | For simplicity and backward compatibility of `basic_store' which does a memory copy of the object to disk, it would be quite complicated to implement when expanded are | + | For simplicity and backward compatibility of `basic_store' which does a memory copy of the object to disk, it would be quite complicated to implement when user expanded are marked volatile. We prefer our users to use SED once it supports expanded which will easily support the notion of volatile expanded attributes. |
Revision as of 13:47, 23 June 2009
For storable purposes, it makes sense that some attributes of objects are not stored to disk. We call them volatile attribute and currently are specified using a note clause:
field: detachable X note option: volatile attribute end
Validity Rule
An attribute can be marked `volatile' if and only if its type has a default value and is not a user defined expanded type.
Rationale of validity rule
If the type did not have a default value (which is the case for attached types), then upon retrieval the volatile attribute would be Void which is against void-safety.
For simplicity and backward compatibility of `basic_store' which does a memory copy of the object to disk, it would be quite complicated to implement when user expanded are marked volatile. We prefer our users to use SED once it supports expanded which will easily support the notion of volatile expanded attributes.