In short, a lispy language now mature, first released in 2009.
ianjbutler 16 hours ago [-]
Do we want to call it mature or abandoned?
> TXR is relatively new: the project started in 2009.
kazinator 7 hours ago [-]
TXR is not abandoned. Though I have not published any commits in over a year, I am not unresponsive. There are not external issues being ignored.
Someone in the IRC channel reported that GNU Groff dropped support for PDF generation, which affects some makefile steps for doc generation. Affected downstream distros can work around that. Also a minor ./configure script issue: failure to detect int_max_t. Doesn't cause any actual problem; fixed it locally (unpublished).
The last couple of releases featured some important work: tail call optimization in the compiler/VM.
These days it is somehow hard to sit down and work on things like this because of how icky the world of computing has become lately. Getting a feel for how permanent of a thing this is.
Here is a log of unpublished commits over the latter half of 2025 and early 2026. Looks like I made some compiler fixes and improvements that are worth releasing. I see that I also scrapped the precedence demotion rule in the infix system in favor of new heuristics.
f6e52fd3b (HEAD -> master) configure: fix failure to detect int_max_t.
2ccd3143b configure: don't test for frexp or modf.
e639c14bf doc/tests: correction to quadratic-roots function.
c1df57975 struct: implement obj_struct_p via class check.
8df1b655b cobj/struct: devirtualize equality substitution.
dbc280857 structs: streamline special slot handling.
3662f241e streams: implement shutdown-stream.
77c99b74e streams: treat pid and handle independently in pipe_close.
741efcad8 streams: track input direction in pipe streams.
36ec87269 streams: add shutdown to strm_ops_init macro.
53b697951 socket: use new enum for shutdown constants.
469b6b947 streams: start of implementation of shutdown function.
8e2f03d31 getopts: New :usage clause in define-option-struct
daeb0e2c4 Nicer expression for flexible struct allocations.
9be8ce734 New function: hash-seq-map.
30ebc21ee New function: hash-seq-to.
e04e62fdd Vim: no need to specially treat macrolet and symacrolet.
9b0fc769c Clarify status of expander-only operators.
be8ada1fb infix: replace precedence demotion with prefix coordination
c72f7f3de infix: revise the precedence demotion rule.
00074cf43 compiler: tighten elim-renames.
a5d908edd tagbody: slight code rearrangement.
6c42d4d4d tagbody/prog: use sys:blk and static blocks.
44977153f compiler: bug: end instruction balance in bjmp handling
57dd07d5a compiler: fix broken sys:switch compilation.
46073a8ed compiler: new optimization for rename-like reg moves.
204d31699 compiler: bug: merge-jump-thunks: invalid block deletion.
27b4bf3ca (tag: txr-302, origin/master, origin/HEAD) Version 302.
In most of the history of the TXR project, it has been my predominant practice not to publish commits except at releases. I actually have a staging repo that is the upstream of all my local repos (in various virtual machines and whatnot). I rewrite history from time to time between these repos and the staging repo, like when a change made in one environment breaks something in another, requiring a fixup.
> TXR is relatively new: the project started in 2009.
Someone in the IRC channel reported that GNU Groff dropped support for PDF generation, which affects some makefile steps for doc generation. Affected downstream distros can work around that. Also a minor ./configure script issue: failure to detect int_max_t. Doesn't cause any actual problem; fixed it locally (unpublished).
The last couple of releases featured some important work: tail call optimization in the compiler/VM.
These days it is somehow hard to sit down and work on things like this because of how icky the world of computing has become lately. Getting a feel for how permanent of a thing this is.
Here is a log of unpublished commits over the latter half of 2025 and early 2026. Looks like I made some compiler fixes and improvements that are worth releasing. I see that I also scrapped the precedence demotion rule in the infix system in favor of new heuristics.
In most of the history of the TXR project, it has been my predominant practice not to publish commits except at releases. I actually have a staging repo that is the upstream of all my local repos (in various virtual machines and whatnot). I rewrite history from time to time between these repos and the staging repo, like when a change made in one environment breaks something in another, requiring a fixup.https://www.kylheku.com/cgit/txr