VAX LISP/VMS Release Notes
October 1989
This file contains the release notes for VAX LISP/VMS V3.0-A. It
describes additions and changes to VAX LISP/VMS and summarizes
any known restrictions and limitations in VAX LISP/VMS V3.0-A.
Operating System and Version: VMS 5.1
Software Version: VAX LISP/VMS V3.0-A
Digital Equipment Corporation
________________________
August 1989
The information in this document is subject to change without
notice and should not be construed as a commitment by Digital
Equipment Corporation. Digital Equipment Corporation assumes no
responsibility for any errors that may appear in this document.
The software described in this document is furnished under a
license and may be used or copied only in accordance with the
terms of such license.
No resposibility is assumed for the use or reliability of soft-
ware on equipment that is not supplied by Digital Equipment
Corporation or its affiliated companies.
__________
Copyright ©1989 Digital Equipment Corporation
All Rights Reserved
Printed in USA
The following are trademarks of Digital Equipment Corporation:
AI VAXstation PDP VAX LISP/VMS
DEC ULTRIX VAX LISP/ULTRIX
DECnet ULTRIX-11 VAXstation
DECUS ULTRIX-32 VAXstation II
MicroVAX UNIBUS VMS
MicroVAX II VAX
MicroVMS VAX LISP DIGITAL
This document was prepared using VAX DOCUMENT, Version 1.2
CONTENTS
Chapter 1 NEW FEATURES................................... 1
1.1 DECwindows Interface to VAX LISP................... 1
1.2 Data Representation................................ 1
1.3 Memory Management.................................. 3
1.4 Callback Facility.................................. 3
1.5 CLX and DECwindows Toolkit Support................. 4
1.6 System-Building Utility............................ 5
1.7 Example Programs................................... 5
1.8 Enhancements....................................... 6
1.9 ANSI Standard Committee X3J13 Changes to Common
LISP............................................... 9
Chapter 2 RESTRICTIONS AND LIMITATIONS................... 15
2.1 Notice to 9-Track Tape Customers................... 15
2.2 DECwindows Interface to VAX LISP................... 16
2.2.1 The Listener.................................... 16
2.2.2 The Inspector................................... 17
2.2.3 The Editor...................................... 17
2.3 The Terminal-Based Editor.......................... 18
2.4 Memory Management.................................. 19
2.5 Threads............................................ 19
2.6 Callout Facility................................... 20
iii
2.7 Error Handling..................................... 20
2.8 Window Streams..................................... 20
2.9 VMS Workstation Graphics........................... 20
Chapter 3 DOCUMENTATION ERRATA........................... 21
3.1 VAX LISP/VMS Implementation and Extensions to
Common LISP........................................ 21
3.2 VAX LISP/VMS System-Building Guide................. 21
3.3 VAX LISP/VMS Object Reference Manual............... 21
3.4 VAX LISP/VMS Graphics Programming Guide............ 22
3.5 VAX LISP/VMS DECwindows Programming Guide.......... 23
iv
CHAPTER 1
NEW FEATURES
1.1 DECwindows Interface to VAX LISP
VAX LISP now supports a DECwindows interface on VAX worksta-
tions. This interface provides the following utilities:
o The Listener
o The Editor
o The Debugger
o The Tracer
o The Inspector
For information about this new interface, see the VAX LISP/VMS
Program Development Guide.
1.2 Data Representation
There are several new data types, as well as changes to existing
data types:
o Complex Numbers
V3.0-A of VAX LISP supports complex numbers. The print repre-
sentation and use are defined in Common LISP: The Language.
New Features 1
o Fixnums
Integers with an immediate representation have 29 bits, one
less than in previous versions of VAX LISP. The range of
fixnums is now between -2**28 and 2**28-1. The MOST-NEGATIVE-
FIXNUM is -268435456; the MOST-POSITIVE-FIXNUM is 268435455.
o Characters
Bits and fonts are no longer supported. However, the bits
attributes are still included in characters for compatibility
with previous versions. Arrays of characters are now strings.
To make an array of characters with bits retained, you must
build a generalized array. The CHARACTER and STRING-CHAR
types are equivalent.
o Arrays
There are new restrictions on the size of an array, as re-
flected in the following COMMON LISP constants:
ARRAY-TOTAL-SIZE-LIMIT 2**24
ARRAY-DIMENSION-LIMIT 2**24
ARRAY-RANK-LIMIT 8
The default array element for (MAKE-ARRAY array :ELEMENT-TYPE
T) is now 0 instead of NIL. Specify :INITIAL-ELEMENT NIL to
restore the Version 2.2 behavior.
o Structures are never SIMPLE-VECTOR-P, VECTORP or ARRAYP. In
Version 2.2, they sometimes were.
2 New Features
1.3 Memory Management
The /CSTACK qualifier lets you set the size of the default con-
trol stack to a specified number of pages. See the VAX LISP/VMS
Program Development Guide for more information.
VAX LISP now provides an ephemeral garbage collector in addition
to the full garbage collector. The following new memory manage-
ment and garbage collection functions support this feature:
o AREA-SEGMENT-LIMIT
o AREA-SEGMENTS
o DYNAMIC-SPACE-RATIO
o ENLARGE-LISP-MEMORY
o GC-COUNT
o GC-MODE
o MEMORY-ALLOCATION-EXTENT
The following functions have changed for VAX LISP V3.0-A:
o ROOM
o ROOM-ALLOCATION
These new and changed memory management and garbage collec-
tion functions are documented in VAX LISP Implementation and
Extensions to Common LISP.
1.4 Callback Facility
VAX LISP allows external routines to invoke VAX LISP routines.
See the VAX LISP/VMS System Access Guide for more information.
New Features 3
1.5 CLX and DECwindows Toolkit Support
VAX LISP now supports the Common LISP X (CLX) and DECwindows
Toolkit routines. See the VAX LISP/VMS DECwindows Programming
Guide.
VAX LISP CLX differs from the public domain version of CLX in
the following ways:
o The package is named CLX, not XLIB. Use the RENAME-PACKAGE
function if this causes a problem.
o CLX:PROCESS-EVENT accepts only a single function for the HAN-
DLER argument, not a sequence of handlers. Also CLX:PROCESS-
EVENT can accept an extra keyword, :EVENT, which lets you
specify an object of type DWT:EVENT. CLX:PROCESS-EVENT pro-
cesses the event as if it came from the event queue. If
you use the :EVENT keyword, then the :TIMEOUT, :PEEK-P and
:DISCARD-P parameters are ignored.
o CLX:READ-BITMAP-FILE and CLX:WRITE-BITMAP-FILE take extra
arguments that let you read and write to pixmaps as well as
images.
o CLX:DRAW-ARC and CLX:DRAW-ARCS take an optional parameter,
DEGREES-P, which specifies that ANGLE1 and ANGLE2 are in
degrees instead of the default, radians.
o There is only one image structure, CLX:IMAGE. Data can be
extracted from it by CLX:IMAGE-XY-BITMAP-LIST or CLX:IMAGE-
Z-PIXARRAY, depending on the format of data stored in the
image. Use CLX:FREE-IMAGE to free up the memory of an image
returned by CLX:GET-IMAGE.
The VAX LISP interface to the DECwindows Toolkit differs from
the VAX and C Toolkit interfaces in the following way:
o The functions DWT:INITIALIZE, DWT:MAIN-LOOP, DWT:NEXT-EVENT
and DWT:APP-MAIN-LOOP are actually LISP functions composed
of calls to other routines in the DWT: package. They do not
4 New Features
simply call the C Toolkit routines of the same name, although
they should provide the same behavior and interface.
CLX and DECwindows Toolkit functions can be used together. Sev-
eral Toolkit accessor functions return CLX objects such as win-
dows, displays, and screens. To do this, initialize the Toolkit
and use the DWT:WINDOW function to return the CLX:WINDOW asso-
ciated with a widget. Then you can use CLX functions to access
that window. Remember that the DECwindows Toolkit automatically
queries the event queue and dispatches events, so be careful
using CLX event-processing routines on a display that has been
set up by a DECwindows Toolkit function.
1.6 System-Building Utility
The new features that have been added to the system for V3.0-A
are excludable, using the following options:
:CLX
:DECWINDOWS
:DECW-DEVELOPMENT-ENVIRONMENT
:DWT
:WSSTREAM
See VAX LISP/VMS System-Building Guide for information on these
and other system-building options.
1.7 Example Programs
The installation kit contains an assortment of unsupported
example LISP files, including several useful VAX LISP utilities
and examples of LISP programming style. It is not necessary for
you to install these examples to use VAX LISP.
Included in the examples are the 05/23/89 (Victoria Day) version
of Portable Common Loops (PCL), the publicly-available implemen-
tation of the Common LISP Object System (CLOS). Also included is
a version of RdbLISP and Foxglove.
New Features 5
The RdbLISP software provides an interface layer between Digi-
tal's relational database (Rdb/VMS) and VAX LISP/VMS.
Foxglove is a rapid-prototyping language, written in VAX LISP,
for developing rule-based expert system applications. Foxglove
has the following features:
o Automatic question asking
o The ability to handle arbitrary LISP code in rules
o A built-in user interface for normal character-cell terminals
as well as windowing for DECwindows
o Explanations and retraction
o Automatic conclusion reporting
o The ability to partition the rule base and control rule
firings using rule blocks
1.8 Enhancements
o Math
(EXPT 2.0 50) returns a float, not an integer.
(SCALE-FLOAT 0.0 n) returns 0.0 for all n.
(FLOOR 0 -1) returns 0 0 rather than -1 -1.
o Pathnames
You can use PARSE-NAMESTRING with a default argument of any
of the types: PATHNAME, STRING, SYMBOL, or STREAM.
o SUBTYPEP
For a structure of type ANYTYPE, (SUBTYPEP 'NIL 'ANYTYPE)
returns T; T. Also, (TYPEP (MAKE-ANYTYPE) 'VECTOR) and (TYPEP
(MAKE-ANYTYPE) 'ARRAY) return NIL.
6 New Features
For element types of arrays which VAX LISP implements as
generalized arrays, VAX LISP considers the type a subtype of
the general array. For example:
(subtypep '(simple-array (float) (*))
'(simple-array T (*)))
This form returns T; T.
o REDUCE with :INITIAL-VALUE of NIL
(REDUCE #'LIST '(1 2 3 4) :FROM-END T :INITIAL-VALUE NIL) now
returns the correct result: (1 (2 (3 (4 NIL)))).
o SETF
In V2.2, if A was a vector of five NILs, (PUSHNEW 'X (APPLY
#'AREF A '(1))) failed even though (PUSHNEW 'X (AREF A 1))
succeeded. This was fixed in V3.0.
In V2.2, a call to DEFINE-MODIFY-MACRO in a loaded
interpreted file resulted in a function definition that the
interpreter could not understand. This problem was fixed in
V3.0.
o APPLY
The error message for (APPLY 'UNDEFINED ...) has been changed
to say that UNDEFINED has no function definition.
o Compiler Changes
If an in-line function calls a macro, the macro definition
is expanded at compile time into the in-line function
definition.
o Interpreter Type Checking
The interpreter now checks type declarations in the following
circumstances:
- Lexical variables
New Features 7
If a variable is declared to be of a certain type, a
warning is issued if the variable is bound to a value
not of that type or the variable is assigned with SETQ to
a value not of that type. For example:
Lisp> (defun example (x)
(declare (fixnum x))
(setq x "foo"))
EXAMPLE
Lisp> (example "bar")
Warning in EXAMPLE:
The variable X is declared to be of type FIXNUM, but is
being bound to "bar"
Warning in EXAMPLE:
The variable X is declared to be of type FIXNUM, but is
being assigned the value "foo"
"foo"
- Special variables
Similarly, if a special variable is proclaimed to be of
a certain type, a warning is issued if the variable is
assigned with SETQ to a value of the wrong type.
A warning is also issued when a special variable
is referenced or assigned by interpreted code, the
variable is not proclaimed or declared special, and
the code is read by LOAD (as opposed to being typed
at a read-eval-print loop or evaluated). The warning
happens the first time a particular assignment or variable
reference happens, and not after. For example, in:
(dotimes (i 10) (setq x i))
if x is not proclaimed special, there will be one warning
the first time the loop is executed.
- Forms
8 New Features
For consistency with the above, in (THE value-type form),
a warning is now issued if the result of evaluating the
form does not conform to the data type specified by
value-type. In previous versions of VAX LISP, an error
was signalled.
o Pretty-Printer Change
*PRINT-RIGHT-MARGIN* is effective even when *PRETTY-PRINT* is
NIL. This helps avoid extremely long RMS records when writing
to a file, without having to pay the overhead of full pretty
printing.
1.9 ANSI Standard Committee X3J13 Changes to Common LISP
o A macro cannot legitimately expand into a declaration; the
only valid declaration is a list whose CAR is the symbol
DECLARE. However, it is still possible for a macro call to
expand into a PROCLAIM form.
o If the one-argument form of DEFVAR is used, the initial value
of NIL is no longer given to the variable.
o Each function created by FLET and LABELS and each macro
created by DEFMACRO and MACROLET has an implicit block around
its body. The name of this block is the same as the name
of the function or macro. Similarly, the body of a DEFSETF,
DEFINE-SETF-METHOD, and DEFTYPE is surrounded by a block with
the same name as the accessor or type.
o The syntax of FLET, LABELS, and MACROLET allows declarations
between the list of local function or macro definitions and
the body.
In FLET and LABELS, the scope of such declarations includes
the bodies of the locally defined functions when the
declarations are pervasive. Non-pervasive declarations have
no effect on those bodies except when LABELS includes the
body in the scope of a function non-pervasively declared. The
New Features 9
scope of such declarations does not include the bodies of the
macro expander functions defined by MACROLET.
o A new function called ROW-MAJOR-AREF allows one-dimensional
access to the storage backing up a given array, assuming the
normal row-major storage layout. ROW-MAJOR-AREF is valid for
use with SETF.
Syntax:
ROW-MAJOR-AREF array index
o VAX LISP V3.0-A adheres to new rules for the interaction
between ADJUST-ARRAY and displaced arrays, described here
in terms of three arrays, called A, B, and C. Array A may
be displaced to B before a call to ADJUST-ARRAY or it may be
displaced to C after the call. That is, the following four
situations are possible:
1. A is not displaced before or after the call to
ADJUST-ARRAY. In this case, the dimensions of A are
altered and the contents rearranged as appropriate.
Additional elements of A are taken from the
:INITIAL-ELEMENT. The use of :INITIAL-CONTENTS causes
all old contents to be discarded.
2. A is not displaced before but is displaced to C after. In
this case, none of the original contents of A appears in A
afterwards; A now contains the contents of C, without any
rearrangement of C.
3. A is displaced to B before the call and to C after.
In this case, the contents of B do not appear in
A unless such contents also happen to be in C. If
:DISPLACED-INDEX-OFFSET is not specified in the
ADJUST-ARRAY call, it defaults to zero; the old offset
into B is not retained.
10 New Features
4. A is displaced to B before the call but not after. In this
case, A gets a new data region and the contents of B are
copied into it as appropriate to maintain the existing
old contents; additional elements of A are taken from the
:INITIAL-ELEMENT. However, the use of :INITIAL-CONTENTS
causes all old contents to be discarded.
If array A is displaced to array B, and array B is displaced
to array C, and array B is altered by ADJUST-ARRAY, array A
must now refer to the adjusted contents of B. VAX LISP does
not collapse the chain to make A refer to C directly.
If A is displaced to B, it is an error to adjust B such that
it no longer has enough elements to satisfy A.
NOTE
Omitting the :DISPLACED-TO argument to ADJUST-ARRAY is
equivalent to specifying :DISPLACED-TO NIL; in either
case, the array is not displaced after the call.
o The :FILL-POINTER keyword argument to ADJUST-ARRAY is treated
as follows:
If the :FILL-POINTER argument is not given, then the fill
pointer of the array to be adjusted is left alone. It is
an error to adjust an array to a size smaller than its fill
pointer without specifying the :FILL-POINTER option so that
its fill pointer is properly adjusted in the process.
If supplied, the :FILL-POINTER argument must be either an
integer (between 0 and the new size of the array), the symbol
T (indicating that the new size of the array should be used),
or the symbol NIL (indicating that the fill pointer should
left as it is, that is, as if the :FILL-POINTER option had
not been specified).
An error is signalled if a non-NIL value for :FILL-POINTER is
supplied and the array to be adjusted does not already have a
fill pointer.
New Features 11
o Array element types are automatically upgraded. See the
description of MAKE-ARRAY in the VAX LISP Implementation and
Extensions to Common LISP manual. Note that VAX LISP supports
array element type upgrading as it did in Version 2.2, but
with different results for some cases because V3.0-A supports
additional primitive array types. Furthermore, SUBTYPEP and
TYPEP are not consistent with Version 2.2. Refer to VAX LISP
Implementation and Extensions to Common LISP for information
on how these functions behave in V3.0-A.
o VAX LISP V3.0-A allows a :KEY keyword for ASSOC-IF,
ASSOC-IF-NOT, RASSOC-IF, and RASSOC-IF-NOT. If not supplied,
the value of :KEY defaults to #'IDENTITY. As with the :KEY
argument for ASSOC and RASSOC, the :KEY argument is applied
to the CAR of the pair in the association list for ASSOC-IF
and ASSOC-IF-NOT and the CDR of the pair for RASSOC-IF and
RASSOC-IF-NOT.
o The REDUCE function now takes a :KEY keyword. If a :KEY
argument is supplied, its value must be a function of one
argument which will be used to extract the values to reduce.
The :KEY function will be applied exactly once to each
element of the sequence in the order implied by the reduction
order, but not to the value of the :INITIAL-VALUE argument.
o Type declarations may be made for free variables. The value
of the variable must be a member of the declared type, within
the scope of the declaration. This kind of declaration
means the same thing as wrapping a THE form around every
reference to the variable, including modifying references by
SETQ or SETF. If nested type declarations refer to the same
variable, then the value of the variable must be a member of
the intersection of the declared types.
o DEFSTRUCT types which :INCLUDE another type but do not
specify an explicit :PRINT-FUNCTION inherit the structure
print function from the included type. A print function
that uses the default #S syntax, which overrides any
print function for the parent type, can be specified by
:PRINT-FUNCTION NIL.
12 New Features
o In V3.0-A, (LCM) returns the integer 1.
New Features 13
CHAPTER 2
RESTRICTIONS AND LIMITATIONS
2.1 Notice to 9-Track Tape Customers
For 9-track tape customers only, an additional saveset, Saveset
F, is distributed on the second tape labeled LSP030 in the
installation kit. (For TK50 customers, the files in Saveset
F are contained in Saveset D.) Saveset F contains some LISP
source files and compiled files that are not installed by the
VMSINSTAL procedure. This saveset is not necessary for running
VAX LISP; it contains example programs only. However, if you
find you need any of the files in this saveset, you can copy
them from the tape using the BACKUP utility, as shown in the
following example.
$ mount/for ddcu:
$ backup/log ddcu:lisp030.f/save []
ddcu: represents the device name of the 9-track tape drive.
After you enter these commands, BACKUP copies the files to
your working directory and displays the name of each file
as it is copied. The saveset contains 151 files and takes up
approximately 34,000 blocks. Notice that the file extensions
have a 2 to 3-letter suffix. The suffix indicates the directory
to which it belongs. Each directory has a logical name, as shown
in the following table:
Restrictions and Limitations 15
________________________________________________________________
Suffix Logical Name
________________________________________________________________
EG LISP$EXAMPLES
PCL LISP$PCL
RL RDBLISP$EXAMPLES
FG FOXGLOVE$SYSTEM
________________________________________________________________
When all the files have been copied, you can dismount the tape
using the command:
$ dismount ddcu:
You may then want to copy the files to the appropriate
directories, removing the suffixes at the same time.
2.2 DECwindows Interface to VAX LISP
o Resumying a system suspended under DECwindows reinstates only
the Listener.
2.2.1 The Listener
o There are restrictions on using SPAWN with the DECwindows
interface to VAX LISP. See the VAX LISP/VMS Object Reference
Manual for details.
o Object selection is affected by the value of the special
variable *PRINT-CIRCLE*. When *PRINT-CIRCLE* is non-NIL, only
the top-level object is selectable. For example, given the
Listener dialog below:
16 Restrictions and Limitations
Lisp> (quote (a b c))
(A B C)
Lisp>
If *PRINT-CIRCLE* is NIL four objects printed by LISP are
selectable: (A B C), A, B, and C. If *PRINT-CIRCLE* is
non-NIL only the top-level object, (A B C), is selectable.
o The following sequence may kill your window manager process:
1. Invoke the DECwindows Debugger from the Listener.
2. From the Debugger, invoke the Stepper.
3. From the Stepper, invoke the Debugger.
4. Quit back to the Listener.
2.2.2 The Inspector
o When inspecting an object, the middle button brings up the
pop-up menu even if the pointer cursor is in one of the
scroll bars. This is due to a problem with DECwindows.
2.2.3 The Editor
o There is no automatic attachment of the input focus to the
Editor when the ED function is called. You must click in the
Editor window to attach input focus.
o If you scroll an anchored window that is partially occluded
by a floating window, some of the text that was occluded
may not be properly exposed when moving out from under the
floating window. You can use the "Redisplay Screen" command
to bring up the missing text.
o In V3.0-A under DECwindows, the behavior of the
EDITOR:RETURN-FROM-EDITOR macro in a top-level (as opposed to
recursive) call to ED is unpredictable, since the Editor is
running separately from the Listener's READ-EVAL-PRINT loop.
Restrictions and Limitations 17
o If you resize the Editor window with the DECwindows window
manager controls, you either clip the information inside
the window or expose blank space. Use the functions
EDITOR:SCREEN-HEIGHT and EDITOR:SCREEN-WIDTH with SETF to
resize the Editor display. Note that you can call these
functions before you invoke the Editor (for example, they can
go into an initialization file). Only in this case are your
values remembered across Editor invocations in a single LISP
session. If you simply start the Editor, it comes up 46 rows
by 80 columns (the default size). If you go into the Listener
and change the screen height with EDITOR:SCREEN-HEIGHT, the
Editor is resized. If you then exit the Editor and call
ED, the Editor comes up the default size. However, if you
call EDITOR:SCREEN-HEIGHT or -WIDTH while the Editor is not
running, you reset the default values used when the Editor
window is brought up.
2.3 The Terminal-Based Editor
o If you respond to the last prompt in the "Bind Command"
command with binding context :GLOBAL, you may be left in
the prompting window when you should have been returned to
your previous window. Use the "Next Window" command (bound to
CTRL/X CTRL/N globally) to set your cursor back. Any other
action when your cursor remains in the prompting window is
unpredictable.
o The "General Prompting" buffer does not work in overstrike
mode. The variable EDITOR:TEXT-OVERSTRIKE-MODE is bound
to NIL in the "General Prompting" buffer so that you can
change the global binding of EDITOR:TEXT-OVERSTRIKE-MODE
without affecting the "General Prompting" buffer. You should
not change the binding in the "General Prompting" buffer;
otherwise, commands that prompt will not work.
18 Restrictions and Limitations
o The function WINDOW-LINES-WRAP-P and the Editor Variable
"Default Window Lines Wrap" do not always display wrapped
lines correctly. The bottom wrapped line may not appear when
you scroll continuation lines. Instead, you may see a second
copy of the first line.
2.4 Memory Management
o ENLARGE-CONTROL-STACK is no longer supported.
o The problem with endless control stack overflows has been
eliminated.
2.5 Threads
o The upper limit on the number of threads has increased. You
can now create and execute about 100 threads.
o Threads are not being deleted properly when they execute at
different priorities. For now, you should create all threads
at the default priority (2). This will be fixed in the next
release of VAX LISP.
o Threads created at a priority lower than the default (2)
cannot be scheduled, executed, or deleted. This will be fixed
in the next release of VAX LISP.
o Competition from multiple threads for FORMAT occassionally
causes an error that results in locking up LISP. This is
rare and can be easily avoided by limiting I/O in competing
threads.
Restrictions and Limitations 19
2.6 Callout Facility
o If VMS issues a warning message during shareable image
activation, a callout function will abort even though the
image is correctly mapped. This will be fixed in a future
release of VMS.
2.7 Error Handling
o CANCEL-CHARACTER-TAG is now obsolete. Use CATCH-ABORT and
ABORT instead of (CATCH 'CANCEL-CHARACTER-TAG ...) and
(THROW 'CANCEL-CHARACTER-TAG ...). CATCH-ABORT and ABORT
are described in VAX LISP/VMS Object Reference Manual.
o THROW-TO-COMMAND-LEVEL is no longer supported.
2.8 Window Streams
o CLX window streams work the same as UIS window streams;
they are now editable. The default is black lettering on
a white background. The window's contents are not redrawn
when exposure events occur.
2.9 VMS Workstation Graphics
o A window created by UIS:WINDOW-CREATE will have a border even
if :NOBORDER is specified and it may not appear as wide as
requested.
o When running on VWS V4.0, the Editor does not run in a
separate window. This is due to an error in VWS V4.0.
20 Restrictions and Limitations
CHAPTER 3
DOCUMENTATION ERRATA
3.1 VAX LISP/VMS Implementation and Extensions to Common LISP
o In Section 1.3.7.1, the last sentence of the fourth paragraph
is incorrect. There is no maximum byte size. VAX LISP reads
and writes binary files as 510-byte variable-length records,
up to the byte size that you specify.
3.2 VAX LISP/VMS System-Building Guide
o In Table 2-1, the descriptions of the :CLX and
:DECW-DEVELOPMENT-ENVIRONMENT keywords are incorrect.
Excluding CLX precludes the built system from using
the DECwindows interface, but not the DECtoolkit.
:DECW-DEVELOPMENT-ENVIRONMENT is automatically excluded by
both :DECWINDOWS and :CLX.
3.3 VAX LISP/VMS Object Reference Manual
o The following information should be added to the second
paragraph of the description of the BIND-KEYBOARD-FUNCTION
function:
In the DECwindows environment, if the interrupt
function writes output to the Listener (that is, to the
*STANDARD-INPUT* or *STANDARD-OUTPUT* streams), the output
is written above the current Lisp> prompt. If this output
is intended to be a prompt for user input, the desired
Documentation Errata 21
appearance can be achieved by using the PROMPT function
rather than the PRINT function.
o The PROMPT function should be added to the VAX
LISP/VMS Object Reference Manual following the
*PRINT-SLOT-NAMES-AS-KEYWORDS* variable and preceding the
REQUIRE function.
PROMPT Function
Prints a prompt to a stream.
Format
PROMPT &OPTIONAL prompt stream
Arguments
prompt
A string or a function that takes no arguments and returns a
string. The default is the value of *TOP-LEVEL-PROMPT*.
stream
A stream.
Return Value
The value of prompt.
3.4 VAX LISP/VMS Graphics Programming Guide
o The name of the VAX LISP manual that describes VAX LISP's
interface to the VMS Workstation Software graphics (also
called the UIS graphics interface) has changed. The manual
was called the VAX LISP/VMS Graphics Programming Guide. It
is now called the VAX LISP/VMS Interface to VWS Graphics.
The original manual and VAX LISP/VMS V3.0 update to that
manual are not autmatically included in the VAX LISP/VMS
documentation set. You must order the manual and its update
separately. (Order numbers AA-GH76B-TE and AD-GH76B-T1)
22 Documentation Errata
o All references to MicroVMS routines in the VAX LISP/VMS
Interface to VWS Graphics manual refer to the VMS Workstation
Software routines described in the VMS Workstation Software
Graphics Programming Guide.
3.5 VAX LISP/VMS DECwindows Programming Guide
o The following functions were omitted from Part IV. They
access the data of CLX:IMAGE objects in particular formats.
None of these functions is a valid SETF place.
CLX:IMAGE-XY-BITMAP-LIST Function
Returns the CLX:BITMAP values that contain an image in
:XY-PIXMAP format.
Format
CLX:IMAGE-XY-BITMAP-LIST image
Argument
image
A CLX:IMAGE object.
Return Value
A list of CLX:BITMAP values.
CLX:IMAGE-Z-BITS-PER-PIXEL Function
Returns the number of bits used to store each pixel in a
:Z-PIXMAP format image.
Format
CLX:IMAGE-Z-BITS-PER-PIXEL image
Documentation Errata 23
Argument
image
A CLX:IMAGE object.
Return Value
A member of (1 4 8 16 24 32).
CLX:IMAGE-Z-PIXARRAY Function
Returns the data of an image in :Z-PIXMAP format.
Format
CLX:IMAGE-Z-PIXARRAY image
Argument
image
A CLX:IMAGE object.
Return Value
A CLX:PIXARRAY value.
24 Documentation Errata