Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!decvax!decwrl!glacier!oliveb!3comvax!mykes From: mykes@3comvax.UUCP Newsgroups: net.micro.amiga Subject: Libraries Message-ID: <552@3comvax.UUCP> Date: Mon, 23-Jun-86 12:11:45 EDT Article-I.D.: 3comvax.552 Posted: Mon Jun 23 12:11:45 1986 Date-Received: Wed, 25-Jun-86 07:30:09 EDT Reply-To: mykes@3comvax.UUCP (Mike Schwartz) Organization: 3Com Corp; Mountain View, CA Lines: 35 Here is a suggestion for a product that I haven't seen yet for the Amiga, in case someone out there has the time to do it. Everyone typically thinks of a "library manager" as a program that builds/extracts/adds binary object modules to a collection of modules (the Library), which the linker can use to link with. However, the Amiga supports a different kind of library, which can be loaded and used by many programs at the same time (i.e. translator.library). These libraries are much more impressive and powerful than the standard libraries, yet it seems near impossible to make use of this power by simply generating new libraries as applications demand it. The problem is that these libraries are not 'C' oriented and have a lot of BCPL type of things in them. To me, it seems obvious that a librarian that allowed for the addition, removal, etc., of modules from LOADABLE libraries would radically change the way we develop programs and would not only make Amiga programs smaller (one copy of the library for all programs who use it, instead of each program having it's own copy of the required routines), but would also take more advantage of the Amiga's software design. So, what would such a librarian be used for? Well, let's see, if you put printf() and the rest of the Lattice library into a runnable library, evey 'C' program instantly becomes 10K shorter (or is it 15K:), which is significant when we all realize how short memory really is. Matt Dillon's CLI shell could do NEWCLI's as well, without requiring 30K+ (or however big it is now) for each copy. OK, so what is involved in making such a librarian? Well, at least there is the BCPL environment stuff that must be maintained (why not have a machine do this tedious work), as well as jump tables, linking in new modules, removing old modules, etc. Then there is the problem of letting the ROM Kernel know that there is a new library. Also, there might need to be more information kept about the library than the library allows for (and still is recognized as a library) - this stuff can be kept in a separate file with a special dot extension or something. And when the library maker is done, there is always a device maker to do...