Re: symbol resolution (was:EuCOM : Attn Matt : String Return Value)
- Posted by Matt Lewis <matthewwalkerlewis at g?a?l.com> Oct 14, 2007
- 874 views
CChris wrote: > > It looks like you are concerned with other types of clashs than I, but my > solution > also handles "yours". Also, I may be more concerned about what happens when > a library changes: the issues are subtly different, since they concern code > you didn't write and ideally should not modify. I don't see that your solution > helps much there - again, I have to read a complete description. I agree that my solution doesn't really deal with the encapsulation issue. That's not the point, and I don't believe that your solution really solves the issues at hand. The point is to fix the problem of using multiple libraries and having them conflict with each other. If two libraries export the same symbols, you still have the same problem. What happens when the library maintainer makes some changes, and the packaging directives don't keep up? Also, your solution seems to me to be overly complex, and difficult to maintain. When we get to encapsulation, I think I'd prefer something along the lines of an import vs include, where the globals "imported" don't go beyond the file that imported them. This way, if you need to keep stuff hidden, just import it. If you want to expose things, either put it in the main include, or use the standard include directive. It's possible that I just don't understand your proposal sufficiently. Please submit a modified set of files to demonstrate how you'd modify v3.1 to handle these files. The benefit of my proposal is that there is absolutely no new syntax, and it does it in an intuitively straightforward manner. I'm not really interested (in this discussion) to hear about how your solution encapsulates symbols. I'm interested in how we deal with multiple files that expose duplicate symbols, whether the original author wants them to be exposed or just used internally. Accept that the symbols are exposed to the program. It seems that your method puts a larger burden onto the programmer to resolve conflicts. My goal is to take what's already there (all those include statements) and to make full use of the information that they impart. Matt