*** * $Source: /usr/home/landis/gum/RCS/README,v $ * $Revision: 1.0 $ $Date: 1995/06/12 21:34:34 $ * This is the home directory for GUM (Generic Universal M). Last Update: 12-Jun-95 (This file) Known Configurations that work (with Version 0 Revision 1.0) : o Linux 1.1.52 gcc 2.5.8 (with /usr/include/sys/queue.h from gcc 2.6+) o Linux 1.2.8 gcc 2.6.3 License: ... . Copyright (c) 1995 . The Regents of the University of California. All rights reserved. . . This code is derived from software contributed to UC Davis by a . research team under the leadership of Dick Walters (Professor, Dept . of Computer Science, University of California, Davis). . . Redistribution and use in source and binary forms, with or without . modification, are permitted provided that the following conditions . are met: . 1. Redistributions of source code must retain the above copyright . notice, this list of conditions and the following disclaimer. . 2. Redistributions in binary form must reproduce the above copyright . notice, this list of conditions and the following disclaimer in the . documentation and/or other materials provided with the distribution. . 3. All advertising materials mentioning features or use of this software . must display the following acknowledgement: . This product includes software developed by the University of . California, Davis and its contributors. . 4. Neither the name of the University nor the names of its contributors . may be used to endorse or promote products derived from this software . without specific prior written permission. . . THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND . ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE . IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE . ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE . FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL . DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS . OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) . HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT . LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY . OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF . SUCH DAMAGE. . Current Status: o The format of this file is still in the "formative" stages. The goal is to have something of a fixed form, presented in a quick to read form. Comments are welcome (but may be heeded slowly). o Until some feedback is received, a decision was made (by a committee of one) that no additional user documentation (of the c2m interface) would be written at this time. Rather, it was felt, that an initial FAQ and other supporting information was more important at this time. o Started the FAQ (This release). o Found a bug (during stress testing - see Bugs) which was introduced by the "prefix" routine, which promised to do some key compression. The first thing done was to remove the specification of the "prefix" routine (which was optional). When this "fixed" the problem, that ended the investigation. o Doing some stress testing. Am loading, dumping, reloading ("on top" of existing) some globals in the 100MB (DSM %GTI format) size range. So far, working pretty well. Small globals (9MB DSM %GTI format) loaded on a Zeos 486-DX-50 w/16MB 53ns RAM, SCSI disk in under 6 minutes (resulting global is about 18% larger than the %GTI format file). Not too bad. If someone has some "real globals" (several GB's for example) it would be interesting to hear what the performance of the dbopen(3) global handler is. o Refined the build and distribution management a bit. Recent Major Events (reverse order) > 95-Jun-12. GUM 0.1.0 95-Jun-05. GUM 0.0.0 Initial Release. Looking For: 1. Interested participants (contact walters@tiger.cs.ucdavis.edu). 2. Some specifications for "standard M utilities". It would be nice it these could be put into a form that could be submitted to the MDC so that the standard can provide the same breadth of support enjoyed (mixed blessing) by the POSIX and X/Open standards. 3. If you have some good ideas for M utilities, then after writing the spec (#2 above), get after writing the utility and contributing it. If you only have access to a commercial version of M, get it working there. If only C, then do a C version of it (especially if it is a utility related to doing things with and to globals, routines are a bit premature from the GUM perspective ;-). 4. Bindings from the c2m interface to other programming languages. (This is from c2m toward the "user program", see c2m.h for where). There have been suggestions of C++, Smalltalk and Objective-C. Any others? Any takers? 5. If anyone has another global handler (and I know of atleast one written in C++) and wants to have it supported by "gleem", start to get your handler working through the c2m interface (go ahead and "hard-wire" it the same way the dbopen(3) was hard-wired (see gum/src/gbl/c2m.c). One of the next items is to complete the model for the "global handler interface", or "ghi.h". Once that is in place, adding support for a wide variety of global handler implement- ations should be very straight forward. Next Steps: 1. Refine the utilities a bit (they are ETA 0.2.0 (Jun 19) pretty embarassing at this stage, BUT they *do* work, and that was the intention! 2. Reorganize some source code to make it ETA 0.2.0 (Jun 19) easier to use, and more general. Remove redundant copies of common routines. 3. Begin building the 'global manager', gleem. ETA 0.3.0 Have the "driver" switch table model in place for other global handlers. 4. An OMI-95 to DSM "proof of concept" global ETA 0.4.0 handler and DSM server (via TCP/IP, using the DSM TCPCHAN implementation). Done Steps 1. Some WWW URL's to GUM. ETA Deferred. 2. Initial programmer documentation (beyond what is in the header files, which is pretty complete). ETA Deferred. 3. Begin FAQ. ETA Release 0.1.0 Previous Status: o Initial release of a C API to a global handler. The initial release was placed in thie directory on 05-Jun-95, and is expected to be updated with an initial pass at some programmer reference documentation during the week of 05-Jun-95 to 09-Jun-95. o Until the documentation is ready, it is expected that a C programmer can use the documentation in the c2m.h include file, and build off of the examples in the utl/ and qa/ directory. o Lock is not implemented, but all other functions are expected to work. o This release is *not* refined, build process is *VERY* "alpha". o For those looking at source code, the qa/ directory sources (especially x*.c) are very quick hacks that were used to debug this initial version. There is duplication of several routines, which are scheduled to be redone and migrated to another library. This is very early code. o Exploratory probes: indicated by funky comments, remain in the code. The reader is asked to be patient with me. Rather than remove them, the probes are left in place and indicate (for the world to see ;-) where I had my difficulties, or where I "dropped some crumbs" along the way. Once the dbopen() global handler stabilizes (post-gleem), these will likely be removed. Revision History. 95-Jun-07. GUM 0.1.0 A bug fix and the FAQ plus some other info. 95-Jun-05. GUM 0.0.0 Initial release, gum-0.0.tgz and gum-0-0.zip. 95-Jun-03. Created ftp://tiger.cs.ucdavis.edu/pub/gum, and posted this README. End of ftp://tiger.cs.ucdavis.edu/pub/gum/README.