New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #24919 (closed defect: wontfix)

Opened 3 years ago

Last modified 3 years ago

SBCL - Does not include readline support

Reported by: perhje@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 1.8.2
Keywords: Cc: gwright@…, waqar@…, easieste@…
Port: sbcl

Description

The Macports version of SBCL does not support readline. Makes interactive usage somewhat painful.

Change History

comment:1 Changed 3 years ago by jmr@…

  • Cc gwright@…, waqar@…, easieste@… added
  • Port set to sbcl

Please remember to fill in the Port field and cc the maintainers.

comment:2 in reply to: ↑ description Changed 3 years ago by easieste@…

Replying to perhje@…:

The Macports version of SBCL does not support readline. Makes interactive usage somewhat painful.

I suggest the use of lang/slime for any serious interactive use.

comment:3 Changed 3 years ago by easieste@…

  • Status changed from new to closed
  • Resolution set to wontfix

Or use sysutils/rlwrap.

Upon investigation, SBCL has no support in its distribution for compiling with readline, instead its developers would probably point to SLIME and/or rlwrap as I have done.

Therefore, I am marking this as "wontfix". I am open to arguments or patches if someone wishes to make them.

comment:4 Changed 3 years ago by perhje@…

Fair enough. I checked on the SBCL mailing lists, and found the following incantations that should solve the problem too. But unfortunately the linedit install will not work (craps out during compilation) but I'm not sure that's a MacPorts issue.

(require :asdf-install) (asdf-install:install :linedit) ;first-time installation only (require :linedit) ;if already installed (linedit:install-repl)

comment:5 Changed 3 years ago by joao@…

This is not a port problem, or even a sbcl issue. It is all on how each individual user wants to customize his working environment. I personally do not use linedit as I dislike its deep and complex dependency chain. Instead I use 'sb-readline, which also integrates readline into the read loop.

To install, download the latest version of sb-readline.tar.gz (look on http://www.cliki.net/sb-readline ). You'll need to untar it, and it the sb-readline.lisp file and replace:

(eval-when (:compile-toplevel :load-toplevel :execute)
  (load-1-foreign "/lib/libncurses.so")
  (load-1-foreign "/lib/libreadline.so"))

with

(eval-when (:compile-toplevel :load-toplevel :execute)
  (load-shared-object "/opt/local/lib/libncurses.dylib")
  (load-shared-object "/opt/local/lib/libreadline.dylib"))

to make it MacPorts compatible. Then tar everything back up and proceed with the install as follows:

(require :asdf)
(require :asdf-install)
(asdf-install:install "sb-readline.tgz")

Then to use it, this is what I have on my $HOME/.sbclrc file:

(when (interactive-stream-p *terminal-io*)
    (require :asdf)
    (require :sb-readline))

Note: See TracTickets for help on using tickets.