| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version |
This document contains the following sections:
1.0 Allegro Runtime introductionRuntime is a way to license the distribution of applications written in Allegro CL. It is designed to offer VARs using Allegro CL for product development a way to deliver or deploy their products without requiring their users to have fully-paid licenses for Allegro CL. VARs (Value Added Resellers) are users of Allegro CL who develop applications intended for delivery to their customers.
Allegro CL will build, using (on Unix and Windows) the generate-application function (called with argument image-only nil) or (on
Windows only) the File | Build Project
Distribution menu command or the build-project function (called with
exe-only specified nil
),
an application directory containing everything necessary to distribute
or deploy to customers.
A runtime application is defined to be such a directory. One of the files in that directory is a license file (extension .lic). That license file will permit the application to start up. If that license file is removed, the application will not work.
As with all Allegro CL features and add-ons, the Allegro CL installed on your machine includes everything needed to create runtime applications, but in order to do so, you must have a proper license in your license file (devel.lic in the Allegro Directory). If you are not licensed to create runtime applications, attempts to do so will fail.
There are three aspects of runtime applications which will be discussed in this document:
There are three flavors of Runtime:
Allegro CL Standard Runtime applications differ from the Allegro CL Development image in that they necessarily lack certain features and capabilities (other capabilities may be optionally left out):
Allegro Enterprise and Enterprise Platinum licenses include a license to make standard runtime applications. The Allegro Professional license does not include a license to make any runtime application. Contact your Account Manager for information on purchasing runtime licenses and upgrading your version of Allegro CL.
Please read Section 3.0 Conditions on distributing Allegro Runtime created applications for information on who you may distribute runtime applications to and how you may deploy them.
Allegro CL Dynamic Runtime applications differ from the Allegro CL Development image in that they necessarily lack certain features and capabilities (other capabilities may be optionally left out):
Dynamic runtime applications, however, can include the compiler, so compile and compile-file can be available. (We say can be because you can choose to leave the compiler out.) They also allow use of the :help, :history, and redo (see Command and expression history in top-level.htm) top-level commands. (These additional features differentiate dynamic runtime from standard runtime.)
No Allegro CL license includes (by default) a license to make dynamic runtime applications. A license to create such applications must be purchased (contact your Account Manager for information).
Please read Section 3.0 Conditions on distributing Allegro Runtime created applications for information on who you may distribute runtime applications to and how you may deploy them.
Allegro CL Partner's Runtime is a superset of Dynamic Runtime, designed for VARs who want to give their customers the ability to program in Lisp. That is, users of a Partner's application will be able to use Allegro CL including the development environment.
Basically, your runtime customers have complete Allegro CL development images, just like you do. Note, however, that support must go through you (your customers should not contact Franz Inc. directly for support).
No Allegro CL license includes (by default) a license to make partner's runtime applications. A license to create such applications must be purchased (contact your Account Manager for information).
Please read Section 3.0 Conditions on distributing Allegro Runtime created applications for information on who you may distribute runtime applications to and how you may deploy them.
Creating runtime applications for distribution or deployment under
your license agreement is done with (on Unix and Windows) generate-application (called with image-only nil) or (on Windows
only) the File | Build Project
Distribution menu command or the build-project function (called with
exe-only specified nil
).
To use generate-application
with image-only nil,
you must supply a value for the runtime keyword
argument, and this value must be one of the keywords
:standard
, :dynamic
, or
:partners
. If a different value
(including nil) is
specified, the call to generate-application will fail.
The File | Build Project
Distribution builds an application
from the current project. build-project builds an application
from any loaded project. On the Project Manager dialog Build
tab, a control specifies the type of runtime. You should
specify the type desired (the initial value is
:standard
).
You must be licensed to build a runtime application of the specified type. If you are not licensed (or if your devel.lic license file does not include the correct license), contact your Account Manager for assistance (you will have to get a new license file).
If you are licensed to create the specified type of runtime application (and assuming there are no other problems, a directory containing all files necessary to distribute or deploy your application will be created. This directory comprises the runtime application. You must not (it violates your license to do so) copy files from elsewhere in the Allegro CL directory into the application directory. Note that it is possible to tell the system to use an existing directory. The purpose of doing so is to avoid having to delete directories as attempts to build the application fail. Do not use a directory that contains files from elsewhere in the Allegro CL directory.
Creation of applications using generate-application is described in delivery.htm. Creation using File | Build Project Distribution or build-project is described in the Common Graphics/IDE documentation, which is described in About Common Graphics and IDE documentation. Look at the The IDE User Guide, particularly Chapter 4, which discusses projects.
The following table indicates what values certain keyword arguments to generate-application should have.
Arguments: | Specify this value: | Notes: |
:include-devel-env |
nil in
:standard
and :dynamic . Any value in
:partners . |
When :include-devel-env is
true, the file develenv.cl
is loaded into the image being built. That file loads
many modules using cl:require, including some that
are not permitted in a standard or dynamic runtime image.
For those modes, you can copy that
file and edit to remove the
require forms for things not allowed in runtime, specifying the
edited file as one to be loaded
(with the input-files
argument to
generate-application).
Alternatively, you can specify the :runtime-bundle
argument true. (See delivery.htm for a full
discussion of these arguments.) |
|
In In |
If both have value |
:load-xref-info
:record-xref-info
:discard-xref-info |
nil in
:standard
and :dynamic . Any value in
:partners . |
The cross reference facility cannot be part of
standard or dynamic runtime.
Specifying :discard-xref-info
to be nil for those modes seems
counter-intuitive but since no xref info is loaded, none
needs to be discarded. Specifying :discard-xref-info
true causes the xref
module to be loaded, and that is not allowed in a
standard or dynamic runtime image. |
A standard Allegro Runtime image will have
:runtime-standard
on the *features*
list. A dynamic Allegro Runtime image
will have :runtime-dynamic
.
A partner's Allegro Runtime image
will have :runtime-partners
.
The license agreement governing the use of Allegro CL restricts your ability to distribute files associated with Allegro CL and to distribute or deploy applications created with Allegro CL. The license agreement is included with the Allegro CL distribution. If you have any question about what you are licensed to distribute or deploy, please contact your Account Manager for assistance. The license agreement is the governing document, and if there is any conflict between what is said in the Allegro CL documentation and the license agreement, you are bound by the terms in the license agreement.
Here are some general principles about distributing files and distributing or deploying applications (but again, please refer to your license agreement for specific details):
If you are licensed to distribute or deploy a runtime application, you
may only distribute the contents of the directory created by generate-application, or the File | Build Project
Distribution menu command, or build-project (called with
exe-only specified nil
). No other files (except those you wrote yourself
and compiled versions of such files) can be included.
Note that because your source files and compiled versions of those files can be distributed without restriction, the way to distribute an application to another licensed Allegro CL customer without worrying about license agreement restrictions is to distribute your source files (and/or compiled versions of your source files), along with a file which creates the application (perhaps with a call to generate-application, or the File | Build Project Distribution menu command, or build-project, or perhaps in some other fashion).
The other licensed Allegro CL user can then use your files to create the application. This ensures that the recipient is in fact licensed to use the application (that the necessary add-on products are available, for example). Just because you believe another user is properly licensed, you may not distribute a runtime application (the contents of the directory created by generate-application, or the File | Build Project Distribution menu command, or build-project) except under the terms of your (not the recipient's) license agreement.
Again, if you have any questions about licensing, contact your Account Manager for assistance.
Copyright (c) 1998-2019, Franz Inc. Oakland, CA., USA. All rights reserved.
This page was not revised from the 8.2 page.
Created 2012.5.30.
| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version |