[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug in constructors in Franz



In certain cases, constructors can signal strange, hard to reproduce
errors in Franz Common Lisp.  These errors are caused by a strange
interaction with funcallable instances in that port.

The following code patches this problem.  A subsequent fix may use
another solution, but this one works fine for now.

;from construct.lisp
(defmethod install-lazy-constructor-installer ((constructor constructor))
  (let ((class (constructor-class constructor)))
    (set-constructor-code constructor
			  #'(lambda (&rest args)
			      (multiple-value-bind (code type)
				  (compute-constructor-code class constructor)
				(prog1 (apply code args)
				       (set-constructor-code constructor
							     code
							     type))))
			  'lazy)))
-------