Opened 14 years ago

Closed 14 years ago

Last modified 14 years ago

#24919 closed defect (wontfix)

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@…, easye
Port: sbcl

Description

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

Change History (5)

comment:1 Changed 14 years ago by jmroot (Joshua Root)

Cc: gwright@… waqar@… easieste@… added
Port: sbcl added

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

comment:2 in reply to:  description Changed 14 years ago by easye

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 14 years ago by easye

Resolution: wontfix
Status: newclosed

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 14 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 14 years ago by joaogeada (Joao Geada)

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.