[racket-dev] Line editing in the default REPL

From: Sam Tobin-Hochstadt (samth at cs.indiana.edu)
Date: Mon Nov 24 18:02:45 EST 2014

My understanding of the licensing issues is that if the code works with
both "libeditline" and "libreadline" then it isn't a derived work of
readline, and therefore could be licensed under the LGPL, like the rest of
Racket. Furthermore, turning use of "libeditline" on by default wouldn't be
linking to any GPL code, meaning that we could do that by default.

I think we should split up the `readline` collection into `readline` and
`readline/base` which would be what's compatible with editline, and have
xrepl in a `readline/base` mode on by default.


On Mon, Nov 24, 2014 at 5:57 PM, Leif Andersen <leif at leifandersen.net>

> Hello,
> When a user first starts the racket repl, it doesn't do line editing due
> to licensing issues. For example, it would be nice if the default editor
> would give the previous line if you hit up arrow, rather than writing
> "^[[A".
> I have now pointed out xrepl to several users, and every time they always
> ask me why it's not the default repl. Apparently the problem is that xrepl
> uses GNU Readline, which is GPL. However, Asumu found that if we replace
> requiring readline with BSD's libedit (not libeditline), everything works
> fine due to libedit's readline compatibility. It doesn't have all of the
> features of readline, but it does have some of the biggest ones (such as
> being able to use arrow keys)
> What do you all think of having `(require editline)` that works for the
> default repl, so that it gets line editing features. This would allow us to
> also keep `(require readline)` as before, maintaining backwards
> compatibility.
> If we do do this, this leads to the question of distribution. Would we
> want to include libedit inside Racket distributions, or should we just link
> to whatever the user has on their system?
> ~Leif Andersen
> _________________________
>   Racket Developers list:
>   http://lists.racket-lang.org/dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/dev/archive/attachments/20141124/7d16ad95/attachment.html>

Posted on the dev mailing list.