From: Peter Ellis
Subject: Compiling Lisp
Date: 
Message-ID: <8wOrb.4312$GK2.1469@news-binary.blueyonder.co.uk>
Hi everyone

i'm still fairly new to lisp and was wondering if it is possible to turn a
lisp program into an exe file so it can be distributed to people using
windows who don't have a lisp interpreter.

thanks for any help with this

Steve

From: Kenny Tilton
Subject: Re: Compiling Lisp
Date: 
Message-ID: <lFOrb.135766$pT1.18609@twister.nyc.rr.com>
Peter Ellis wrote:
> Hi everyone
> 
> i'm still fairly new to lisp and was wondering if it is possible to turn a
> lisp program into an exe file so it can be distributed to people using
> windows who don't have a lisp interpreter.

Is that a capital W as in MS WIndows? If so, yes: Allegro CL, Lispworks 
and Corman CL all gen standalone exes. With CLisp I /think/ you just 
send them CLisp and a byte-code compilation and a BAT file to kick it 
all off as if it were just your exe.

btw, it might be more accurate to say "people...who don't have a Lisp 
development environment". Common Lisp is a compiled language. tho some 
implementations also include an interpreter, others quickly compile on 
the fly even when you are just typing in one-liners at the prompt.

final thought: if your app is small, you also have the option of having 
folks download Allegro or Lispworks demos or CLisp (free) to run your 
program. but i understand you might not want to put them thru that 
hassle, just floating alternatives.

kenny

-- 
http://tilton-technology.com

Why Lisp? http://alu.cliki.net/RtL%20Highlight%20Film

Your Project Here! http://alu.cliki.net/Industry%20Application
From: Peter Ellis
Subject: Re: Compiling Lisp
Date: 
Message-ID: <EjPrb.4495$GK2.1839@news-binary.blueyonder.co.uk>
Hi

i've downloaded LispWorks and it has a compile option but i can't see how to
create an executable file, do you know how i do it because when i go to
compile it just produces a .fsl file

thanks again

steve

"Peter Ellis" <··········@blueyonder.co.uk> wrote in message
························@news-binary.blueyonder.co.uk...
> Hi everyone
>
> i'm still fairly new to lisp and was wondering if it is possible to turn a
> lisp program into an exe file so it can be distributed to people using
> windows who don't have a lisp interpreter.
>
> thanks for any help with this
>
> Steve
>
>
>
From: Christopher C. Stacy
Subject: Re: Compiling Lisp
Date: 
Message-ID: <usmkwavya.fsf@dtpq.com>
>>>>> On Mon, 10 Nov 2003 16:48:38 -0000, Peter Ellis ("Peter") writes:
 Peter> i've downloaded LispWorks and it has a compile option but i
 Peter> can't see how to create an executable file, do you know how i
 Peter> do it because when i go to compile it just produces a .fsl  file

FASL files are the compiled binary files; they are dynamically 
linked by the Lisp runtime. I think that dumping out a pre-linked
executable image (such as an EXE or a DLL) requires buying Lispworks.  
The free download vesion of Lispworks is intended for evaluation and
student purposes, so it has that feature disabled.
From: mikel
Subject: Re: Compiling Lisp
Date: 
Message-ID: <eySrb.5405$103.5320@newssvr29.news.prodigy.com>
Christopher C. Stacy wrote:

>>>>>>On Mon, 10 Nov 2003 16:48:38 -0000, Peter Ellis ("Peter") writes:
> 
>  Peter> i've downloaded LispWorks and it has a compile option but i
>  Peter> can't see how to create an executable file, do you know how i
>  Peter> do it because when i go to compile it just produces a .fsl  file
> 
> FASL files are the compiled binary files; they are dynamically 
> linked by the Lisp runtime. I think that dumping out a pre-linked
> executable image (such as an EXE or a DLL) requires buying Lispworks.  
> The free download vesion of Lispworks is intended for evaluation and
> student purposes, so it has that feature disabled.

I think the function he's looking for is DELIVER. It may be, as you say, 
that it's disabled in the personal version. I tested it when evaluating, 
but I had one of their time-limited evaluation versions, not the free 
personal version.

At least maybe he can look up DELIVER in the docs and see what it's 
supposed to do; it worked fine for me to produce standalone applications.
From: Pascal Costanza
Subject: Re: Compiling Lisp
Date: 
Message-ID: <bookfj$gn2$1@newsreader2.netcologne.de>
Peter Ellis wrote:

> Hi
> 
> i've downloaded LispWorks and it has a compile option but i can't see how to
> create an executable file, do you know how i do it because when i go to
> compile it just produces a .fsl file

That's similar to a .class file in Java, or a .o file in C. That is, 
such files still need linking.

Most Lisp systems use a model similar to Java, that is, they link .fsl 
files at load-time. ("fsl" is an abbreviation for "fast-load") The main 
difference to Java is that the .fsl format is not standardized at all. 
It's not clear whether a standard format would be a good idea anyway.

 From what you have written, it seems to me that you are using the 
personal edition of LispWorks. I don't think that it's possible to 
produce .exe files with that version. At least, I would be very surprised.

Furthermore, the deployment model is typically rather different with 
Common Lisp anyway. You would usually save so-called image files that 
contain the code of your application, and then distribute your 
application with a starter program that loads that image. That's again 
different from both the Java and the C model, and more similar to the 
Smalltalk model, for example. For example, the LispWorks documentation 
provides more details about it.

You might want to post your question in the LispWorks mailing list. They 
are extremely helpful, especially including to users of the personal 
edition.

I hope this helps.


Pascal
From: Simon Andr�s
Subject: Re: Compiling Lisp
Date: 
Message-ID: <vcdoevk2fui.fsf@tarski.math.bme.hu>
"Peter Ellis" <··········@blueyonder.co.uk> writes:

> Hi
> 
> i've downloaded LispWorks and it has a compile option but i can't see how to
> create an executable file, do you know how i do it because when i go to
> compile it just produces a .fsl file

'Compiling' and making a (standalone) executable are different
things. I don't think LW Personal lets you do the latter. 

Andras

ps. If your Windows users can run java, they can run Common Lisp:
http://armedbear-j.sourceforge.net/
From: Juan Jose Garcia-Ripoll
Subject: Re: Compiling Lisp
Date: 
Message-ID: <boodfe$1gdk5s$1@ID-212141.news.uni-berlin.de>
Peter Ellis wrote:
> Hi everyone
> i'm still fairly new to lisp and was wondering if it is possible to turn a
> lisp program into an exe file so it can be distributed to people using
> windows who don't have a lisp interpreter.

If you are not scared about using the cygwin environment, you might try
using ECL (http://ecls.sf.net), which can build standalone executable
files. Support for shared libraries under windows is still being developed,
and if you download the latest release (0.9c), please get also the patch
file (http://ecls.sourceforge.net/patch-current-exp.gz), which fixes a lot
of bugs.

Juanjo
From: Peter Ellis
Subject: Re: Compiling Lisp
Date: 
Message-ID: <COSrb.253$Io4.38@news-binary.blueyonder.co.uk>
Hi

thanks again for your help, i tried going through the delivery example and
found out that the free version of lispworks does have the deliver function
disabled.
I'm still a little confused about how all this works, what exactly will
someone need to run a lisp program after it's been properly set up using
deliver ??

thanks again

Steve

"Peter Ellis" <··········@blueyonder.co.uk> wrote in message
························@news-binary.blueyonder.co.uk...
> Hi everyone
>
> i'm still fairly new to lisp and was wondering if it is possible to turn a
> lisp program into an exe file so it can be distributed to people using
> windows who don't have a lisp interpreter.
>
> thanks for any help with this
>
> Steve
>
>
>
From: Edi Weitz
Subject: Re: Compiling Lisp
Date: 
Message-ID: <87znf4q6je.fsf@bird.agharta.de>
On Mon, 10 Nov 2003 20:46:29 -0000, "Peter Ellis" <··········@blueyonder.co.uk> wrote:

> thanks again for your help, i tried going through the delivery
> example and found out that the free version of lispworks does have
> the deliver function disabled.

You should ask Xanalys for a full trial version.

> I'm still a little confused about how all this works, what exactly
> will someone need to run a lisp program after it's been properly set
> up using deliver ??

Nothing. (Well, OK, a computer would be helpful.) Here are examples of
apps delivered with LispWorks:

  <http://www.rocketdownload.com/details/Self/6724.htm>
  <http://www.netfonds.no/pt.php>
  <http://weitz.de/regex-coach/>

Edi.
From: Kenneth P. Turvey
Subject: Re: Compiling Lisp
Date: 
Message-ID: <slrnbr01n1.dst.kt@geo.premiumservices.yahoo.com>
On Mon, 10 Nov 2003 22:04:37 +0100, Edi Weitz <···@agharta.de> wrote:
> 
> Nothing. (Well, OK, a computer would be helpful.) Here are examples of
> apps delivered with LispWorks:
> 
>  <http://www.netfonds.no/pt.php>

This program, or at least the english version, is advertised as a java app.  


-- 
Kenneth P. Turvey <··@squeakydolphin.com>

  Artificial Intelligence Algorithms Wiki 
  http://ai.squeakydolphin.com
From: Espen Vestre
Subject: Re: Compiling Lisp
Date: 
Message-ID: <kw7k27pbjv.fsf@merced.netfonds.no>
"Kenneth P. Turvey" <··@squeakydolphin.com> writes:

> On Mon, 10 Nov 2003 22:04:37 +0100, Edi Weitz <···@agharta.de> wrote:
> > 
> > Nothing. (Well, OK, a computer would be helpful.) Here are examples of
> > apps delivered with LispWorks:
> > 
> >  <http://www.netfonds.no/pt.php>
> 
> This program, or at least the english version, is advertised as a java app.  
It's definitely NOT a java app! The java app you think of is probably
"PrimeTrader Pocket" which is a simple little thing that runs on mobile 
phones and which only shares name (and its lisp server) with the
lisp application.

The Real Thing is described here:

 http://www.netfonds.no/manual_pt.php

(Please note that you need to be a Netfonds customer to have any
 real use of this application)

-- 
  (espen)
From: Kenneth P. Turvey
Subject: Re: Compiling Lisp
Date: 
Message-ID: <slrnbr37im.g7j.kt@premium.geo.yahoo.akadns.net>
On 11 Nov 2003 09:13:56 +0100,
Espen Vestre <··@*do-not-spam-me*.netfonds.no> wrote:

> It's definitely NOT a java app! The java app you think of is probably
> "PrimeTrader Pocket" which is a simple little thing that runs on mobile 
> phones and which only shares name (and its lisp server) with the
> lisp application.

I actually went to the link for software for the U.S.  The software
described there is a java applet from what I can tell.

Apparently it isn't the same software as the NetFonds software you
are refering to. 

> The Real Thing is described here:
> 
>  http://www.netfonds.no/manual_pt.php
> 
> (Please note that you need to be a Netfonds customer to have any
>  real use of this application)


-- 
Kenneth P. Turvey <··@squeakydolphin.com>

  Artificial Intelligence Algorithms Wiki 
  http://ai.squeakydolphin.com
From: Simon Andr�s
Subject: Re: Compiling Lisp
Date: 
Message-ID: <vcdllqn2dh8.fsf@tarski.math.bme.hu>
Edi Weitz <···@agharta.de> writes:

> Nothing. (Well, OK, a computer would be helpful.) Here are examples of
> apps delivered with LispWorks:
> 
>   <http://www.rocketdownload.com/details/Self/6724.htm>
>   <http://www.netfonds.no/pt.php>
>   <http://weitz.de/regex-coach/>
> 

Let's not forget about this one: 
http://www.noteheads.com/downloads/main_engraver_win.asp

(The Mac version is written in MCL I think.)

Andras
From: Pascal Costanza
Subject: Re: Compiling Lisp
Date: 
Message-ID: <bop2er$al8$1@newsreader2.netcologne.de>
Peter Ellis wrote:

> Hi
> 
> thanks again for your help, i tried going through the delivery example and
> found out that the free version of lispworks does have the deliver function
> disabled.
> I'm still a little confused about how all this works, what exactly will
> someone need to run a lisp program after it's been properly set up using
> deliver ??

Of course, I don't know your requirements, but since you've said that 
you're a newbie, IMHO you shouldn't worry too much about creation of 
.exe files and the likes yet.

It's possible to do, but Lisp programs are developed a little bit 
differently than programs in other languages. Whereas in most languages 
you basically have an edit-compile-link cycle, in Lisp you mostly work 
with a read-eval-print loop. This means that you feed definitions into a 
running Lisp program until it behaves the way you want it to. Afterwards 
you can take a snapshot of that program, and that snapshot is what you 
"deliver" as the "final" product.

An important difference to other languages is that stuff like DEFUN, 
DEFCLASS, DEFMETHOD, and so on, are not just "abstract" declarations 
that a compiler translates into some machine code. Instead, they are in 
fact commands that tell the development environment to install 
information in global data structures, like collections of functions, 
classes and methods, and so on. Whenever you call a function in a 
program text, this actually causes the runtime system to look up that 
information in those data structures and execute it. (And while this 
sounds horribly inefficient, these things can in fact be made as fast as 
"traditional" program execution.)

So a good way to look at program development in Lisp is that the 
development environment presents you an initial "empty" version of the 
program you want to create, and then you start to shape the program out 
of that initial program by feeding commands that tell the IDE to install 
your definitions. A Lisp source file is more or less just a collection 
of such commands to be executed in sequence. You "only" record those 
commands in such source files in order to make the process of shaping 
your program out of the blue repeatable. You "only" compile such source 
files to speed up that repeatable process, but in a strict sense you 
don't need such a compilation step.

So my advice would be, instead of trying to recreate the development 
process you seem to be accustomed to with traditional languages, start 
learning a development process that is more appropriate for Lisp. Start 
to shape your programs from what a Lisp IDE initially offers. When you 
have "got" it, it will be much easier to understand how to "deliver". ;)


All the best,
Pascal
From: Kristian Elof Sørensen
Subject: Re: Compiling Lisp
Date: 
Message-ID: <3fb31246$0$139$edfadb0f@dread11.news.tele.dk>
Hi Peter

Peter Ellis wrote:
> Hi
> 
> thanks again for your help, i tried going through the delivery example and
> found out that the free version of lispworks does have the deliver function
> disabled.
> I'm still a little confused about how all this works, what exactly will
> someone need to run a lisp program after it's been properly set up using
> deliver ??

Speaking as someone who has been playing with a time limited demo of 
LispWorks Enterprice since ILC2003, I can tell you that the deliver 
function generates a single executeable file containing everything 
needed to run your program.

So on Windozz you get a YourProgram.exe file that you can send to your 
users, they can put on their desktop and double click on to run your 
program. The same goes for Linux and MacOSX. I have tried it on Linux 
and windozz and it works fine.

The manual for the deliver functionality is here:
http://www.lispworks.com/reference/lw43/DV/html

You should be aware that the Linux version of LispWorks can only make 
Linux executables, the windozz one can only make windozz .exe files etc. 
so you need a LispWorks license for each platform that you want to 
deploy on.

BTW. at the moment I am learning CAPI, a GUI toolkit included with 
LispWorks that allows you to write your GUI code once and deploy it to 
windozz, Linux/Motif and MacOSX. Kind of like with AWT/Swing in java 
land. So far it looks promising, and is the best way I have found so far 
to create cross platform GUIs with CommonLisp.


-----------------------   http://www.elof.dk   ----------------------
Kristian Elof Soerensen   elof at elof dot dk        (+45) 45 93 92 02
From: Christopher C. Stacy
Subject: Re: Compiling Lisp
Date: 
Message-ID: <u8ymkol2p.fsf@dtpq.com>
>>>>> On Thu, 13 Nov 2003 06:10:14 +0100, Kristian Elof S�rensen ("Kristian") writes:

 Kristian> Hi Peter
 Kristian> Peter Ellis wrote:
 >> Hi
 >> thanks again for your help, i tried going through the delivery
 >> example and
 >> found out that the free version of lispworks does have the deliver function
 >> disabled.
 >> I'm still a little confused about how all this works, what exactly will
 >> someone need to run a lisp program after it's been properly set up using
 >> deliver ??

They will not need anything to run the program you give them.

You, the developer, will of course need a license that allows you to
distribute the Lispworks runtime library statically linked within
your application's binary executable (your .EXE or .DLL file).

 Kristian> You should be aware that the Linux version of LispWorks can only make
 Kristian> Linux executables, the windozz one can only make windozz .exe files
 Kristian> etc. so you need a LispWorks license for each platform that you want
 Kristian> to deploy on.

I want to clarify the use of the word "deploy" that Kristian is using
saying here.  All he means is that in order to create a Windows EXE or DLL, 
you need the appropriately licensed Lispworks for Windows compiler.
To create Linux executables, you need the Linux version of Lispworks.
But you DO NOT need to install Lispworks on the (eg. customer) machines 
where the application is going to be running.  The license is for running
the compiler, and for allowing you to distribute the resulting executable
with the run-time libraries linked in.  In other words, you are "delivering"
a stand-alone binary executable program, just like a C compiler can do.
The machine that is running the application does not have Lispworks installed.