Re: Mysteries of unwind-protect

"wojciech.pasieka (as wojciech dot pasieka at ai dot pressiton dot com)" <[email protected]> (Adrian W. Pasieka)
Newsgroups gmane.lisp.lispworks.general
Message-ID <[email protected]>
1) They were Lisp MACHINES meant to conquer the world : ). The rest is about making the money.

----------------------------------
From: Tim Bradshaw <[email protected]>
Subject: Re: Mysteries of unwind-protect
Date: Thu, 15 Jan 2026 17:59:59 +0000

"But seriously: may be I am alone in this but I rather prefer talking to humans, not fancy
autocomplete machines."
---------------------
------------------------------------
From: Pascal Costanza <[email protected]>
Subject: Re: Mysteries of unwind-protect
Date: Thu, 15 Jan 2026 22:33:00

"There is very little value in posting LLM answers in a public discussion forum, because anybody who
wants to rely on LLM answers already knows where to find them. I would rather not see them here
either."
-------


2) Before asking LLMs, I checked the problem in the CMUCL compiler with (DEBUG 0).

(defun ts-tim-unwind ()
  (declare (optimize speed (safety 0) (debug 0)))
  (let ((v (make-array 1 :element-type 'double-float :initial-element 0.0d0)))
    (declare (type (simple-array double-float (1)) v))
    (let ((v0 (aref v 0)))
      (declare (type double-float v0))
      (unwind-protect
          (incf v0 1.0D0)
        (setf (aref v 0) v0))))
  (values))

(COMPILE 'ts-tim-unwind)

; In: LAMBDA NIL

;   (LET (#)
;     (DECLARE #)
;     (UNWIND-PROTECT # #))
; Note: Doing float to pointer coercion (cost 13), for:
;     The first argument of MAKE-VALUE-CELL.
;
;   (INCF V0 1.0d0)
; --> LET*
; ==>
;   (SETQ V0 #:G12)
; Note: Doing float to pointer coercion (cost 13), for:
;     The second argument of VALUE-CELL-SET.
;

The compiler output shows float boxing via value cells, even with debugging disabled.


NEXT -> GEMINI COMMENTS.
'Does (DEBUG 0) solve it? NO.

This proves that the boxing isn't just a courtesy for the debugger. It is a structural requirement
of how the compiler implements unwind-protect. Even if you tell the compiler you don't care about
debugging, it still uses a "Value Cell".'


3) The reason for sharing LLM replies is not to replace humans, but to protect Lisp quality.

https://x.com/JFPuget/status/2012079551644316040?s=20
"(Un)expected outcome of the rise of AI coding, open source getting flooded with low quality PR
generated with AI. We've recently seen a significant increase in contributions generated entirely
by Al tools. While some of these pull requests are formally  correct, most suffer from incomplete or
misleading context, misunderstanding of the codebase, and little to no follow-up engagement  from
their authors.

@tldraw
This week we're going to begin automatically closing pull requests from external contributors.
I hate this, sorry".


4) We should discuss LLM replies to measure how much Lisp slop they produce, and how to avoid it.
This requires human expertise, especially within this highly regarded Lisp community.

One possible solution is an official LispREPL+LLM, for example provided by LispWorks.
A paid service: let's say $10 per month, 10 000 users → $100 000 income per month.

Contributors to this system could be paid by LispWorks, once revenue materializes.
10 contributors: Martin provided 20%, another person 10% of expertise etc. = 100%.

The bet is simple: quality will beat LLM slop, by adding Lisp symbolic reasoning.
It is somewhat like a “Lisp time machine” — except this time, it pays the bills.



Kind Regards,
Adrian W. Pasieka
(unnamed) (message/rfc822, 6.3 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.