Xerox Lisp Release Notes
Total Page:16
File Type:pdf, Size:1020Kb
XEROX LISP RELEASE NOTES XEROX 3102434 Lyric Release June 1987 XEROX LISP RELEASE NOTES 3102434 Lyric Release June 1987 The information in this document is subject to change without notice and should not be construed as a commitment by Xerox Corporation. While every effort has been made to ensure the accuracy of this document, Xerox Corporation assumes no responsibility for any errors that may appear. Copyright © 1987 by Xerox Corporation. Xerox Common Lisp is a trademark. All rights reserved. "Copyright protection claimed includes all forms and matters of copyrightable material and information now allowed by statutory or judicial law or hereinafter granted, including, without limitation, material generated from the software programs which are displayed on the screen, such as icons, screen display looks, etc. " This manual is set in Modern typeface with text written and formatted on Xerox Artificial Intelligence workstations. Xerox laser printers were used to produce text masters. PREFACE TO RELEASE NOTES The preliminary Lyric Release Notes provide reference material on the Xerox Lisp environment for the Lyric Beta release. You will find the following information in these notes: • An overview of significant Xerox extensions to the Common Lisp language • Discussion of how specific Common Lisp features have affected the Interlisp-D language and the Xerox Lisp environment. • Notes reflecting the changes made to Interlisp-D, independent of Common Lisp, since the Koto release • Known restrictions to the use of Xerox Lisp Release Notes Organization The Lyric Release Notes present information on the entire Xerox Lisp environment. Chapter 1, Introduction begins you orientation toward the Xerox Lisp environment. It also lists the manual set for Lyric. Chapter 2, Notes and Cautions, highlights significant changes in the Xerox Lisp environment. Chapter 3, Common Lisp/lnterlisp Integration, discusses how the integration of Common Lisp into the Xerox Lisp environment affects Interlisp features. Chapter 4, Changes to Interlisp-D Since Koto, is a collection of notes outlining changes that have taken place in Interlisp-D and its environment since the Koto release. These changes are primarily independent of Common Lisp integration. Chapter 5, Library Modules, is a synopsis of the changes to Lisp Library Modules .. Chapter 6, User's Guides, is a collection of release notes on the 1108 and 1186 User's Gui'des; A User's Guide to Sketch, and A User's Guide to TEdit. Chapter 7, Known Problems, contains information on existing problems in the environment. Four Appendices contain complete documentation of newly integrated system features. Appendix A describes Xerox Lisp's new kind of Exec. Appendix B describes the new structure editor, SEdit. Appendix C presents information on ICONW, which has been moved out of the Koto Library and into the system. Appendix D contains complete LYRIC RELEASE NOTES III information on Free Menu, another former Koto Library package that has been expanded and added to Xerox Lisp. Chapters 3 and 4 are organized to parallel the Interlisp-D Reference Manual as closely as possible. To make it easy to use these notes with the Interlisp-D Reference Manual the following conventions are used: Information (changes, etc.) is organized by Interlisp-D Reference Manual volume and section. The Interlisp-D Reference Manual section level headings were maintained in the Release Notes to aid in cross-referencing. In many instances the changed page is listed in the following manner: (11:17.6) How to Use The Release Notes We recommend that you use these notes with your Interlisp-D Reference Manual and the following documents packaged with the Lyric release: Xerox Common Lisp Implementation Notes Common Lisp, the Language by Guy Steele Lisp Library Modules Documentation Tools iv LYRIC RELEASE NOTES TABLE OF CONTENTS Preface 1. Introduction Changes to the Envi ronment 2 Using the Release Notes 2 2. Notes and Cautions 3 Incompatible Changes to Interlisp 3 3. Common Lisp/lnterlisp-D Integration 7 Chapter 2 litatoms 7 Section 2.1 Using Litatoms as Variables 7 Section 2.3 Property Lists 8 Section 2.4 Print Names 8 Section 2.5 Characters 8 Chapter 4 Stri ngs 9 Chapter 5 Arrays 9 Chapter 6 Hash Arrays 9 Chapter 7 Numbers and Arithmetic Functions 10 Section 7.2 Integer Arithmetic 10 Chapter 10 Function Definition, Manipulation, and Evaluation 10 Section 10.1 Function Types 10 Section 10.6 Macros 10 Section 10.6.1 DEFMACRO 11 Chapter 11 Stack Functions 11 Section 11.1 The Spaghetti Stack 11 Chapter 12 Miscellaneous 12 Section 12.4 System Version Information 12 Section 12.8 Pattern Matching 12 Chapter 13 tnterlisp Executive 13 Chapter 14 Errors and Breaks 15 Section 14.3 Break Commands 15 Section 14.6 Creating Breaks with BREAK1 15 Section 14.7 Signalling Errors 15 Section 14.8 Catching Errors 16 Section 14. 9 Changing and Restoring System State 17 Section 14.10 Error List 17 LYRIC RElEAS"E NOTES v TABLE OF CONTENTS Chapter 15 Breaking Functions and Debugging 19 Section 15.1 Breaking Functions and Debugging 19 Section 15.2 Advising 20 Chapter 16 List Structure Editor 21 Switching Between Editors 21 Starting a Lisp Editor 22 Mapping the Old Edit Interface to ED 23 Section 16.18 Editor Functions 23 Chapter 17 File Package 23 Reader Envi ronments and the File Manager 24 Modifying .Standard Readtables 26 Programmer·s Interfaci! to ReadeT Environments 27 Section 17.1 Loading Files 28 Integration of Interlisp and Common Lisp LOAD Functions 28 Section 17.2 Storing Files 29 Section 17.8.2 Defining New File Manager Types 30 Definers: A New Facility for Extending the File Manager 30 Chapter 18 Compiler 35 Chapter 19 Masterscope 36 Chapter 21 CLISP 36 Chapter 22 Performance Issues 38 Section 22.3 Performance Measuring 38 Chapter 24 Streams and Files 39 Section 24.15 Deleting, Copying, and Renaming Files 40 Chapter 25 Input/Output Functions 40 Variables Affecting Input/Output 40 Integration of Common Lisp and Interlisp Input/Output Functions 42 Section 25.2 Input Functions 42 Section 25.3 Output Functions 43 Printing Differences Between Jl:PRtN2 and Cl:PRIN1 43 Internal Printing functions 44 Printing Differences Between Koto and Lyric 44 Bitmap Syntax 45 Section 25.8 Readtables 45 Differences Between Interlisp and Common Lisp Readtables 46 Section 25.8.2 New Readtable Syntax Classes 47 Additional ReadtableProperties 47 Section 25.8 Predefined Readtables 48 Koto Compatibility Considerations so Specifying Readtables and Packages so vi LYRtl: RELEASE NOTES TABLE OF CONTENTS The T Readtable 50 PQUOTE Printed Files 51 Back-Quote Facility 51 4. Changes to Interlisp-D Since Koto 53 . Chapter 3 Lists 53 Section 3.2 53 Section 3.10 53 Chapter 6 Hash Arrays 53 Section 6.1 Hash Overflow 54 Chapter 7 Integer Arithmetic 54 Section 7.3 Logical Arithmetic Functions 54 Section 7.5 Other Arithmetic Functions 54 Chapter 9 Conditionals and Iterative Statements 55 Section 9.2 Equality Predicates 55 Section 9.8.3 Condition I.s. oprs 55 Chapter 10 Function Definition, Manipulation, and Evaluation 55 Section 10.2 Defining Functions 55 Section 10.5 Functional Arguments 55 Section 10.6.2 Interpreting Macros 55 Chapter 11 Variable Bindings and the Interlisp Stack 56 Section 11.2.1 Searching the Stack 56 Section 11.2.2 Variable Bindings in Stack Frames 56 Section 11.2.5 Releasing and Reusing Stack Pointers 57 Section 11.2.7 Other Stack Functions 57 Chapter 12 Miscellaneous 57 Section 12.2 Idle Mode 57 Section 12.3 Saving Virtual Memory State 58 Section 12.4 System Version Information 59 Chapter 13 Interlisp Executive 60 Chapter 14 Errors ~nd Breaks 60 Section 14.5 Break Window Variables 60 Chapter 17 File Package 60 Section 17.8.1 Functions for Manipulating Typed Definitions 60 Section 17.8.2 Defining New File Package Types 61 Section 17.9.8 Defining New File Package Commands 61 Section 17.11 Symbolic File Format 61 Section 17.11.3 File Maps. 61 Chapter 18 Compiler 61 Chapter 21 CLISP 62 Section 21.8 Miscellaneous Functions and Variables 62 LYRIC RELEASE NOTES vii TABLE OF CONTENTS Chapter 22 Performance Issues 62 Section 22. 1 Storage Allocation and Garbage Collection 62 Section 22.5 Using Data Types Instead of Records 63 Chapter 23 Processes 63 Section 23.6 Typein and the ITV Process 63 Chapter 24 Streams and Files 64 Section 24.7 File Attributes 64 Section 24.18.1 Pup File Server Protocols 64 Section 24.18.3 Operating System Designations 65 Chapter 25 Input/Output Functions 65 Section 25.2 Input Functions 65 Section 25.3.2 Printing Numbers 65 Section 25.3.4 Printing Unusual Data Structures 65 Section 25.4 Random Access File Operations 65 Section 25.6 PRI NTOUT 65 Section 25.8.3 READ Macros 66 Chapter 26 User Input/Output Packages 66 Section 26.3 ASKUSER 66 Section 26.4.5 Useful Macros 66 Chapter 27 Graphic Output Operations 66 Section 27.1.3 Bitmaps 66 Section 27.3 Accessing Image Stream Fields 66 Section 27.6 Drawing Lines 67 Section 27.7 Drawing Curves 67 Section 27.8 Miscellaneous Drawing and Printing Operations 67 Section 27.12 Fonts 69 Section 27.13 Font Files and Font Directories 71 Section 27.14 Font Classes 71 Section 27.14 Font Profiles 71 Chapter 28 Wi ndows and Menus 71 Section 28.1 Using the Window System 71 Section 28.4 Windows 72 Section 28.4.5 Reshaping Windows 72 Section 28.4.8 Shrinking Windows Into Icons 72 Section 28.4.11 Terminal 110 and Page Holding 73 Section 28.5 Menus 73 Section 28.6.2 Attached Prompt Windows 76 Chapter 29 Hardcopy Facilities 76 Chapter 30 TerminallnputlOutput 76 Section 30.