CMUCL User's Manual
Total Page:16
File Type:pdf, Size:1020Kb
CMUCL User’s Manual Robert A. MacLachlan, Editor October 2010 20b CMUCL is a free, high-performance implementation of the Common Lisp programming lan- guage, which runs on most major Unix platforms. It mainly conforms to the ANSI Common Lisp Standard. CMUCL features a sophisticated native-code compiler, a foreign function interface, a graphical source-level debugger, an interface to the X11 Window System, and an Emacs-like edi- tor. Keywords: lisp, Common Lisp, manual, compiler, programming language implementation, pro- gramming environment This manual is based on CMU Technical Report CMU-CS-92-161, edited by Robert A. MacLachlan, dated July 1992. Contents 1 Introduction 1 1.1 Distribution and Support . 1 1.2 Command Line Options . 2 1.3 Credits . 3 2 Design Choices and Extensions 6 2.1 Data Types . 6 2.1.1 Integers . 6 2.1.2 Floats . 6 2.1.3 Extended Floats . 9 2.1.4 Characters . 10 2.1.5 Array Initialization . 10 2.1.6 Hash tables . 10 2.2 Default Interrupts for Lisp . 11 2.3 Implementation-Specific Packages . 12 2.4 Hierarchical Packages . 13 2.4.1 Introduction . 13 2.4.2 Relative Package Names . 13 2.4.3 Compatibility with ANSI Common Lisp . 14 2.5 Package Locks . 15 2.5.1 Rationale . 15 2.5.2 Disabling package locks . 16 2.6 The Editor . 16 2.7 Garbage Collection . 16 2.7.1 GC Parameters . 17 2.7.2 Generational GC . 18 2.7.3 Weak Pointers . 19 2.7.4 Finalization . 19 2.8 Describe . 19 2.9 The Inspector . 20 2.9.1 The Graphical Interface . 20 2.9.2 The TTY Inspector . 20 2.10 Load . 21 2.11 The Reader . 21 2.11.1 Reader Extensions . 21 2.11.2 Reader Parameters . 22 2.12 Stream Extensions . 22 2.13 Simple Streams . 22 2.14 Running Programs from Lisp . 22 2.14.1 Process Accessors . 24 2.15 Saving a Core Image . 25 2.16 Pathnames . 26 2.16.1 Unix Pathnames . 26 2.16.2 Wildcard Pathnames . 27 i CONTENTS ii 2.16.3 Logical Pathnames . 27 2.16.4 Search Lists . 27 2.16.5 Predefined Search-Lists . 28 2.16.6 Search-List Operations . 28 2.16.7 Search List Example . 29 2.17 Filesystem Operations . 29 2.17.1 Wildcard Matching . 29 2.17.2 File Name Completion . 30 2.17.3 Miscellaneous Filesystem Operations . 30 2.18 Time Parsing and Formatting . 30 2.19 Random Number Generation . 32 2.19.1 MT-19937 Generator . 32 2.20 Lisp Threads . 32 2.21 Lisp Library . 32 2.22 Generalized Function Names . 32 2.23 CLOS . 33 2.23.1 Primary Method Errors . 33 2.23.2 Slot Type Checking . 33 2.23.3 Slot Access Optimization . 34 2.23.4 Inlining Methods in Effective Methods . 36 2.23.5 Effective Method Precomputation . 36 2.23.6 Sealing . 37 2.23.7 Method Tracing and Profiling . 37 2.23.8 Misc . 38 2.24 Differences from ANSI Common Lisp . 38 2.24.1 Extensions . 38 2.25 Function Wrappers . 38 2.26 Dynamic-Extent Declarations . 40 2.26.1 &rest argument lists . 40 2.26.2 Closures . 40 2.26.3 list, list*, and cons .......................................... 41 2.27 Modular Arithmetic . 41 2.28 Extension to REQUIRE . 41 2.29 Localization . 42 2.29.1 Dictionary . ..