11 <COND (<NOT <GASSIGNED? GVAL-CAREFUL>> <SETG GVAL-CAREFUL <>>)>
12 <COND (<NOT <GASSIGNED? ADJBP-HACK>> <SETG ADJBP-HACK <>>)>
296 1990 ;"really UVECTOR"
344 <COND (<NOT <GASSIGNED? PEEP-ENABLED>> <SETG PEEP-ENABLED <>>)>
346 <COND (<NOT <GASSIGNED? LABEL-OBLIST>> <SETG LABEL-OBLIST <MOBLIST LB 0>>)>
348 <COND (<NOT <GASSIGNED? VICTIMS>> <SETG VICTIMS ()>)>
350 <COND (<NOT <GASSIGNED? SURVIVORS>> <SETG SURVIVORS ()>)>
354 <COND (<NOT <GASSIGNED? WIDTH-MUNG>>
355 <FLOAD "MIMOC20DEFS.MUD">
356 <FLOAD "MSGLUE-PM.MUD">)>
358 <COND (<NOT <GASSIGNED? CONSTANT-TABLE>>
359 <SETG CONSTANT-TABLE <IVECTOR ,CONSTANT-TABLE-LENGTH ()>>)>
361 <COND (<NOT <GASSIGNED? MV-TABLE>>
362 <SETG MV-TABLE <IVECTOR ,MV-TABLE-LENGTH ()>>)>
364 <COND (<NOT <GASSIGNED? DEATH-TRQ>> <SETG DEATH-TRQ T>)>
366 <COND (<NOT <GASSIGNED? MIM-OBL>> <SETG MIM-OBL <LIST !.OBLIST>>)>
368 <COND (<NOT <GASSIGNED? NO-AC-FUNNYNESS>> <SETG NO-AC-FUNNYNESS <>>)>
370 <COND (<NOT <GASSIGNED? V1>> <SETG V1 <>>)>
372 <COND (<NOT <GASSIGNED? V2>> <SETG V2 <>>)>
374 <COND (<NOT <GASSIGNED? BOOT-MODE>> <SETG BOOT-MODE <>>)>
376 <COND (<NOT <GASSIGNED? INT-MODE>> <SETG INT-MODE <>>)>
378 <COND (<NOT <GASSIGNED? GC-MODE>> <SETG GC-MODE <>>)>
380 <COND (<NOT <GASSIGNED? GLUE-MODE>> <SETG GLUE-MODE <>>)>
382 <COND (<NOT <GASSIGNED? ACA-AC>> <SETG ACA-AC <>>)>
384 <COND (<NOT <GASSIGNED? NEXT-FLUSH>> <SETG NEXT-FLUSH 0>)>
386 <COND (<NOT <GASSIGNED? MAX-SPACE>> <SETG MAX-SPACE <>>)>
388 <COND (<NOT <GASSIGNED? SURVIVOR-MODE>> <SETG SURVIVOR-MODE <>>)>
390 <COND (<NOT <GASSIGNED? LIST-OF-FCNS>> <SETG LIST-OF-FCNS ()>)>
396 <MANIFEST CB-LENGTH BUFL>
400 <COND (<NOT <GASSIGNED? CODE-BUFFER>>
401 <SETG CODE-BUFFER <IUVECTOR ,CB-LENGTH 0>>
404 <COND (<NOT <GASSIGNED? OUTPUT-BUFFER>>
405 <SETG OUTPUT-BUFFER <ISTRING ,OUTPUT-LENGTH>>)>
407 <SETG CTLZ+1 <+ <SETG CTLZ 26> 1>>
409 <SETG MIM <==? <TYPEPRIM FIX> FIX>>
411 <COND (<GASSIGNED? CRLF-STRING!-INTERNAL>
412 <SETG WORD-STRING <STRING ,CRLF-STRING!-INTERNAL "#WORD " <ASCII ,CTLZ>>>)>
414 <COND (,MIM <SETG PKG-OBL <CHTYPE PACKAGE OBLIST>>)
415 (ELSE <SETG PKG-OBL <GETPROP PACKAGE OBLIST>>)>
417 <COND (<OR <NOT <ASSIGNED? READ-TABLE>> <L? <LENGTH .READ-TABLE> ,CTLZ+1>>
418 <SETG READ-TABLE <SET READ-TABLE <IVECTOR ,CTLZ+1 <>>>>)>
420 <SETG FCN-OBL <MOBLIST FOO>>
422 <SETG FCN-OBL-L (,FCN-OBL)>
424 <DEFINE TERMIN-PRINT (TERMIN)
425 #DECL ((TERMIN) I$TERMIN)
427 <PRIN1 <CHTYPE .TERMIN FIX>>
430 <COND (<NOT <GASSIGNED? FOOSTR>> <SETG FOOSTR " ">)>
432 <GDECL (FOOSTR) STRING>
434 <DEFINE CHR-PRINT (CHR)
435 #DECL ((CHR) CHARACTER)
436 <COND (<G? <CHTYPE .CHR FIX> 127>
437 <PRINC "#CHARACTER ">
438 <PRIN1 <CHTYPE .CHR FIX>>)
443 <PRINTTYPE I$TERMIN ,TERMIN-PRINT>
445 <DEFINE ATOM-PRINT (ATM "AUX" (SPN <SPNAME .ATM>))
446 #DECL ((ATM) ATOM (SPN) STRING)
447 <COND (<AND <G=? <LENGTH .SPN> 2>
450 <PRINC <REST .SPN 2>>
451 <OR ,BOOT-MODE <PRINC "!-">>)
452 (<AND <OR <==? <OBLIST? .ATM> <ROOT>>
453 <MEMBER <SPNAME .ATM> ,ROOT-ATOMS>>
460 <COND (<NOT <GASSIGNED? ROOT-ATOMS>>
461 <SETG ROOT-ATOMS ["M$$BINDID" "M$$INT-LEVEL"]>)>
463 <GDECL (ROOT-ATOMS) <VECTOR [REST STRING]>>
465 <DEFINE T$UNBOUND-PRINT (UNB)
466 #DECL ((UNB) T$UNBOUND)
468 <PRIN1 <CHTYPE .UNB FIX>>
471 <PRINTTYPE T$UNBOUND ,T$UNBOUND-PRINT>
473 <DEFINE XGLOC-PRINT (X)
476 <PRIN1 <CHTYPE .X ATOM>>)
478 <PRIN1 <CHTYPE .X ATOM>>
481 <PRINTTYPE XGLOC ,XGLOC-PRINT>
485 <DEFINE XTYPE-C-PRINT (X "AUX" ATM)
486 #DECL ((X) XTYPE-C (ATM) ATOM)
487 <SET ATM <CHTYPE .X ATOM>>
491 <COND (<==? <SET ATM <TYPEPRIM .ATM>> WORD>
496 <DEFINE XTYPE-W-PRINT (X "AUX" ATM)
497 #DECL ((X) XTYPE-W (ATM) ATOM)
498 <SET ATM <CHTYPE .X ATOM>>
502 <COND (<==? <SET ATM <TYPEPRIM .ATM>> WORD>
507 <PRINTTYPE XTYPE-C ,XTYPE-C-PRINT>
509 <PRINTTYPE XTYPE-W ,XTYPE-W-PRINT>
511 <COND (<NOT <GASSIGNED? OPS>>
512 <COND (<GASSIGNED? BLOAT> <BLOAT 100000 5000 100 1500>)>
513 <FLOAD "<MIM.20C>OP.MUD">)
514 (<GASSIGNED? BLOAT> <BLOAT 100000 5000 100 100>)>
516 <COND (<NOT <GASSIGNED? OPCODE>> <FLOAD "<MIM.20C>MIMOPS.MUD">)>
518 <GDECL (SURVIVORS INCHANS) LIST (OPT-LIST) <OR FALSE LIST>
519 (THIS-GUY) <LIST ATOM <LIST [REST OBLIST]>>>
521 <DEFINE PROCESS-IFSYS (L) #DECL ((L) LIST)
522 <REPEAT ((IFL ()) IFOBJ ITM (LP .L) (LL <REST .L>))
523 #DECL ((IFL LP LL) LIST)
524 <COND (<EMPTY? .LL> <RETURN>)>
525 <COND (<AND <TYPE? <SET ITM <1 .LL>> FORM>
526 <MEMQ <SET IFOBJ <1 .ITM>>
527 '[IFSYS ENDIF IFCAN IFCANNOT]>>
528 <COND (<==? .IFOBJ IFSYS>
529 <COND (<=? <2 .ITM> "TOPS20">
530 <SET IFL (<2 .ITM> !.IFL)>
531 <PUTREST .LP <SET LL <REST .LL>>>)
533 <PUTREST .LP <SET LL <FLUSH-TO-ENDIF
535 (<OR <==? .IFOBJ IFCAN> <==? .IFOBJ IFCANNOT>>
536 <COND (<COND (<==? .IFOBJ IFCAN>
537 <LOOKUP <2 .ITM> ,MIMOC-OBLIST>)
539 <NOT <LOOKUP <2 .ITM> ,MIMOC-OBLIST>>)>
540 <SET IFL (<2 .ITM> !.IFL)>
541 <PUTREST .LP <SET LL <REST .LL>>>)
543 <PUTREST .LP <SET LL <FLUSH-TO-ENDIF
546 <COND (<OR <EMPTY? .IFL> <N=? <2 .ITM> <1 .IFL>>>
547 <ERROR UNBALANCED-IFSYS!-ERRORS
550 <SET IFL <REST .IFL>>)>
551 <PUTREST .LP <SET LL <REST .LL>>>)>
553 <SET LL <REST <SET LP .LL>>>>>
555 <DEFINE FLUSH-TO-ENDIF (L FLG "AUX" THING (CT 1) FRST)
558 <COND (<EMPTY? <SET L <REST .L>>>
559 <ERROR EOF-BEFORE-ENDIF!-ERRORS>
562 <COND (<TYPE? .THING FORM>
563 <COND (<==? <SET FRST <1 .THING>> ENDIF>
564 <COND (<0? <SET CT <- .CT 1>>> <RETURN <REST .L>>)>)
565 (<OR <==? .FRST IFSYS> <==? .FRST IFCAN> <==? .FRST IFCANNOT>>
566 <SET CT <+ .CT 1>>)>)>>>
568 <DEFINE GET-NM1 (STR "AUX" (SEEN-OP <>)) #DECL ((STR) STRING)
569 <MAPF ,STRING <FUNCTION (CH) <COND (<==? .CH !\<> <SET SEEN-OP T>)
570 (<==? .CH !\>> <SET SEEN-OP <>>)
572 <==? .CH !\.>> <MAPSTOP>)
575 <DEFINE FILE-MIMOC ("TUPLE" FILES "AUX" C OC (OUTCHAN .OUTCHAN)
576 (EXPFLOAD <AND <ASSIGNED? EXPFLOAD> .EXPFLOAD>)
577 F-OR-G (PREC <>) PRE-INDEX COMPILER-INPUT
578 (REDO <AND <ASSIGNED? REDO> .REDO>) ON
579 (PRECOMPILED <AND <ASSIGNED? PRECOMPILED> .PRECOMPILED>))
580 #DECL ((FILES) <<PRIMTYPE VECTOR> [REST STRING]> (OUTCHAN) <SPECIAL ANY>
581 (PREC OC C) <OR FALSE CHANNEL> (COMPILER-INPUT) <SPECIAL CHANNEL>
582 (PRE-INDEX) <LIST [REST !<LIST ATOM FIX FIX>]>
583 (REDO) <LIST [REST ATOM]>)
584 <COND (<AND <SET C <OPEN "READ" <1 .FILES>>>
585 <SET OC <OPEN "PRINT" <SET ON <STRING <GET-NM1 <1 .FILES>>
587 <OR <NOT .PRECOMPILED>
588 <AND <SET PREC <OPEN "READ" .PRECOMPILED>>
589 <SET PRE-INDEX <BUILD-INDEX .PREC ,FCN-OBL>>
592 <FUNCTION (L "AUX" (SN <SPNAME <1 .L>>))
594 <OR <LOOKUP .SN ,FCN-OBL>
595 <INSERT .SN ,FCN-OBL>>>>
597 <SET COMPILER-INPUT .C>
599 <SET FILES <REST .FILES>>
600 <REPEAT (ATM (BUFFER <ISTRING ,BUFL>)) #DECL ((BUFFER) STRING)
601 <REPEAT ((IFL ()) NAME L NXT (END <>) ITM NM ACCESS-DATA
603 #DECL ((L) LIST (NAME) <SPECIAL ATOM> (NXT) FORM
604 (END) <SPECIAL <OR FALSE ATOM>> (HASH-CODE) WORD
605 (ACCESS-DATA) <LIST FIX FIX>)
606 <COND (<SET ITM <FINISH-FILE .C .OC .EXPFLOAD>>
607 <COND (<TYPE? .ITM FORM>
608 <COND (<AND <G=? <LENGTH .ITM> 2>
609 <TYPE? <SET ATM <2 .ITM>> ATOM>>
610 <SET SPN <SPNAME .ATM>>
612 <OR <LOOKUP .SPN ,FCN-OBL>
613 <INSERT .SPN ,FCN-OBL>>>)>
620 (<TYPE? .ITM WORD> <SET HASH-CODE .ITM>)
622 <NOT <MEMQ .NM .REDO>>
625 #DECL ((LL) !<LIST ATOM FIX FIX>)
626 <COND (<==? <1 .LL> .NM>
627 <SET ACCESS-DATA <REST .LL>>
628 <COND (<OR <L? <LENGTH .ACCESS-DATA> 3>
629 <NOT <ASSIGNED? HASH-CODE>>
630 <==? <3 .ACCESS-DATA>
633 (ELSE <MAPLEAVE <>>)>)>>
635 <ACCESS .PREC <1 .ACCESS-DATA>>
637 <REPEAT ((NCHRS <- <2 .ACCESS-DATA> <1 .ACCESS-DATA>>))
639 <COND (<L? .NCHRS ,BUFL>
640 <READSTRING .BUFFER .PREC .NCHRS>
641 <PRINTSTRING .BUFFER .OC .NCHRS>
644 <READSTRING .BUFFER .PREC ,BUFL>
645 <PRINTSTRING .BUFFER .OC ,BUFL>
646 <SET NCHRS <- .NCHRS ,BUFL>>)>>
649 <SET L (.NXT !<READ-LIST .C END '<SET END T>>)>
650 <COND (.END <CLOSE .C>)>
651 <SET F-OR-G <1 .NXT>>
654 <OR <==? .OUTCHAN ,OUTCHAN>
657 <PRINC "Open coding: ">
663 <FIXUP-ONE-GLUE <REST ,CODE> ,LABELS>
664 <ALLOCATE-CONSTANTS ,CONSTANT-VECTOR ,CODE-LENGTH>
665 <FIXUP-CONSTANTS <REST ,CODE>>
666 <WRITE-MSUBR .OC <> .F-OR-G>
668 <FUNCTION (LB) #DECL ((LB) LAB)
669 <GUNASSIGN <REMOVE <LAB-NAM .LB>>>>
672 <COND (<EMPTY? .FILES>
675 <COND (<SET C <OPEN "READ" <1 .FILES>>>
676 <SET FILES <REST .FILES>>
678 (<ERROR .C FILE-MIMOC>)>>
683 <COND (<AND <ASSIGNED? C> .C>
685 <COND (<AND <ASSIGNED? OC> .OC>
693 <DEFINE FILE-GLUE ("TUPLE" FILES "AUX" C OC (TC <>) NMSTR (LEN 0) (FCN-COUNT 0)
694 MSUBR-ACCESS (LOWERSTR <>) (TFILES .FILES) TN (OUTCHAN .OUTCHAN)
695 (EXPFLOAD <AND <ASSIGNED? EXPFLOAD> .EXPFLOAD>) TOC PN ON TON
696 TFILE-LENGTH COMPILER-INPUT (OB ,OUTPUT-BUFFER))
697 #DECL ((TFILES FILES) <<PRIMTYPE VECTOR> [REST STRING]> (OB) STRING
698 (OC TC C) <OR FALSE CHANNEL> (LEN MSUBR-ACCESS TFILE-LENGTH) FIX
699 (FCN-COUNT) FIX (LOWERSTR) <OR FALSE STRING>
700 (OUTCHAN) <SPECIAL ANY> (COMPILER-INPUT) <SPECIAL CHANNEL>)
701 <COND (,SURVIVOR-MODE
702 <COND (<OR <NOT <ASSIGNED? READ-TABLE>>
703 <L? <LENGTH .READ-TABLE> ,CTLZ+1>>
704 <SETG READ-TABLE <SET READ-TABLE <IVECTOR ,CTLZ+1 <>>>>)>
705 <COND (<NOT <NTH .READ-TABLE ,CTLZ+1>>
708 [<ASCII ,CTLZ> <ASCII !\A> <> <> <>]>)>)>
715 <SETG MVECTOR (T FOO FOO)>
716 <MAPR <> <FUNCTION (B:<VECTOR LIST>) <PUT .B 1 ()>> ,MV-TABLE>
718 <SETG FREE-CONSTS ()>
719 <SETG CONSTANT-VECTOR ()>
720 <MAPR <> <FUNCTION (B:<VECTOR LIST>) <PUT .B 1 ()>> ,CONSTANT-TABLE>
721 <SETG FINAL-LOCALS ()>
722 <SETG MV <REST ,MVECTOR 2>>
723 <COND (<AND <SET C <OPEN "READ" <1 .FILES>>>
724 <SET OC <OPEN "PRINT" <SET ON <STRING <GET-NM1 <1 .FILES>>
726 <SET TOC <OPEN "PRINT" <SET TON <STRING <GET-NM1 <1 .FILES>>
729 <SET TC <OPEN "PRINTB"
730 <SET TN <STRING <GET-NM1 <1 .FILES>>
733 <SET COMPILER-INPUT .C>
734 <SET FILES <REST .FILES>>
736 <REPEAT (NAME ITM TMP SPN L X)
737 #DECL ((NAME) ATOM (ITM) <OR <FORM ANY> FALSE>)
738 <COND (<SET ITM <FINISH-FILE .C <> .EXPFLOAD>>
740 <SET FCN-COUNT <+ .FCN-COUNT 1>>
741 <COND (<AND ,SURVIVOR-MODE
742 <==? <1 <SET SPN <SPNAME <2 .ITM>>>>
744 <SET SPN <REST .SPN>>
745 <SET NAME <OR <LOOKUP .SPN ,FCN-OBL>
746 <INSERT .SPN ,FCN-OBL>>>
749 <FUNCTION (X:<LIST ATOM LIST>)
750 <COND (<AND <==? <1 .X>
758 ((.NAME <LIST !.OBLIST>)
761 <SET NAME <2 .ITM>>)>
766 <FUNCTION (CHR "AUX" (I <ASCII .CHR>))
767 #DECL ((CHR) CHARACTER)
768 <COND (<AND <L=? .I <ASCII !\Z>>
769 <G=? .I <ASCII !\A>>>
775 <COND (<EMPTY? ,PRE-NAMES>
776 <PUT ,MVECTOR 2 .NAME>)>
777 <SETG PRE-NAMES (.NAME !,PRE-NAMES)>
778 <COND (<MEMBER "TUPLE" <3 .ITM>>
780 (.NAME <> !,PRE-OPTS)>)
781 (<MEMBER "OPTIONAL" <3 .ITM>>
785 #DECL ((TP) <LIST ATOM>)
788 <STRING <SPNAME <1 .TP>>
790 <REST <CHTYPE .TMP LIST> 3>>
792 (.NAME .TMP !,PRE-OPTS)>)>)>
793 <SET L <READ-LIST .C END '<ERROR EOF!-ERRORS>>>
794 <COND (<N==? <1 .ITM> GFCN> <AGAIN>)>
796 <FUNCTION (ITM "AUX" OP)
800 (<OR <==? <SET OP <1 .ITM>> BIND>
802 <AND <OR <==? .OP TUPLE>
804 <NOT <TYPE? <2 .ITM> FIX>>>
809 <NOT <TYPE? <3 .ITM> FIX>>>>
810 <PUTPROP ,PRE-NAMES NDFRM T>
815 <COND (<EMPTY? .FILES>
817 <COND (<SET C <OPEN "READ" <1 .FILES>>>
819 <SET FILES <REST .FILES>>)
820 (<ERROR .C FILE-GLUE>)>>
823 <PUT .READ-TABLE ,CTLZ+1 <>>
824 <COND (<SET C <OPEN "READ" <1 .FILES>>>
826 <SET FILES <REST .FILES>>)
827 (<ERROR .C FILE-GLUE>)>
828 <REPEAT GLOOP (NAME L (NXT <>) (END <>) ITM (FCN-FOUND 0)
829 (FIRST T) MSBASE (IFL ()))
830 #DECL ((L) LIST (NAME) <SPECIAL ATOM> (NXT) <OR FALSE FORM>
831 (END) <SPECIAL <OR FALSE ATOM>>
832 (ITM) ANY (FCN-FOUND) FIX (IFL MSBASE) LIST)
834 <COND (<SET ITM <FINISH-FILE .C .TOC .EXPFLOAD>>
836 <SET FCN-FOUND <+ .FCN-FOUND 1>>
837 <RETURN <SET NXT .ITM>>)
840 <COND (<EMPTY? .FILES>
842 <COND (<SET C <OPEN "READ" <1 .FILES>>>
844 <SET FILES <REST .FILES>>)
845 (<ERROR .C FILE-GLUE>)>)>>
846 <SET L (.NXT !<READ-LIST .C END '<SET END T>>)>
847 <COND (.END <CLOSE .C>)>
849 <OR <==? .OUTCHAN ,OUTCHAN>
852 <PRINC "Open coding: ">
853 <PRIN1 <SET NAME <2 .NXT>>>)
855 <SET NAME <2 .NXT>>)>
858 <MIMOC .L <AND ,SURVIVOR-MODE
859 <SET PN <FIND-CALL .NAME ,PRE-NAMES>>
860 <NOT <GETPROP .PN NDFRM>>
861 <NOT <FIND-OPT .NAME ,PRE-OPTS>>
862 <NOT <SURVIVOR? .NAME>>>>
866 <PRINTTYPE LOCAL-NAME ,PRINT>
867 <PRINTTYPE CONSTANT-LABEL ,PRINT>
868 <FIXUP-ONE-GLUE <REST ,CODE> ,LABELS>
869 <FIXUP-CONSTANTS <REST ,CODE> ()>
870 <DUMP-CODE ,CODE .TC>
871 <PRINTTYPE LOCAL-NAME ,PLOCAL-NAME>
872 <PRINTTYPE CONSTANT-LABEL ,PCONST-LABEL>)>
874 <FUNCTION (LB) #DECL ((LB) LAB)
876 <LAB-FINAL-STATE .LB <>>
877 <LAB-DEAD-VARS .LB ()>
878 <LAB-CODE-PNTR .LB ()>
879 <REMOVE <LAB-NAM .LB>>>
881 <SETG GLUE-LIST (<SET MSBASE
885 <COND (,MAX-SPACE ()) (ELSE ,CODE)>
892 <SET MSUBR-ACCESS <DO-ACCESS .TOC>>)>
893 <COND (<OR <NOT ,SURVIVOR-MODE>
894 <SURVIVOR? <1 .MSBASE>>>
895 <PRINT-ENTRY .MSBASE .TOC .LOWERSTR>)>
896 <SETG GLUE-PC <+ ,GLUE-PC ,CODE-LENGTH>>
897 <COND (<==? .FCN-COUNT .FCN-FOUND>
899 <ALLOCATE-CONSTANTS ,CONSTANT-VECTOR ,GLUE-PC>
901 <SET TFILE-LENGTH <- <FILE-LENGTH <SET TOC <OPEN "READ" .TON>>>
903 <REPEAT ((BUFSTR <ISTRING 1024>))
904 <COND (<L? .MSUBR-ACCESS 1024>
906 <REST .BUFSTR <- 1024 .MSUBR-ACCESS>>>)>
907 <COND (<NOT <EMPTY? .BUFSTR>>
908 <READSTRING .BUFSTR .TOC>
909 <PRINTSTRING .BUFSTR .OC>)>
910 <COND (<L=? <SET MSUBR-ACCESS <- .MSUBR-ACCESS 1024>> 0>
914 <SET TC <OPEN "READB" .TN>>
917 Doing fixup and output
919 <SET NMSTR <WRITE-MSUBR .OC .LOWERSTR>>
921 <FUNCTION (FROB "AUX" (CODE <READ-CODE .TC>))
922 #DECL ((FROB) <LIST ATOM LIST FIX LIST LIST>
925 <FUNCTION (X) #DECL ((X) <LIST FIX>)
928 <CHTYPE <ORB <NTH .CODE <1 .X>>
929 <GFIND <2 .X> <3 .X>>>
931 <CHTYPE <7 .FROB> LIST>>
934 #DECL ((X) <LIST FIX CONSTANT-BUCKET>)
937 <ORB <NTH .CODE <1 .X>>
942 <REPEAT ((I 4)) #DECL ((I) FIX)
947 <COND (<==? <SET I <- .I 1>> 0>
950 <SET LEN <+ <LENGTH .CODE> .LEN>>>
955 <WRITE-CODE .OC .NMSTR () .OB .LEN>
956 <AND ,INT-MODE <PRINTTYPE ATOM ,PRINT>>
957 <REPEAT ((BUFSTR <ISTRING 1024>))
958 #DECL ((BUFSTR) STRING)
959 <COND (<L? .TFILE-LENGTH 1024>
961 <REST .BUFSTR <- 1024 .TFILE-LENGTH>>>)>
962 <READSTRING .BUFSTR .TOC>
963 <PRINTSTRING .BUFSTR .OC>
964 <COND (<L? <SET TFILE-LENGTH
965 <- .TFILE-LENGTH 1024>> 0>
967 <FINISH-FILE .C .OC .EXPFLOAD>
976 <PRINC "Writing MSUBR
978 <WRITE-MSUBR .OC .LOWERSTR>
979 <REPEAT ((BUFSTR <ISTRING 1024>))
980 #DECL ((BUFSTR) STRING)
981 <COND (<L? .TFILE-LENGTH 1024>
983 <REST .BUFSTR <- 1024 .TFILE-LENGTH>>>)>
984 <READSTRING .BUFSTR .TOC>
985 <PRINTSTRING .BUFSTR .OC>
986 <COND (<L? <SET TFILE-LENGTH
987 <- .TFILE-LENGTH 1024>> 0>
989 <FINISH-FILE .C .OC .EXPFLOAD>
996 <COND (<AND <ASSIGNED? C> .C>
998 <COND (<AND <ASSIGNED? OC> .OC>
1002 (ELSE <ERROR .OC>)>)
1006 <DEFMAC DO-ACCESS ('CH)
1007 <COND (<GASSIGNED? M-HLEN> <FORM ACCESS .CH>)
1008 (ELSE <FORM 17 .CH>)>>
1010 <DEFINE SURVIVOR? (A "AUX" (SP <SPNAME .A>) (VL ,VICTIMS))
1012 <NOT <OR <MEMQ .A .VL>
1016 <COND (<AND <TYPE? .OBJ LIST>
1019 <CHTYPE <2 .OBJ> LIST>>>
1023 <DEFMAC CHTYPE-OBLIST ('O)
1024 <COND (<GASSIGNED? M-HLEN> <FORM CHTYPE .O ATOM>)
1025 (ELSE <FORM GETPROP .O OBLIST>)>>
1027 <DEFINE DETERMINE-VICTIMS ("AUX" (VL ()) (LOF ,LIST-OF-FCNS))
1028 #DECL ((VL LOF AO) LIST)
1030 <FUNCTION (LL "AUX" (A <1 .LL>) (SP <SPNAME .A>) O (PP <>)
1032 #DECL ((LL) !<LIST ATOM LIST>)
1033 <COND (<OR <EMPTY? ,PRE-NAMES>
1035 <FUNCTION (PN "AUX" (NM <1 .PN>))
1037 <COND (<=? <SPNAME .NM> .SP>
1043 <OR <L? <LENGTH .SP> 2>
1044 <NOT <AND <==? <1 .SP> !\I>
1045 <==? <2 .SP> !\$>>>>>
1046 <AND <SET O <OBLIST? .A>>
1047 <SET O <OBLIST? <CHTYPE-OBLIST .O>>>
1048 <OR <==? .O ,PKG-OBL> <==? .O <ROOT>>>>
1051 <COND (<AND <=? <SPNAME .NM> .SP>
1052 <MEMQ <OBLIST? .NM> <2 .LL>>>
1057 <COND (<LOOKUP .SP .O> <MAPLEAVE>)>>
1059 <SET VL ((.SP <2 .LL>) !.VL)>)>
1061 <PUT .PP 1 <OR <MAPF <>
1062 <FUNCTION (O "AUX" AA)
1068 <INSERT .SP <1 <2 .LL>>>>>
1069 <COND (<SET PO <MEMQ .A ,PRE-OPTS>>
1070 <PUT .PO 1 <1 .PP>>)>)>>
1072 <SETG VICTIMS (!,VICTIMS !.VL)>
1073 <SETG FIRST-PASS-SURVIVOR-GLUE <>>>
1075 <GDECL (GLUE-LIST) <LIST [REST LIST]>>
1077 <DEFINE PRINT-ENTRY (MSBASE OUTCHAN LOWERSTR)
1078 #DECL ((MSBASE) LIST (OUTCHAN) CHANNEL)
1079 <COND (,INT-MODE <PRINTTYPE ATOM ,ATOM-PRINT>)>
1080 <WIDTH-MUNG .OUTCHAN 100000000>
1081 <PRINC "<SETG " .OUTCHAN>
1082 <PRIN1 <1 .MSBASE> .OUTCHAN>
1083 <PRINC " #MSUBR [" .OUTCHAN>
1084 <PRINC .LOWERSTR .OUTCHAN>
1085 <COND (,INT-MODE <PRINC "!-IMSUBR!- " .OUTCHAN>)
1086 (ELSE <PRINC "-IMSUBR " .OUTCHAN>)>
1087 <PRIN1 <1 .MSBASE> .OUTCHAN>
1089 <PRIN1 <2 .MSBASE> .OUTCHAN>
1091 <PRIN1 <3 .MSBASE> .OUTCHAN>
1092 <PRINC "]>" .OUTCHAN>
1094 <COND (,INT-MODE <PRINTTYPE ATOM ,PRINT>)>
1095 <WIDTH-MUNG .OUTCHAN 80>>
1097 <DEFINE FINISH-FILE (INCHAN OUTCHAN EXPFLOAD "OPTIONAL" END?
1098 (EVAL? T) "AUX" (IND '(1)) (WORD-OK? <>))
1099 #DECL ((INCHAN) CHANNEL (OUTCHAN) <OR CHANNEL FALSE>
1100 (END?) <VECTOR [REST ATOM]> (EXPFLOAD EVAL?) <OR ATOM FALSE>)
1101 <COND (<NOT <ASSIGNED? END?>>
1103 <SET END? '[FCN GFCN]>)>
1105 <COND (<==? <SET ITM <READ .INCHAN '.IND>> .IND>
1107 <COND (<EMPTY? <SETG INCHANS <REST ,INCHANS>>>
1109 <SET INCHAN <1 ,INCHANS>>
1111 <COND (<NOT <OR <TYPE? .ITM STRING CHARACTER FIX>
1112 <AND <TYPE? .ITM ATOM>
1113 <=? <SPNAME .ITM> "
\f">>>>
1114 <COND (<AND <TYPE? .ITM FORM>
1116 <MEMQ <1 .ITM> .END?>>
1118 (<AND .WORD-OK? <TYPE? .ITM WORD>>
1119 <COND (<OR ,INT-MODE ,BOOT-MODE ,GLUE-MODE> <AGAIN>)>
1121 <PRINC ,WORD-STRING .OUTCHAN>
1122 <PRIN-OCT <CHTYPE .ITM FIX> .OUTCHAN>
1125 <COND (<AND .EXPFLOAD
1128 <COND (<==? <1 .ITM> FLOAD>
1129 <SET NCH <OPEN "READ" !<REST .ITM>>>)
1130 (<==? <1 .ITM> L-FLOAD>
1131 <SET NCH <L-OPEN <2 .ITM>>>)>>
1133 <SETG INCHANS (.NCH !,INCHANS)>)
1137 <COND (<AND <TYPE? .ITM FORM>
1140 '[INCLUDE-WHEN USE-WHEN]>
1141 <NOT <EMPTY? <REST .ITM>>>
1142 <TYPE? <SET TMP <2 .ITM>> FORM>
1144 <==? <1 .TMP> COMPILING?>>
1146 <PUT .TMP 1 DEBUGGING?>)
1150 <COND (,INT-MODE <PRINTTYPE ATOM ,ATOM-PRINT>)>
1151 <PRINTTYPE CHARACTER ,CHR-PRINT>
1152 <WIDTH-MUNG .OUTCHAN 100000>
1153 <PRIN1 .ITM .OUTCHAN>
1155 <WIDTH-MUNG .OUTCHAN 80>
1156 <COND (,INT-MODE <PRINTTYPE ATOM ,PRINT>)>
1157 <PRINTTYPE CHARACTER ,PRINT>)>)>)>>>
1159 <DEFINE PRIN-OCT (X CH)
1162 <COND (<0? .X> <PRINC !\0 .CH>)
1163 (ELSE <POCT .X .CH>)>
1166 <DEFINE POCT (X CH) #DECL ((X) FIX)
1168 <POCT <LSH .X -3> .CH>
1169 <PRINC <ASCII <+ <ANDB .X 7> <ASCII !\0>>> .CH>)>>
1172 <GDECL (SUBRIFIED-PKGS SUBRIFIED-MSUBRS) <LIST [REST ATOM]>>
1174 <DEFINE SUBRIFY? (NAME "AUX" (OBL <OBLIST? .NAME>) MS OO)
1175 <COND (<AND <GASSIGNED? .NAME>
1176 <TYPE? <SET MS ,.NAME> MSUBR>
1178 <OR <==? <SET OO <OBLIST? <CHTYPE .OBL ATOM>>>
1180 <AND <==? <OBLIST? <CHTYPE .OO ATOM>>
1183 <MEMQ <CHTYPE .OBL ATOM> ,SUBRIFIED-PKGS>>
1184 <MEMQ .NAME ,SUBRIFIED-MSUBRS>>>
1186 <REPEAT ((DCL:LIST <REST <3 .MS> 2>) (CNT:FIX 0) IT)
1187 <COND (<EMPTY? .DCL> <RETURN .CNT>)>
1188 <COND (<NOT <TYPE? <SET IT <1 .DCL>> STRING>>
1189 <SET CNT <+ .CNT 1>>)
1190 (<MEMQ .IT '["OPT" "OPTIONAL" "TUPLE"]>
1192 <SET DCL <REST .DCL>>>] SUBR-INFO>)>>
1194 <DEFINE PRINT-SUBR-INFO (S:SUBR-INFO)
1195 <PRINC "%<SUBR-ENTRY ">
1199 <COND (<GASSIGNED? PRINT-SUBR-INFO>
1200 <PRINTTYPE SUBR-INFO ,PRINT-SUBR-INFO>)>