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.



--
Marco Antoniotti, Associate Professor         tel. +39 - 02 64 48 79 01
DISCo, Università Milano Bicocca U14 2043 http://bimib.disco.unimib.it
Viale Sarca 336
I-20126 Milan (MI) ITALY