From: ········@gmail.com
Subject: REPL?
Date: 
Message-ID: <1190504719.589870.187950@d55g2000hsg.googlegroups.com>
What are these and how are they different:

REP
REPL
Lisp compiler
Lisp interpreter
Lisp environment
Lisp system

?

Lisp 9000

From: Kent M Pitman
Subject: Re: REPL?
Date: 
Message-ID: <u1wcqrymn.fsf@nhplace.com>
·········@gmail.com" <········@gmail.com> writes:

> What are these and how are they different:
> 
> REP

Hmm. Sounds like something you'd do a bunch of at a gym when
exercising.  Nowhere used as an abbreviation for any Lisp thing I've
ever seen, though I imagine if you've seen it in the Lisp context,
it's someone's shorthand for read-eval-print, that is, for doing:
 (print (eval (read)))
and probably comes from a shortening of:

> REPL

"Read-Eval-Print Loop".  In practice, they are more complicated than just
this, but conceptually without all the bells and whistles, they amount to
(loop (print (eval (read)))).

The bells and whistles generally refer to things about the way the debugger,
error checking, and the variables like *, **, ***, +, ++, +++, /, //, ///,
and - are managed.  See, for example:
 http://www.lispworks.com/documentation/HyperSpec/Body/v__stst_.htm

> Lisp compiler

A program implemented in any language that takes a source text and
prepares it for execution on some underlying machine, which might be
of any nature.  This always does macro expansion and usually various
kinds of optimization due to idiomatic uses, type declarations,
etc. though such optimizations are mostly not required and are
dependent on the implementation--the market usually sorts this out.
Implementations that do more in ways people like get more attention.

Compilation
http://www.lispworks.com/documentation/HyperSpec/Body/03_b.htm

Common Lisp also defines "minimal compilation", which is what you can get 
away with as an implementor if you don't want to write a compiler.

http://www.lispworks.com/documentation/HyperSpec/Body/03_bbb.htm

Usually, this is associated with the CL functions COMPILE and COMPILE-FILE,
although under the restrictions of minimal compilation, it is possible to
use a lisp interpreter for such actions. (It's rarely if ever done, but in
theory  the CL language semantics do not require an actual compiler to 
implement these functions.  For practical reasons, the market does require
it in most circumstances. :)

http://www.lispworks.com/documentation/HyperSpec/Body/f_cmp.htm#compile
http://www.lispworks.com/documentation/HyperSpec/Body/f_cmp_fi.htm#compile-file

> Lisp interpreter

An implementation strategy for executing Lisp that has not been asked to
be compiled, whereby semantics are incrementally applied interleaved with
execution.  Usually, but not always, associated with EVAL.  

Evaluation
http://www.lispworks.com/documentation/HyperSpec/Body/03_a.htm

Some  implementations implement eval by something effectively similar to
 (defun eval (x) 
   (funcall (compile nil `(lambda () ,x))))

> Lisp environment

Not a formally defined term, but probably usually means Lisp and its
associated interactive tools that allow you to do things like develop
and debug (and sometimes edit) source code interactively.

> Lisp system

Not always different than Lisp environment.  Sometimes possibly used to
refer to the part of Lisp which does not include development tools but is
only the kernel needed for runtime/deployment execution.  But so vague a
term as to not really formally distinguish it.  This is just a handwavy
way of saying "this isn't something users do, but something implementors
provide".

> ?

A symbol whose only letter is a question mark.  Maclisp had a function called
QMARK whose function was to return this symbol.  I don't think modern lisps
have carried on with that traditino--they usually assume you can call INTERN
on the argument "?" if you want such a symbol.

> Lisp 9000

Someone's user name.
From: Tim X
Subject: Re: REPL?
Date: 
Message-ID: <873ax6q707.fsf@lion.rapttech.com.au>
Kent M Pitman <······@nhplace.com> writes:

> ·········@gmail.com" <········@gmail.com> writes:
>
>> What are these and how are they different:
>> 
>> REP
>
> Hmm. Sounds like something you'd do a bunch of at a gym when
> exercising.  Nowhere used as an abbreviation for any Lisp thing I've
> ever seen, though I imagine if you've seen it in the Lisp context,
> it's someone's shorthand for read-eval-print, that is, for doing:
>  (print (eval (read)))
> and probably comes from a shortening of:
>
REP is a lisp interpreter and used by things like the sawfish window
manager. Its not CL and incorporates a sort of hybrid lisp and scheme
model. Apparently, it is quite easy to embed it in other applications and
has bindings for things like the GTK+ library. The sawfish wm that is built
on top of it is a nice light weight wm that is extremely configurable. At
one time, GNOME had sawfish as one of its default wm, but now I think it
uses metacity. 

>> REPL
>
> "Read-Eval-Print Loop".  In practice, they are more complicated than just
> this, but conceptually without all the bells and whistles, they amount to
> (loop (print (eval (read)))).
>
> The bells and whistles generally refer to things about the way the debugger,
> error checking, and the variables like *, **, ***, +, ++, +++, /, //, ///,
> and - are managed.  See, for example:
>  http://www.lispworks.com/documentation/HyperSpec/Body/v__stst_.htm
>
>> Lisp compiler
>
> A program implemented in any language that takes a source text and
> prepares it for execution on some underlying machine, which might be
> of any nature.  This always does macro expansion and usually various
> kinds of optimization due to idiomatic uses, type declarations,
> etc. though such optimizations are mostly not required and are
> dependent on the implementation--the market usually sorts this out.
> Implementations that do more in ways people like get more attention.
>
> Compilation
> http://www.lispworks.com/documentation/HyperSpec/Body/03_b.htm
>
> Common Lisp also defines "minimal compilation", which is what you can get 
> away with as an implementor if you don't want to write a compiler.
>
> http://www.lispworks.com/documentation/HyperSpec/Body/03_bbb.htm
>
> Usually, this is associated with the CL functions COMPILE and COMPILE-FILE,
> although under the restrictions of minimal compilation, it is possible to
> use a lisp interpreter for such actions. (It's rarely if ever done, but in
> theory  the CL language semantics do not require an actual compiler to 
> implement these functions.  For practical reasons, the market does require
> it in most circumstances. :)
>
> http://www.lispworks.com/documentation/HyperSpec/Body/f_cmp.htm#compile
> http://www.lispworks.com/documentation/HyperSpec/Body/f_cmp_fi.htm#compile-file
>
>> Lisp interpreter
>
> An implementation strategy for executing Lisp that has not been asked to
> be compiled, whereby semantics are incrementally applied interleaved with
> execution.  Usually, but not always, associated with EVAL.  
>
> Evaluation
> http://www.lispworks.com/documentation/HyperSpec/Body/03_a.htm
>
> Some  implementations implement eval by something effectively similar to
>  (defun eval (x) 
>    (funcall (compile nil `(lambda () ,x))))
>
>> Lisp environment
>
> Not a formally defined term, but probably usually means Lisp and its
> associated interactive tools that allow you to do things like develop
> and debug (and sometimes edit) source code interactively.
>
>> Lisp system
>
> Not always different than Lisp environment.  Sometimes possibly used to
> refer to the part of Lisp which does not include development tools but is
> only the kernel needed for runtime/deployment execution.  But so vague a
> term as to not really formally distinguish it.  This is just a handwavy
> way of saying "this isn't something users do, but something implementors
> provide".
>
>> ?
>
> A symbol whose only letter is a question mark.  Maclisp had a function called
> QMARK whose function was to return this symbol.  I don't think modern lisps
> have carried on with that traditino--they usually assume you can call INTERN
> on the argument "?" if you want such a symbol.
>
>> Lisp 9000
>
> Someone's user name.

-- 
tcross (at) rapttech dot com dot au
From: Harald Hanche-Olsen
Subject: Re: REPL?
Date: 
Message-ID: <pcosl5594wz.fsf@shuttle.math.ntnu.no>
+ Tim X <····@nospam.dev.null>:

> REP is a lisp interpreter and used by things like the sawfish window
> manager. Its not CL and incorporates a sort of hybrid lisp and
> scheme model.

In particular, no packages.  It uses something called modules instead.

> The sawfish wm that is built on top of it is a nice light weight wm
> that is extremely configurable. At one time, GNOME had sawfish as
> one of its default wm, but now I think it uses metacity.

Hm.  Well, I have been using sawfish for years, without gnome on top
of it.  I've been sufficiently happy with it I stopped looking at
other wms for all these years, which must have saved me tons of time.
Back in my twm/fvwm days I was constantly on the prowl looking for a
replacement.

-- 
* Harald Hanche-Olsen     <URL:http://www.math.ntnu.no/~hanche/>
- It is undesirable to believe a proposition
  when there is no ground whatsoever for supposing it is true.
  -- Bertrand Russell
From: John Thingstad
Subject: Re: REPL?
Date: 
Message-ID: <op.ty34jfjapqzri1@pandora.upc.no>
P� Sun, 23 Sep 2007 10:12:12 +0200, skrev Harald Hanche-Olsen  
<······@math.ntnu.no>:

> + Tim X <····@nospam.dev.null>:
>
>> REP is a lisp interpreter and used by things like the sawfish window
>> manager. Its not CL and incorporates a sort of hybrid lisp and
>> scheme model.
>
> In particular, no packages.  It uses something called modules instead.
>

CL also has modules. They are deprecated, but many still use (provide ..)  
and (require ...)
From: Harald Hanche-Olsen
Subject: Re: REPL?
Date: 
Message-ID: <pcoodftjoib.fsf@shuttle.math.ntnu.no>
+ "John Thingstad" <··············@chello.no>:

> P� Sun, 23 Sep 2007 10:12:12 +0200, skrev Harald Hanche-Olsen
> <······@math.ntnu.no>:
>
>> + Tim X <····@nospam.dev.null>:
>>
>>> REP is a lisp interpreter and used by things like the sawfish window
>>> manager. Its not CL and incorporates a sort of hybrid lisp and
>>> scheme model.
>>
>> In particular, no packages.  It uses something called modules instead.
>>
>
> CL also has modules. They are deprecated, but many still use (provide
> ..)  and (require ...)

Same name, different concept.  In rep, one symbol may be bound to
different values in different modules.  In CL, a module is just a set
of files to be loaded in response to (require ...).

-- 
* Harald Hanche-Olsen     <URL:http://www.math.ntnu.no/~hanche/>
- It is undesirable to believe a proposition
  when there is no ground whatsoever for supposing it is true.
  -- Bertrand Russell
From: Klaus Schilling
Subject: Re: REPL?
Date: 
Message-ID: <87abrd4006.fsf@web.de>
"John Thingstad" <··············@chello.no> writes:

> CL also has modules. They are deprecated,

why is this so?

    Klaus Schilling
From: Kent M Pitman
Subject: Re: REPL?
Date: 
Message-ID: <uabrdowjw.fsf@nhplace.com>
Klaus Schilling <···············@web.de> writes:

> "John Thingstad" <··············@chello.no> writes:
> 
> > CL also has modules. They are deprecated,
> 
> why is this so?

[I'm not quite sure which of several possible questions you're asking
so this reply is intended to answer the various variants I could 
reasonably anticipate...]

First, they don't do what module systems in other languages do so they
create terminological confusion by being called "modules".

Second, they weren't very well designed, weren't portable, had dumb
argument conventions, and their mere presence falsely suggested they
solved some problem rather than the truth, which was that they created
one by taking up room in the language.

Issue REQUIRE-PATHNAME-DEFAULTS
http://www.lisp.org/HyperSpec/Issues/iss296-writeup.html

Issue REQUIRE-PATHNAME-DEFAULTS-AGAIN
http://www.lisp.org/HyperSpec/Issues/iss294-writeup.html

Note: The numbers of issues in CLHS were not drawn from X3J13, which
 used only symbolic names.  They have numeric numbers in their URLs
 only because of CLHS's desire to allow 8.3-compliant filenames to
 back up the URLs, so the numbers correspond to alphabetical ordering,
 not time ordering, which is why these two appear to be out of order
 numerically.

Note too: Although other languages like Scheme use modules to create a
 semantic partition among programs, those other languages typically
 have neither the packages that CL has nor the lisp2 nature that CL
 has, such that they are living in a much more densely packed space
 where they cannot avoid creating things like modules and hygienic
 module systems; such facilities are not present in CL because the
 problems they solve are solved in other ways in CL.  That is, CL is 
 no more bankrupt for not having a module system or hygienic macros 
 than Scheme is bankrupt for not having a package system or a lisp2
 nature--these languages just have different overall design and
 character.
From: John Thingstad
Subject: Re: REPL?
Date: 
Message-ID: <op.ty4k6bt6pqzri1@pandora.upc.no>
P� Sun, 23 Sep 2007 22:09:29 +0200, skrev Klaus Schilling  
<···············@web.de>:

> "John Thingstad" <··············@chello.no> writes:
>
>> CL also has modules. They are deprecated,
>
> why is this so?
>
>     Klaus Schilling

It has been replaced by defsystem and ASDF which provide conditional  
compilation.
With provide/require you load all the modules. defsystem/ASDF allows you  
to spesify all the dependencies. This is particularly relevant when  
dealing with macroes where you want to make sure that if you change a  
macro definition all files using the macro get recompiled as well.
From: Klaus Schilling
Subject: Re: REPL?
Date: 
Message-ID: <87ejgp4059.fsf@web.de>
Harald Hanche-Olsen <······@math.ntnu.no> writes:
> Hm.  Well, I have been using sawfish for years, without gnome on top
> of it. 

I consider heavy desktop environments as a blatant waste of resources,
and a ridiculous concession to point&click culture.
 
> I've been sufficiently happy with it I stopped looking at
> other wms for all these years, which must have saved me tons of time.
> Back in my twm/fvwm days I was constantly on the prowl looking for a
> replacement.

Isn't there a common-lisp-based windowmanager on the road,
called Stump or something like that?
It's supposed to be controllable via Slime/Swank.

Klaus Schilling
From: Harald Hanche-Olsen
Subject: Re: REPL?
Date: 
Message-ID: <pcoir61f78x.fsf@shuttle.math.ntnu.no>
+ Klaus Schilling <···············@web.de>:

> Isn't there a common-lisp-based windowmanager on the road,
> called Stump or something like that?
> It's supposed to be controllable via Slime/Swank.

Yes:  http://www.nongnu.org/stumpwm/

I don't think it's for me.  I like 'em lightweight, not anorexic.
I might elaborate perhaps, but I guess it's the wrong newsgroup ...
(Yeah I know, since when did /that/ stop anybody?)

-- 
* Harald Hanche-Olsen     <URL:http://www.math.ntnu.no/~hanche/>
- It is undesirable to believe a proposition
  when there is no ground whatsoever for supposing it is true.
  -- Bertrand Russell
From: Matthias Buelow
Subject: Re: REPL?
Date: 
Message-ID: <5mt0qtFf59b8U1@mid.dfncis.de>
Harald Hanche-Olsen wrote:

> I like 'em lightweight, not anorexic.

I like that one.. :)
From: Tim X
Subject: Re: REPL?
Date: 
Message-ID: <876420bj77.fsf@lion.rapttech.com.au>
Klaus Schilling <···············@web.de> writes:

> Harald Hanche-Olsen <······@math.ntnu.no> writes:
>> Hm.  Well, I have been using sawfish for years, without gnome on top
>> of it. 
>
> I consider heavy desktop environments as a blatant waste of resources,
> and a ridiculous concession to point&click culture.
>  
>> I've been sufficiently happy with it I stopped looking at
>> other wms for all these years, which must have saved me tons of time.
>> Back in my twm/fvwm days I was constantly on the prowl looking for a
>> replacement.
>
> Isn't there a common-lisp-based windowmanager on the road,
> called Stump or something like that?
> It's supposed to be controllable via Slime/Swank.
>

yep, its called stumpwm and it brings a new meaning to minimal - it really
really is minimal (at least when I tried it a couple of years ago). It did
work as it was supposed to and you could interact with it via emacs slime.

Tim


-- 
tcross (at) rapttech dot com dot au
From: Frank Goenninger DG1SBG
Subject: Re: REPL?
Date: 
Message-ID: <lzmyverzau.fsf@pcsde001.de.goenninger.net>
·········@gmail.com" <········@gmail.com> writes:

> What are these and how are they different:
>
> REP
> REPL
> Lisp compiler
> Lisp interpreter
> Lisp environment
> Lisp system
>
> ?
>
> Lisp 9000
>

This is your health monitoring system. Please execute full system
check. While the check runs it may be worth reading PCL
http://www.gigamonkeys.com/book/lather-rinse-repeat-a-tour-of-the-repl.html
After reboot please read the rest of this book.

Lisp 9000 - you are like HAL 9000.

-- 

  Frank Goenninger

  frgo(at)mac(dot)com

  "Don't ask me! I haven't been reading comp.lang.lisp long enough to 
  really know ..."
From: Rainer Joswig
Subject: Re: REPL?
Date: 
Message-ID: <joswig-503514.02411223092007@news-europe.giganews.com>
In article <························@d55g2000hsg.googlegroups.com>,
 ·········@gmail.com" <········@gmail.com> wrote:

> What are these and how are they different:
> 
> REP
> REPL
> Lisp compiler
> Lisp interpreter
> Lisp environment
> Lisp system
> 
> ?
> 
> Lisp 9000

Gavino, is that you?