Hello Faré,
I had you and ASDF somewhat in mind when I wrote the original post.
On Tue, Dec 8, 2020 at 3:23 PM Faré fahree@gmail.com wrote:
I once used update-instance-for-redefined-class in ASDF, when I was trying to make a smooth upgrade from ASDF 1 to ASDF 2. The problem I found is that proper support for class redefinition requires the cooperation not only of the underlying object system, but also of all the parts of the implementation. It also requires more deterministic guarantees on what code gets inlined and what code doesn't get inlined.
Inlining, what a can or worms!
In ASDF 3, I threw the towel, and decided I could never get the OTHER parts of the system to cooperate (aka ASDF extensions for me, but also all the extensions to all existing programs being redefined), so I stopped using update-instance-for-redefined-class and instead went for deleting/overwriting/resetting functions, generic functions, and, in extreme cases, packages.
I followed from somewhat afar your "acharnement" in that area, with some bewilderment I'd say.
I would love to see languages with better support for redefinition. Like unison, or darklang. Unhappily, update-instance-for-redefined-class, while very cool, is *not enough*.
My point is that it is already too much.
But in relatively small systems that are long-running, with everyone cooperating, like they had in the 1980s, it was probably sufficient. And it is a marvelous tool. If you control the entire application and want images to survive code evolution.
In the late 1980s, all the Lisp Machines I touched were running ZetaLisp with Flavors as OO extension. And we were dropping CLTL1 version of Common Lisp on top of them before our application code. So, no CLOS. That came later...
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Taxonomy is the death of science — A. N. Whitehead
BTW, I just received the latest book by Denis Robert titled "LARRY ET MOI, comment BLACKROCK nous aime, nous surveille et nous détruit" and I dropped it on my pile of books to read soon. Thought you'd be amused to know, somehow.