[Ecls-list] Latest changes

Juan Jose Garcia-Ripoll worm at arrakis.es
Mon Dec 15 01:19:01 UTC 2003


Here are the latest things committed to CVS:

+ Julian Stecklina's patch to fix a problem with FORMAT.

+ The class reinitialization and redefinition protocol. It is now possible to 
redefine classes and to make instances obsolete. A sample session follows.

+ It is now possible to define a class with a superclass that has not yet been 
defined. These FORWARD-REFERENCED-CLASSES are automatically handled by the 
system, and they are converted to normal classes when the user supplies the 
right definition. Another sample session follows.

+ Fixes in many integer routines including GCD, LCM and LOGBITP.

Best regards,

	Juanjo

------------------------------------------------------------
[SESSION 1: Class redefinition]

> (defvar *class1* (defclass faa () (a b c)))
*CLASS1*
Top level.
> (setf *a* (make-instance 'faa))
#<a FAA>
Top level.
> (setf (slot-value *a* 'a) 2 (slot-value *a* 'b) 3)
3
Top level.
> (defvar *class2* (defclass faa () (c b)))
;;; Warning: Redefining class FAA
*CLASS2*
Top level.
> (slot-value *a* 'b)
3
Top level.
> (slot-exists-p *a* 'a)
NIL
Top level.
> (eq *class1* *class2*)
T
Top level.

------------------------------------------------------------
[SESSION 2: Forward referenced classes]

> (defclass faa (foo) (b c))
;;; Warning: Class FOO has been forward referenced.
#<The STANDARD-CLASS FAA>
Top level.
> (defclass foo () (a))
;;; Warning: Redefining class FOO
;;; Warning: Redefining class FAA
#<The STANDARD-CLASS FOO>
Top level.
> (make-instance 'faa)
#<a FAA>
Top level.
> (slot-exists-p * 'a)
T
Top level.





More information about the ecl-devel mailing list