* New version of IRM New version of the IRM, updated to Medley. * moved to docs/medley-irm as discussed
6 lines
24 KiB
Plaintext
6 lines
24 KiB
Plaintext
1
|
||
|
||
MEDLEY REFERENCE
|
||
1
|
||
|
||
MEDLEY REFERENCE
|
||
TABLE OF CONTENTS
|
||
1
|
||
|
||
TABLE OF CONTENTS
|
||
1
|
||
|
||
|
||
TABLE of CONTENTS
|
||
6
|
||
|
||
Volume 1 - Lanuage Reference
|
||
1. Introduction 1
|
||
2. Litatoms (Symbols) 2-1
|
||
Using Symbols as Variables 2-1
|
||
Function Definition Cells 2-3
|
||
Property Lists 2-4
|
||
Print Names 2-5
|
||
Characters and Character Codes 2-9
|
||
3. Lists 3-1
|
||
Creating Lists 3-3
|
||
Building Lists from Left to Right 3-4
|
||
Copying Lists 3-6
|
||
Extracting Tails of Lists 3-6
|
||
Counting List Cells 3-8
|
||
Logical Operations 3-9
|
||
Searching Lists 3-10
|
||
Substitution Functions 3-10
|
||
Association Lists and Property Lists 3-11
|
||
Sorting Lists 3-13
|
||
Other List Functions 3-15
|
||
4. Strings 4-1
|
||
5. Arrays 5-1
|
||
6. Hash Arrays 6-1
|
||
Hash Overflow 6-3
|
||
User-Specified Hashing Functions 6-3
|
||
7. Numbers and Arithmetic Functions 7-1
|
||
Generic Arithmetic 7-2
|
||
Integer Arithmetic 7-3
|
||
Logical Arithmetic Functions 7-6
|
||
Floating-Point Arithmetic 7-8
|
||
Other Arithmetic Functions 7-10
|
||
8. Record Package 8-1
|
||
FETCH and REPLACE 8-1
|
||
CREATE 8-2
|
||
TYPE? 8-3
|
||
WITH 8-4
|
||
Record Declarations 8-4
|
||
Record Types 8-5
|
||
Optional Record Specifications 8-10
|
||
Defining New Record Types 8-12
|
||
Record Manipulation Functions 8-12
|
||
Changetran 8-13
|
||
Built-in and User Data Types 8-15
|
||
9. Conditionals and Iterative Statements 9-1
|
||
Data Type Predicates 9-1
|
||
Equality Predicates 9-2
|
||
Logical Predicates 9-3
|
||
COND Conditional Function 9-3
|
||
The IF Statement 9-4
|
||
Selection Functions 9-5
|
||
PROG and Associated Control Functions 9-6
|
||
The Iterative Statement 9-7
|
||
I.s. Types 9-8
|
||
Iterative Variable I.s.oprs 9-9
|
||
Condition I.s.oprs 9-12
|
||
Other I.s.oprs 9-13
|
||
Miscellaneous Hints on I.s.oprs 9-13
|
||
Errors in Iterative Statements 9-15
|
||
Defining New Iterative Statement Operators 9-15
|
||
10. Function Definition, Manipulation, and Evaluation 10-1
|
||
Function Types 10-2
|
||
Lambda-Spread Functions 10-2
|
||
Nlambda-Spread Functions 10-3
|
||
Lambda-Nospread Functions 10-4
|
||
Nlambda-Nospread Functions 10-4
|
||
Compiled Functions 10-5
|
||
Function Type Functions 10-5
|
||
Defining Functions 10-7
|
||
Function Evaluation 10-1
|
||
Iterating and Mapping Functions 10-1
|
||
Function Arguments 10-1
|
||
Macros 10-1
|
||
DEFMACRO 10-15
|
||
Interpreting Macros 10-15
|
||
11. Variable Binds and the Interlisp Stack 11-1
|
||
Spaghetti Stack 11-2
|
||
Stack Functions 11-3
|
||
Searching the Stack 11-4
|
||
Variable Binds in Stack Frames 11-5
|
||
Evaluating Expressions in Stack Frames 11-6
|
||
Altering Flow of Control 11-6
|
||
Releasing and Reusing Stack Pointers 11-7
|
||
Backtrace Functions 11-8
|
||
Other Stack Functions 11-10
|
||
The Stack and the Interpreter 11-10
|
||
Generators 11-12
|
||
Coroutines 11-14
|
||
Possibilities Lists 11-15
|
||
12. Miscellaneous 12-1
|
||
Greeting and Initialization Files 12-1
|
||
Idle Mode 12-3
|
||
Saving Virtual Memory State 12-5
|
||
System Version Information 12-9
|
||
Date and Time Functions 12-11
|
||
Timers and Duration Functions 12-13
|
||
Resources 12-15
|
||
A Simple Example 12-16
|
||
Trade-offs in More Complicated Cases 12-18
|
||
Macros for Accessing Resources 12-18
|
||
Saving Resources in a File 12-19
|
||
Pattern Matching 12-19
|
||
Pattern Elements 12-20
|
||
Element Patterns 12-20
|
||
Segment Patterns 12-21
|
||
Assignments 12-23
|
||
Place-Markers 12-23
|
||
Replacements 12-24
|
||
Reconstruction 12-24
|
||
Examples 12-25
|
||
Volume 2 - Environment Reference
|
||
13. Interlisp Executive 13-1
|
||
Input Formats 13-3
|
||
Programmer's Assistant Commands 13-4
|
||
Event Specification 13-4
|
||
Commands 13-6
|
||
P.A. Commands Applied to P.A. Commands 13-15
|
||
Changing the Programmer's Assistant 13-16
|
||
Undoing 13-19
|
||
Undoing Out of Order 13-20
|
||
SAVESET 13-21
|
||
UNDONLSETQ and RESETUNDO 13-22
|
||
Format and Use of the History List 13-23
|
||
Programmer's Assistant Functions 13-26
|
||
The Editor and the Programmer's Assistant 13-32
|
||
14. Errors and Breaks 14-1
|
||
Breaks 14-1
|
||
Break Windows 14-2
|
||
Break Commands 14-3
|
||
Controlling When to Break 14-10
|
||
Break Window Variables 14-11
|
||
Creating Breaks with BREAK1 14-12
|
||
Signalling Errors 14-14
|
||
Catching Errors 14-16
|
||
Changing and Restoring System State 14-18
|
||
Error List 14-20
|
||
15. Breaking, Tracing, and Advising 15-1
|
||
Breaking Functions and Debugging 15-1
|
||
Advising 15-7
|
||
Implementation of Advising 15-7
|
||
Advise Functions 15-8
|
||
16. List Structure Editor 16-1
|
||
SEdit 16-1
|
||
Local Attention-Changing Commands 16-10
|
||
Commands That Search 16-14
|
||
Search Algorithm 16-15
|
||
Search Commands 16-16
|
||
Location Specification 16-18
|
||
Commands That Save and Restore the Edit Chain 16-21
|
||
Commands That Modify Structure 16-22
|
||
Implementation 16-23
|
||
The A, B, and : Commands 16-24
|
||
Form Oriented Editing and the Role of UP 16-26
|
||
Extract and Embed 16-26
|
||
The MOVE Command 16-28
|
||
Commands That Move Parentheses 16-30
|
||
TO and THRU 16-31
|
||
The R Command 16-34
|
||
Commands That Print 16-35
|
||
Commands for Leaving the Editor 16-37
|
||
Nested Calls to Editor 16-39
|
||
Manipulating the Characters of an Atom or String 16-39
|
||
Manipulating Predicates and Conditional Expressions 16-40
|
||
History Commands in the Editor 16-41
|
||
Miscellaneous Commands 16-41
|
||
Commands That Evaluate 16-43
|
||
Commands That Test 16-45
|
||
Edit Macros 16-46
|
||
Undo 16-48
|
||
EDITDEFAULT 16-50
|
||
Editor Functions 16-51
|
||
Time Stamps 16-57
|
||
17. File Package 17-1
|
||
Loading Files 17-3
|
||
Storing Files 17-8
|
||
Remaking a Symbolic File 17-12
|
||
Loading Files in a Distributed Environment 17-13
|
||
Marking Changes 17-13
|
||
Noticing Files 17-15
|
||
Distributing Change Information 17-16
|
||
File Package Types 17-16
|
||
Functions for Manipulating Typed Definitions 17-19
|
||
Defining New File Package Types 17-23
|
||
File Package Commands 17-25
|
||
Functions and Macros 17-26
|
||
Variables 17-27
|
||
Litatom Properties 17-29
|
||
Miscellaneous File Package Commands 17-30
|
||
DECLARE: 17-31
|
||
Exporting Definitions 17-33
|
||
FileVars 17-34
|
||
Defining New File Package Commands 17-35
|
||
Functions for Manipulating File Command Lists 17-37
|
||
Symbolic File Format 17-38
|
||
Copyright Notices 17-40
|
||
Functions Used Within Source Files 17-42
|
||
File Maps 17-42
|
||
18. Compiler 18-1
|
||
Compiler Printout 18-2
|
||
Global Variables 18-3
|
||
Local Variables and Special Variables 18-4
|
||
Constants 18-5
|
||
Compiling Function Calls 18-6
|
||
FUNCTION and Functional Arguments 18-7
|
||
Open Functions 18-8
|
||
COMPILETYPELST 18-8
|
||
Compiling CLISP 18-9
|
||
Compiler Functions 18-9
|
||
Block Compiling 18-12
|
||
Block Declarations 18-13
|
||
Block Compiling Functions 18-15
|
||
Compiler Error Messages 18-16
|
||
19. DWIM 20-1
|
||
Spelling Correction Protocol 20-3
|
||
Parentheses Errors Protocol 20-4
|
||
Undefined Function T Errors 20-4
|
||
DWIM Operation 20-5
|
||
DWIM Correction: Unbound Atoms 20-6
|
||
Undefined CAR of Form 20-7
|
||
Undefined Function in APPLY 20-8
|
||
DWIMUSERFORMS 20-8
|
||
DWIM Functions and Variables 20-10
|
||
Spelling Correction 20-11
|
||
Synonyms 20-12
|
||
Spelling Lists 20-12
|
||
Generators for Spelling Correction 20-14
|
||
Spelling Corrector Algorithm 20-14
|
||
Spelling Corrector Functions and Variables 20-15
|
||
20. CLISP 21-1
|
||
CLISP Interaction with User 21-4
|
||
CLISP Character Operators 21-5
|
||
Declarations 21-9
|
||
CLISP Operation 21-10
|
||
CLISP Translations 21-12
|
||
DWIMIFY 21-13
|
||
CLISPIFY 21-16
|
||
Miscellaneous Functions and Variables 21-18
|
||
CLISP Internal Conventions 21-20
|
||
21. Performance Issues 22-1
|
||
Storage Allocation and Garbage Collection 22-1
|
||
Variable Bindings 22-4
|
||
Performance Measuring 22-5
|
||
BREAKDOWN 22-7
|
||
GAINSPACE 22-9
|
||
Using Data Types Instead of Records 22-9
|
||
Using Incomplete File Names 22-10
|
||
Using "Fast" and "Destructive" Functions 22-10
|
||
22. Processes 23-1
|
||
Creating and Destroying Processes 23-1
|
||
Process Control Constructs 23-4
|
||
Events 23-5
|
||
Monitors 23-7
|
||
Global Resources 23-8
|
||
Typein and the TTY Process 23-9
|
||
Switing the TTY Process 23-9
|
||
Handling of Interrupts 23-11
|
||
Keeping the Mouse Alive 23-12
|
||
Process Status Window 23-12
|
||
Non-Process Compatibility 23-14
|
||
Volume 3 - I/O Reference
|
||
23. Streams and Files 24-1
|
||
Opening and Closing File Streams 24-1
|
||
File Names 24-4
|
||
Incomplete File Names 24-7
|
||
Version Recognition 24-9
|
||
Using File Names Instead of Streams 24-10
|
||
File Name Efficiency Considerations 24-11
|
||
Obsolete File Opening Functions 24-11
|
||
Converting Old Programs 24-11
|
||
Using Files with Processes 24-12
|
||
File Attributes 24-12
|
||
Closing and Reopening Files 24-15
|
||
Local Hard Disk Device 24-16
|
||
Floppy Disk Device 24-18
|
||
I/O Operations To and From Strings 24-22
|
||
Temporary Files and the CORE Device 24-23
|
||
NULL Device 24-24
|
||
Deleting, Copying, and Renaming Files 24-24
|
||
Searching File Directories 24-24
|
||
Listing File Directories 24-25
|
||
File Servers 24-28
|
||
PUP File Server Protocols 24-28
|
||
Xerox NS File Server Protocols 24-28
|
||
Operating System Designations 24-29
|
||
Logging In 24-30
|
||
Abnormal Conditions 24-31
|
||
24. Input/Output Functions 25-1
|
||
Specifying Streams for Input/Output Functions 25-1
|
||
Input Functions 25-2
|
||
Output Functions 25-6
|
||
PRINTLEVEL 25-8
|
||
Printing Numbers 25-10
|
||
User Defined Printing 25-12
|
||
Printing Unusual Data Structures 25-13
|
||
Random Access File Operations 25-14
|
||
Input/Output Operations with Characters and Bytes 25-17
|
||
PRINTOUT 25-17
|
||
Horizontal Spacing Commands 25-19
|
||
Vertical Spacing Commands 25-20
|
||
Special Formatting Controls 25-20
|
||
Printing Specifications 25-20
|
||
Paragraph Format 25-21
|
||
Right-Flushing 25-21
|
||
Centering 25-22
|
||
Numbering 25-22
|
||
Escaping to Lisp 25-23
|
||
User-Defined Commands 25-23
|
||
Special Printing Functions 25-24
|
||
READFILE and WRITEFILE 25-25
|
||
Read Tables 25-25
|
||
Read Table Functions 25-26
|
||
Syntax Classes 25-26
|
||
Read Macros 25-29
|
||
25. User Input/Output Packages 26-1
|
||
Inspector 26-1
|
||
Calling the Inspector 26-1
|
||
Multiple Ways of Inspecting 26-2
|
||
Inspect Windows 26-3
|
||
Inspect Window Commands 26-3
|
||
Interaction with Break Windows 26-4
|
||
Controlling the Amount Displayed During Inspection 26-4
|
||
Inspect Macros 26-4
|
||
INSPECTWs 26-5
|
||
PROMPTFORWORD 26-7
|
||
ASKUSER 26-9
|
||
Format of KEYLST 26-10
|
||
Options 26-12
|
||
Operation 26-13
|
||
Completing a Key 26-14
|
||
Special Keys 26-15
|
||
Startup Protocol and Typeahead 26-16
|
||
TTYIN Typein Editor 26-17
|
||
Entering Input with TTYIN 26-17
|
||
Mouse Commands (Interlisp-D Only) 26-19
|
||
Display Editing Commands 26-19
|
||
Using TTYIN for Lisp Input 26-22
|
||
Useful Macros 26-23
|
||
Programming with TTYIN 26-23
|
||
Using TTYIN as a General Editor 26-25
|
||
?= Handler 26-26
|
||
Read Macros 26-27
|
||
Assorted Flags 26-28
|
||
Special Responses 26-29
|
||
Display Types 26-30
|
||
Prettyprint 26-31
|
||
Comment Feature 26-33
|
||
Comment Pointers 26-34
|
||
Converting Comments to Lowercase 26-35
|
||
Special Prettyprint Controls 26-36
|
||
26. Graphics Output Operations 27-1
|
||
Primitive Graphics Concepts 27-1
|
||
Positions 27-1
|
||
Regions 27-1
|
||
Bitmaps 27-2
|
||
Textures 27-5
|
||
Opening Image Streams 27-6
|
||
Accessing Image Stream Fields 27-8
|
||
Current Position of an Image Stream 27-10
|
||
Moving Bits Between Bitmaps with BITBLT 27-11
|
||
Drawing Lines 27-13
|
||
Drawing Curves 27-14
|
||
Miscellaneous Drawing and Printing Operations 27-15
|
||
Drawing and Shading Grids 27-17
|
||
Display Streams 27-18
|
||
Fonts 27-19
|
||
Font Files and Font Directories 27-24
|
||
Font Profiles 27-24
|
||
Image Objects 27-27
|
||
IMAGEFNS Methods 27-28
|
||
Registering Image Objects 27-30
|
||
Reading and Writing Image Objects on Files 27-31
|
||
Copying Image Objects Between Windows 27-31
|
||
Implementation of Image Streams 27-32
|
||
27. Windows and Menus 28-1
|
||
Using the Window System 28-1
|
||
Changing the Window System 28-6
|
||
Interactive Display Functions 28-7
|
||
Windows 28-9
|
||
Window Properties 28-10
|
||
Creating Windows 28-10
|
||
Opening and Closing Windows 28-11
|
||
Redisplaying Windows 28-12
|
||
Reshaping Windows 28-13
|
||
Moving Windows 28-14
|
||
Exposing and Burying Windows 28-16
|
||
Shrinking Windows into Icons 28-16
|
||
Coordinate Systems, Extents, and Scrolling 28-18
|
||
Mouse Activity in Windows 28-21
|
||
Terminal I/O and Page Holding 28-22
|
||
TTY Process and the Caret 28-23
|
||
Miscellaneous Window Functions 28-24
|
||
Miscellaneous Window Properties 28-25
|
||
Example: A Scrollable Window 28-26
|
||
Menus 28-28
|
||
Menu Fields 28-29
|
||
Miscellaneous Menu Functions 28-32
|
||
Examples of Menu Use 28-32
|
||
Attached Windows 28-34
|
||
Attaching Menus to Windows 28-37
|
||
Attached Prompt Windows 28-38
|
||
Window Operations and Attached Windows 28-39
|
||
Window Properties of Attached Windows 28-41
|
||
28. Hardcopy Facilities 29-1
|
||
Hardcopy Functions 29-1
|
||
Low-Level Hardcopy Variables 29-4
|
||
29. Terminal Input/Output 30-1
|
||
Interrupt Characters 30-1
|
||
Terminal Tables 30-4
|
||
Terminal Syntax Classes 30-4
|
||
Terminal Control Functions 30-5
|
||
Line-Buffering 30-7
|
||
Dribble Files 30-10
|
||
Cursor and Mouse 30-10
|
||
Changing the Cursor Image 30-11
|
||
Flashing Bars on the Cursor 30-13
|
||
Cursor Position 30-13
|
||
Mouse Button Testing 30-14
|
||
Low-Level Mouse Functions 30-15
|
||
Keyboard Interpretation 30-15
|
||
Display Screen 30-18
|
||
Miscellaneous Terminal I/O 30-19
|
||
30. Ethernet 31-1
|
||
Ethernet Protocols 31-1
|
||
Protocol Layering 31-1
|
||
Level Zero Protocols 31-2
|
||
Level One Protocols 31-2
|
||
Higher Level Protocols 31-3
|
||
Connecting Networks: Routers and Gateways 31-3
|
||
Addressing Conflicts with Level Zero Mediums 31-3
|
||
References 31-4
|
||
Higher-Level PUP Protocol Functions 31-4
|
||
Higher-Level NS Protocol Functions 31-5
|
||
Name and Address Conventions 31-5
|
||
Clearinghouse Functions 31-7
|
||
NS Printing 31-9
|
||
SPP Stream Interface 31-9
|
||
Courier Remote Procedure Call Protocol 31-11
|
||
Defining Courier Programs 31-11
|
||
Courier Type Definitions 31-12
|
||
Pre-defined Types 31-13
|
||
Constructed Types 31-13
|
||
User Extensions to the Type Language 31-15
|
||
Performing Courier Transactions 31-16
|
||
Expedited Procedure Call 31-17
|
||
Expanding Ring Broadcast 31-18
|
||
Using Bulk Data Transfer 31-18
|
||
Courier Subfunctions for Data Transfer 31-19
|
||
Level One Ether Packet Format 31-20
|
||
PUP Level One Functions 31-21
|
||
Creating and Managing Pups 31-21
|
||
Sockets 31-22
|
||
Sending and Receiving Pups 31-23
|
||
Pup Routing Information 31-23
|
||
Miscellaneous PUP Utilities 31-24
|
||
PUP Debugging Aids 31-24
|
||
NS Level One Functions 31-28
|
||
Creating and Managing XIPs 31-28
|
||
NS Sockets 31-28
|
||
Sending and Receiving XIPs 31-29
|
||
NS Debugging Aids 31-29
|
||
Support for Other Level One Protocols 31-29
|
||
The SYSQUEUE Mechanism 31-31
|
||
Glossary GLOSSARY-1
|
||
Index INDEX-1
|
||
[This page intentionally left blank] |