Aubrey Jaffer This Manual Is for SCM (Version 5F3, February 2020), an Implementation of the Algorithmic Language Scheme

Total Page:16

File Type:pdf, Size:1020Kb

Aubrey Jaffer This Manual Is for SCM (Version 5F3, February 2020), an Implementation of the Algorithmic Language Scheme SCM Scheme Implementation Version 5f3 Aubrey Jaffer This manual is for SCM (version 5f3, February 2020), an implementation of the algorithmic language Scheme. Copyright c 1990-2007 Free Software Foundation, Inc. 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." i Table of Contents 1 Overview ::::::::::::::::::::::::::::::::::::::::: 1 1.1 Features :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 1 1.2 Authors :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 1 1.3 Copyright :::::::::::::::::::::::::::::::::::::::::::::::::::::: 2 1.3.1 The SCM License :::::::::::::::::::::::::::::::::::::::::: 2 1.3.2 SIOD copyright :::::::::::::::::::::::::::::::::::::::::::: 2 1.3.3 GNU Free Documentation License ::::::::::::::::::::::::: 3 1.4 Bibliography :::::::::::::::::::::::::::::::::::::::::::::::::: 10 2 Installing SCM ::::::::::::::::::::::::::::::::: 12 2.1 Distributions :::::::::::::::::::::::::::::::::::::::::::::::::: 12 2.2 GNU configure and make :::::::::::::::::::::::::::::::::::::: 12 2.2.1 Making scmlit :::::::::::::::::::::::::::::::::::::::::::: 13 2.2.2 Makefile targets :::::::::::::::::::::::::::::::::::::::::: 14 2.3 Building SCM ::::::::::::::::::::::::::::::::::::::::::::::::: 15 2.3.1 Invoking Build:::::::::::::::::::::::::::::::::::::::::::: 15 2.3.2 Build Options :::::::::::::::::::::::::::::::::::::::::::: 17 2.3.3 Compiling and Linking Custom Files:::::::::::::::::::::: 22 2.4 Saving Executable Images ::::::::::::::::::::::::::::::::::::: 23 2.5 Installation :::::::::::::::::::::::::::::::::::::::::::::::::::: 24 2.6 Troubleshooting and Testing ::::::::::::::::::::::::::::::::::: 24 2.6.1 Problems Compiling :::::::::::::::::::::::::::::::::::::: 24 2.6.2 Problems Linking ::::::::::::::::::::::::::::::::::::::::: 25 2.6.3 Testing ::::::::::::::::::::::::::::::::::::::::::::::::::: 25 2.6.4 Problems Starting :::::::::::::::::::::::::::::::::::::::: 26 2.6.5 Problems Running :::::::::::::::::::::::::::::::::::::::: 26 2.6.6 Reporting Problems :::::::::::::::::::::::::::::::::::::: 27 3 Operational Features::::::::::::::::::::::::::: 28 3.1 Invoking SCM ::::::::::::::::::::::::::::::::::::::::::::::::: 28 3.2 Options ::::::::::::::::::::::::::::::::::::::::::::::::::::::: 28 3.3 Invocation Examples :::::::::::::::::::::::::::::::::::::::::: 30 3.4 Environment Variables :::::::::::::::::::::::::::::::::::::::: 31 3.5 Scheme Variables :::::::::::::::::::::::::::::::::::::::::::::: 31 3.6 SCM Session :::::::::::::::::::::::::::::::::::::::::::::::::: 31 3.7 Editing Scheme Code :::::::::::::::::::::::::::::::::::::::::: 32 3.8 Debugging Scheme Code::::::::::::::::::::::::::::::::::::::: 33 3.9 Debugging Continuations :::::::::::::::::::::::::::::::::::::: 35 3.10 Errors:::::::::::::::::::::::::::::::::::::::::::::::::::::::: 36 3.11 Memoized Expressions:::::::::::::::::::::::::::::::::::::::: 38 3.12 Internal State :::::::::::::::::::::::::::::::::::::::::::::::: 39 3.12.1 Executable path ::::::::::::::::::::::::::::::::::::::::: 40 ii 3.13 Scripting ::::::::::::::::::::::::::::::::::::::::::::::::::::: 41 3.13.1 Unix Scheme Scripts::::::::::::::::::::::::::::::::::::: 41 3.13.2 MS-DOS Compatible Scripts::::::::::::::::::::::::::::: 42 3.13.3 Unix Shell Scripts ::::::::::::::::::::::::::::::::::::::: 43 4 The Language :::::::::::::::::::::::::::::::::: 44 4.1 Standards Compliance ::::::::::::::::::::::::::::::::::::::::: 44 4.2 Storage:::::::::::::::::::::::::::::::::::::::::::::::::::::::: 46 4.3 Time :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 46 4.4 Interrupts ::::::::::::::::::::::::::::::::::::::::::::::::::::: 47 4.5 Process Synchronization ::::::::::::::::::::::::::::::::::::::: 48 4.6 Files and Ports :::::::::::::::::::::::::::::::::::::::::::::::: 49 4.6.1 Opening and Closing ::::::::::::::::::::::::::::::::::::: 49 4.6.2 Port Properties ::::::::::::::::::::::::::::::::::::::::::: 50 4.6.3 Port Redirection :::::::::::::::::::::::::::::::::::::::::: 51 4.6.4 Soft Ports :::::::::::::::::::::::::::::::::::::::::::::::: 52 4.7 Eval and Load::::::::::::::::::::::::::::::::::::::::::::::::: 52 4.7.1 Line Numbers :::::::::::::::::::::::::::::::::::::::::::: 53 4.8 Lexical Conventions ::::::::::::::::::::::::::::::::::::::::::: 54 4.8.1 Common-Lisp Read Syntax ::::::::::::::::::::::::::::::: 54 4.8.2 Load Syntax:::::::::::::::::::::::::::::::::::::::::::::: 55 4.8.3 Documentation and Comments ::::::::::::::::::::::::::: 55 4.8.4 Modifying Read Syntax ::::::::::::::::::::::::::::::::::: 56 4.9 Syntax :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 56 4.9.1 Define and Set:::::::::::::::::::::::::::::::::::::::::::: 56 4.9.2 Defmacro ::::::::::::::::::::::::::::::::::::::::::::::::: 58 4.9.3 Syntax-Rules ::::::::::::::::::::::::::::::::::::::::::::: 58 4.9.4 Macro Primitives ::::::::::::::::::::::::::::::::::::::::: 59 4.9.5 Environment Frames:::::::::::::::::::::::::::::::::::::: 60 4.9.6 Syntactic Hooks for Hygienic Macros:::::::::::::::::::::: 61 4.9.7 Use of Synthetic Identifiers ::::::::::::::::::::::::::::::: 62 5 Packages :::::::::::::::::::::::::::::::::::::::: 65 5.1 Dynamic Linking :::::::::::::::::::::::::::::::::::::::::::::: 65 5.2 Dump ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 66 5.3 Numeric::::::::::::::::::::::::::::::::::::::::::::::::::::::: 68 5.4 Arrays :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 69 5.4.1 Conventional Arrays :::::::::::::::::::::::::::::::::::::: 70 5.4.2 Uniform Array:::::::::::::::::::::::::::::::::::::::::::: 71 5.4.3 Bit Vectors ::::::::::::::::::::::::::::::::::::::::::::::: 72 5.4.4 Array Mapping ::::::::::::::::::::::::::::::::::::::::::: 73 5.5 Records ::::::::::::::::::::::::::::::::::::::::::::::::::::::: 74 5.6 I/O-Extensions :::::::::::::::::::::::::::::::::::::::::::::::: 74 5.7 Posix Extensions :::::::::::::::::::::::::::::::::::::::::::::: 78 5.8 Unix Extensions ::::::::::::::::::::::::::::::::::::::::::::::: 82 5.9 Sequence Comparison ::::::::::::::::::::::::::::::::::::::::: 83 5.10 Regular Expression Pattern Matching::::::::::::::::::::::::: 83 iii 5.11 Line Editing:::::::::::::::::::::::::::::::::::::::::::::::::: 85 5.12 Curses ::::::::::::::::::::::::::::::::::::::::::::::::::::::: 85 5.12.1 Output Options Setting ::::::::::::::::::::::::::::::::: 86 5.12.2 Terminal Mode Setting :::::::::::::::::::::::::::::::::: 86 5.12.3 Window Manipulation ::::::::::::::::::::::::::::::::::: 87 5.12.4 Output :::::::::::::::::::::::::::::::::::::::::::::::::: 89 5.12.5 Input:::::::::::::::::::::::::::::::::::::::::::::::::::: 90 5.12.6 Curses Miscellany ::::::::::::::::::::::::::::::::::::::: 90 5.13 Sockets::::::::::::::::::::::::::::::::::::::::::::::::::::::: 91 5.13.1 Host and Other Inquiries :::::::::::::::::::::::::::::::: 91 5.13.2 Internet Addresses and Socket Names :::::::::::::::::::: 92 5.13.3 Socket::::::::::::::::::::::::::::::::::::::::::::::::::: 93 5.14 SCMDB:::::::::::::::::::::::::::::::::::::::::::::::::::::: 96 5.15 Xlibscm :::::::::::::::::::::::::::::::::::::::::::::::::::::: 96 5.16 Hobbit ::::::::::::::::::::::::::::::::::::::::::::::::::::::: 96 6 The Implementation ::::::::::::::::::::::::::: 97 6.1 Data Types ::::::::::::::::::::::::::::::::::::::::::::::::::: 97 6.1.1 Immediates ::::::::::::::::::::::::::::::::::::::::::::::: 97 6.1.2 Cells ::::::::::::::::::::::::::::::::::::::::::::::::::::: 99 6.1.3 Header Cells::::::::::::::::::::::::::::::::::::::::::::: 100 6.1.4 Subr Cells ::::::::::::::::::::::::::::::::::::::::::::::: 102 6.1.5 Defining Subrs::::::::::::::::::::::::::::::::::::::::::: 103 6.1.6 Ptob Cells::::::::::::::::::::::::::::::::::::::::::::::: 104 6.1.7 Defining Ptobs :::::::::::::::::::::::::::::::::::::::::: 105 6.1.8 Smob Cells :::::::::::::::::::::::::::::::::::::::::::::: 106 6.1.9 Defining Smobs:::::::::::::::::::::::::::::::::::::::::: 107 6.1.10 Data Type Representations ::::::::::::::::::::::::::::: 108 6.2 Operations ::::::::::::::::::::::::::::::::::::::::::::::::::: 110 6.2.1 Garbage Collection :::::::::::::::::::::::::::::::::::::: 110 6.2.1.1 Marking Cells :::::::::::::::::::::::::::::::::::::: 110 6.2.1.2 Sweeping the Heap ::::::::::::::::::::::::::::::::: 111 6.2.2 Memory Management for Environments:::::::::::::::::: 111 6.2.3 Dynamic Linking Support ::::::::::::::::::::::::::::::: 113 6.2.4 Configure Module Catalog ::::::::::::::::::::::::::::::: 113 6.2.5 Automatic C Preprocessor Definitions:::::::::::::::::::: 114 6.2.6 Signals :::::::::::::::::::::::::::::::::::::::::::::::::: 116 6.2.7 C Macros:::::::::::::::::::::::::::::::::::::::::::::::: 116 6.2.8 Changing Scm ::::::::::::::::::::::::::::::::::::::::::: 117 6.2.9 Allocating memory :::::::::::::::::::::::::::::::::::::: 119 6.2.10 Embedding SCM ::::::::::::::::::::::::::::::::::::::: 120 6.2.11 Callbacks :::::::::::::::::::::::::::::::::::::::::::::: 123 6.2.12 Type Conversions :::::::::::::::::::::::::::::::::::::: 124 6.2.13 Continuations :::::::::::::::::::::::::::::::::::::::::: 125 6.2.14 Evaluation ::::::::::::::::::::::::::::::::::::::::::::: 127 6.3 Program Self-Knowledge:::::::::::::::::::::::::::::::::::::: 128 6.3.1 File-System Habitat ::::::::::::::::::::::::::::::::::::: 128 6.3.2 Executable Pathname ::::::::::::::::::::::::::::::::::: 129 iv 6.3.3 Script Support
Recommended publications
  • QUALM; *Quoion Answeringsystems
    DOCUMENT RESUME'. ED 150 955 IR 005 492 AUTHOR Lehnert, Wendy TITLE The Process'of Question Answering. Research Report No. 88. ..t. SPONS AGENCY Advanced Research Projects Agency (DOD), Washington, D.C. _ PUB DATE May 77 CONTRACT ,N00014-75-C-1111 . ° NOTE, 293p.;- Ph.D. Dissertation, Yale University 'ERRS' PRICE NF -$0.83 1C- $15.39 Plus Post'age. DESCRIPTORS .*Computer Programs; Computers; *'conceptual Schemes; *Information Processing; *Language Classification; *Models; Prpgrai Descriptions IDENTIFIERS *QUALM; *QuOion AnsweringSystems . \ ABSTRACT / The cOmputationAl model of question answering proposed by a.lamputer program,,QUALM, is a theory of conceptual information processing based 'bon models of, human memory organization. It has been developed from the perspective of' natural language processing in conjunction with story understanding systems. The p,ocesses in QUALM are divided into four phases:(1) conceptual categorization; (2) inferential analysis;(3) content specification; and (4) 'retrieval heuristict. QUALM providea concrete criterion for judging the strengths and weaknesses'of store representations.As a theoretical model, QUALM is intended to describ general question answerinlg, where question antiering is viewed as aerbal communicb.tion. device betieen people.(Author/KP) A. 1 *********************************************************************** Reproductions supplied'by EDRS are the best that can be made' * from. the original document. ********f******************************************,******************* 1, This work-was
    [Show full text]
  • Guile Programmer's Manual
    Guile Programmers Manual For use with Cygnus Guile Last up dated July Mark Galassi Los Alamos National Lab oratory and Cygnus Supp ort rosalianislanlgov c Copyright Cygnus Supp ort Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this p ermission notice are preserved on all copies Permission is granted to copy and distribute mo died versions of this manual under the conditions for verbatim copying provided that the entire resulting derived work is distributed under the terms of a p ermission notice identical to this one Permission is granted to copy and distribute translations of this manual into another language under the ab ove conditions for mo died versions except that this p ermission notice may b e stated in a translation approved by Free Software Foundation Chapter What go es in this manual What go es in this manual You might b e wondering why there are two separate manuals for Guile It is customary to split the do cumentation for ma jor packages into a user manual a gentle and intro ductory do cument and a reference manual Sometimes p eople go a step farther and make a separate tutorial other times the tutorial is part of the user manual In this framekwork what you are supp osed to do is use the user manual until you have under sto o d all that it has to oer you and then use the reference manual for the rest of your life except when you are teaching This Guile Programmers Manual is indeed a reference manual so I assume that you know everything thats in the Guile
    [Show full text]
  • Published with the Approbation of the Board of Trustees
    JOHNS HOPKINS UNIVERSITY CIRCULARS Published with the approbation of the Board of Trustees VOL. V.—No. 46.] BALTIMORE, JANUARY, 1886. [PRICE, 10 CENTS. RECENT PUBLICATIONS. Photograph of the Normal Solar Spectrum. Made Reproduction in Phototype of a Syriac Manuscript by PROFESSOR H. A. ROWLAND. (Baltimore, Johns Hopkins University, 1886). (Williams MS.) with the Antilegomena Epistles. Edited by IsAAC H. HALL. (Baltimore, Johns Hopkins University, 1886). [Froma letter to Science, New York, December 18, 1885]. The photographic map of the spectrum, upon which Professor Rowland [Froman article by I. H. Hall in the Journal of the Society of Biblical Literature and has expended so much hard work during the past three years, is nearly Exegesis for 1885, with additions]. ready for publication. The map is issued in a series of seven plates, cover- In September last (1884) I announced in The Independent the discovery ing the region from wave-length 3100 to 5790. Each plate is three feet of a manuscript of the Acts and Epistles, among which occur also the long and one foot wide, and contains two strips of the spectrum, except Epistles that were antilegomena among the Syrians; namely the Second plate No. 2, which contains three. Most of the plates are on a scalethree Epistle of Peter, the Second and Third Epistles of John, and the Epistle of times that of Angstrdm’s map, and in definition are more than equal to any Jude, in the version usually printed with our Peshitto New Testaments. It map yet published, at least to wave-length 5325. The 1474 line is widely is well known that the printed copies of these Epistles in that version all double, as also are b rest upon one manuscriptonly, in the Bodleian Library at Oxford, England, 3 and b4, while E may be recognized as double by the from which they were first published by Edward Pococke (Leyden, Elzevirs) expert.
    [Show full text]
  • Rash: from Reckless Interactions to Reliable Programs
    Rash: From Reckless Interactions to Reliable Programs William Gallard Hatch Matthew Flatt University of Utah University of Utah USA USA [email protected] [email protected] Abstract them along a spectrum of program maturity and scale. Mov- Command languages like the Bourne Shell provide a terse ing code along this scale is often viewed as a transition from syntax for exploratory programming and system interaction. “scripts” to more mature “programs,” and current research Shell users can begin to write programs that automate their aims to improve that transition, especially through grad- tasks by simply copying their interactions verbatim into a ual typing [18, 20]. In this paper, we address a point in the script file. However, command languages usually scale poorly spectrum that precedes even the “script” level of maturity: beyond small scripts, and they can be difficult to integrate command sequences in an interactive shell. into larger programs. General-purpose languages scale well, Different features and aspects of programming languages but are verbose and unwieldy for common interactive actions are well suited to different stages of program maturity. For such as process composition. example, static types are clearly useful for ensuring and We present Rash, a domain-specific command language maintaining software correctness, but types are often seen embedded in Racket. Rash provides a terse and extensible as burdensome or obstructive when writing scripts, so many syntax for interactive system administration and scripting, scripting languages eschew types. Programmers want brevity as well as easy composition of both Racket functions and and even less formality in interactive settings, so read-eval- operating system processes.
    [Show full text]
  • A Reader Framework for Guile for Guile-Reader 0.6.2
    A Reader Framework for Guile for Guile-Reader 0.6.2 Ludovic Court`es Edition 0.6.2 8 March 2017 This file documents Guile-Reader. Copyright c 2005, 2006, 2007, 2008, 2009, 2012, 2015, 2017 Ludovic Court`es Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the con- ditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another lan- guage, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. i Table of Contents A Reader Framework for Guile ................ 1 1 Introduction............................... 3 2 Overview .................................. 5 3 Quick Start................................ 7 4 API Reference............................. 9 4.1 Token Readers .............................................. 9 4.1.1 Defining a New Token Reader............................ 9 4.1.2 Token Reader Calling Convention ........................ 9 4.1.3 Invoking a Reader from a Token Reader ................. 10 4.1.4 Token Reader Library .................................. 11 4.1.5 Limitations............................................ 16 4.1.5.1 Token Delimiters .................................
    [Show full text]
  • Foreign-Function Interfaces for Garbage-Collected Programming Languages
    Foreign-Function Interfaces for Garbage-Collected Programming Languages Marcus Crestani Eberhard-Karls-Universitat¨ Tubingen¨ [email protected] Abstract Programs in high-level, garbage-collected programming languages often need to access libraries that are written in other programming languages. A foreign-function interface provides a high-level lan- guage with access to low-level programming languages and negoti- ates between the inside and the outside world by taking care of the High-Level Foreign low-level details. In this paper, I provide an overview of what differ- Programming Function External Code ent kinds of foreign-function interfaces are in use in today’s imple- Language Interface mentations of functional programming languages to help decide on the design of a new foreign-function interface for Scheme 48. I have revised several mechanisms and design ideas and compared them on usability, portability, memory consumption and thread safety. I discuss the garbage-collection related parts of foreign-function in- terfaces using Scheme as the high-level functional language and C as the external language. Figure 1. Foreign-function interface 1. Introduction Programs in functional programming languages often need to ac- This paper reflects my survey, summarizes the results, and presents cess libraries that are written in other programming languages. Scheme 48’s new foreign-function interface, which will replace the Back in 1996, Scheme 48 [10] received its first foreign-function current one in the near future. interface. Over the years, developers connected many external li- braries to Scheme 48 using this foreign-function interface. Many 1.1 Foreign-Function Interfaces other Scheme implementations use a similar foreign-function in- A foreign-function interface provides a high-level programming terface, for example Elk [12], scsh [18], and PLT Scheme’s static language with access to other (usually low-level) programming lan- foreign interface [6].
    [Show full text]
  • Central Islip Union Free School District and Central Islip Teachers Association (2005)
    NYS PERB Contract Collection – Metadata Header This contract is provided by the Martin P. Catherwood Library, ILR School, Cornell University. The information provided is for noncommercial educational use only. Some variations from the original paper document may have occurred during the digitization process, and some appendices or tables may be absent. Subsequent changes, revisions, and corrections may apply to this document. For more information about the PERB Contract Collection, see http://digitalcommons.ilr.cornell.edu/perbcontracts/ Or contact us: Catherwood Library, Ives Hall, Cornell University, Ithaca, NY 14853 607-254-5370 [email protected] Contract Database Metadata Elements Title: Central Islip Union Free School District and Central Islip Teachers Association (2005) Employer Name: Central Islip Union Free School District Union: Central Islip Teachers Association Effective Date: 07/01/05 Expiration Date: 06/30/15 PERB ID Number: 4733 Unit Size: Number of Pages: 142 For additional research information and assistance, please visit the Research page of the Catherwood website - http://www.ilr.cornell.edu/library/research/ For additional information on the ILR School - http://www.ilr.cornell.edu/ CENTRAL,ISLIP ···TEACHERS·Xs§'6e!ATION TABLE OF CONTENTS ARTICLE Preamble 1 I Recognition 2 II Negotiation Procedure '" . 4 III Teacher Association & Board Rights 6 IV Grievance Procedure '" '" 10 V Teacher-Administration Liaison 15 VI Salaries , 16 VII Teaching Hours and Teaching Load................... ...18 VIII Class Size , 22 IX Specialists
    [Show full text]
  • Implementing Concurrency Abstractions for Programming Multi-Core Embedded Systems in Scheme
    Faculty of Engineering Implementing Concurrency Abstractions for Programming Multi-Core Embedded Systems in Scheme Graduation thesis submitted in partial fulfillment of the requirements for the degree of Master of Engineering: Applied Computer Science Ruben Vandamme Promotor: Prof. Dr. Wolfgang De Meuter Advisors: Dr. Coen De Roover Christophe Scholliers 2010 Faculteit Ingenieurswetenschappen Implementing Concurrency Abstractions for Programming Multi-Core Embedded Systems in Scheme Eindwerk ingediend voor het behalen van de graad van Master in de Ingenieurswetenschappen: Toegepaste Computerwetenschappen Ruben Vandamme Promotor: Prof. Dr. Wolfgang De Meuter Begeleiders: Dr. Coen De Roover Christophe Scholliers 2010 Acknowledgements This thesis would not have been possible without the support of various people. First, I would like to thank Professor Wolfgang De Meuter for promoting this thesis. In particular I would like to thank my advisors Christophe and Coen for their extensive and essential support throughout the year. Without their effort, this thesis would not have been what it is today. I thank my parents for making all this possible and for supporting me during my education at the Vrije Universiteit Brussel and during previous educations. And I cannot forget to thank Jennifer for her indispensable support during this undertaking. 1 Abstract This dissertation presents a study of the limitations and problems related to the prevalent way embedded systems handle signals from the outside world. Such signals are frequently handled using either polling or interrupts. Polling software will continually check whether a signal needs handling. In interrupt- driven embedded systems, on the other hand, the CPU will generate an asynchronous signal when an event from the outside arrives.
    [Show full text]
  • GNU/Linux AI & Alife HOWTO
    GNU/Linux AI & Alife HOWTO GNU/Linux AI & Alife HOWTO Table of Contents GNU/Linux AI & Alife HOWTO......................................................................................................................1 by John Eikenberry..................................................................................................................................1 1. Introduction..........................................................................................................................................1 2. Traditional Artificial Intelligence........................................................................................................1 3. Connectionism.....................................................................................................................................1 4. Evolutionary Computing......................................................................................................................1 5. Alife & Complex Systems...................................................................................................................1 6. Agents & Robotics...............................................................................................................................1 7. Programming languages.......................................................................................................................2 8. Missing & Dead...................................................................................................................................2 1. Introduction.........................................................................................................................................2
    [Show full text]
  • Functional Package Management with Guix
    Functional Package Management with Guix Ludovic Courtès Bordeaux, France [email protected] ABSTRACT 1. INTRODUCTION We describe the design and implementation of GNU Guix, a GNU Guix1 is a purely functional package manager for the purely functional package manager designed to support a com- GNU system [20], and in particular GNU/Linux. Pack- plete GNU/Linux distribution. Guix supports transactional age management consists in all the activities that relate upgrades and roll-backs, unprivileged package management, to building packages from source, honoring the build-time per-user profiles, and garbage collection. It builds upon the and run-time dependencies on packages, installing, removing, low-level build and deployment layer of the Nix package man- and upgrading packages in user environments. In addition ager. Guix uses Scheme as its programming interface. In to these standard features, Guix supports transactional up- particular, we devise an embedded domain-specific language grades and roll-backs, unprivileged package management, (EDSL) to describe and compose packages. We demonstrate per-user profiles, and garbage collection. Guix comes with a how it allows us to benefit from the host general-purpose distribution of user-land free software packages. programming language while not compromising on expres- siveness. Second, we show the use of Scheme to write build Guix seeks to empower users in several ways: by offering the programs, leading to a \two-tier" programming system. uncommon features listed above, by providing the tools that allow users to formally correlate a binary package and the Categories and Subject Descriptors \recipes" and source code that led to it|furthering the spirit D.4.5 [Operating Systems]: Reliability; D.4.5 [Operating of the GNU General Public License|, by allowing them to Systems]: System Programs and Utilities; D.1.1 [Software]: customize the distribution, and by lowering the barrier to Applicative (Functional) Programming entry in distribution development.
    [Show full text]
  • A Tractable Scheme Implementation
    LISP AND SYMBOLIC COMPUTATION:An International Journal, 7, 315-335 (1994) © 1994 Kluwer Academic Publishers, Boston. Manufactured in The Netherlands. A Tractable Scheme Implementation RICHARD A. KELSEY [email protected] NEC Research Institute JONATHAN A. REES [email protected] M1T and Cornell University Abstract. Scheme 48 is an implementation of the Scheme programming language constructed with tractability and reliability as its primary design goals. It has the structural properties of large, compiler-based Lisp implementations: it is written entirely in Scheme, is bootstrapped via its compiler, and provides numerous language extensions. It controls the complexity that ordinarily attends such large Lisp implementations through clear articulation of internal modularity and by the exclusion of features, optimizations, and generalizations that are of only marginal value. Keywords: byte-code interpreters, virtual machines, modularity, Scheme, partial evaluation, layered design 1. Introduction Scheme 48 is an implementation of the Scheme programming language constructed with tractability and reliability as its primary design goals. By tractability we mean the ease with which the system can be understood and changed. Although Lisp dialects, including Scheme, are relatively simple languages, implementation tractability is often threatened by the demands of providing high performance and extended functionality. The Scheme 48 project was initiated in order to experiment with techniques for main- taining implementation tractability in the face of countervailing pressures and to find out what tradeoffs were involved in doing so. (The project was originally an experiment to see if a Scheme implementation could be written in a single weekend; the 48 refers to forty-eight hours.) Small Lisp implementations are usually tractable merely by virtue of being small; it is usually possible for an experienced programmer to read and understand the entire source program in a few days.
    [Show full text]
  • Ill Hffif UU U Id 12 FEET, TOWED VOTE; KUPIOEA Ndte REPORT U
    WAILS . From San Frincite Konoiua, April 19. For San Francesco: China, April ro. From Vancouver: Niagara, April 11. JFr Vancouver: mi Makura. April 30. m 1'venlng Hullntln. KhL. 1882. No 5142 14 -- 11)15.-1- 4 JJawaiian Star. Vol. XXII. No. 71x3 IWliKS HONOLULU, TERRITORY OF HAWAII, MONDAY, APRIL 1!. IWGKS TRICE FIVE CENTO F--4 IS RAISED iHOUSE SPLIT ON TBHORB. B fJM P Ill HffiF UU u id 12 FEET, TOWED VOTE; KUPIOEA NdTE REPORT U. S SENDSillON TURKEY CALLS ON HIM EXPERTS DECLARE TO COMMAND BIG ARMY SiTUATIOIJ TO17AnD SHORE HOLDS HIS SEAT CHINA, POINTING OUT TREATY t Associated Press Service by Federal Wirelesso 1 1 Ai'f-'mmm- SHOWS GERMANY AND AUSTRIA Lifting Gear Shows Strength Member Under Fire as "Mor- LONCON. Eng., April 19.-- A Renter's despatch from Peking says that and Submarine Is "Broken In Move to the United States has sent a note on the China negotiations to both China Ld ally Unfit" Loses and Japan, indicating that the United States has certain treaty rights in J Out" of Ocean Bed "Investigate" Judge Ashford China from which she will not recede. The Chinese believe this note will CONCENTRATING ON THE EAST have a "valuable moral effect" on the situation. ONE WIRE CABLE PARTS The house this afternoon vigorously AND WORK IS DELAYED, debated whether to expel Representa- BRITISH BEGIN IMPORTANT DRIVE ON GERMAN LINE IN tive Kupihea. NOTED ENLISTED BUT ONLY TEMPORARILY HON, BELGIUM BERLIN DENIES ATTACKS ARE SUCCESSFUL Representative Aiu, who exonerated Kupihea in his minority report, spoke - - REPORT VON HINDENBERG PRESIDES AT COUNCIL OF Diver Loughman Slowty Re- - i at lenath anaintt the Ravwlina reao- - POLAR EXPLORER, SHOULD GET WAR WHICH DECIDES TO PRESS EASTERN CAMPAIGN cowing From Effects of lution of expulsion.
    [Show full text]