Happy 10000th birthday, TXR!
https://www.kylheku.com/lurker/message/20250822.011956.4c72095e.en.html
Almost precisely half the age of Debian.
Happy 10000th birthday, TXR!
https://www.kylheku.com/lurker/message/20250822.011956.4c72095e.en.html
Almost precisely half the age of Debian.
"Macrodynamics" in TXR Lisp: piece of cake.
https://www.kylheku.com/lurker/message/20250806.020627.f0e78416.en.html
TXR 302 is out.
Release notes: https://www.kylheku.com/cgit/txr/tree/RELNOTES?id=txr-302
Binaries for a few platforms: https://www.kylheku.com/txr-downloads/txr-302
Pattern-matching non-memoized Ackermann sped up 54X by TXR Lisp's compiler vs naive tree interpreter:
Inter-function tail calls are working in TXR Lisp VM:
https://plaster.tymoon.eu/v/7C0BQ1KY2#4886
(Needs code clean-up, some optimizations, and probably knobs to control it separately from self tail calls. Will likely be released in 302.)
TXR 301 is out.
Release notes: https://www.kylheku.com/cgit/txr/tree/RELNOTES?id=txr-301
Binaries for a few platforms: https://www.kylheku.com/txr-downloads/txr-301
Well, that block work fell rather quickly. What a difference from the hair pulling exercise of the TCO work.
Demo of both. Let's consider this evaluation at the REPL:
1> (flow '(defun rec (x)
(if (minusp x)
(return-from rec (- x)))
(rec (pred x)))
compile-toplevel
disassemble)
Here is TXR 300 vs unreleased:
https://plaster.tymoon.eu/v/7A0CPDCJU#4849
Release 300 was pretty big, but the velocity continues.
Tail call optimization (for self calls) is working in the TXR Lisp compiler. Look for it in version 301.
One more planned item: turning statically obvious block returns into jumps.
TXR Lisp has dynamically scoped block tags. Given (block foo (bar)), then bar can do (return-from foo 42). This is not so in Common Lisp. In spite of this, the compiler already eliminates blocks, but not returns.
TXR 300 is out.
The first release of TXR was put out in August 2009. This is literally the 300th release.
It's a big one; over 150 commits.
Release notes: https://www.kylheku.com/cgit/txr/tree/RELNOTES?id=txr-300
Binaries for a few platforms: https://www.kylheku.com/txr-downloads/txr-300
The #Python world is making fuss over a new #TemplateString feature in whereby a "t" prefix on a string with interpolations produces not a string, but an object-capsule which contains information about the interpolated names, values and fixed strings.
A prototype of this in TXR Lisp took about 15 minutes in the form of a macro which wraps around a quasistring and analyzes its AST.
Should we have that as a #TXRLang feature?
There are better, non-stringy ways for making DSLs in Lisp, of course.