CLX — Common LISP X Interface

Total Page:16

File Type:pdf, Size:1020Kb

CLX — Common LISP X Interface CLX Common LISP X Interface 1988, 1989 Texas Instruments Incorporated Permission is granted to any individual or institution to use, copy, modify and distribute this document, provided that this complete copyright and permission notice is maintained, intact, in all copies and supporting documentation. Texas Instruments Incorporated makes no representations about the suitability of this document or the software described herein for any purpose. It is provided ”as is” without express or implied warranty. CLX Programmer’s Reference i ACKNOWLEDGMENTS Primary Interface Author: Robert W. Scheifler MIT Laboratory for Computer Science 545 Technology Square, Room 418 Cambridge, MA 02139 [email protected] Primary Implementation Author: LaMott Oren Texas Instruments PO Box 655474, MS 238 Dallas, TX 75265 [email protected] Design Contributors: Dan Cerys, BBN Scott Fahlman, CMU Kerry Kimbrough, Texas Instruments Chris Lindblad, MIT Rob MacLachlan, CMU Mike McMahon, Symbolics David Moon, Symbolics LaMott Oren, Texas Instruments Daniel Weinreb, Symbolics John Wroclawski, MIT Richard Zippel, Symbolics Documentation Contributors: Keith Cessna, Texas Instruments Kerry Kimbrough, Texas Instruments Mike Myjak LaMott Oren, Texas Instruments Dan Stenger, Texas Instruments The X Window System is a trademark of MIT. UNIX is a trademark of AT&T Bell Laboratories. ULTRIX, ULTRIX–32, ULTRIX–32m, ULTRIX–32w, and VAX/VMS are trademarks of Digital Equipment Corporation. ii CLX Programmer’s Reference CONTENTS Section Title 1 INTRODUCTION TO CLX 2 DISPLAYS 3 SCREENS 4 WINDOWS AND PIXMAPS 5 GRAPHICS CONTEXTS 6 GRAPHIC OPERATIONS 7 IMAGES 8 FONTS AND CHARACTERS 9 COLORS 10 CURSORS 11 ATOMS, PROPERTIES, AND SELECTIONS 12 EVENTS AND INPUT 13 RESOURCES 14 CONTROL FUNCTIONS 15 EXTENSIONS 16 ERRORS A PROTOCOL VS. CLX FUNCTION CROSS-REFERENCE LISTING B GLOSSARY INDEX CLX Programmer’s Reference iii iv CLX Programmer’s Reference INTRODUCTION TO CLX Introduction 1.1 This manual assumes a basic understanding of window systems and the Common Lisp programming language. To provide an introduction to the Common Lisp X Inter- face (CLX) programming, this section discusses the following: • Overview of the X Window System • Naming and argument conventions • Programming considerations The X Window 1.2 The X Window System was developed at the Massachusetts Institute of System Technology (MIT) and first released in 1985. Since then, the X Window System has be- come an industry-standard product available on virtually every type of bit-mapped workstation. The current version of X, Version 11, has been implemented for several dif- ferent computer architectures, for a wide variety of display hardware, and also for many different operating systems. X Version 11 represents the fulfillment of the original de- sign goals proposed by MIT, as follows: • Portable — Support virtually any bitmap display and any interactive input device (including keyboards, mice, tablets, joysticks, and touch screens). Make it easy to implement the window system on different operating systems. • Device-Independent Applications — Avoid rewriting, recompiling, or even relink- ing in order to use different display/input hardware. Make it easy for an application to work on both monochrome and color hardware. • Network Transparent — Let an application run on one computer while using anoth- er computer’s display, even if the other computer has a different operating system or hardware architecture. • Multitasking — Support multiple applications being displayed simultaneously. • No User Interface Policy — Since no one agrees on what constitutes the best user interface, make it possible for a broad range of user interface styles (or policies) to be implemented, external to the window system and to the application programs. • Cheap Windows — Windows should be abundant, and ubiquitous. Provide overlap- ping windows and a simple mechanism for window hierarchy. • High-Performance Graphics — Provide powerful interfaces for synthesizing 2-D images (geometric primitives, high-quality text with multiple typefaces, and scanned images). • Extensible — Include a mechanism for adding new capabilities. Allow separate sites to develop independent extensions without becoming incompatible with re- mote applications. CLX Programmer’s Reference 1-1 Introduction to CLX Some of these goals lead directly to the basic X architecture — the client-server model. The basic window system is implemented by the X server program. An application pro- gram (the client) sends window system requests to the X server through a reliable two- way byte-stream. In general, the server and the client can be executing on separate host computers, in which case the byte-stream is implemented via some network protocol (TCP, DECnet, Chaosnet, and so forth). The X server, which is connected to several client programs run- ning concurrently, executes client requests in round-robin fashion. The server is respon- sible for drawing client graphics on the display screen and for making sure that graphics output to a window stays inside its boundary. The other primary job of the X server is to channel input from the keyboard, pointer, and other input devices back to the appropriate client programs. Input arrives at the client asynchronously in the form of input events representing up/down transitions of keys or pointer buttons, changes in the pointer position, and so on. In some cases, a request gen- erates a return value (or reply) from the server, which is another kind of client input. Re- plies and input events are received via the same byte-stream connecting the client with the server. Windows 1.2.1 The X Window System supports one or more screens containing overlapping windows and subwindows. A screen is a physical monitor and hardware, which can be either color or black and white. There can be multiple screens per display workstation. A single server can provide display services for any number of screens. A set of screens for a single user with one keyboard and one mouse is called a display. All windows in an X server are arranged in a strict hierarchy. At the top of the hierarchy are the root windows, which cover each of the display screens. Each root window is ei- ther partially or completely covered by child windows. All windows, except for root windows, have parents. Any window can in turn have its own children. In this way, an application program can create a window tree of arbitrary depth on each screen. A child window can be larger than its parent. That is, part or all of the child window can extend beyond the boundaries of the parent. However, all output to a window is clipped by the boundaries of its parent window. If several children of a window have overlapping locations, one of the children is considered to be on top of/or raised over the others, ob- scuring them. Window output to areas that are covered by other windows is suppressed. A window has a border that is zero or more pixels in width and can be any pattern (pix- map) or solid color. A window usually has a background pattern that is drawn by the X server. Each window has its own coordinate system. Child windows obscure their par- ents unless the child windows have no background. Graphics operations in the parent window are usually clipped by the children. X also provides objects called pixmaps for off-screen storage of graphics. Single-plane pixmaps (that is, of depth 1) are sometimes referred to as bitmaps. Both pixmaps and windows can be used interchangeably in most graphics functions. Pixmaps are also used in various graphics operations to define patterns, or tiles. Windows and pixmaps togeth- er are referred to as drawables. Input Events 1.2.2 The X input mechanism is conceptually simple yet quite powerful. Most events are attached to a particular window (that is, contain an identifier for the window receiv- ing the event). A client program can receive multiple window input streams, all multi- plexed over the single byte-stream connection to the server. 1-2 CLX Programmer’s Reference Introduction to CLX Clients can tailor their input by expressing interest in only certain event types. The server uses special event types to send important messages to the client. For example, the client can elect to receive an :enter-notify event when the pointer cursor moves into a certain window. Another vital message from the server is an :exposure event. This is a signal to the client indicating that at least some portion of the window has suddenly become vis- ible (perhaps the user moved another window which had been overlapping it). The client is then responsible for doing what is necessary to redisplay the window’s image. Client programs must be prepared to regenerate the contents of windows in this way on de- mand. Input is also subject to policy decisions about which client window receives keyboard and pointer events. Since the pointer is free to roam between windows, just clicking on a window is often enough to send a pointer event to that window. Keyboard events, how- ever, must go to a keyboard focus window which has to be designated in some other way. Usually, the arbiter of such input management policy is a program called the window manager. The window manager gives the human user a way to make a window the key- board focus, to manage the layout of windows on the screen, to represent windows with icons, and so forth. In fact, the window manager client determines most of the so-called look and feel of the X Window System. A Quick Tour 1.3 The X Window System is defined by the X Window System Protocol of CLX Specification, a detailed description of the encoding and the meaning of requests and events sent between a client and a server. This standard protocol does not depend on any particular programming language. As a result, each programming language must define its own functional interface for using the X protocol.
Recommended publications
  • Speech Understanding Systems: Summary of Results of the Five-Year Research Effort at Carnegie-Mellon University
    Carnegie Mellon University Research Showcase Computer Science Department School of Computer Science 1-1-1977 Speech understanding systems: summary of results of the five-year research effort at Carnegie-Mellon University. Carnegie-Mellon University.Computer Science Dept. Carnegie Mellon University Follow this and additional works at: http://repository.cmu.edu/compsci Recommended Citation Carnegie-Mellon University.Computer Science Dept., "Speech understanding systems: summary of results of the five-year research effort at Carnegie-Mellon University." (1977). Computer Science Department. Paper 1529. http://repository.cmu.edu/compsci/1529 This Technical Report is brought to you for free and open access by the School of Computer Science at Research Showcase. It has been accepted for inclusion in Computer Science Department by an authorized administrator of Research Showcase. For more information, please contact research- [email protected]. NOTICE WARNING CONCERNING COPYRIGHT RESTRICTIONS: The copyright law of the United States (title 17, U.S. Code) governs the making of photocopies or other reproductions of copyrighted material. Any copying of this document without permission of its author may be prohibited by law. "7? • 3 SPEECH UNDERSTANDING SYSTEMS Summary of Results of the Five-Year Research Effort at Carnegie-Mellon University Carnegie-Mellon University Department of Computer Science Pittsburgh, Pennsylvania 15213 First Version printed September 1976 Present Version printed August 1977 M d R— <h Projects A en, un^coX^no. TSS^l MiF*"™ ™™ B Scientific Research. ™ and monitored by ,h. Air Z^0^!7, PREFACE This report is an augmented version of a report originally issued in September of 1976, during the demonstration at the end of the five-year speech effort.
    [Show full text]
  • The Copyright Law of the United States (Title 17, U.S
    NOTICE WARNING CONCERNING COPYRIGHT RESTRICTIONS: The copyright law of the United States (title 17, U.S. Code) governs the making of photocopies or other reproductions of copyrighted material. Any copying of this document without permission of its author may be prohibited by law. CMU Common Lisp User's Manual Mach/IBM RT PC Edition David B. McDonald, Editor April 1989 CMU-CS-89-132 . School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 This is a revised version of Technical Report CMU-CS-87-156. Companion to Common Lisp: The Language Abstract CMU Common Lisp is an implementation of Common Lisp that currently runs on the IBM RT PC under Mach, a Berkeley Unix 4.3 binary compatible operating system. This document describes the implementation dependent choices made in developing this implementation of Common Lisp. Also, several extensions have been added, including the proposed error system, a stack crawling debugger, a stepper, an interface to Mach system calls, a foreign function call interface, the ability to write assembler language routines, and other features that provide a good environment for developing Lisp code. This research was sponsored by the Defense Advanced Research Projects Agency (DOD), ARPA Order No. 4976 under contract F33615-87-C-1499 and monitored by the Avionics Laboratory, Air Force Wright Aeronautical Laboratories, Aeronautical Systems Division (AFSC), Wright-Patterson AFB, OHIO 45433-6543. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of the Defense Advanced Research Projects Agency or the U.S.
    [Show full text]
  • Genera Workbook Using This Book Preface This Is the Document To
    Genera Workbook Using This Book Preface This is the document to read when you’re ready to sit down at your Symbol- ics computer. It teaches you the initial skills you need to use the Genera system effectively. We present concepts you need to know, as well as providing exercises andactivitiesthatturnthoseconceptsintopracticalskills. The material covered in the first group of chapters in this workbook is a pre- requisite for all Symbolics Education Services Courses. However, you can com plete the second and third sections after taking your first course. Practicing the material helpsyou learn it faster. Bring this workbook to all courses you take with Symbolics. We expect that you have used a computer before; we do not expect that you have used a Symbolics computer before. You need to learn this material whether or not you are a programmer. This is not a programming textbook. We make no assumptions about your programming background or future; this work bookisforbothprogrammersandnonprogrammers. Every time we use a term for the first time, we put it in italics. If you see a term you don’t recognize, be sure to check the glossary at the end of the work book. This workbook uses Symbolics documentation conventions and a few of its own. If you see a word or phrase enclosed in brackets, like [Help], it is a menu item.We use two different conventions withrespect to Symbolics keyboard keys: in text,thekeylabelledHELPlookslikethis: HELP butinexamplesitlookslikethis: <HELP> todifferentiateitasasinglekeystrokefromthetextaroundit. It is very important to have a Symbolics computer available so that you can work through the hands-on activities, called walk-throughs.
    [Show full text]
  • The Evolution of Lisp
    1 The Evolution of Lisp Guy L. Steele Jr. Richard P. Gabriel Thinking Machines Corporation Lucid, Inc. 245 First Street 707 Laurel Street Cambridge, Massachusetts 02142 Menlo Park, California 94025 Phone: (617) 234-2860 Phone: (415) 329-8400 FAX: (617) 243-4444 FAX: (415) 329-8480 E-mail: [email protected] E-mail: [email protected] Abstract Lisp is the world’s greatest programming language—or so its proponents think. The structure of Lisp makes it easy to extend the language or even to implement entirely new dialects without starting from scratch. Overall, the evolution of Lisp has been guided more by institutional rivalry, one-upsmanship, and the glee born of technical cleverness that is characteristic of the “hacker culture” than by sober assessments of technical requirements. Nevertheless this process has eventually produced both an industrial- strength programming language, messy but powerful, and a technically pure dialect, small but powerful, that is suitable for use by programming-language theoreticians. We pick up where McCarthy’s paper in the first HOPL conference left off. We trace the development chronologically from the era of the PDP-6, through the heyday of Interlisp and MacLisp, past the ascension and decline of special purpose Lisp machines, to the present era of standardization activities. We then examine the technical evolution of a few representative language features, including both some notable successes and some notable failures, that illuminate design issues that distinguish Lisp from other programming languages. We also discuss the use of Lisp as a laboratory for designing other programming languages. We conclude with some reflections on the forces that have driven the evolution of Lisp.
    [Show full text]
  • Allegro CL User Guide
    Allegro CL User Guide Volume 1 (of 2) version 4.3 March, 1996 Copyright and other notices: This is revision 6 of this manual. This manual has Franz Inc. document number D-U-00-000-01-60320-1-6. Copyright 1985-1996 by Franz Inc. All rights reserved. No part of this pub- lication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means electronic, mechanical, by photocopying or recording, or otherwise, without the prior and explicit written permission of Franz incorpo- rated. Restricted rights legend: Use, duplication, and disclosure by the United States Government are subject to Restricted Rights for Commercial Software devel- oped at private expense as specified in DOD FAR 52.227-7013 (c) (1) (ii). Allegro CL and Allegro Composer are registered trademarks of Franz Inc. Allegro Common Windows, Allegro Presto, Allegro Runtime, and Allegro Matrix are trademarks of Franz inc. Unix is a trademark of AT&T. The Allegro CL software as provided may contain material copyright Xerox Corp. and the Open Systems Foundation. All such material is used and distrib- uted with permission. Other, uncopyrighted material originally developed at MIT and at CMU is also included. Appendix B is a reproduction of chapters 5 and 6 of The Art of the Metaobject Protocol by G. Kiczales, J. des Rivieres, and D. Bobrow. All this material is used with permission and we thank the authors and their publishers for letting us reproduce their material. Contents Volume 1 Preface 1 Introduction 1.1 The language 1-1 1.2 History 1-1 1.3 Format
    [Show full text]
  • Artificial Intelligence Research at Carnegie
    ARTIFICIAL INTELLIGENCE production systems as programming languages have been important in AI work at CMU. RESEARCH AT CARNEGIE-MELLON UNIVERSITY The first production systems used at CMU were Newell’s PS and PSG systems. Rychener developed his PSNLST system soon after PSG came into use. In 1975, Edited by Jaime Carbonell Forgy, McDermott, Newell, and Rychener developed the AI research at CMU is closely integrated with other first system in the OPS family. OPS has continued to activities in the Computer Science Department, and to a evolve since that time, the latest version, OPS5, having major degree with ongoing research in the Psychology been completed in 1979. OPS has a served as a basis for Department. Although there are over 50 faculty, staff and many programs, including Langley and Simon’s BACON graduate students involved in various aspects of AI systems and McDermott’s RI expert system. research, there is no administratively (or physically) separate AI laboratory. To underscore the interdisciplinary During the last few years, many production systems nature of much of our AI research, a significant fraction of have been developed to serve as psychological models. (It the projects listed below are joint ventures between is characteristic of psychological modeling that many computer science and psychology. systems must be implemented, for the testing of each new architectural feature requires that a system exhibiting that The history of AI research at Carnegie-Mellon goes back feature be implemented and tested.) Anderson combines production rules with a semantic-network memory in his twenty-five years. The early work was characterized by a ACT systems to model human memory phenomena.
    [Show full text]
  • Remote Debugging and Reflection in Resource Constrained Devices Nikolaos Papoulias
    Remote Debugging and Reflection in Resource Constrained Devices Nikolaos Papoulias To cite this version: Nikolaos Papoulias. Remote Debugging and Reflection in Resource Constrained Devices. Program- ming Languages [cs.PL]. Université des Sciences et Technologie de Lille - Lille I, 2013. English. tel-00932796 HAL Id: tel-00932796 https://tel.archives-ouvertes.fr/tel-00932796 Submitted on 17 Jan 2014 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. N° d’ordre : 41342 THESE présentée en vue d’obtenir le grade de DOCTEUR en Spécialité : informatique par Nikolaos Papoulias DOCTORAT DELIVRE CONJOINTEMENT PAR MINES DOUAI ET L’UNIVERSITE DE LILLE 1 Titre de la thèse : Remote Debugging and Reflection in Resource Constrained Devices Soutenue le 19/12/2013 à 10h devant le jury d’examen : Président Roel WUYTS (Professeur – Université de Leuven) Directeur de thèse Stéphane DUCASSE (Directeur de recherche – INRIA Lille) Rapporteur Marianne HUCHARD (Professeur – Université Montpellier 2) Rapporteur Alain PLANTEC (Maître-Conf-HDR – Université de Bretagne Occ.) Examinateur Serge STINCKWICH (Maître-Conf – Université de Caen) co-Encadrant Noury BOURAQADI (Maître-Assistant – Mines de Douai) co-Encadrant Marcus DENKER (Chargé de recherche – INRIA Lille) co-Encadrant Luc FABRESSE (Maître-Assistant – Mines de Douai) Laboratoire(s) d’accueil : Dépt.
    [Show full text]
  • Emoticons All Over Your Essay? It ● Which Ones Do You Like the Most / Least? Why? Looks Ridiculous
    StarterStStatarrttteerr A LISTENINGLISTENING 1 Work in pairs.p ai rs. LookLo ok ata t theth e peoplepe op le ini n the picturespi ct ur es and discussdis cuss whatwh at youy ou thinkt hink theirt he ir attitudesa tt it ud es tot o the followingfo ll ow in g mightmigh t be:be : ● personalpe rs on al appearancea pp eara nce ● clothescl ot he s ● cosmeticco sm et ic surgerys ur ge ry Hannah, UK Hiro, Japan Marielena, Venezuela 2 Listen to the interviews from a radio programme. 4 Work in pairs. Discuss the questions. Were you right? ● How would you describe young people’s attitudes to appearance, dress and cosmetic surgery in your country? 3 Listen again and answer the following questions. ● How do you think your generation’s attitudes are 1 What does the presenter say about the effect of different from your parents’ or your grandparents’ globalisation on young people around the world? attitudes? 2 What two things does Chris say still influence young ● Would you ever have cosmetic surgery? people’s attitudes to dress and appearance? 3 What does Chris say that young people in the UK have traditionally been? 4 According to Chris, what type of cosmetic surgery has become more popular in Venezuela in recent years? 5 In Japanese working environments, what is expected of employers in terms of dress and appearance? Grammar VOCABULARY People / Travel and GRAMMAR Present perfect presentation adventure simple and continuous 5 Match the words in the box with the definitions. We use the present perfect simple for: events or situations within an unfinished or competitor economist employee unspecified time period.
    [Show full text]
  • “ My Heart Is in the Work.” Businesses
    Carnegie Mellon University has been a birthplace of innovation since its founding in 1900. Today, CMU is a global leader bringing groundbreaking ideas to market and creating successful startup “ My Heart is in the Work.” businesses. Our award-winning faculty are renowned for working closely with students to solve major scientific, Andrew Carnegie, Founder technological and societal challenges. We put a strong November 15, 1900 emphasis on creating things — from art to robots. We have become a model for economic development in forming partnerships with companies such as Uber, Google and Disney. Our students are recruited by some of the world’s most innovative companies. 13,961 37% U.S. 63% International Graduate GLOBAL COMMUNITY STUDENTS 77% U.S. 23% International Undergraduate Students representing 109 countries 1,391 87% U.S. 13% International FACULTY Faculty representing 42 countries 105,255+ 89% U.S. 11% International Alumni representing ALUMNI (LIVING) 145 countries # SCHOOL OF # TIME-BASED/ # INFORMATION 1 COMPUTER 1 NEW MEDIA 1 & TECHNOLOGY SCIENCE U.S. News & World Report, 2016 MANAGEMENT U.S. News & World Report, 2014 U.S. News & World Report, 2016 # SCHOOL OF # COLLEGE OF # BEST FOR 2 DRAMA 5 ENGINEERING 10 NEW HIRES1 The Hollywood Reporter, 2017 U.S. News & World Report, 2017 Wall Street Journal, 2010 # AMONG U.S. # UNIVERSITY % OF COMPUTER 17 UNIVERSITIES 24 IN THE WORLD 49.8 SCIENCE’S FIRST- Times Higher Education Times Higher Education YEAR STUDENTS of London, 2017-18 of London, 2017-18 WERE WOMEN IN 2017 Nearly triple the national average 1 The Wall Street Journal’s poll asked recruiters what schools are tops when looking for new hires.
    [Show full text]
  • Symbolics Architecture
    Symbolics Architecture David A. Moon Symbolics, Inc. W hat is an architecture? In com- languages, user interface, and operating This architecture puter systems, an architecture system. System architecture defines the rapid is a specification of an inter- product that people actually use; the other enables face. To be dignified by the name architec- levels of architecture define the mecha- development and ture, an interface should be designed for a nism underneath that implements it. Sys- long lifespan and should connect system tem architecture is implemented by soft- efficient execution of components maintained by different orga- ware; hardware only sets bounds on what large, ambitious nizations. Often an architecture is part ofa is possible. System architecture defines the product definition and defines character- motivation for most of the design choices applications. An istics on which purchasers of that product at the other levels ofarchitecture. This sec- rely, but this is not true of everything that tion is an overview of Symbolics system unconventional design is called an architecture. An architecture is architecture. avoids trading off more formal than an internal interface be- The Symbolics system presents itself to tween closely-related system components, the user through a high-resolution bitmap safety for speed. and has farther-reaching effects on system display. In addition to text and graphics, characteristics and performance. the display contains presentations of ob- A computer system typically contains jects. The user operates on the objects by many levels and types ofarchitecture. This manipulating the presentations with a article discusses three architectures de- mouse. The display includes a continuous- fined in Symbolics computers: ly updated reminder of the mouse com- (1) System architecture-defines how mands applicable to the current context.
    [Show full text]
  • Free As in Freedom (2.0): Richard Stallman and the Free Software Revolution
    Free as in Freedom (2.0): Richard Stallman and the Free Software Revolution Sam Williams Second edition revisions by Richard M. Stallman i This is Free as in Freedom 2.0: Richard Stallman and the Free Soft- ware Revolution, a revision of Free as in Freedom: Richard Stallman's Crusade for Free Software. Copyright c 2002, 2010 Sam Williams Copyright c 2010 Richard M. Stallman Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License." Published by the Free Software Foundation 51 Franklin St., Fifth Floor Boston, MA 02110-1335 USA ISBN: 9780983159216 The cover photograph of Richard Stallman is by Peter Hinely. The PDP-10 photograph in Chapter 7 is by Rodney Brooks. The photo- graph of St. IGNUcius in Chapter 8 is by Stian Eikeland. Contents Foreword by Richard M. Stallmanv Preface by Sam Williams vii 1 For Want of a Printer1 2 2001: A Hacker's Odyssey 13 3 A Portrait of the Hacker as a Young Man 25 4 Impeach God 37 5 Puddle of Freedom 59 6 The Emacs Commune 77 7 A Stark Moral Choice 89 8 St. Ignucius 109 9 The GNU General Public License 123 10 GNU/Linux 145 iii iv CONTENTS 11 Open Source 159 12 A Brief Journey through Hacker Hell 175 13 Continuing the Fight 181 Epilogue from Sam Williams: Crushing Loneliness 193 Appendix A { Hack, Hackers, and Hacking 209 Appendix B { GNU Free Documentation License 217 Foreword by Richard M.
    [Show full text]
  • The Embeddable Common Lisp
    ACM Lisp Pointers 8(1), 1995, 30-41 The Embeddable Common Lisp Giuseppe Attardi Dipartimento di Informatica, Universit`adi Pisa Corso Italia 40, I-56125 Pisa, Italy net: [email protected] Abstract The Embeddable Common Lisp is an implementation of Common Lisp designed for being embeddable within C based applications. ECL uses standard C calling conventions for Lisp compiled functions, which allows C programs to easily call Lisp functions and viceversa. No foreign function interface is required: data can be exchanged between C and Lisp with no need for conversion. ECL is based on a Common Runtime Support (CRS) which provides basic facilities for memory management, dynamic loading and dumping of binary images, support for multiple threads of execution. The CRS is built into a library that can be linked with the code of the application. ECL is modular: main modules are the program development tools (top level, debugger, trace, stepper), the compiler, and CLOS. A native implementation of CLOS is available in ECL: one can configure ECL with or without CLOS. A runtime version of ECL can be built with just the modules which are required by the application. 1 Introduction As applications become more elaborate, the facilities required to build them grow in number and sophistica- tion. Each facility is accessed through a specific package, quite complex itself, like in the cases of: modeling, simulation, graphics, hypertext facilities, data base management, numerical analysis, deductive capabilities, concurrent programming, heuristic search, symbolic manipulation, language analysis, special device control. Reusability is quite a significant issue: once a package has been developed, tested and debugged, it is un- desirable having to rewrite it in a different language just because the application is based in such other language.
    [Show full text]