Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!husc6!bu-cs!m2c!ulowell!page From: page@ulowell.UUCP Newsgroups: comp.sys.amiga Subject: Re: A shared library (mostly) in C Message-ID: <1358@ulowell.cs.ulowell.edu> Date: Mon, 8-Jun-87 15:10:59 EDT Article-I.D.: ulowell.1358 Posted: Mon Jun 8 15:10:59 1987 Date-Received: Wed, 10-Jun-87 06:59:58 EDT References: <10113@decwrl.DEC.COM> Reply-To: page@ulowell.cs.ulowell.edu (Bob Page) Organization: University of Lowell Lines: 31 Uh oh .. Now that we can write our own C libraries, how do we handle name conflicts? If I have (say) an "iff.library" that has an IFF read routine called "iffread" and you have a library for your application called "myapp.library" that also has a routine called "iffread", which one gets used, mine or yours, assuming you call OpenLibrary() on both libraries? This is not as trivial as it sounds. I think the reason everybody doesn't have shared C libraries is because C-A didn't document how do to them well, and I think THAT is because they didn't know how to handle conflicts in the name space. A better example is something like push(), that could occur in two libraries and do totally different things .. one that operates on a stack, the other that plays with window arrangement. This Open-Ended-ness of the Amiga operating system can be a can of worms. Witness potential problems with SetFunction (SetVector? Can never remember) or hot-key programs that all look for META-CTRL-ESC to do their thing. I'm not saying I want to get rid of the functionality - I just wish there were a way to arbitrate it. JimM has a package called "Commodities Exchange" that attempts to rectify the hot-keys problems; alas, it is not part of Exec now, and won't be universally accepted until it *is* part of it. Anyway, how do we avoid colliding function names in run-time libraries? I mean besides appending a "unique" string to the function name... ..Bob -- Bob Page, U of Lowell CS Dept. page@ulowell.{uucp,edu,csnet}