mirror of
https://github.com/PDP-10/its.git
synced 2026-01-23 10:59:24 +00:00
46 lines
1.6 KiB
Common Lisp
Executable File
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))))
|
|
|
|
)
|