perm filename SALISP.DOC[LSP,BGB]1 blob
sn#001388 filedate 1972-11-03 generic text, type T, neo UTF8
00100 CART PROJECT MEMO HALLOWEEN 31 OCT 1972
00200
00300 SALISP - SAIL Accessible LISP.
00400
00500 Baumgart
00600
00700
00800 ABSTRACT: SALISP is the LISP 1.6 interpreter modified so that it can
00900 be loaded and used within a SAIL core image. The LISP interpreter
01000 provides SAIL with a teletype command scanner that can call SAIL
01100 procedures and can alter SAIL variables. SALISP requires 6K for
01200 itself and 6K for its free storage. SALISP can break on memory
01300 modifications and procedure calls; thus SALISP is an alternative to
01400 RAID for debugging a SAIL program dynamically.
01500
01600
01700 CONTENTS:
01800
01900 I. HOW TO USE SALISP.
02000
02100 II. MEMORY STRUCTURE.
02200
02300 III. CONTROL STRUCTURE.
02400
00100 I. HOW TO USE SALISP.
00200
00300 In order to have SALISP loaded with a SAIL program,
00400 the file SALISP[FU,BGB] is require as a load module.
00410
00420
00500 INVOCATION:
00600 Declaration of LISP in SAIL.
00700 REQUIRE "SALISP[SYS,BGB]" LOAD_MODULE;
00800 EXTERNAL SIMPLE PROCEDURE LISP (INTEGER SIZE);
00900 Call of LISP in SAIL.
01000 LISP(size);
01100 Declaration of a SAIL subroutine in LISP.
01200 (PUTPROP @NAME (NUMVAL(*GETSYM @NAME)) @SAIBR)
01300 Call of a Sail subroutine in LISP.
01400 (NAME arguments)
01500
00100 IMPLEMENTATION:
00200
00300 1. Entry interface at internal symbol LISP.
00400 2. Core Allocator Modified.
00500 3. Core REALLOC deleted.
00600 4. Garbage Collector modified.
00700 5. Core Expansions:
00800 ALVINE & GRINDEF Interface modified.
00900 LOADER Interface deleted.
01000 IO buffer allocations modified.
01100 6. UUO handling modified to make LISP transparent to SAIL.
01200 7. APR Interrupts modified to make LISP transparent.
01300 8. EVAL modified - property SAIBR subroutines.
01400 9. LISP modified to use I/O channels 10 to 17.
41010