From: Lars Bj�nnes
Subject: CL and (X)Emacs
Date: 
Message-ID: <m3btcnz4dh.fsf@enterprise.gdpm.no>
I've been fiddling around with Lisp sometime now, using ACL 5.0
for Linux and the ELI-package with XEmacs 21.1,

However, I'm by no means an Emacs expert, nor a guru in Lisp, and
thus have some questions:

How do you organize your source (*.lisp) files in Emacs? Do you load 
the files manually into the Emacs buffers, use some kind of project-
management package or do you just never quit Emacs? :-)

Other hints or tips that a newbie could use? 

-- 
Lars

From: thi
Subject: Re: CL and (X)Emacs
Date: 
Message-ID: <m2rn1w7i1ox.fsf@netcom9.netcom.com>
······@gdpm.no (Lars Bj�nnes) writes:

> How do you organize your source (*.lisp) files in Emacs? Do you load 
> the files manually into the Emacs buffers, use some kind of project-
> management package or do you just never quit Emacs? :-)

you have to quit emacs when logging out.

thi
From: Bernhard Pfahringer
Subject: Re: CL and (X)Emacs
Date: 
Message-ID: <7oal7h$3kke$1@www.univie.ac.at>
In article <···············@netcom9.netcom.com>, thi  <···@netcom.com> wrote:
>······@gdpm.no (Lars Bj�nnes) writes:
>
>> How do you organize your source (*.lisp) files in Emacs? Do you load 
>> the files manually into the Emacs buffers, use some kind of project-
>> management package or do you just never quit Emacs? :-)
>
>you have to quit emacs when logging out.
>
>thi

But I never log out, except for holidays or when the memory leaks
of the Xserver have eaten up all swap space.

One of the advantages of having a lot of files open in Emacs
is the fact that completion has got more source to search;
which comes in handy for me who likes long names but is a slow
typist.

Bernhard
-- 
--------------------------------------------------------------------------
Bernhard Pfahringer
Austrian Research Institute for  http://www.ai.univie.ac.at/~bernhard/
Artificial Intelligence          ········@ai.univie.ac.at 
From: Tim Bradshaw
Subject: Re: CL and (X)Emacs
Date: 
Message-ID: <ey37lnbkqzp.fsf@lostwithiel.tfeb.org>
* thi  wrote:
> you have to quit emacs when logging out.

You log out?  How pass\'e!
From: thi
Subject: Re: CL and (X)Emacs
Date: 
Message-ID: <m2rlnbqfrck.fsf@netcom9.netcom.com>
Tim Bradshaw <···@tfeb.org> writes:

> You log out?  How pass\'e!

not locally, but some remote sites discourage use of screen(1).
c'est la vie.

thi
From: Pierre R. Mai
Subject: Re: CL and (X)Emacs
Date: 
Message-ID: <87so5z2k3z.fsf@orion.dent.isdn.cs.tu-berlin.de>
thi <···@netcom.com> writes:

> ······@gdpm.no (Lars Bjønnes) writes:
> 
> > How do you organize your source (*.lisp) files in Emacs? Do you load 
> > the files manually into the Emacs buffers, use some kind of project-
> > management package or do you just never quit Emacs? :-)
> 
> you have to quit emacs when logging out.

But I never log out... ;)

Regs, Pierre.

-- 
Pierre Mai <····@acm.org>         PGP and GPG keys at your nearest Keyserver
  "One smaller motivation which, in part, stems from altruism is Microsoft-
   bashing." [Microsoft memo, see http://www.opensource.org/halloween1.html]
From: Steve Gonedes
Subject: Re: CL and (X)Emacs
Date: 
Message-ID: <m2lnbqkfg3.fsf@KludgeUnix.com>
······@gdpm.no (Lars Bj�nnes) writes:

< I've been fiddling around with Lisp sometime now, using ACL 5.0
< for Linux and the ELI-package with XEmacs 21.1,
< 
< However, I'm by no means an Emacs expert, nor a guru in Lisp, and
< thus have some questions:
< 
< How do you organize your source (*.lisp) files in Emacs? Do you load 
< the files manually into the Emacs buffers, use some kind of project-
< management package or do you just never quit Emacs? :-)
< 
< Other hints or tips that a newbie could use? 

I'm not sure if I understand what you are trying to do. I usually
don't organize my lisp files but I suppose you could use C-x d 
(M-x dired).

Or do you mean load/compile/inspect source files? Have you looked at
the defsystem facility?

I'm curious as to how, or in what way, you would like emacs to
organize your project.
From: Jochen Schneider
Subject: Re: CL and (X)Emacs
Date: 
Message-ID: <uwvvamusg.fsf@yod.cs.uni-magdeburg.de>
Steve Gonedes <········@worldnet.att.net> writes:

> I'm curious as to how, or in what way, you would like emacs to
> organize your project.

Well, in IDEs like Visual Studio or the CodeWarrior you have a project
file along with the source and object files which knows which files
belong to the project. If you open the project, the source files that
were previously open in that project get opened again. Then there is
also something like a tags file which stores where a symbol was
defined and referenced (look at etags or the oobrowser under
http://www.beopen.com).

You can also tell emacs to preserve its state between sessions, look
at "Saving Emacs Sessions" on the main Info page. I don't know how
much it really saves.

I'm not really using Emacs for development. What do you people do,
except never logging out and using make only to hold the sources
together?

	Jochen
From: Pierre R. Mai
Subject: Re: CL and (X)Emacs
Date: 
Message-ID: <87hfme2pz0.fsf@orion.dent.isdn.cs.tu-berlin.de>
Jochen Schneider <·····@isg.cs.uni-magdeburg.de> writes:

> Well, in IDEs like Visual Studio or the CodeWarrior you have a project
> file along with the source and object files which knows which files
> belong to the project. If you open the project, the source files that
> were previously open in that project get opened again. Then there is
> also something like a tags file which stores where a symbol was
> defined and referenced (look at etags or the oobrowser under
> http://www.beopen.com).
> 
> You can also tell emacs to preserve its state between sessions, look
> at "Saving Emacs Sessions" on the main Info page. I don't know how
> much it really saves.
> 
> I'm not really using Emacs for development. What do you people do,
> except never logging out and using make only to hold the sources
> together?

You have to seperate the two or three things concerned:  Project
definition and building, editor session persistence, and source code
browsing.  The fact that most IDEs through all of this together in one 
way or another makes them less useful to me, since things most often
don't overlap completely:  I tend to edit and view files not belonging 
to the project or belonging to other projects quite often.  When
browsing you will often want to incorporate source from underlying
and built-in libraries and other projects.  And you might want to
exclude certain sets of source, since they might be part of exclusive
subsystems, only one of which is included in any shipped system.

With regards to session persistence, I find that trying to interpolate
what is useful the next time from that which was around the last time
is not a very helpful approach, unless I was interrupted in the middle
of some task, which should be avoided anyway, since most of the state
doesn't reside in the editor session, but in my head, and this isn't
restored perfectly.  But finding out what to bring up when resuming
work seems like an AI-complete task, anyway.

Personally, I use:

- Mark Kantrowitz's defsystem for building/dependency management.
  IMHO make doesn't really work well with C's development model in
  "complex" cases, but it definitely makes things ugly with CL.  And
  you can't reuse the information you put in a Makefile for other
  things (unless you stay in Make), whereas it's easy to use
  defsystems information for things like regression testing,
  reporting, documentation checking, metering, etc.

- I either never log out, anyway, or use Emacs' recent files or session
  management feature or dired, or frequently, I just reopen the files I
  need manually.  This has the added benefit of de-cluttering my buffers
  every other month... ;) I also find that most IDEs aren't very good at
  working on different projects and foreign code simultaneously.

- For browsing, I've used tags, ILISP's or ELI's support for finding
  relevant files and browsing, BeOpen's OO-Browser, Harlequin's
  built-in browsers, grep, and a couple of home-built things.  But
  most of the time, I find that I use these things like I use
  debuggers: Rarely.  Most of the time, I find that I'm better at
  finding things on my own, though sometimes they can be a really big
  help.  But this probably stems from the fact that I learned and
  practiced programming in environments where such "luxuries" weren't
  available.[1] Things I find much more helpful are CL's documentation
  strings and information about argument lists (via ILISP or ELI at
  the tip of my fingers in Emacs), hyperlinked access to the
  HyperSpec, and completion.

There are probably other things that I depend upon...

Regs, Pierre.

Footnotes: 
[1]  After over ten years of life with IDEs, debuggers and browsers,
I'm still in the process of unlearning... I'll probably quit the
profession before I've finished that process...  So bear with me ;)

-- 
Pierre Mai <····@acm.org>         PGP and GPG keys at your nearest Keyserver
  "One smaller motivation which, in part, stems from altruism is Microsoft-
   bashing." [Microsoft memo, see http://www.opensource.org/halloween1.html]
From: Marco Antoniotti
Subject: Re: CL and (X)Emacs
Date: 
Message-ID: <lwyafqyzqn.fsf@copernico.parades.rm.cnr.it>
····@acm.org (Pierre R. Mai) writes:

> Personally, I use:
> 
> - Mark Kantrowitz's defsystem for building/dependency management.
>   IMHO make doesn't really work well with C's development model in
>   "complex" cases, but it definitely makes things ugly with CL.  And
>   you can't reuse the information you put in a Makefile for other
>   things (unless you stay in Make), whereas it's easy to use
>   defsystems information for things like regression testing,
>   reporting, documentation checking, metering, etc.

BTW. I have some patches to make it run under the latest LW.

> - For browsing, I've used tags,

Is there around a version of '*tags' that can do DEFMETHOD and
friends?

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: Pierre R. Mai
Subject: Re: CL and (X)Emacs
Date: 
Message-ID: <87emhi2nqj.fsf@orion.dent.isdn.cs.tu-berlin.de>
Marco Antoniotti <·······@copernico.parades.rm.cnr.it> writes:

> ····@acm.org (Pierre R. Mai) writes:
> 
> > Personally, I use:
> > 
> > - Mark Kantrowitz's defsystem for building/dependency management.
> >   IMHO make doesn't really work well with C's development model in
> >   "complex" cases, but it definitely makes things ugly with CL.  And
> >   you can't reuse the information you put in a Makefile for other
> >   things (unless you stay in Make), whereas it's easy to use
> >   defsystems information for things like regression testing,
> >   reporting, documentation checking, metering, etc.
> 
> BTW. I have some patches to make it run under the latest LW.

Thanks, but I've already patched it myself (the changes were really
minimal, especially since I don't need to be backward compatible with
earlier versions of LispWorks).

> > - For browsing, I've used tags,
> 
> Is there around a version of '*tags' that can do DEFMETHOD and
> friends?

None that I know of, though I haven't looked very hard...

Regs, Pierre.

-- 
Pierre Mai <····@acm.org>         PGP and GPG keys at your nearest Keyserver
  "One smaller motivation which, in part, stems from altruism is Microsoft-
   bashing." [Microsoft memo, see http://www.opensource.org/halloween1.html]
From: Pekka P. Pirinen
Subject: Re: CL and (X)Emacs
Date: 
Message-ID: <ixr9li3zm1.fsf@gaspode.cam.harlequin.co.uk>
Jochen Schneider <·····@isg.cs.uni-magdeburg.de> writes:
> You can also tell emacs to preserve its state between sessions, look
> at "Saving Emacs Sessions" on the main Info page. I don't know how
> much it really saves.

Enough.  The desktop package (as it's called) remembers buffers and
most of their state, tags tables, searches, registers -- and it's
configurable: You can tell it to save whatever buffer-local and global
variables hold state that is important to you.

I use it; I find logging out at the end of the day is a good way to
remind myself of what buffers I forgot to save, what trans-Atlantic
logins I left running, and what files I forgot to check in.  Even if
you don't, it's useful for those cases where you _have_to_ log out.

Although I must say I do most of my Lisp development using the LW
IDE.  I guess I should write a desktop package for it, some day.
-- 
Pekka P. Pirinen
Adaptive Memory Management Team, Harlequin Limited
If it's spam, it's a scam.  Don't do business with Net abusers.
From: Lars Bj�nnes
Subject: Re: CL and (X)Emacs
Date: 
Message-ID: <m33dxxvzu5.fsf@enterprise.gdpm.no>
·····@harlequin.co.uk (Pekka P. Pirinen) writes:

> Although I must say I do most of my Lisp development using the LW
> IDE.  I guess I should write a desktop package for it, some day.

Thanks to all for the input, I think I'll try the session management,
and see if it helps me organize my source, buffers and life in general. :-)

-- 
Lars
From: Steve Gonedes
Subject: Re: CL and (X)Emacs
Date: 
Message-ID: <m21zdh5455.fsf@KludgeUnix.com>
Jochen Schneider <·····@isg.cs.uni-magdeburg.de> writes:
 
< Steve Gonedes <········@worldnet.att.net> writes:
< 
< > I'm curious as to how, or in what way, you would like emacs to
< > organize your project.
< 
< Well, in IDEs like Visual Studio or the CodeWarrior you have a project
< file along with the source and object files which knows which files
< belong to the project. If you open the project, the source files that
< were previously open in that project get opened again. Then there is
< also something like a tags file which stores where a symbol was
< defined and referenced (look at etags or the oobrowser under
< http://www.beopen.com).

Since you mentioned that you are using acl, you can save
meta-information in the actual fasl files (same goes with lispworks).

I usually write a function like so in a file called `load.lisp'.

(defun cload-system (&key (clean-p nil) (system :terminfo)
                          (xref #+excl excl:*record-xref-info* #-excl nil))
  (let ((*record-xref-info* xref))
    (when clean-p
      (excl:clean-system :display)
   (excl:load-system system :compile t))))

There are more options for compile, and defsystem is well documented.
 
< You can also tell emacs to preserve its state between sessions, look
< at "Saving Emacs Sessions" on the main Info page. I don't know how
< much it really saves.

I don't understand what it would save that is not already saved; my
completions and abbrevs are saved already.
 
< I'm not really using Emacs for development. What do you people do,
< except never logging out and using make only to hold the sources
< together?

The filesystem?
From: Paul Rudin
Subject: Re: CL and (X)Emacs
Date: 
Message-ID: <wk3dxx9v36.fsf@scientia.com>
>>>>> "Lars" == Lars Bj=F8nnes <·····················@gdpm.no_> writes:


 Lars> I've been fiddling around with Lisp sometime now, using ACL 5.0
 Lars> for Linux and the ELI-package with XEmacs 21.1,

Incidentally I seem to recall that the documentaion that comes with
ELI says that at som point the protocol that eli uses to communicate
with ACL will be documented. Does anyone know with this has or will
happen?








 Sent via Deja.com http://www.deja.com/
 Share what you know. Learn what you don't.