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
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
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.
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.
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
"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/
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
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
>
>
>
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.
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
"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)
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
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
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
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.