home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mega CD-ROM 1
/
megacd_rom_1.zip
/
megacd_rom_1
/
CLIPPER
/
OCLIP.ZIP
/
HISTORY.TXT
next >
Wrap
Text File
|
1991-11-08
|
3KB
|
86 lines
╔══════════════════════════════════════════════════════════════════════╗
║ o:Clip ║
║ An Object Oriented Extension to Clipper 5.01 ║
║ (c) 1991 Peter M. Freese, CyberSoft ║
╚══════════════════════════════════════════════════════════════════════╝
Version 1.01 - November 8, 1991
Change History
[08/31/91] Version .90
Changed the syntax of the method definition to use '=' instead of comma
as a delineator between <MethodName> and <MethodUDF>. This was done to
allow greater compatability with Class(y) at the advice of Anton van
Straaten. This new syntax also allows multiple method definitions to be
comma separated, i.e., the follow is now legal:
CLASS Foo
METHOD New=FooNew, Bar=FooBar, Save, Debug
VAR ......
ENDCLASS
Removed the self() function. References to self() will now use the
QSELF() function contained in Plankton. This reduces the code overhead
by a slight amount, and should improve performance as well, since
QSELF() is a Plankton operator rather than an external function. I
would have used this function to begin with, but I was unaware of its
existance until it was pointed out to me by Anton.
Renamed some of the internal symbols to use 'IVAR' and 'SIVAR' instead
of 'OVAR' and 'SOVAR' to be consistent with current buzzwords.
There is still a problem with the debugger when using 'mangled' method
names (i.e., MethodUDF <> MethodName). The debugger insists that the
MethodName function does not exist. I'm still stumped on this one, but
I have a feeling the problem may be in one of the Clipper __Class
functions....
[09/01/91] Version .91
Eliminated the need to reference Self as a function - it is no longer
necessary to use parens. This was done to allow compatability with
Class(y) and SuperClass. This may require doing a global replace for
"self()" -> "self" on method functions, but other than that, should not
cause any problems.
Removed the macro call in __DefineClass for the parent class function
call. This call ensures that a new class's parent class definition
function has been called before the subclass's class definition
function. This is now accomplished via a code block, which should be
faster as well as require less overhead, but requires a little more
trickery on the preprocessor's part. Notice that an interim command
state is necessary in order to convert the ParentClass to a function and
then blockify.
[09/21/91] Version .92
Added the ability to call an overridden method. This is accomplished by
preceding the desired message with a "Parent" or "Super" message. For
example, to call an overridden New method, we would use:
obj:Parent:New
Messages should not be chained after calling an overridden method, since
they will not return a proper copy of self. This was done to allow
Methods to return values other than self if desired.
[10/15/91] Version 1.00
"Official release". Changes in this version were basically cosmetic,
and involved an expanded doc file, and cleaning up the code for
readability.
[11/08/91] Version 1.01
Modified the code to call an overridden parent method. This fixes an
infinite recursion bug that would occur if calling a parent method which
called a parent method.