Skip to content
Snippets Groups Projects
Commit d7cc7527 authored by gerd's avatar gerd
Browse files

Break some vicious metacircles.

	* pcl/dfun.lisp (*standard-classes*, *standard-slot-locations*):
	New variables.
	(compute-standard-slot-locations, standard-slot-value)
	(standard-slot-value/gf, standard-slot-value/method)
	(standard-slot-value/eslotd, standard-slot-value/class)
	(maybe-update-standard-class-locations): New functions.
	(*cmv-stack*): New variable.
	(cache-miss-values-internal): Use it to detect vicious circles,
	and call break-vicious-metacircle.
	(break-vicious-metacircle, accesses-standard-class-slot-p)
	(find-standard-class-accessor-method): New functions.

	* pcl/std-class.lisp (update-slots): Call
	maybe-update-standard-class-locations.

	* pcl/fixup.lisp (toplevel): Call compute-standard-slot-locations.
parent 36c19961
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment