]> git.donarmstrong.com Git - lilypond.git/blob - guile18/lang/elisp/primitives/features.scm
Import guile-1.8 as multiple upstream tarball component
[lilypond.git] / guile18 / lang / elisp / primitives / features.scm
1 (define-module (lang elisp primitives features)
2   #:use-module (lang elisp internals fset)
3   #:use-module (lang elisp internals load)
4   #:use-module (lang elisp internals null)
5   #:use-module (ice-9 optargs))
6
7 (define-public features '())
8
9 (fset 'provide
10       (lambda (feature)
11         (or (memq feature features)
12             (set! features (cons feature features)))))
13
14 (fset 'featurep
15       (lambda (feature)
16         (->nil (memq feature features))))
17
18 (fset 'require
19       (lambda* (feature #:optional file-name noerror)
20         (or (memq feature features)
21             (load (or file-name
22                       (symbol->string feature))
23                   noerror
24                   #f
25                   #f
26                   #t))))