File size: 627 Bytes
f65fe85
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
(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))))