GCOOPE Version 1.0 July 24, 1994 Several last minute upgrades have been added to the GCOOPE system and do not appear in the documentation. There is a new kernel function defined in class.c. This function is cpyGMas, it is used to effectively rename a generic function in order to eliminate generic name conflicts and/or rename a generic function to reflect a new context meaning. This function does not affect the original generic function but rather adds a new generic function which uses a particular method of the original generic function. The prototype is: stat cpyGMas(object currentClassObjectHandle, generic newGenericFunctionName, object owningClassOfMethod, generic originalGenericName); Examples of its use can be seen in the RENGM macro given in gcoope10.h and in the class definitions Dynmem and Collect(ion). Another modification is to the Puts and Gets generic functions, while they perform similarly to the ANSI C library functions fputs/fgets they take/return String objects rather than character pointers. Puts will attempt to translate the passed object into a String object. In part because of the modifications to Puts and Gets, another new kernel function has been defined: bounceBack. object bounceBack(object,...); This function simply returns the first parameter, hence the name bounceBack. It is provided so that any attempt to translate an object into its own class type can perform successfully. In other words, g(asString)(anyStringObjectInstance) will return a String class object given by anyStringObjectInstance. This approach avoids the need for checks of class type in routines desiring type translation.