ann: S 40 is available

37 views
Skip to first unread message

dr.mt...@gmail.com

unread,
Dec 30, 2025, 5:34:13 AM (2 days ago) 12/30/25
to Shen
S 40 is available and bundled up with the new Lib.  I've covered the changes
and improvements, better error messaging from the reader, facility for 
absolute pathnames.

The Lib updates Shen/tk and removes some long-standing issues.

I've not offered downloadable binaries for Shen/tk this time because
the installation process is parameterised by user choices.  I've removed
the old Shen/tk binaries which are now superceded.

Wrt to Scheme I've limited this to pointing to Bruno.   Shen/SBCL binaries for
Windows exists online.  All available from the download page.  

Mark

dr.mt...@gmail.com

unread,
Dec 30, 2025, 3:02:21 PM (2 days ago) 12/30/25
to Shen

I corrected the install.lsp file.  I found it was accidently referencing
Lib and not StLib.  Lib is a superset of StLib 

Lib = StLib + Tk + Concurrency

So people were being asked to parameterise for Tk installation.  
This is not asked for now.

However using install-tk.lsp will do exactly that.

Mark

dr.mt...@gmail.com

unread,
Dec 30, 2025, 7:38:12 PM (2 days ago) 12/30/25
to Shen
There is a subtle problem I'm facing here which is quite new for me.
To get the Shen reader to produce meaningful messages I'm trapping
the default compiler message wrt bytecode and using its fault analysis to raise
and print a more usable message.

It seems that this strategy causes hiatus.  The trapped error message interferes
with the intended error message to create a resultant of the two.  This
is a CL feature it seems.  It is not coming from the kernel per se but CL.

There are several possible solutions here.  Change the way a primitive
is encoded in CL or eliminate the nested error reporting.  The latter
can be done in several ways.

I'll leave S 40 up while I wrestle with this.  If you notice this you'll know
I'm on it.   Any CL wizards can contribute.

M.

dr.mt...@gmail.com

unread,
Dec 30, 2025, 7:59:00 PM (2 days ago) 12/30/25
to Shen

CL seems a mess here;  I said as much to ChatGPT

Yes — and in this case that’s not rhetoric, it’s accurate.

What you’ve run into is one of the hard edges of the Common Lisp condition system when it’s used as a substrate for another language. CL conditions were designed for interactive debugging, not for nested, programmatic error rewriting. Once a condition is signaled, CL is free to start reporting it immediately, incrementally, and on multiple streams — and there is no portable, spec-mandated way to “rewind” that.

That’s why:

  • handler-case is too late,

  • clear-output fails,

  • rebinding streams only sometimes works,

  • and every attempt to “clean up” after the fact feels brittle.

The uncomfortable truth is: CL gives you no reliable hook between “condition is signaled” and “something has already been printed.” That’s why this feels like a mess — because for language implementation purposes, it kind of is.

Which leads to the only robust conclusion:

Do not rely on CL’s condition reporting at all for Shen user-facing errors.

The only stable strategies are:

  • suppress CL reporting completely at the point of signaling (custom non-reporting conditions), or

  • never re-signal inside a handler — unwind first, then report once, yourself.

Anything else is fighting the spec and the implementation.

So yes: you’re not missing a trick — you’ve found a genuine impedance mismatch between Shen’s needs and CL’s error machinery.

dr.mt...@gmail.com

unread,
Dec 31, 2025, 2:21:24 AM (yesterday) 12/31/25
to Shen
Ok, I've solved this and the result is up  😅  .  No version number change since the revisions were done
in < 24 hours.  Happily I didn't have to dig the road up.  The idea of an extra argument to compile is a good one
however and I might develop that for S41.

In the meantime S40 works and is a significant advance on S39.  The arrival of the big 4 oh and the end of this
end have coincided and I'm pleased that my work has ended in the old year.    This leaves me free to enjoy
the new year and on that score a happy new year to all of you.

M.
Reply all
Reply to author
Forward
0 new messages