1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-23 10:59:24 +00:00
PDP-10.its/src/nilcom/subloa.3

46 lines
1.6 KiB
Common Lisp
Executable File

;;; SUBLOAD -*-mode:lisp;package:si;lowercase:T-*-
;;; **************************************************************************
;;; ***** NIL ****** NIL/MacLISP/LISPM Preamble for Autoloadings *************
;;; **************************************************************************
;;; ******** (c) Copyright 1981 Massachusetts Institute of Technology ********
;;; **************************************************************************
#+Compile-Subload
(herald SUBLOAD /3) ;DONT USE HERALD!! this file usually gets included
#+(or Compile-Subload
#.(if (fboundp 'SUBLOAD) ;How to say "Flush this stuff if merely
'THIS-AINT-NO-FEATURE ; INCLUDEing it into a lisp/compiler
'PAGING ; which already have these loaded"
))
(eval-when (eval compile #+Compile-Subload load)
(defun (AUTOLOAD-FILENAME macro) (x)
(let (((() module-name) x)
(more (and (if (get 'SHARPCONDITIONALS 'VERSION)
(featurep '(and MacLISP (not For-NIL)))
(status nofeature For-NIL))
'(FASL))))
`'((LISP) ,module-name ,.more)))
(defun (SUBLOAD macro) (x)
(let ((module-name (cadr x)))
`(OR (GET ',module-name 'VERSION)
(LOAD ,(macroexpand `(AUTOLOAD-FILENAME ,module-name))))))
(defun (SUBLOAD-FUNCTION macro) (x)
(let ((fun-name (cadr x)))
`(OR (FBOUNDP ',fun-name)
(+INTERNAL-TRY-AUTOLOADP ',fun-name))))
(defun (DEF-OR-AUTOLOADABLE macro) (x)
(let (((() function-name module-name) x))
`(OR (FBOUNDP ',function-name)
(GET ',function-name 'AUTOLOAD)
,`(DEFPROP ,function-name
,(eval `(AUTOLOAD-FILENAME ,module-name))
AUTOLOAD))))
)