[its-hackers] Muddle: ATOM-TABLE for L-UNUSE

rrs0 at earthlink.net rrs0 at earthlink.net
Thu May 27 08:35:30 CEST 2021

Hi Lars and Chris,
After fixing the empty form bug in our version of PPRINT, I have continued working on my minimal ITS Muddle
Package system and building a valid ATOM-TABLE used in L-UNUSE. The code below is from my Interactive 
session to build the atom table for L-UNUSE starting with the name of my DECO  test package. L-UNUSE has
To DROP DECO from the PACKAGE!- oblist and then unset/g the atoms on the package's two oblists and then 
remove them. Of coarse I have to add error handling to the code below before incorporating it into L-UNUSE.

<SET STRE "DECO">							  ;"Name of package & external oblist"
<SET ATME <LOOKUP .STRE <GET PACKAGE OBLIST>>> ;"Atom's PNAME is name package oblist"
<SET STRI <STRING !"I .STRE>>					  ;"Name of package's internal oblist"
<SET ATMI <LOOKUP .STRI <GET .ATME OBLIST>>> ;"Atom's PNAME is name package internal oblist"
<SET POBLE <GET .ATME OBLIST>>				  :"Package external oblist"
<SET POBLI <GET .ATMI OBLIST>>				  ;"Package internal oblist"
<SET LE <OBL2ALST .POBLE>>					  ;"Flatten Package external oblist"
<SET LI <OBL2ALST .POBLI>>					  ;"Flatten Package internal oblist"
<SET ATOM-TABLE <LIST !.LI !.LE>>				  ;"Build atom-table."

After that all that needs to be done, is to add file system support to FIND/LOAD and we then will have a basic package
System to try and USE packages like MIGS and others 


P.S. Note: the function OBL2ALST turns a OBLIST into flat list of atoms for both the old stile and the Current implementation of oblists.

More information about the its-hackers mailing list