From: Kaelin Colclasure
Subject: Stupid inferior lisp tricks
Date: 
Message-ID: <1rOF3.322$4z.37286@newsin1.ispchannel.com>
I apologize for not really doing my homework on this one, but I'm under
some time pressure and this whole line of inquiry really falls under the
"wouldn't it be neat if" category...

Is there a convenient way, using either Franz's ELI or the regular ILISP
mode, to have an inferior Lisp process hilite a range in an arbitrary
emacs buffer? And more generally, is there a handy source of information
on ELI/ILISP tips and tricks? (As in, more handy than trying to grok all
that source?)

I'd also be interested in a concise summary of the differences between
ELI and ILISP. Since I'm using Franz ACL, and ELI is supplied out of the
box, I haven't really looked at ILISP mode. Am I missing out?

-- Kaelin

From: Liam Healy
Subject: Re: Stupid inferior lisp tricks
Date: 
Message-ID: <513dw86o2k.fsf@corkie.nrl.navy.mil>
"Kaelin Colclasure" <······@everest.com> writes:

> I apologize for not really doing my homework on this one, but I'm under
> some time pressure and this whole line of inquiry really falls under the
> "wouldn't it be neat if" category...
> 
> Is there a convenient way, using either Franz's ELI or the regular ILISP
> mode, to have an inferior Lisp process hilite a range in an arbitrary
> emacs buffer? And more generally, is there a handy source of information
> on ELI/ILISP tips and tricks? (As in, more handy than trying to grok all
> that source?)
> 

You can communicate with (X)Emacs from ACL via lep::eval-in-emacs,
e.g.

#+allegro 
(defun ensure-xemacs-connection ()
  (unless lep::*connection*
    (error "Allegro does not have an established connection to XEmacs")))

#+allegro
(defun query-display ()
  "Get from XEmacs infomation about the window in which CL is running."
  (ensure-xemacs-connection)
  (lep::eval-in-emacs "(values (window-width 
                          (get-buffer-window (current-buffer) t)) 
                        (current-column) 
                        (face-width 'default))"))

Now, all you have to do is figure out the appropriate elisp to do what 
you want :-)


> I'd also be interested in a concise summary of the differences between
> ELI and ILISP. Since I'm using Franz ACL, and ELI is supplied out of the
> box, I haven't really looked at ILISP mode. Am I missing out?
> 
> -- Kaelin
> 

I'd like that too.  I used ILISP for a while, because I started on
CMUCL, but found it too troubled.  ELI seems a lot smoother (but for
use with ACL only).  Off the top of my head, here are things I like
about each:
 ILISP: uses comint mode, separates eval from compile so I can 
       easily do both from a buffer.  Does not stomp on elisp mode.
 ELI: uses ACL multiprocessing to make cleaner interaction,
     will start up additional listeners (though switching between them
     is clumsy), Composer interface.  And M-W,
     lisp-macroexpand-recursively calls clos::walk-form 
     to macroexpand everything!

There was an announcement about a new version of ILISP, but I haven't
tried it yet.

-- 
Liam Healy
··········@nrl.navy.mil
From: Marco Antoniotti
Subject: Re: Stupid inferior lisp tricks
Date: 
Message-ID: <lwu2on49db.fsf@copernico.parades.rm.cnr.it>
Liam Healy <··········@nrl.navy.mil> writes:

> > I'd also be interested in a concise summary of the differences between
> > ELI and ILISP. Since I'm using Franz ACL, and ELI is supplied out of the
> > box, I haven't really looked at ILISP mode. Am I missing out?
> > 
> > -- Kaelin
> > 
> 
> I'd like that too.  I used ILISP for a while, because I started on
> CMUCL, but found it too troubled.  ELI seems a lot smoother (but for
> use with ACL only).  Off the top of my head, here are things I like
> about each:
>  ILISP: uses comint mode, separates eval from compile so I can 
>        easily do both from a buffer.  Does not stomp on elisp mode.
>  ELI: uses ACL multiprocessing to make cleaner interaction,
>      will start up additional listeners (though switching between them
>      is clumsy), Composer interface.  And M-W,
>      lisp-macroexpand-recursively calls clos::walk-form 
>      to macroexpand everything!
> 
> There was an announcement about a new version of ILISP, but I haven't
> tried it yet.

The new ILISP version 5.9.1 (which, thanks to the stupidity of the
maintainer, still has a few very minor glitches) is available on
http://ilisp.cons.org and it containe many improvements.  It is not as
smooth as Franz ELI, but Harlequin users may like it better :)

On the ·····@CONS.ORG mailing list there was a posting calling to arms
to start an ILISP project on MP issues.  This is important because
several implementations (including CMUCL on x86) now provide MP.  If
anybodu is interested, that is probably the best forum.

Meanwhile the stupid maintainer should get his act together and set up
a CVS repository. :)

Cheers

-- 
Marco Antoniotti ===========================================
PARADES, Via San Pantaleo 66, I-00186 Rome, ITALY
tel. +39 - 06 68 10 03 17, fax. +39 - 06 68 80 79 26
http://www.parades.rm.cnr.it/~marcoxa
From: William Deakin
Subject: Re: Stupid inferior lisp tricks
Date: 
Message-ID: <37E8A0AD.B645A316@pindar.com>
--------------B65705A6822BB3917EE82E86
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Marco Antoniotti wrote:

> The new ILISP version 5.9.1 ... is available on http://ilisp.cons.org.

My apologies for not earlier thanking the maintainers for the ILISP 5.9.1
release. I was on holiday and did not catch the release notice. Again I am a
very satisfied customer and would like to reiterate my offer of upto 568ml of
'poison of preference' of all beverages below 8% (or commensurate alcoholic
content) to any person identifying themselves as having been involved in ilisp
project.

Cheers!

:) will

ps: You talk about MP issues. Pardon my ignorance, but what is MP? Member of
Parliament or Maris Piper? ;)



--------------B65705A6822BB3917EE82E86
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
Marco Antoniotti wrote:
<blockquote TYPE=CITE>The new ILISP version 5.9.1 ... is available on <a href="http://ilisp.cons.org">http://ilisp.cons.org.</a></blockquote>
My apologies for not earlier thanking the maintainers for the ILISP 5.9.1
release. I was on holiday and did not catch the release notice. Again I
am a very satisfied customer and would like to reiterate my offer of upto
568ml of 'poison of preference' of all beverages below 8% (or commensurate
alcoholic content) to any person identifying themselves as having been
involved in ilisp project.
<p>Cheers!
<p>:) will
<p>ps: You talk about MP issues. Pardon my ignorance, but what is MP? Member
of Parliament or Maris Piper? ;)
<br>&nbsp;
<br>&nbsp;</html>

--------------B65705A6822BB3917EE82E86--
From: Tim Bradshaw
Subject: Re: Stupid inferior lisp tricks
Date: 
Message-ID: <ey33dw7hx4s.fsf@lostwithiel.tfeb.org>
* William Deakin wrote:
> ps: You talk about MP issues. Pardon my ignorance, but what is MP? Member of
> Parliament or Maris Piper? ;)

Multiprocessing.  If you get an error (for instance) in a thread which
is not the one that is running the listener, it's basically rather
hard in ilisp to get to somewhere where you can type things at the
offending process.  ELI deals with this completely painlessly (but
only works for allegro of course).

--tim

Oh, here is a patch for hyperspec-naggum.el which makes it a little
smarter about finding symbols when for some reason you've typed
CL:DEFUN or something.  ilisp itself needs related patches so it can
spot CL:IN-PACKAGE to set the package, but I don't have those to hand.

(I may have already sent this to Marco and/or Erik, but it's not in
5.9.1).

--cut--
*** hyperspec-naggum.el~	Wed Sep  1 13:20:20 1999
--- hyperspec-naggum.el	Mon Sep  6 16:50:20 1999
***************
*** 64,69 ****
--- 64,73 ----
  information.  If you copy the HyperSpec to another location, customize the
  variable `common-lisp-hyperspec-root' to point to that location."
    (interactive (list (let ((symbol-at-point (thing-at-point 'symbol)))
+ 		       (if symbol-at-point
+ 			   (setq symbol-at-point 
+ 			     (replace-in-string symbol-at-point
+ 						"^\\(cl\\|common-lisp\\)::?" "")))
  		       (if (and symbol-at-point
  				(intern-soft (downcase symbol-at-point)
  					     common-lisp-hyperspec-symbols))
From: William Deakin
Subject: Re: Stupid inferior lisp tricks
Date: 
Message-ID: <37E9EE26.C4C98840@pindar.com>
Tim Bradshaw wrote:

> Multiprocessing.

Thanks. :)


> If you get an error (for instance) in a thread which is not the one that is running
> the listener, it's basically rather hard in ilisp to get to somewhere where you can
> type things at the offending process.

I would be interested in doing this. Some time. But I think it would be trying to
learn to run before getting the walking sorted out first. Maybe next week ;)


> ilisp itself needs related patches so it can spot CL:IN-PACKAGE to set the package,
> but I don't have those to hand.

I have had some problems along these lines. If you could find (post or whatever) these
patches it would be very kind.

Best Regards,

:) will
From: Marco Antoniotti
Subject: Re: Stupid inferior lisp tricks
Date: 
Message-ID: <lwpuz8zcp1.fsf@copernico.parades.rm.cnr.it>
William Deakin <·····@pindar.com> writes:

> Tim Bradshaw wrote:
> 
> > Multiprocessing.
> 
> Thanks. :)
> 
> 
> > If you get an error (for instance) in a thread which is not the one that is running
> > the listener, it's basically rather hard in ilisp to get to somewhere where you can
> > type things at the offending process.
> 
> I would be interested in doing this. Some time. But I think it would be trying to
> learn to run before getting the walking sorted out first. Maybe next week ;)
> 
> 
> > ilisp itself needs related patches so it can spot CL:IN-PACKAGE to set the package,
> > but I don't have those to hand.
> 
> I have had some problems along these lines. If you could find (post or whatever) these
> patches it would be very kind.
> 

Unless some buglet crept in between 5.9 and 5.9.1, ILISP already fixes
this.



-- 
Marco Antoniotti ===========================================
PARADES, Via San Pantaleo 66, I-00186 Rome, ITALY
tel. +39 - 06 68 10 03 17, fax. +39 - 06 68 80 79 26
http://www.parades.rm.cnr.it/~marcoxa
From: William Deakin
Subject: Re: Stupid inferior lisp tricks
Date: 
Message-ID: <37EB81D0.2E65C4C3@pindar.com>
Marco Antoniotti wrote:

> > I have had some problems along these lines. If you could find (post or whatever) these
> > patches it would be very kind.
>
> Unless some buglet crept in between 5.9 and 5.9.1, ILISP already fixes this.

I am confused. Tim seemed to be saying this wasn't fixed. You are saying it has. What do I
know?

Anyway, I have since found that what I was saying was based on an old (5.8 ILISP) SO as
(usual) I posted first and thought about it later. Soz.

Best Regards,

:) will

ps: If I had traced it as a problem I would have reported it to the mailing list first. So
sorry again about my ability to spread FUD about ILISP. To reiterate, I find ILISP rather
fine. :)
From: Tim Bradshaw
Subject: Re: Stupid inferior lisp tricks
Date: 
Message-ID: <ey3ogesh9ri.fsf@lostwithiel.tfeb.org>
* William Deakin wrote:

> I have had some problems along these lines. If you could find (post
> or whatever) these patches it would be very kind.

I think this ought to fix it, but I'm not sure it actually does.

--tim

--cut--
"diff -c ilisp-cl.el~ *" in /local/src/gnu/emacs-packages/ilisp/ilisp-5.9.1/

*** ilisp-cl.el~	Sun Sep 12 15:44:03 1999
--- ilisp-cl.el	Fri Sep 24 11:29:23 1999
***************
*** 60,66 ****
    ;; Changed the argument below from 'clisp to 'common-lisp.
    (ilisp-load-init 'common-lisp ilisp-cl-ilisp-init-file)
    (setq ilisp-package-regexp
! 	"^[ \t]*(in-package[ \t\n]*"
  
  	ilisp-package-command
  	"(let ((*package* *package*)) %s (package-name *package*))"
--- 60,66 ----
    ;; Changed the argument below from 'clisp to 'common-lisp.
    (ilisp-load-init 'common-lisp ilisp-cl-ilisp-init-file)
    (setq ilisp-package-regexp
! 	"^[ \t]*(\\(cl:\\|common-lisp:\\)?\in-package[ \t\n]*"
  
  	ilisp-package-command
  	"(let ((*package* *package*)) %s (package-name *package*))"
From: William Deakin
Subject: Re: Stupid inferior lisp tricks
Date: 
Message-ID: <37F08D91.ED70958E@pindar.com>
Tim Bradshaw wrote:

> * William Deakin wrote:
>
> > I have had some problems along these lines. If you could find (post
> > or whatever) these patches it would be very kind.
>
> I think this ought to fix it, but I'm not sure it actually does.
>
> --tim
>
> --cut--
> "diff -c ilisp-cl.el~ *" in /local/src/gnu/emacs-packages/ilisp/ilisp-5.9.1/
>
> *** ilisp-cl.el~        Sun Sep 12 15:44:03 1999
> --- ilisp-cl.el Fri Sep 24 11:29:23 1999
> ***************
> *** 60,66 ****
>     ;; Changed the argument below from 'clisp to 'common-lisp.
>     (ilisp-load-init 'common-lisp ilisp-cl-ilisp-init-file)
>     (setq ilisp-package-regexp
> !       "^[ \t]*(in-package[ \t\n]*"
>
>         ilisp-package-command
>         "(let ((*package* *package*)) %s (package-name *package*))"
> --- 60,66 ----
>     ;; Changed the argument below from 'clisp to 'common-lisp.
>     (ilisp-load-init 'common-lisp ilisp-cl-ilisp-init-file)
>     (setq ilisp-package-regexp
> !       "^[ \t]*(\\(cl:\\|common-lisp:\\)?\in-package[ \t\n]*"
>
>         ilisp-package-command
>         "(let ((*package* *package*)) %s (package-name *package*))"

Thanks tim.

:) will
From: Paolo Amoroso
Subject: Re: Stupid inferior lisp tricks
Date: 
Message-ID: <37eaf03d.716685@news.mclink.it>
On Tue, 21 Sep 1999 09:32:03 -0700, "Kaelin Colclasure"
<······@everest.com> wrote:

> I'd also be interested in a concise summary of the differences between
> ELI and ILISP. Since I'm using Franz ACL, and ELI is supplied out of the
> box, I haven't really looked at ILISP mode. Am I missing out?

I don't know about a summary of differences, but ILISP 5.9 and later comes
with a reference card by Valentino Kyriakides. As far as I know, it is not
up to date and covers ILISP 5.8. One of the main new user-visible features
since 5.8 is Jeffrey Mark Siskind's ILD uniform interface to Lisp
debuggers.

If you are familiar with ELI, it shouldn't take you too much to figure the
main differences. The most notable one is that ILISP is meant to support
several languages in the Lisp family including dialects of Common Lisp,
Scheme and XLisp.


Paolo
-- 
EncyCMUCLopedia * Extensive collection of CMU Common Lisp documentation
http://cvs2.cons.org:8000/cmucl/doc/EncyCMUCLopedia/