Exploring constraint programming with CL's Screamer
unwindprotect.com
unwindprotect.com
I have been using Common Lisp for about 38 years for research and building commercial products, and it is amazing how portable code is through the decades.
But for real work you should use a proper OR system and solver.
google ortools or COIN-OR for the C/C++ folks and horrible syntax, or any Prolog with solver backend or Picat are much better. Screamer with a proper solver backend would be really nice. Prolog solved it this way.
I'm curious what forms of bit rot this has to love with. And if not that much, why? Stability of what it was built on?
there are underspecified parts of the standard, notably the protocol around the object oriented system (common lisp object system meta-object protocol), and then there are parts that are not specified at all: networking, interactions with C libraries, unicode, threading. each runtime implements it in its own particular way. that means that the core of something like CLX, which is the network interface to X11, could've stayed exactly the same, but the networking outer layer had to be updated with the details of specific runtimes. in case of X11 that support goes all the way back to lisp machine Genera. on the other hand something like SSL support which will both rely on external C library and concern itself with network, will usually bit rot very rapidly.
We literally embraced refactoring as a thing you have to constantly do across the entire codebase.
arguing for stability in the face of other tradeoffs is an unpopular position. there are people who do it, but simply linking them from here will probably result in downvotes. i think arguments against systemd or in support of X11 come from people that want to escape the constant marginal benefit refactoring cycle.