[armedbear-devel] ABCL-0.25.0

Paul Bowyer pbowyer at olynet.com
Tue May 17 21:15:40 UTC 2011


On 05/16/2011 03:06 PM, Erik Huelsmann wrote:
> Hi Paul,
>
> On Mon, May 16, 2011 at 6:49 PM, Paul Bowyer<pbowyer at olynet.com>  wrote:
>> Hello:
>>
>> I'm very new to lisp and decided to try ABCL to see how it works. I have
>> some experience (not much though) with SBCL and CMUCL using Slime. I've also
>> tried ClozureCL, but it is a little more problematic.
>>
>> I built ABCL with:
>>      Netbeans-6.9 (ant-1.8.2)
>> and with:
>>      Netbeans-7.0 (ant-1.11.1)
>> as Java Free-Form Projects
>>
>> In both cases, ABCL built without noticeable problems.
> So far so good. It's expected, but good to hear people experience it that way.
>
>> I'm running PCLinuxOS, so I used the install instructions for Linux from:
>>   "http://common-lisp.net/project/armedbear/doc/abcl-install-with-java.html"
>> by copy/paste of "test.lisp" and running :
>>   "java -jar<mypath>/abcl.jar --load test.lisp" which also went without
>> problems.
> That's very nice. I'm impressed, actually, since it has been a while
> since that documentation has been reviewed. Thanks for confirming!
>
>> I then created a shell script (named "abcl") in my home directory by
>> copy/paste of your "/usr/bin/lisp" with the corrected "ABCL_JAR=" set for
>> the location of my newly built "abcl.jar" but when I run that script from a
>> Konsole shell, the "CL-USER(1):" prompt copies itself plus the character I
>> typed for each character I type at the prompt. As I type, the screen fills
>> with "CL-USER(1):" until I press the enter key and then the lisp form is
>> evaluated and the CL-USER(2): is now at the normal expected location at the
>> lower- left corner of the shell.
>>
>> I have "rlwrap 0.30" installed for use with ABCL.
> That's weird. However, I'm personally not using ABCL on Linux, most of
> the time; hopefully one of the other developers can chime in here. The
> Windows version of ABCL behaves as if it's wrapped by rlwrap (ie you
> can scroll through history at the REPL prompt).
>
>> Startup of ABCL:
>> ----------------------------------------------------------------------
>> Armed Bear Common Lisp 0.25.0
>> Java 1.6.0_24 Sun Microsystems Inc.
>> Java HotSpot(TM) Client VM
>> Low-level initialization completed in 0.746 seconds.
>> Startup completed in 2.318 seconds.
>> Type ":help" for a list of available commands.
>> ----------------------------------------------------------------------
> This looks good.
>
>> I tried using ABCL with Slime and it starts up OK, but it would not compile
>> and load some lisp files that work properly with SBCL and CMUCL.
> Files from Slime itself? Or files of yours, like the util.lisp
> attached? (or both?)
>
>>  From a Konsole shell using: 'java -jar "<mypath>/abcl.jar"' to run ABCL so
>> as to avoid the prompt problem, I tried:
>> :cload<mypath-to-files>/util.lisp and it went through the compile, but
>> choked at loading with the following:
>> ----------------------------------------------------------------------------------------------------------------------------------------
>> ; Compiling<mypath-to-files>/util.lisp ...
>> ; (IF (NOT #) ...)
>> ; (IN-PACKAGE "UTIL")
>> ; (DEFUN ELEMENTP ...)
>> ; (DEFTYPE ELEMENT ...)
>> ; (DEFUN LIST-DUP-EL-SRCH ...)
>> ; (DEFUN BAGP ...)
>> ; (DEFTYPE BAG ...)
>> ; Wrote<mypath-to-files>/util.abcl (0.644 seconds)
>> Error loading<mypath-to-files>/util.abcl at line 6 (offset 274)
>> #<THREAD "interpreter" {993730}>: Debugger invoked on condition of type
>> PACKAGE-ERROR
>>   The symbol COMMON-LISP-USER::ELEMENTP is not accessible in package UTIL.
>> Restarts:
>>   0: TOP-LEVEL Return to top level.
>> ----------------------------------------------------------------------------------------------------------------------------------------
>> This was one of the files that compiles and loads without problems with SBCL
>> or CMUCL. ClozureCL will compile and load this file from Slime if I coax it
>> through the process, but it takes more effort than SBCL or CMUCL.
>>
>> I have attached the source for this file if it is needed. It is just some
>> code built by following (kind of) some common lisp tutorial instructions.
> Well, I do understand why the error is being generated. The problem is
> that the symbol "ELEMENTP" which you're exporting in the EVAL-WHEN if
> the package already exists (which it does, because it was created in
> the compile phase, so LOAD running the EXPORT form) is a symbol in the
> package which was the current package when you called COMPILE-FILE.
> (common-lisp-user, which is the startup default).
>
> Since the COMMON-LISP-USER package isn't used by the UTIL package
> [there's no (:use :common-lisp-user) or (use-package
> :common-lisp-user)] and the symbols ELEMENTP, etc are also not
> explicitly imported, the symbols you're passing to EXPORT are not
> accessible within the context of the UTIL package.
>
> ABCL is generating this error, because you cannot EXPORT what's not there.
>
>
> See http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun_export.html
> for more info on EXPORT.
>
>
> How to solve this issue then? You could put the EXPORT form after the
> IN-PACKAGE form.
>
> HTH,
>
>
> Erik.
>
Hi Erik:

I fiddled some more with my lisp code in util.lisp and discovered the 
solution that works for all of my lisp dialects. There's probably a 
better way yet to do what I'm doing, but this works for me (see 
attachment). Evidently ABCL and CCL have similar characteristics. SBCL 
and CMUCL allow my original coding to work properly for some reason.

  I was just trying to eliminate the necessity of deleting the util 
package (and others) as I went through the tutorial process where I had 
to compile/load several times to get something working correctly.

I'm noticing a problem with ABCL and Slime.

When I use the comma char in the Slime REPL to get to the command entry 
portion of the Emacs window and type "quit" I don't see a "connection 
closed" message.

When I continue on to quit Emacs with C-x C-c, I'm faced with "Active 
processes exist; kill them and exit anyway? (yes or no)" and a buffer 
named *Process List* showing:
Proc          Status   Buffer        Command
----          ------   ------        -------
SLIME Lisp    open      *cl-connection*    (network stream connection to 
127.0.0.1)
inferior-lisp run      *inferior-lisp*    /home/pfb/abcl

All I do is answer "yes" to the
"Active processes exist; kill them and exit anyway?
  and Emacs exits, but it's different than what occurs with my other 
lisp dialects.

Is there something I can change/set in my Slime configuration that will 
eliminate this?

Paul



-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: util.lisp
URL: <https://mailman.common-lisp.net/pipermail/armedbear-devel/attachments/20110517/2efe6880/attachment.ksh>


More information about the armedbear-devel mailing list