From: Roy Turner

Subject: Re: Linux version of ACL, 4.3 problems

Date: 1998-4-10 8:38

cjc9024> First, (subseq "HellO" 0 7) will return "HELLO<GARBAGe>"!!!
cjc9024> Where GARBAGE appears to be random noise in the computer's memory!
cjc9024> This should never happen in LISP!  You see stuff like this in C, but
cjc9024> Lisp's run time type checking should make sure this never occurs - it
cjc9024> should throw an error (see CLTL2)

This seems to be the case in ACL 4.3 for Unix, too.  This is all I see about
subseq in CLtL2 (the on-line version, that is -- students have borrowed all my copies!)

   [Function]
   subseq sequence start &optional end
   
   This returns the subsequence of sequence specified by start and end. subseq
   always allocates a new sequence for a result; it never shares storage with
   an old sequence. The result subsequence is always of the same type as the
   argument sequence.
   
   setf may be used with subseq to destructively replace a subsequence with a
   sequence of new values; see also replace.

You're probably referring to the section starting with:

   X3J13 voted in June 1988 (SUBSEQ-OUT-OF-BOUNDS) (and further clarification was
   voted in January 1989 (RANGE-OF-START-AND-END-PARAMETERS) ) to specify that
   these rules apply not only to all built-in functions that have keyword
   parameters named :start, :start1, :start2, :end, :end1, or :end2 but also to
   functions such as subseq that take required or optional parameters that are
   documented as being named start or end.

Does ACL 4.3 Unix/Linux implement all the X3J13 suggestions?  Are those part
of the ANSI standard?

cjc9024> function makes use of reduce with a :key argument, but ACL's reduce
cjc9024> does not know about the :key keyword argument!

Strange -- ACL 4.3 on Unix knows about it...

cjc9024> With both packages, I have all kinds of trouble getting them to make.
cjc9024> The odd thing is, STARSIM defines a read macro that controls whether
cjc9024> this code will be modified for ACL!  MAXIMA is written for Kyoto CL,
cjc9024> and not knowing the differneces between those two dialects, I can't
cjc9024> seem to convert it.  I plan on getting a real Symbolics account
cjc9024> to use over the net, so that I can make use of the #+Symbolics
cjc9024> read macros that are in those sources...

This sounds more like a problem with your software setup packages than with
ACL. 

cjc9024> The emacs lisp files that come with ACL are pretty nice, but the
cjc9024> indentation routines are not canonical; when doing an if form, the two
cjc9024> possible conditions that come after the test are not lined up
cjc9024> properly.  I see something similar with a setf with a multiple number
cjc9024> of setting forms.  And the annoying thing is, if I indent those 
cjc9024> forms in the style of Lisp, after I hit newline, the stupid emacslisp
cjc9024> program REINDENTS them the WRONG way!!!

You can customize this behavior to suit yourself.  See the documentation for
the function fi::lisp-indent-struct, in file fi-indent.el.

cjc9024> How do I open up more than one lisp listener?  After
cjc9024> fi:common-lisp
cjc9024> I can do
cjc9024> fi:open-lisp-listener
cjc9024> 
cjc9024> but any subsequent invocations of that command only bring me to the
cjc9024> second lisp listener.  I can't seem to get more than 2 at a time...

Give a numeric argument (M-3 M-x fi:open-lisp-listener) to get new ones; m-3
will open a third one, m-4...etc.

cjc9024> Other than that , I enjoy the product, and wish that I could afford
cjc9024> the full version.  I like the fact that I can use sockets and regexps
cjc9024> like I am used to with unix, shell scripting.  Very nice.  And the
cjc9024> threading concept is new to me, I realize there are threads in
cjc9024> Solaris, C, etc, but don't understand how to use them yet.  Is there a
cjc9024> guide to this or a tutorial somewhere?

I wish that we *could* buy the full product for Linux.  Maybe if enough of us
use the free version and request a (commercial) full version be made
available...

   --Roy
-------
Roy M. Turner, Assistant Professor () E-mail: <umcs.maine.edu at rmt>               
Department of Computer Science     () WWW:    http://cdps.umcs.maine.edu/~rmt  
5752 Neville Hall                  () Phone:  (207)581-3909                    
University of Maine                () FAX:    (207)581-4977                    
Orono, ME 04469-5752               () I use Lisp because I know C, C++, Ada,...