mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-02 04:40:29 +02:00
26 lines
627 B
Scheme
26 lines
627 B
Scheme
(define-module (lang elisp primitives features)
|
|
#:use-module (lang elisp internals fset)
|
|
#:use-module (lang elisp internals load)
|
|
#:use-module (lang elisp internals null)
|
|
#:use-module (ice-9 optargs))
|
|
|
|
(define-public features '())
|
|
|
|
(fset 'provide
|
|
(lambda (feature)
|
|
(or (memq feature features)
|
|
(set! features (cons feature features)))))
|
|
|
|
(fset 'featurep
|
|
(lambda (feature)
|
|
(->nil (memq feature features))))
|
|
|
|
(fset 'require
|
|
(lambda* (feature #:optional file-name noerror)
|
|
(or (memq feature features)
|
|
(load (or file-name
|
|
(symbol->string feature))
|
|
noerror
|
|
#f
|
|
#f
|
|
#t))))
|