Happy 10000th birthday, TXR!

https://www.kylheku.com/lurker/message/20250822.011956.4c72095e.en.html

Almost precisely half the age of Debian.

#TXRLang #Lisp #FOSS #OpenSource

Skill-Testing Question

Skill-Testing Question

RELNOTES - txr - TXR: A data munging language.

Pattern-matching non-memoized Ackermann sped up 54X by TXR Lisp's compiler vs naive tree interpreter:

https://plaster.tymoon.eu/v/7CJS0C47E#4896

#TXRLang #Lisp #Programming #Compilers

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.)

#TXRLang #Lisp #FOSS #Programming #Compilers #Optimization

RELNOTES - txr - TXR: A data munging language.

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

https://plaster.tymoon.eu/v/7A2AQ2A8A#4850

#TXRLang #Lisp #FOSS #Programming
#Compilers #Optimization

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.

#TXRLang #Lisp #Programming #FOSS

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

#TXRLang #Lisp #FOSS #OpenSource #Programming #Unix #Linux

RELNOTES - txr - TXR: A data munging language.

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.