# What is the current rash status?

**URL:** <https://racket.discourse.group/t/what-is-the-current-rash-status/4355>\
**Category:** General\
**Tags:** shell-scripting, rash\
**Created:** [August 26, 2026, 8:56am UTC](https://racket.discourse.group/t/what-is-the-current-rash-status/4355 "2026-08-26T08:56:28Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![hnmdijkema](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/hnmdijkema/32/2629_2.png) [@hnmdijkema](https://racket.discourse.group/u/hnmdijkema)\
**Post date:** [August 26, 2026, 8:56am UTC](https://racket.discourse.group/t/what-is-the-current-rash-status/4355/1 "2026-08-26T08:56:28Z")

</div>

Hi all,

I’ve been working on some things like git commands and makefile functionality. This makes it possible to do a complete workflow from DrRacket.

Next I was looking for a way to use the racket REPL like a shell. I found rash; and it looks very promising. I created some Linux coreutils equivalent for rash for my Windows workplace. Next I moved on to my ssh terminal on my Linux server. Tried to start rash and stumbled on a readline ffi problem. As I understand it, racket has moved on to xrepl; but rash doesn’t seem to be this far.

Couple of questions:

- are any of you actively using rash?
- Does anyone know the current status of rash?

Thanks in advance for answers!

---

<div class="post-metadata">

**Author:** ![LiberalArtist](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/liberalartist/32/151_2.png) [@LiberalArtist](https://racket.discourse.group/u/LiberalArtist)\
**Post date:** [August 26, 2026, 10:44am UTC](https://racket.discourse.group/t/what-is-the-current-rash-status/4355/2 "2026-08-26T10:44:55Z")

</div>

> [@hnmdijkema](#):
>
> Tried to start rash and stumbled on a readline ffi problem.

What error did you see exactly? Do you have the Racket package `readline-gpl` installed? (It is not by default.)

On Linux, Racket normally expects the underlying shared library to installed by the operating system. By default, Racket uses BSD libedit: installing the Racket package `readline-gpl` makes it look for GNU libreadline instead. A system intended for interactive use will usually have these libraries installed for other reasons, but, if starting from a more minimal system, you might need to explicitly install one with your distro’s package manager.

Currently things may not fail as gracefully as they should if the system library is missing:

> <https://github.com/racket/readline-gpl/issues/6>
>
> In release testing for 9.3, this package is failing to build on arm64-linux. The… log is here:
> 
> https://plt.cs.northwestern.edu/release-pkg-build/server/built/test-fail/readline-gpl.txt
> 
> ... and currently ends with
> 
> \`\`\`
> raco test: (file "/home/root//user/.local/share/racket/9.2.900/pkgs/readline-gpl/info.rkt")
> raco test: (file "/home/root//user/.local/share/racket/9.2.900/pkgs/readline-gpl/private/readline-lib.rkt")
> readline-lib.rkt: racket test: #\<\<non-empty stderr
> ffi-lib: could not load foreign library
> path: libreadline.so.8
> system error: libreadline.so.8: cannot open shared object file: No such file or directory
> context...:
> /home/root/racket/collects/ffi/unsafe/private/ffi-lib.rkt:18:0: get-ffi-lib\*
> body of "/home/root/user/.local/share/racket/9.2.900/pkgs/readline-gpl/private/readline-lib.rkt"
> /home/root/racket/share/pkgs/compiler-lib/compiler/commands/test.rkt:98:2
> body of (submod "/home/root/racket/share/pkgs/compiler-lib/compiler/commands/test.rkt" process)
> body of top-level
> 
> non-empty stderr
> 1/ 0 /home/root//user/.local/share/racket/9.2.900/pkgs/readline-gpl/info.rkt
> 1 1 /home/root//user/.local/share/racket/9.2.900/pkgs/readline-gpl/private/readline-lib.rkt
> 1 test failures
> The time is now Sun, 19 Jul 2026 05:17:12 -0500
> 
> \`\`\`
> 
> I'm guessing that y'all just haven't added support for arm64 linux, yet?

> [@hnmdijkema](#):
>
> As I understand it, racket has moved on to xrepl; but rash doesn’t seem to be this far.

More precisely, `xrepl` is the high-level layer for the command line REPL that implements meta-commands like `,help` and `,enter`, and it is still in use. The change you are thinking of is that `xrepl` changed its default input mode to use the Racket `expeditor` library, which is derived from Chez Scheme and is S-expression–aware. But the `readline` input mode is still supported (see `,input`), as is using the Racket `readline` library directly (as Rash does). And again, the Racket `readline` library actually uses libedit unless specifically configured to use GNU Readline.

---

<div class="post-metadata">

**Author:** ![hnmdijkema](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/hnmdijkema/32/2629_2.png) [@hnmdijkema](https://racket.discourse.group/u/hnmdijkema)\
**Post date:** [August 26, 2026, 11:10am UTC](https://racket.discourse.group/t/what-is-the-current-rash-status/4355/3 "2026-08-26T11:10:02Z")

</div>

I installed `readline-gpl` with `raco pkg install readline-gpl`.

When I start racket with -l rash/repl, I still get some memory corruption?  
Do I need to do something specific?

```rash
~$ racket -l rash/repl

You can use the `raco docs` command to look up documentation for Racket functions and macros. Try running `raco docs rash`.
(To turn these hints off, run (current-repl-display-startup-hints? #f) in a rashrc file.)
13:07 /data/www/
invalid memory reference. Some debugging context lost
exit
(exit)
^C#(struct:exn:break user break #<continuation-mark-set> #<procedure>)
13:07 /data/www/
exit
(exit)
^C#(struct:exn:break user break #<continuation-mark-set> #<procedure>)
13:07 /data/www/
^C#(struct:exn:break user break #<continuation-mark-set> #<procedure>)
13:07 /data/www/
(exit)
^Z
[1]+ Gepauzeerd racket -l rash/repl
www-data@gilgad:~$ kill %1
www-data@gilgad:~$ fg
-bash: fg: taak is afgesloten

```

---

<div class="post-metadata">

**Author:** ![LiberalArtist](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/liberalartist/32/151_2.png) [@LiberalArtist](https://racket.discourse.group/u/LiberalArtist)\
**Post date:** [August 26, 2026, 11:55am UTC](https://racket.discourse.group/t/what-is-the-current-rash-status/4355/4 "2026-08-26T11:55:15Z")

</div>

> [@hnmdijkema](#):
>
> I installed `readline-gpl` with `raco pkg install readline-gpl`.

What happens if you uninstall `readline-gpl`? Does it work with libedit?

---

<div class="post-metadata">

**Author:** ![hnmdijkema](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/hnmdijkema/32/2629_2.png) [@hnmdijkema](https://racket.discourse.group/u/hnmdijkema)\
**Post date:** [August 27, 2026, 6:58am UTC](https://racket.discourse.group/t/what-is-the-current-rash-status/4355/5 "2026-08-27T06:58:48Z")

</div>

This is what happens if I remove readline-gpl again:

```scheme
~$ racket -l rash/repl -i
Welcome to Racket v9.1 [cs].
invalid memory reference. Some debugging context lost
  context...:
   body of "/usr/local/racket/share/pkgs/readline-lib/readline/pread.rkt"
>

```

---

<div class="post-metadata">

**Author:** ![shhyou](https://avatars.discourse-cdn.com/v4/letter/s/ccd318/32.png) [@shhyou](https://racket.discourse.group/u/shhyou)\
**Post date:** [August 27, 2026, 7:38am UTC](https://racket.discourse.group/t/what-is-the-current-rash-status/4355/6 "2026-08-27T07:38:55Z")

</div>

I wonder whether "remove" means `raco pkg uninstall readline-gpl`.

Searching for "readline" and "invalid memory reference" took me to this. Is libtermcap still in use? This looks like a stuck situation where building from Racket source is the only way to resolve the incompatibility:

> [@Racket crashes with "invalid memory reference"](https://racket.discourse.group/t/racket-crashes-with-invalid-memory-reference/2206/2):
>
> I think this is a problem with our strategy for creating a Racket distribution that runs on a wide range of Linux versions. Part of that involves statically linking to libtermcap, but old versions of libtermcap are not really compatible with newer versions of Linux. Specifically, it looks like the statically linked libtermcap interferes with initialization in libedit or libreadline, while Racket's default expeditor manages to side-step incompatibility in its initialization. I'm not sure at what…

---

<div class="post-metadata">

**Author:** ![joeld](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/joeld/32/38_2.png) [@joeld](https://racket.discourse.group/u/joeld)\
**Post date:** [August 27, 2026, 3:23pm UTC](https://racket.discourse.group/t/what-is-the-current-rash-status/4355/7 "2026-08-27T15:23:03Z")

</div>

> [@hnmdijkema](#):
>
> - Does anyone know the current status of rash?

To answer the question: the source is at [GitHub - willghatch/racket-rash: The Reckless Racket Shell · GitHub](https://github.com/willghatch/racket-rash) . From the activity levels there, it appears that it is not actively maintained by anyone at this time.
