perm filename SALISP.DOC[LSP,BGB]2 blob sn#010892 filedate 1972-11-12 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	
     

00100	ABSTRACT:  SALISP is the LISP 1.6 interpreter modified so that it can
00200	be loaded and used within a SAIL core image.
00300	
00400	As  a pure LISP interpreter, SALISP may be used as a teletype command
00500	scanner for calling SAIL procedures and for altering SAIL variables.
00600	
00700	As a bastard of SAIL and LISP, afew transanguineous subroutines allow
00800	SALISP  to  serve as an alternative to RAID, LEAP, MLISP and the LISP
00900	compiler.
     

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.
00500	
00600	
00700	INVOCATION:
00800		Declaration of LISP in SAIL.
00900			REQUIRE "SALISP[SYS,BGB]" LOAD_MODULE;
01000			EXTERNAL SIMPLE PROCEDURE LISP (INTEGER SIZE);
01100		Call of LISP in SAIL.
01200			LISP(size);
01300		Declaration of a SAIL subroutine in LISP.
01400			(PUTPROP @NAME (NUMVAL(*GETSYM @NAME)) @SAIBR)
01500		Call of a Sail subroutine in LISP.
01600			(NAME arguments)
01700	
     

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.
01500	
     

00100	SALISP has five kinds of numerals:
00200	
00300		1. INUMS
00400		2. FIXNUMS
00500		3. FLONUMS
00600		4. BIGNUMS
00700		5. SAINUMS