Hi
I used CHANGE-CLASS some time ago to ensure that I could read new data and reshape it. It was a much cleaner - and "built in" - solution than writing ad-hoc code which should eventually be "generalized".
I understand people get worked up about things they feel may be in their way of "efficient code".
But guys! The world I see from my perch is running on Python and R.
At the risk of sounding obnoxious (I am getting old; I can afford it :) ) there are other trees to bark on in the CL forest: mostly at the outskirts. Not that many at the core.
All the best
Marco
On Wed, Dec 9, 2020 at 9:10 AM Jean-Claude Beaudoin < jean.claude.beaudoin@gmail.com> wrote:
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.